Areas and Fixes
Added CCOH and missing areas Changed some areas to be craftable, Fixed some on death issues, Fixed the Gaurd
This commit is contained in:
80
_module/nss/uni_onactivateit.nss
Normal file
80
_module/nss/uni_onactivateit.nss
Normal file
@@ -0,0 +1,80 @@
|
||||
//////////////////////////////////////////////////////////
|
||||
// Universal Item Activation Script
|
||||
// By Deva Bryson Winblood.
|
||||
// Version 1.1
|
||||
// 10/12/2003
|
||||
//////////////////////////////////////////////////////////
|
||||
/* What can you do with this script?
|
||||
This script will use the ResRef of an item to call a
|
||||
script with the same name as it's res ref. It can also
|
||||
be used to GROUP multiple items into a single activation
|
||||
script based on a prefix. There are some hardcoded
|
||||
prefixes used with Deva's scripts but, if you set
|
||||
a local string OnAct_Pre on the Module object to the
|
||||
prefix you want it to look for and then set OnAct_PreScript
|
||||
on the local module object to the name of the script to
|
||||
run it will support your own grouped objects as well.
|
||||
Using this method can reduce the amount of scripts you
|
||||
might need if you are making a lot of items.
|
||||
If you have other activation scripts you wish to run do not worry
|
||||
you can have it run your old script by creating a waypoint
|
||||
in the module somewhere called UNI_ACTIVATE and in the name field
|
||||
simply place the name of the script you wish it to run.
|
||||
NOTE: It would be better if you renamed the scripts to match the resref
|
||||
of the item activated though. Then you would never have to mess with
|
||||
activation scripts again.
|
||||
PREFIX SPECIAL: You can also set the prefix setting without touching
|
||||
any script. Create a waypoint tagged UNI_ACTIVATEPRE and set the name of the
|
||||
waypoint to the prefix you want it to use. Create a second waypoint with the
|
||||
tag UNI_ACTIVATEPRES and set the name of the waypoint to the name of the
|
||||
script to run for items with this prefix.
|
||||
*/
|
||||
void main()
|
||||
{
|
||||
object oItem=GetItemActivated();
|
||||
object oMod=GetModule();
|
||||
string sPre=GetLocalString(oMod,"OnAct_Pre");
|
||||
string sPreScript=GetLocalString(oMod,"OnAct_PreScript");
|
||||
int nN=GetStringLength(sPre);
|
||||
//SendMessageToPC(GetItemActivator(),"uni_onactivateit:'"+GetResRef(oItem)+"'.");
|
||||
if (nN<1)
|
||||
{ // check for prefix waypoint
|
||||
oMod=GetWaypointByTag("UNI_ACTIVATEPRE");
|
||||
if (oMod!=OBJECT_INVALID) sPre=GetName(oMod);
|
||||
oMod=GetWaypointByTag("UNI_ACTIVATEPRES");
|
||||
if (oMod!=OBJECT_INVALID) sPreScript=GetName(oMod);
|
||||
nN=GetStringLength(sPre);
|
||||
//SendMessageToPC(GetItemActivator()," prefix waypoint check: nN="+IntToString(nN)+".");
|
||||
} // check for prefix waypoint
|
||||
if (GetStringLeft(GetTag(oItem),4)=="DH2_") ExecuteScript("desertheat2",OBJECT_SELF);
|
||||
else
|
||||
{ // not a special
|
||||
//SendMessageToPC(GetItemActivator()," not special.");
|
||||
if (nN>0&&sPre!="")
|
||||
{ // check for special prefix
|
||||
if (GetStringLeft(GetTag(oItem),nN)==sPre) ExecuteScript(sPreScript,OBJECT_SELF);
|
||||
else {nN=-1;}
|
||||
//SendMessageToPC(GetItemActivator()," Check for special prefix:"+IntToString(nN)+".");
|
||||
} // check for special prefix
|
||||
if (nN<1)
|
||||
{ // special prefix was not used
|
||||
sPre=GetResRef(oItem);
|
||||
//SendMessageToPC(GetItemActivator()," Special prefix not used.");
|
||||
if (GetStringLength(sPre)>0)
|
||||
{ // has res ref
|
||||
//SendMessageToPC(GetItemActivator()," resref:'"+sPre+"'.");
|
||||
ExecuteScript(sPre,OBJECT_SELF);
|
||||
} // has res ref
|
||||
else
|
||||
{ // use tag
|
||||
sPre=GetTag(oItem);
|
||||
if (GetStringLength(sPre)>16) sPre=GetStringLeft(sPre,16);
|
||||
//SendMessageToPC(GetItemActivator()," tag:'"+sPre+"'.");
|
||||
ExecuteScript(sPre,OBJECT_SELF);
|
||||
} // use tag
|
||||
oMod=GetWaypointByTag("UNI_ACTIVATE");
|
||||
if (oMod!=OBJECT_INVALID) ExecuteScript(GetName(oMod),OBJECT_SELF);
|
||||
} // special prefix was not used
|
||||
} // not a special
|
||||
}
|
||||
|
Reference in New Issue
Block a user