PRC8/nwn/nwnprc/trunk/epicspellscripts/ss_ep_unseenwand.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

68 lines
2.5 KiB
Plaintext

//:://////////////////////////////////////////////
//:: FileName: "ss_ep_unseenwand"
/* Purpose: Unseen Wanderer - grants a player target the "Wander Unseen"
feat, which allows you to turn invisible/visible at will, permanently.
*/
//:://////////////////////////////////////////////
//:: Created By: Boneshank
//:: Last Updated On: March 13, 2004
//:://////////////////////////////////////////////
#include "prc_alterations"
#include "inc_epicspells"
//#include "x2_inc_spellhook"
#include "x0_i0_position"
void main()
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION);
if (!X2PreSpellCastCode())
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
return;
}
object oTarget = PRCGetSpellTargetObject();
if (GetIsObjectValid(oTarget) && // Is the target valid?
!GetHasFeat(5028, oTarget) && // Does the target not already have the feat?
GetIsPC(oTarget)) // Is the target a player?
{
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_UNSEENW))
{
int nY;
effect eVis = EffectVisualEffect(VFX_IMP_AC_BONUS);
float fAngle, fDist, fOrient;
location lTarget = GetLocation(oTarget);
location lNew, lNew2;
float fDelay = 0.2;
for (nY = 20; nY > 0; nY--) // Where in perimeter.
{
fAngle = IntToFloat(nY * 18);
fDist = 1.1;
fOrient = fAngle;
lNew = GenerateNewLocationFromLocation
(lTarget, fDist, fAngle, fOrient);
fAngle += 180.0;
fOrient = fAngle;
lNew2 = GenerateNewLocationFromLocation
(lTarget, fDist, fAngle, fOrient);
DelayCommand(fDelay,
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lNew));
DelayCommand(fDelay,
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lNew2));
fDelay += 0.4;
}
DelayCommand(6.0, GiveFeat(oTarget, 428));
FloatingTextStringOnCreature("You have gained the ability " +
"to wander unseen at will!", oTarget, FALSE);
}
}
else
FloatingTextStringOnCreature("Spell failed - target already has this " +
"ability.", OBJECT_SELF, FALSE);
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
}