generated from Jaysyn/ModuleTemplate
Initial upload
Initial upload
This commit is contained in:
56
_mod/_module/nss/it_ac_sculpt.nss
Normal file
56
_mod/_module/nss/it_ac_sculpt.nss
Normal file
@@ -0,0 +1,56 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// it_ac_sculpt - Item Sculpture Summon
|
||||
// By Deva B. Winblood. November 12th, 2008
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void fnWatch(object oMaster)
|
||||
{ // PURPOSE: For summone critter to know when to despawn
|
||||
effect eUnsum=EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
|
||||
object oMe=OBJECT_SELF;
|
||||
SetLocalInt(oMe,"bWatcher",TRUE);
|
||||
//SendMessageToPC(oMaster,"DEBUG: '"+GetName(oMe)+"' Watching");
|
||||
if (GetIsObjectValid(oMaster)==TRUE)
|
||||
{ // valid master
|
||||
if (GetIsDead(oMaster)||GetCurrentAction(oMaster)==ACTION_REST||GetLocalInt(oMe,"bUnsummon"))
|
||||
{ // despawn
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,eUnsum,GetLocation(oMe),4.0);
|
||||
RemoveHenchman(oMaster,oMe);
|
||||
SetIsDestroyable(TRUE,FALSE,FALSE);
|
||||
DelayCommand(1.0,DestroyObject(oMe));
|
||||
} // despawn
|
||||
DelayCommand(6.0,fnWatch(oMaster));
|
||||
} // valid master
|
||||
else
|
||||
{ // destroy self
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,eUnsum,GetLocation(oMe),4.0);
|
||||
RemoveHenchman(oMaster,oMe);
|
||||
SetIsDestroyable(TRUE,FALSE,FALSE);
|
||||
DelayCommand(1.0,DestroyObject(oMe));
|
||||
DelayCommand(6.0,fnWatch(oMaster));
|
||||
} // destroy self
|
||||
} // fnWatch()
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oItem=GetItemActivated();
|
||||
object oPC=GetItemActivator();
|
||||
object oCreature;
|
||||
string sRes=GetLocalString(oItem,"sRes");
|
||||
effect eVFX=EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
|
||||
string sTeamID=GetLocalString(oPC,"sTeamID");
|
||||
object oProxy=GetObjectByTag(sTeamID+"_PROXY");
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sRes,GetLocation(oPC));
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVFX,GetLocation(oCreature));
|
||||
if (GetIsObjectValid(oProxy)) ChangeFaction(oCreature,oProxy);
|
||||
AssignCommand(oCreature,ClearAllActions(TRUE));
|
||||
AddHenchman(oPC,oCreature);
|
||||
SetLocalString(oCreature,"sTeamID",sTeamID);
|
||||
if (GetMaster(oCreature)!=oPC)
|
||||
{ // adjust
|
||||
SetMaxHenchmen(GetMaxHenchmen()+2);
|
||||
AddHenchman(oPC,oCreature);
|
||||
} // adjust
|
||||
AssignCommand(oCreature,fnWatch(oPC));
|
||||
if (sRes=="sumhorse"||sRes=="sumunicorn"||sRes=="sumnightmare") SetFootstepType(FOOTSTEP_TYPE_HORSE,oCreature);
|
||||
}
|
||||
Reference in New Issue
Block a user