Description:
When a player or NPC dies, their hair and beard are added into the corpse's container (Contents list) to preserve visual rendering. However, treating them as standard container items causes logical pollution:
Item Count Mismatch: After looting all actual items, the corpse still reports > 0 items. Players feel like they missed something and the corpse isn't fully looted.
Script Iteration: Server-side iterations (e.g., FORCONT) and container logic incorrectly include these visual attachments as physical loot.
Expected Behavior:
Hair and beard should act strictly as visual attachments for the corpse's paperdoll rendering. They should not be counted as logical items inside the corpse's container data structure. Once all real loot is taken, the corpse should be considered logically empty.
Suggestion:
Decouple the visual rendering of hair/beard (Packet 0x89 CorpseEquipment) from the logical container storage (Packets 0x25/0x3C and CContainer logic), so they remain invisible to item counts and script iterations while still rendering correctly on the corpse model.
Description:
When a player or NPC dies, their hair and beard are added into the corpse's container (Contents list) to preserve visual rendering. However, treating them as standard container items causes logical pollution:
Item Count Mismatch: After looting all actual items, the corpse still reports > 0 items. Players feel like they missed something and the corpse isn't fully looted.
Script Iteration: Server-side iterations (e.g., FORCONT) and container logic incorrectly include these visual attachments as physical loot.
Expected Behavior:
Hair and beard should act strictly as visual attachments for the corpse's paperdoll rendering. They should not be counted as logical items inside the corpse's container data structure. Once all real loot is taken, the corpse should be considered logically empty.
Suggestion:
Decouple the visual rendering of hair/beard (Packet 0x89 CorpseEquipment) from the logical container storage (Packets 0x25/0x3C and CContainer logic), so they remain invisible to item counts and script iterations while still rendering correctly on the corpse model.