OnAcquireItem

From NWN Lexicon

Contents

[edit] OnAcquireItem

The script attached to this event fires when an item is acquired. The item can be tested against a list of items, and if the item is found an event could occur such as the corpses around the PC arising to fight them in undeath or a journal entry is made. It also fires whenever the OnClientEnter script would fire for a PC. It fires before the OnClientEnter Event starts, for all the items in the PC's inventory (including those equipped!) This is new, quite recent behavior change for this event.

[edit] Trigger

Whenever an item is added to someone's inventory.

[edit] Function(s)

GetModuleItemAcquiredStackSize() returns the amount of items added to an exsisting stack.

[edit] Remarks

Since GetModuleItemAcquiredStackSize() returns the change in stack sizes if something is added to an existing stack, it will fire for when a PC picks up a potion and it is adding to an existing stack of potions. If GetModuleItemAcquiredFrom() is invalid, it could have been from a Barter screen or the ground. Pickpocketed items do trigger the module events, and such stolen items are automatically marked as stolen - retrievable by GetStolenFlag(object oItem).

This event fires for gold but in this case the item is invalid (OBJECT_INVALID) and the only valid information is item stack size.

[edit] Example

// Writes an entry in the logfile whenever a PC acquires an
// item, if the script is put OnAcquireItem. The entry will
// contain info about the PC acquiring the item, the item,
// and the object the item was acquired from
void main()
{
     object oItem = GetModuleItemAcquired();
     object oPC = GetModuleItemAcquiredBy();
     // Note: you can use GetItemPossessor(oItem); to get oPC
     object oLostBy = GetModuleItemAcquiredFrom();
 
     string sLog = GetName(oPC) + " acquired " + GetName(oItem) + " from " + GetName(oLostBy);
     PrintString(sLog);
}

[edit] See Also

functions: 

GetModuleItemAcquiredStackSize()


Personal tools
Categories