Further file organization
Further file organization
This commit is contained in:
67
nwn/nwnprc/trunk/epicspellscripts/ss_ep_unseenwand.nss
Normal file
67
nwn/nwnprc/trunk/epicspellscripts/ss_ep_unseenwand.nss
Normal file
@@ -0,0 +1,67 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:: 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");
|
||||
}
|
||||
|
Reference in New Issue
Block a user