Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
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);
|
|
}
|