generated from Jaysyn/ModuleTemplate
Merged redundant hak files
Merged redundant hak files. Moved hak scripts into module. Updated gitignore. Full Compile. Added release folder & archive.
This commit is contained in:
289
_mod/_module/nss/npcact_lite.nss
Normal file
289
_mod/_module/nss/npcact_lite.nss
Normal file
@@ -0,0 +1,289 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// npcact_lite - NPC ACTIVITIES 6.0 Lite version Interpretter
|
||||
//------------------------------------------------------------------------------
|
||||
// By Deva Bryson Winblood 04/30/2004
|
||||
//------------------------------------------------------------------------------
|
||||
// Last Modified By: Deva Bryson Winblood
|
||||
// Last Modified Date: 06/01/2004
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#include "npcactivitiesh"
|
||||
#include "npcact_h_cust" // customization
|
||||
#include "npcact_h_core" // core commands
|
||||
#include "npcact_h_logic" // logic commands
|
||||
#include "npcact_h_make" // creation commands
|
||||
#include "npcact_h_var" // variable initialization and setting commands
|
||||
#include "npcact_h_vfx" // visual effect commands
|
||||
#include "npcact_h_speak" // Speaking and singing related commands
|
||||
/////////////////////////
|
||||
// PROTOTYPES
|
||||
/////////////////////////
|
||||
|
||||
void fnDoPauseThenEnd();
|
||||
|
||||
///////////////////////////////////////////////////////////////////////// MAIN
|
||||
void main()
|
||||
{
|
||||
object oMe=OBJECT_SELF;
|
||||
string sAct=GetLocalString(oMe,"sAct");
|
||||
float fDelay=0.2; // default delay
|
||||
string sCommand=fnParse(sAct);
|
||||
string sL1=GetStringLeft(sAct,1);
|
||||
string sL2=GetStringLeft(sAct,2);
|
||||
string sL3=GetStringLeft(sAct,3);
|
||||
string sL4=GetStringLeft(sAct,4);
|
||||
string sS;
|
||||
int nGNBDisabled=GetLocalInt(oMe,"nGNBDisabled");
|
||||
fnDebug(GetTag(oMe)+" LITE INTERPRETER",TRUE);
|
||||
if (nGNBDisabled!=TRUE&&fnGetIsBusy(oMe)==FALSE&&GetStringLength(sAct)>0)
|
||||
{ // okay to deal with commands
|
||||
fnDebug(" sAct Before='"+sAct+"' LEN:"+IntToString(GetStringLength(sAct)),TRUE);
|
||||
sAct=fnRemoveParsed(sAct,sCommand);
|
||||
fnDebug(" sAct After='"+sAct+"' LEN:"+IntToString(GetStringLength(sAct)),TRUE);
|
||||
SetLocalString(oMe,"sAct",sAct);
|
||||
SetLocalInt(oMe,"nGNBInterpActivity",0); // used as fail safe
|
||||
/// begin the big if/else if
|
||||
if (sL1=="@")
|
||||
{ // custom script
|
||||
fnDebug("["+GetTag(oMe)+"]Custom Script("+sCommand+")",TRUE);
|
||||
fDelay=fnNPCACTAtScript(sCommand);
|
||||
} // custom script
|
||||
else if (sL1=="'")
|
||||
{ // Quick speak
|
||||
fDelay=0.1;
|
||||
AssignCommand(oMe,SpeakString(GetStringRight(sCommand,GetStringLength(sCommand)-1)));
|
||||
} // Quick Speak
|
||||
else if (sL1=="#")
|
||||
{ // library call
|
||||
fnDebug("["+GetTag(oMe)+"]Library Call("+sCommand+")",TRUE);
|
||||
fDelay=fnNPCACTLibCall(sCommand);
|
||||
} // library call
|
||||
else if (sL1=="*")
|
||||
{ // professions call
|
||||
fnDebug("["+GetTag(oMe)+"]Professions Call("+sCommand+")",TRUE);
|
||||
fDelay=fnNPCACTProfCall(sCommand);
|
||||
} // professions call
|
||||
else if (sL1=="&")
|
||||
{ // IF logic
|
||||
fDelay=fnNPCACTLogicCore(sCommand);
|
||||
} // IF logic
|
||||
else if (sL1=="!")
|
||||
{ // Set variable
|
||||
fDelay=fnNPCACTSetVariable(sCommand);
|
||||
} // Set variable
|
||||
else if (sL1=="+"||sL1=="-")
|
||||
{ // variable addition and subtraction
|
||||
fDelay=fnNPCACTAddSubtract(sCommand);
|
||||
} // variable addition and subtraction
|
||||
else if (sL1=="$")
|
||||
{ // custom event script assign
|
||||
fDelay=fnNPCACTScriptSet(sCommand);
|
||||
} // custom event script assign
|
||||
else if (sL1=="^")
|
||||
{ // non-visual effect
|
||||
fDelay=fnNPCACTNonVFX(sCommand);
|
||||
} // non-visual effect
|
||||
else if (sL1=="]")
|
||||
{ // Set Appearance
|
||||
fDelay=fnNPCACTSetAppearance(sCommand);
|
||||
} // Set Appearance
|
||||
else if (sL1=="[")
|
||||
{ // Set Mode
|
||||
fDelay=fnNPCACTModeSet(sCommand);
|
||||
} // Set Mode
|
||||
else if (sL1==">")
|
||||
{ // Set timed event
|
||||
fDelay=fnNPCACTInsertTimedEvent(sCommand);
|
||||
} // Set timed event
|
||||
else if (sL4=="ANIM")
|
||||
{ // animation command
|
||||
fDelay=fnNPCACTAnimate(sCommand);
|
||||
} // animation command
|
||||
else if (sL2=="TT")
|
||||
{ // Talk to
|
||||
fDelay=fnNPCACTTalkTo(sCommand);
|
||||
} // Talk to
|
||||
else if (sL3=="RWL"||(sL2=="RW"&&GetStringLength(sCommand)>2))
|
||||
{ // random word list
|
||||
fDelay=fnNPCACTRandomSpeak(sCommand);
|
||||
} // random word list
|
||||
else if (sL4=="LYRI"||sL2=="LY")
|
||||
{ // sing song
|
||||
fDelay=fnNPCACTLyrical(sCommand);
|
||||
} // sing song
|
||||
else if (sL2=="RC")
|
||||
{ // random command
|
||||
fDelay=fnNPCACTRandomCommand(sCommand);
|
||||
} // random command
|
||||
else if (sL2=="WP")
|
||||
{ // set new destination
|
||||
sCommand=GetStringRight(sCommand,GetStringLength(sCommand)-2);
|
||||
SetLocalString(OBJECT_SELF,"sGNBDTag",sCommand);
|
||||
} // set new destination
|
||||
else if (sL1==":")
|
||||
{ // create creature
|
||||
fDelay=fnNPCACTMakeCreature(sCommand);
|
||||
} // create creature
|
||||
else if (sL2=="AO")
|
||||
{ // attack object by tag
|
||||
fDelay=fnNPCACTAttackObject(sCommand);
|
||||
} // attack object by tag
|
||||
else if (sL2=="CB")
|
||||
{ // enter combat with person with specific tag
|
||||
fDelay=fnNPCACTEnterCombat(sCommand);
|
||||
} // enter combat with person with specific tag
|
||||
else if (sL2=="Cc")
|
||||
{ // change clothing
|
||||
fDelay=fnNPCACTChangeClothes(sCommand);
|
||||
} // change clothing
|
||||
else if (sL2=="DO")
|
||||
{ // Destroy Object by tag
|
||||
fDelay=fnNPCACTDestroyObject(sCommand);
|
||||
} // Destroy Object by tag
|
||||
else if (sL2=="EQ")
|
||||
{ // Equip Weapons
|
||||
fDelay=fnNPCACTEquipWeapons();
|
||||
} // Equip Weapons
|
||||
else if (sL2=="UE")
|
||||
{ // Unequip Weapons
|
||||
fDelay=fnNPCACTUnequipWeapons();
|
||||
} // Unequip Weapons
|
||||
else if (sCommand=="REST"||sCommand=="RS")
|
||||
{ // rest
|
||||
fDelay=fnNPCACTRest();
|
||||
} // rest
|
||||
else if (sCommand=="SLEP"||sCommand=="SL")
|
||||
{ // sleep
|
||||
fDelay=fnNPCACTSleep();
|
||||
} // sleep
|
||||
else if (sL4=="SITS")
|
||||
{ // sits
|
||||
fDelay=fnNPCACTSitForSpecified(sCommand);
|
||||
} // sits
|
||||
else if (sL2=="CO"&&GetStringLength(sCommand)>2)
|
||||
{ // create item
|
||||
fDelay=fnNPCACTMakeItem(sCommand);
|
||||
} // create item
|
||||
else if (sL2=="CP")
|
||||
{ // create placeable
|
||||
fDelay=fnNPCACTMakePlaceable(sCommand);
|
||||
} // create placeable
|
||||
else if (sL4=="FOTG"||sL2=="FT")
|
||||
{ // follow specific tag
|
||||
fDelay=fnNPCACTFollowByTag(sCommand);
|
||||
} // follow specific tag
|
||||
else if (sCommand=="RAND"||sCommand=="RW")
|
||||
{ // random walk
|
||||
fDelay=fnNPCACTRandomWalk();
|
||||
} // random walk
|
||||
else if (sL4=="TAKE"||sL2=="TK")
|
||||
{ // take item by tag
|
||||
fDelay=fnNPCACTTakeItem(sCommand);
|
||||
} // take item by tag
|
||||
else if (sL4=="WAIT"||sL2=="WT")
|
||||
{ // wait
|
||||
fDelay=fnNPCACTWait(sCommand);
|
||||
} // wait
|
||||
else if (sL4=="SFAC"||sL2=="SF")
|
||||
{ // Set Facing
|
||||
fDelay=fnNPCACTSetFacing(sCommand);
|
||||
} // Set Facing
|
||||
else if (sCommand=="LOCK"||sCommand=="lk")
|
||||
{ // lock doors or container
|
||||
fDelay=fnNPCACTLockThings();
|
||||
} // lock doors or container
|
||||
else if (sCommand=="UNLOCK"||sCommand=="ul")
|
||||
{ // unlock
|
||||
fDelay=fnNPCACTUnlock();
|
||||
} // unlock
|
||||
else if (sCommand=="CLOS"||sCommand=="CD")
|
||||
{ // close door
|
||||
fDelay=fnNPCACTCloseDoors();
|
||||
} // close door
|
||||
else if (sL3=="LAG"||(sL1=="L"&&GetStringLength(sCommand)==2))
|
||||
{ // lag commands
|
||||
sL1=GetStringRight(sCommand,1);
|
||||
if (sL1=="1") SetLocalInt(OBJECT_SELF,"nGNBLagMeth",1);
|
||||
else if (sL1=="2") SetLocalInt(OBJECT_SELF,"nGNBLagMeth",2);
|
||||
else if (sL1=="3") SetLocalInt(OBJECT_SELF,"nGNBLagMeth",3);
|
||||
else if (sL1=="4") SetLocalInt(OBJECT_SELF,"nGNBLagMeth",4);
|
||||
} // lag commands
|
||||
else if (sCommand=="NONP"||sCommand=="NN")
|
||||
{ // no NPC interaction
|
||||
SetLocalInt(OBJECT_SELF,"nNN",TRUE);
|
||||
fDelay=0.1;
|
||||
} // no NPC interaction
|
||||
else if (sCommand=="YSNP"||sCommand=="YN")
|
||||
{ // yes NPC interaction
|
||||
DeleteLocalInt(OBJECT_SELF,"nNN");
|
||||
fDelay=0.1;
|
||||
} // yes NPC interaction
|
||||
else if (sL2=="BS")
|
||||
{ // base script set
|
||||
fDelay=fnNPCACTSetBaseScripts(sCommand);
|
||||
} // base script set
|
||||
else if (sL2=="BM")
|
||||
{ // beam effect
|
||||
fDelay=fnNPCACTBeamEffect(sCommand);
|
||||
} // beam effect
|
||||
else if (sL3=="EFF")
|
||||
{ // Effect
|
||||
fDelay=fnNPCACTEffects(sCommand);
|
||||
} // Effect
|
||||
else if (sL2=="FX")
|
||||
{ // FX area
|
||||
fDelay=fnNPCACTPlaceableVFX(sCommand);
|
||||
} // FX area
|
||||
else if (sL2=="PF")
|
||||
{ // persistent visual effect
|
||||
fDelay=fnNPCACTPersistentVFX(sCommand);
|
||||
} // persistent visual effect
|
||||
else if (sL2=="RV")
|
||||
{ // remove visual effect
|
||||
fDelay=fnNPCACT4Visual(0,sCommand);
|
||||
} // remove visual effect
|
||||
else if (sL2=="VF")
|
||||
{ // add visual effect
|
||||
fDelay=fnNPCACT4Visual(1,sCommand);
|
||||
} // add visual effect
|
||||
else if (sL2=="YP"||sL4=="YSPC")
|
||||
{ // enable PC interaction
|
||||
DeleteLocalInt(OBJECT_SELF,"bNPCACTNOPC");
|
||||
} // enable PC interaction
|
||||
else if (sL2=="NP"||sL4=="NOPC")
|
||||
{ // disable PC interaction
|
||||
SetLocalInt(OBJECT_SELF,"bNPCACTNOPC",TRUE);
|
||||
} // disable PC interaction
|
||||
/// end the big if/else if
|
||||
sAct=GetLocalString(oMe,"sAct"); // see if changed
|
||||
nGNBDisabled=GetLocalInt(oMe,"nGNBDisabled");
|
||||
if (fDelay<0.2) fDelay=0.1;
|
||||
if (GetStringLength(sAct)>0&&fDelay>0.0) { DelayCommand(fDelay,ExecuteScript("npcact_lite",oMe)); }
|
||||
else if (!nGNBDisabled) { DelayCommand(fDelay,fnDoPauseThenEnd()); }
|
||||
else { DelayCommand(2.0,ExecuteScript("npcact_lite",oMe)); }
|
||||
} // okay to deal with commands
|
||||
else if (!nGNBDisabled)
|
||||
{
|
||||
fnDoPauseThenEnd();
|
||||
}
|
||||
else { DelayCommand(2.0,ExecuteScript("npcact_lite",oMe)); }
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////// MAIN
|
||||
|
||||
/////////////////////////
|
||||
// FUNCTIONS
|
||||
/////////////////////////
|
||||
void fnState1Required()
|
||||
{ // PURPOSE: Make sure not stuck in a bad state
|
||||
// LAST MODIFIED BY: Deva Bryson Winblood
|
||||
if (GetLocalInt(OBJECT_SELF,"nGNBState")!=1) { SetLocalInt(OBJECT_SELF,"nGNBState",1); DelayCommand(0.3,fnState1Required()); }
|
||||
} // fnState1Required()
|
||||
|
||||
void fnDoPauseThenEnd()
|
||||
{ // PURPOSE: To check for a pause and handle that
|
||||
// and switch to state 1 when done with pause
|
||||
// LAST MODIFIED BY: Deva Bryson Winblood
|
||||
float fGNBPause=GetLocalFloat(OBJECT_SELF,"fGNBPause");
|
||||
SetLocalInt(OBJECT_SELF,"nGNBState",7);
|
||||
if (fGNBPause>0.0) { DelayCommand(fGNBPause,fnState1Required()); }
|
||||
else { fnState1Required(); }
|
||||
} // fnDoPauseThenEnd()
|
||||
Reference in New Issue
Block a user