34 lines
865 B
Plaintext
34 lines
865 B
Plaintext
|
#include "x2_inc_switches"
|
||
|
#include "xchst_inc"
|
||
|
//#include "inc_debug"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
int nEvent = GetUserDefinedItemEventNumber();
|
||
|
//DoDebug("nEvent = "+IntToString(nEvent));
|
||
|
if(nEvent == X2_ITEM_EVENT_ACTIVATE)
|
||
|
{
|
||
|
object oPC = GetItemActivator();
|
||
|
object oChest = GetLocalObject(oPC, XCHST_CONT);
|
||
|
|
||
|
if(GetIsObjectValid(oChest))
|
||
|
{
|
||
|
DismissChest(oChest);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SummonChest(oPC);
|
||
|
}
|
||
|
}
|
||
|
else if(nEvent = X2_ITEM_EVENT_UNACQUIRE)
|
||
|
{
|
||
|
object oKey = GetModuleItemLost();
|
||
|
object oNewOwner = GetItemPossessor(oKey);
|
||
|
|
||
|
//if the key was put into the chest - give it back to player
|
||
|
if(GetResRef(oNewOwner) == "xchst_cont")
|
||
|
{
|
||
|
AssignCommand(oNewOwner, ActionGiveItem(oKey, GetModuleItemLostBy()));
|
||
|
}
|
||
|
}
|
||
|
}
|