From NWN Lexicon
Revision as of 10:13, 21 August 2012 by Dood (talk | contribs) (Created page with "=GetInventoryDisturbItem()= Returns the disturbing item in an inventory OnDisturbed event. object  GetInventoryDisturbItem(); ====Description==== De...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Returns the disturbing item in an inventory OnDisturbed event.

 object  GetInventoryDisturbItem();


Description: Returns the item that caused the object’s OnDisturbed event to fire. There are three events that will cause this event to fire – when an item is added to, taken from, or stolen from inventory.

Returns OBJECT_INVALID on error, which will never happen if this function is used exclusively in OnDisturbed events of objects with inventories. (At least in theory - check the bug list below)

Known Bugs

It has been previously noted that the event OnDisturbed does not fire when the item being disturbed is gold. There’s still something odd going on with that function. I made this little script and put OnDisturbed of a container:

void main()
object oPC=GetLastDisturbed();

object oDisturb=GetInventoryDisturbItem();

SendMessageToPC(oPC, "this: "+GetName(oDisturb));

When I put gold into the container, I get a message telling me “this: Gold piece”. So it does fire for gold. When I take it back from the container, I get the message “this:”
I tested it, and when removing gold from a container, GetInventoryDisturbItem() returns OBJECT_INVALID.

Also, there’s a bug with stackable items. If a stackable item is added to another stack in either the givers or receivers inventory, the OnDisturbed event never fires (except for gold pieces, apparently).




// put this OnDisturbed of a container. Whenever anybody
// removes an item from the container, they'll be charged
// that items value for it... Lilac Soul
void main()
     object oItem=GetInventoryDisturbItem();
     object oPC=GetLastDisturbed();
     int nType=GetInventoryDisturbType();

     switch (nType)

         int nAmount=GetGoldPieceValue(oItem);
         AssignCommand(oPC, TakeGoldFromCreature(nAmount, oPC, TRUE));

         SendMessageToPC(oPC, "Stealing is wrong. Give me your money!");

See Also




OnDisturbed Event

 author: Charles Feduke, editor: Lilac Soul, additional contributor(s): Lilac Soul