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.
90 lines
3.2 KiB
Plaintext
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);
|
|
}
|