La seule façon à ma connaissance de différencier un marchandage d'un drop c'est dans le onUnaquireItem, tu regardes
- la zone : c'est à prendre en compte uniquement dans la zone voulue
- le propriétaire de l'item (GetItemPossessor) : si c'est une créature alors c'est un vol, si c'est un magasin alors c'est une transaction, si c'est un placeable alors c'est un drop dans un coffre, sinon il est invalide et c'est un marchandage ou un drop par terre
- la location : si elle est valide alors l'item est par terre, sinon l'item est "quelque part" dans une fenêtre de marchandage, auquel cas tu le renvoies à son ancien propriétaire (GetModuleItemLostBy)
Ils pourront toujours s'échanger des pièces d'or, par contre dès qu'ils mettront un item dans la fenêtre de marchandage il reviendra dans leur inventaire.
|