03/10/15, 05:52 AM | #21 |
|
I got a bit lost. Could someone please explain the whole guard interaction to me? They don't break your skull like they say they would, if you broke the law?
So the problem is with add-ons doing stuff on inventory slot/full update? Some ideas: * Use SHARED_INVENTORY Lua Code:
* Add-ons tinkering with items, e.g. junkers, should IMO never, ever, do that in response to full update. This includes SHARED_INVENTORY's SlotAdded/Updated callbacks. If you want to implement forced re-scan feature, add a button, or a keybind, or a slash command. * If you need to do something upon full backpack update, maybe you could delay that until out of certain scenes: Lua Code:
|
03/10/15, 12:23 PM | #22 | ||
|
If you keep committing crimes and get enough infamy the guards will KOS, Kill you On Sight. They will not give you any chance to pay a bounty.
I can't double check it right now, but I'm pretty sure I tried this. I don't think there was any special scene for it. It was just the normal HUD_SCENE. So that wouldn't help them know when they get caught or when the updating ends. |
||
03/10/15, 12:28 PM | #23 |
I updated AGS just now. Maybe you can try if the crash still persists.
|
|
03/10/15, 03:04 PM | #24 | |
|
INTERACTION_PAY_BOUNTY CHATTER_START_PAY_BOUNTY CHATTER_TALK_CHOICE_PAY_BOUNTY CHATTER_END_PAY_BOUNTY (not saying checking this in order to skip updates is not crazy, just spilling findings ) |
|
03/10/15, 04:14 PM | #25 | |
|
INTERACTION_PAY_BOUNTY = 30 and GetInteractionType() returns only 14 INTERACTION_CONVERSATION I didn't think of looking at the chatter types, they look like they are in use, doing something like pre-hooking Lua Code:
Agreed, I don't need it. Someone asked if there was a way to know when you get caught or pay a bounty I was just trying to throw out some ideas. |
|
03/10/15, 05:25 PM | #26 |
I found a very-very-very temporary solution to the problem. I'm not too proud of it, but at least seems to be working: http://www.esoui.com/forums/showpost...76&postcount=3
|
|
03/11/15, 08:50 AM | #27 |
I've been following this thread and trying to get a clear picture of the problem but I have a few questions. What kind of crash are we talking about? Is it an actual client crash (the kind that generates a bug report) or is it a client lockup? Also, am I right in saying that the leading theory is that there are a bunch of spurious inventory updates that are causing "too much" addon processing when you are killed by a guard?
|
|
03/11/15, 09:26 AM | #28 | |
Issue: Whenever you pay a bounty or get killed by a guard and you have stolen items in your inventory, then the client triggers an EVENT_INVENTORY_FULL_UPDATE followed by an EVENT_INVENTORY_SINGLE_SLOT_UPDATE for all items in your inventory. This cause several addons to start extremely intensive processing which may lead to a client lockup for 5-30 seconds, on several occasions a complete client crash. Several ideas how can this be solved: 1. Do not fire an inventory update for all items, only for the confiscated items 2. Use a separate updateReason on the inventory update events (FULL/SINGLE_SLOT) to allow addons to distinguish between item sells and confiscation. 3. Make sure the game API uses the below constants in a way their name suggests: Code:
INTERACTION_PAY_BOUNTY CHATTER_START_PAY_BOUNTY CHATTER_TALK_CHOICE_PAY_BOUNTY CHATTER_END_PAY_BOUNTY I believe the combination of all the above would be the best. PS: Now that we have ZOS folks among us I will describe a fully reproducible client crash with GetTradingHouseSearchResultItemLink (if someone haven't done it already) . Maybe it will now get a proper attention, because my ingame bug report was just bouncing off customer support. Regards, Last edited by thifi : 03/11/15 at 09:32 AM. |
||
03/11/15, 09:43 AM | #29 |
QuadroTony |
View Public Profile |
Find More Posts by QuadroTony |
03/11/15, 10:49 AM | #30 | ||
|
|||
03/11/15, 01:21 PM | #31 | ||
|
I've not experienced it with paying a bounty or dying by a guard, I don't use many addons. But I did experience the horse swapping problem months back & it was a lock-up. I'm betting this is the same problem, it has the same cause stemming from everyone running code on all of the slots that get updated (in which all of them get updated at once) through the EVENT_INVENTORY_SINGLE_SLOT_UPDATE .
More Details: Some people said they were crashing when they "payed a bounty". I don't know what kind of crash, I've not experienced it. A few months back people had the same problem that I tracked down to swapping your horse to a different horse that has a different carrying capacity because it updates all of the backpack slots. I remembered this happening, which is what made me think to check the slot updates and when you pay a bounty with stolen items and it is updating even more than your backpack, so the problem is probably worse for them. With the horse problem I think I ended up recommending they put a scene check in their addons to check if we the user was at the stables & prevent their code from running at that time. If you have stolen items on you when you pay a bounty a full update gets called and it updates all of the inventory slots (not just the backpack?? Why you cant put stolen items in the bank, but it updates those too). If an addon is running a lot of code on items during the EVENT_INVENTORY_SINGLE_SLOT_UPDATE, their code gets run on every slot that gets updated. If several addons are doing this it can cause a huge lag spike and a lock-up. It happens when you pay a bounty WITH stolen items on you, for sure. It probably also happens when you are killed by a guard too (if you have stolen items on you), I didnt think to check that one. But I bet it does because its the updates that are fired when the game removes stolen items from your inventory, which would also happen when a guard kills you. EDIT: Ok since everyone else is throwing other bugs into the thread...and since no one else has had an answer for me. Chip is there any chance I could get some feedback on this: IsPOIPublicDungeon(...): Is It a Bug? The rest of the IsPOIxxxx functions do what their names suggest, but either this one is bugged or it just does not do what its name suggests...I'de really like to use it in my WaypointIt addon. Last edited by circonian : 03/11/15 at 01:32 PM. |
||
03/12/15, 07:50 AM | #32 | ||
The easiest way to do this is to use the IsUnderArrest() function, which will return true while the player is in the arrest conversation itself, and while stunned as the guard runs up to you. |
|||
03/12/15, 12:48 PM | #33 | ||
Regards, |
|||
03/20/15, 10:32 AM | #34 |
so we will w8 the patch, or some1 can make a workaround of this issue?
|
|
QuadroTony |
View Public Profile |
Find More Posts by QuadroTony |
03/20/15, 11:26 AM | #35 |
|
|
ESOUI » AddOns » AddOn Help/Support » 3 hours to track down the CTD |
«
Previous Thread
|
Next Thread
»
|
Thread Tools | |
Display Modes | |
|
|