Originally Posted by ZOS_ChipHilseberg
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?
|
So far what I've learnt is below.
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
Currently when the guard approaches you GetInteractionType returns 14 instead of 30 so we cannot tell whether it's a normal NPC conversation or a pay bounty dialog.
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,