Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

44 lines
1.9 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////
// Real Time Strategy - NWN - Module OnActivateItem Script
//==========================================================================
// By Deva Bryson Winblood. 02/23/2003
////////////////////////////////////////////////////////////////////////////
/* This has been specially coded not to interfere with your existing OnActivate
Item scripts. Simply change where it says YOUR_SCRIPT_HERE in the last line
to the name of the script that this one is replacing and it will continue
to work as normal. This script ONLY intercepts items that begin with rts in
their ResRef. All others it ignores */
// Modified 05/29/2004: blocked rts_ artifacts from working in areas with an RTS_WP_NO_ARTIFACT waypoint. JG
void main()
{
object oItem=GetItemActivated();
string sRes=GetResRef(oItem);
string sActivate=GetLocalString(oItem,"sActivate");
object oPC=GetItemActivator();
if (GetLocalInt(oPC,"bShiftNoActivate"))
{ // cannot activate while shifted
if (!GetLocalInt(oItem,"bShiftAOK"))
{ // not a valid item
SendMessageToPC(oPC,"That item cannot be activated while you are shifted.");
return;
} // not a valid item
} // cannot activate while shifted
if(GetNearestObjectByTag("RTS_WP_NO_ARTIFACT")!=OBJECT_INVALID) SendMessageToPC(GetItemActivator(), "The magic of the artifact doesn't appear to work in this place.");
else if (GetLocalInt(GetItemActivator(),"nVampMist")!=TRUE&&GetLocalInt(GetItemActivator(),"bWZGaseous")!=TRUE)
{ // not in gaseous form
if (GetStringLength(sActivate)>0)
{ // variable
ExecuteScript(sActivate,OBJECT_SELF);
} // variable
else if (GetStringLeft(sRes,3)=="rts")
{
ExecuteScript(sRes,OBJECT_SELF);
}
else
{
ExecuteScript("uni_onactivateit",OBJECT_SELF);
}
} // not in gaseous form
}