44 lines
1.9 KiB
Plaintext
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
|
|
}
|