PRC8_fork/nwn/nwnprc/trunk/scripts/prc_marsh_move.nss

39 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

#include "prc_alterations"
#include "x2_inc_spellhook"
void main()
{
//Declare major variables
object oTarget;
effect eHaste = EffectHaste();
effect eVis = EffectVisualEffect(VFX_IMP_HASTE);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eLink = EffectLinkEffects(eHaste, eDur);
float fDelay;
//Determine spell duration as an integer for later conversion to Rounds, Turns or Hours.
int nDuration = 1;
int nCount;
location lSpell = GetSpellTargetLocation();
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_LOS_NORMAL_30), GetSpellTargetLocation());
oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetSpellTargetLocation());
while(GetIsObjectValid(oTarget))
{
if(GetIsFriend(oTarget))
{
fDelay = PRCGetRandomDelay(0.0, 1.0);
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_MASS_HASTE, FALSE));
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(1),TRUE,-1));
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
nCount++;
}
oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lSpell);
}
}