generated from Jaysyn/ModuleTemplate
Initial upload
Initial upload
This commit is contained in:
96
_mod/_removed/x0_s2_fiend.nss
Normal file
96
_mod/_removed/x0_s2_fiend.nss
Normal file
@@ -0,0 +1,96 @@
|
||||
// Modified by Deva Winblood.
|
||||
//::///////////////////////////////////////////////
|
||||
//:: x0_s2_fiend
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Summons the 'fiendish' servant for the player.
|
||||
This is a modified version of Planar Binding
|
||||
|
||||
|
||||
At Level 5 the Blackguard gets a Succubus
|
||||
|
||||
At Level 9 the Blackguard will get a Vrock
|
||||
|
||||
Will remain for one hour per level of blackguard
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Brent
|
||||
//:: Created On: April 2003
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
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 fnSetWatchers(object oMaster,float fDur)
|
||||
{ // PURPOSE: Fire the watcher routines
|
||||
int nN=1;
|
||||
object oSum;
|
||||
oSum=GetAssociate(ASSOCIATE_TYPE_SUMMONED,oMaster,nN);
|
||||
while(GetIsObjectValid(oSum))
|
||||
{ // check for watch
|
||||
//SendMessageToPC(oMaster,"DEBUG: Summoned '"+GetName(oSum)+"'");
|
||||
if (GetLocalInt(oSum,"bWatcher")!=TRUE)
|
||||
{ // fire watch
|
||||
AssignCommand(oSum,fnWatch(oMaster));
|
||||
DelayCommand(fDur,SetLocalInt(oSum,"bUnsummon",TRUE));
|
||||
} // fire watch
|
||||
nN++;
|
||||
oSum=GetAssociate(ASSOCIATE_TYPE_SUMMONED,oMaster,nN);
|
||||
} // check for watch
|
||||
} // fnSetWatchers()
|
||||
|
||||
void main()
|
||||
{
|
||||
int nLevel = GetLevelByClass(CLASS_TYPE_BLACKGUARD, OBJECT_SELF);
|
||||
effect eSummon;
|
||||
float fDelay = 3.0;
|
||||
int nDuration = nLevel;
|
||||
|
||||
if (nLevel < 9)
|
||||
{
|
||||
eSummon = EffectSummonCreature("sum6ce",VFX_FNF_SUMMON_GATE, fDelay);
|
||||
}
|
||||
else if (nLevel < 15 )
|
||||
{
|
||||
eSummon = EffectSummonCreature("sum9ce", VFX_FNF_SUMMON_GATE, fDelay);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetHasFeat(1003,OBJECT_SELF)) // epic fiend feat
|
||||
{
|
||||
eSummon = EffectSummonCreature("sum9ceh", VFX_FNF_SUMMON_GATE, fDelay);
|
||||
}
|
||||
else
|
||||
{
|
||||
eSummon = EffectSummonCreature("sum9ce", VFX_FNF_SUMMON_GATE, fDelay);
|
||||
}
|
||||
}
|
||||
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration));
|
||||
DelayCommand(3.0,fnSetWatchers(OBJECT_SELF,HoursToSeconds(nDuration)));
|
||||
}
|
||||
Reference in New Issue
Block a user