fix: worn gear lifted off a corpse stays loot when put back (#2701)
A corpse's worn-gear list was fixed at creation, and clients learn worn gear only from the 0x89 packet sent on first sight. A piece lifted and dropped back showed as loose loot to everyone watching, but came back "worn" after a relog. Lifting now takes the piece off the list, so every view agrees it is loot. Programmatic moves (the duel gather-and-re-equip in `DuelContext`) don't go through `OnItemLifted` and still see the original list.
This commit is contained in:
parent
0dbb0f5a2c
commit
1992c9d1b5
2 changed files with 46 additions and 0 deletions
|
|
@ -812,6 +812,10 @@ public partial class Corpse : Container, ICarvable
|
|||
AddToLooters(from);
|
||||
|
||||
_instancedItems?.Remove(item);
|
||||
|
||||
// Lifted gear is loot from then on. Clients only learn worn gear from 0x89 on first sight, so a
|
||||
// piece put back would show worn after a relog but loose to everyone already watching.
|
||||
RemoveFromEquipItems(item);
|
||||
}
|
||||
|
||||
public override void GetContextMenuEntries(Mobile from, ref PooledRefList<ContextMenuEntry> list)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue