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:
86
_mod/_module/nss/npcact_area_ent.nss
Normal file
86
_mod/_module/nss/npcact_area_ent.nss
Normal file
@@ -0,0 +1,86 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NPCACT_AREA_ENT - This function should be called from an areas OnEnter event
|
||||
// if there are going to be LAG4 NPCs in the area that need to be respawned when
|
||||
// PCs enter the area. NOTE: A waypoint tagged LAG4_RESPAWN_TEMP must be placed
|
||||
// in the module somewhere for the creature to be initially spawned for TAG to
|
||||
// be discovered.
|
||||
//------------------------------------------------------------------------------
|
||||
// By Deva Bryson Winblood. 06/22/2004
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#include "npcactivitiesh"
|
||||
#include "npcactstackh"
|
||||
/////////////////////
|
||||
// PROTOTYPES
|
||||
/////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////// MAIN
|
||||
void main()
|
||||
{
|
||||
object oPC=GetEnteringObject();
|
||||
struct StackHeader stH=fnGetLocalStack("stLAG4");
|
||||
object oNPC;
|
||||
object oTemp=GetWaypointByTag("LAG4_RESPAWN_TEMP");
|
||||
string sStore;
|
||||
string sRes;
|
||||
int nCHP;
|
||||
int nHP;
|
||||
int nDmg;
|
||||
effect eEff;
|
||||
object oPost;
|
||||
if (GetIsPC(oPC)&&GetIsObjectValid(oTemp))
|
||||
{ // PC and TEMP ok
|
||||
if (DEBUG_NPCACT_ON) SendMessageToPC(oPC,"LAG4 Area entered... respawning NPCs #:"+IntToString(stH.nNum));
|
||||
while(stH.nNum>0)
|
||||
{ // items on the stack
|
||||
stH=fnPopStack(stH);
|
||||
sStore=stH.sRet;
|
||||
if (DEBUG_NPCACT_ON) SendMessageToPC(oPC," "+sStore);
|
||||
if (GetStringLength(sStore)>2)
|
||||
{ // valid string returned
|
||||
sRes=fnParse(sStore,"/");
|
||||
sStore=fnRemoveParsed(sStore,sRes,"/");
|
||||
nCHP=StringToInt(sStore);
|
||||
oNPC=CreateObject(OBJECT_TYPE_CREATURE,sRes,GetLocation(oTemp));
|
||||
if (DEBUG_NPCACT_ON) SendMessageToPC(oPC," Created:"+sRes);
|
||||
if (GetIsObjectValid(oNPC))
|
||||
{ // creature created
|
||||
oPost=GetNearestObjectByTag("POST_"+GetTag(oNPC),oPC,1);
|
||||
if (!GetIsObjectValid(oPost))
|
||||
{ // try night
|
||||
oPost=GetNearestObjectByTag("NIGHT_"+GetTag(oNPC),oPC,1);
|
||||
} // try night
|
||||
if (!GetIsObjectValid(oPost))
|
||||
{ // try day module wide
|
||||
oPost=GetWaypointByTag("POST_"+GetTag(oNPC));
|
||||
} // try day module wide
|
||||
if (!GetIsObjectValid(oPost))
|
||||
{ // try night module wide
|
||||
oPost=GetWaypointByTag("NIGHT_"+GetTag(oNPC));
|
||||
} // try night module wide
|
||||
if (GetIsObjectValid(oPost))
|
||||
{ // valid post
|
||||
nHP=GetCurrentHitPoints(oNPC);
|
||||
if (nHP>nCHP)
|
||||
{ // need to adjust hit points
|
||||
nDmg=nHP-nCHP;
|
||||
eEff=EffectDamage(nDmg);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,eEff,oNPC,1.0);
|
||||
} // need to adjust hit points
|
||||
if (DEBUG_NPCACT_ON) SendMessageToPC(oPC," Moved:"+GetTag(oNPC));
|
||||
AssignCommand(oNPC,JumpToObject(oPost));
|
||||
} // valid post
|
||||
else
|
||||
{ // could not find post
|
||||
SendMessageToPC(oPC,"NPC ACTIVITIES 6.0 ERROR: Could not find a POST_"+GetTag(oNPC)+" to respawn a LAG4 NPC at.");
|
||||
DestroyObject(oNPC);
|
||||
} // could not find post
|
||||
} // creature created
|
||||
} // valid string returned
|
||||
} // items on the stack
|
||||
} // PC and TEMP ok
|
||||
else if (GetIsObjectValid(oTemp)==FALSE)
|
||||
{
|
||||
SendMessageToPC(oPC,"NPC ACTIVITIES 6.0 ERROR: Cannot find waypoint with tag 'LAG4_RESPAWN_TEMP'");
|
||||
}
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////// MAIN
|
||||
Reference in New Issue
Block a user