PRC8/nwn/nwnprc/trunk/smp/phs_s_passwithou.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

90 lines
3.2 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Pass without Trace
//:: Spell FileName PHS_S_Passwithou
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Transmutation
Level: Drd 1, Rgr 1
Components: V, S, DF
Casting Time: 1 standard action
Range: 3.33M
Targets: One allied creature/level in a 3.33M-radius sphere centred on you
Duration: 1 hour/level (D)
Saving Throw: Will negates (harmless)
Spell Resistance: Yes (harmless)
DM Spell: Yes
This is a DM spell. By default, you cannot naturally track someone. A DM is
the only way you can get no one to naturally track you, and is up to a DM to
do the spells effects. This will still apply a visual effect and duration
visual.
The subject or subjects can move through any type of terrain and leave
neither footprints nor scent. Tracking the subjects is impossible by
nonmagical means.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
DM spell only.
This applies a duration effect, proper visual (the protection from evil
small visual for now) and thusly will let a DM know when it goes.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check.
if(!PHS_SpellHookCheck(PHS_SPELL_PASS_WITHOUT_TRACE)) return;
// Declare Major Variables
object oCaster = OBJECT_SELF;
object oTarget;
location lTarget = GetLocation(oCaster);
int nCasterLevel = PHS_GetCasterLevel();
int nMetaMagic = PHS_GetMetaMagicFeat();
int nAllies;
// Duration - 1 hour/level
float fDuration = PHS_GetDuration(PHS_HOURS, nCasterLevel, nMetaMagic);
// Create the VFX's
effect eVis = EffectVisualEffect(VFX_IMP_AC_BONUS);
effect eDur = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR);
// Get all targets in a sphere, 6.67M radius, all creatures, placeables amd doors.
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 3.33, lTarget, TRUE, OBJECT_TYPE_CREATURE);
// Loop targets
while(GetIsObjectValid(oTarget) && nAllies <= nCasterLevel)
{
// Check if allied
if(GetFactionEqual(oTarget) || GetIsFriend(oTarget))
{
// Make sure they are not immune to spells
if(PHS_TotalSpellImmunity(oTarget))
{
// +1 affected
nAllies++;
// Fire cast spell at event for the specified target
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_PASS_WITHOUT_TRACE, FALSE);
// Remove previous effects
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_PASS_WITHOUT_TRACE, oTarget);
// Apply the effects
PHS_ApplyDurationAndVFX(oTarget, eVis, eDur, fDuration);
}
}
// Get next target
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 3.33, lTarget, TRUE, OBJECT_TYPE_CREATURE);
}
// Signal the spell cast to DM's.
PHS_AlertDMsOfSpell("Pass without trace", FALSE, FALSE);
}