HoS_PRC8/_mod/_module/nss/wazoo_s0_shadoww.nss
Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

45 lines
2.3 KiB
Plaintext

// wazoo_s0_shadoww - Shadow Walk Spell
#include "x2_inc_spellhook"
void main()
{
object oCaster=GetPCSpeaker();
int nParm=GetLocalInt(oCaster,"nParm");
object oWP;
effect eVFX;
object oNearby;
if (!X2PreSpellCastCode())
{
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
return;
}
oWP=GetWaypointByTag("PLANESHIFT_SHADOW");
if (nParm>0) oWP=GetWaypointByTag("SHADOWWALK_"+IntToString(nParm));
if (oWP!=OBJECT_INVALID)
{ // destination not invalid
eVFX=EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oCaster,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oCaster);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_SUMMONED,oCaster);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oCaster);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_DOMINATED,oCaster);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oCaster);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oCaster,2);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oCaster,3);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oCaster,4);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
oNearby=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oCaster,5);
if (oNearby!=OBJECT_INVALID) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oNearby,20.0);
eVFX=EffectVisualEffect(VFX_DUR_DARKNESS);
DelayCommand(4.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oCaster,10.0));
DelayCommand(7.0,AssignCommand(oCaster,JumpToObject(oWP)));
} // destination not invalid
}