forked from Jaysyn/PRC8
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.
121 lines
3.3 KiB
Plaintext
121 lines
3.3 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Ghost Step (Invisibility)
|
|
//:: prc_ninjca_gstep.nss
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Target creature becomes invisibility
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Ryan Smith
|
|
//:: Created On: July 18, 2005
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_clsfunc"
|
|
|
|
void main()
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION);
|
|
/*
|
|
Spellcast Hook Code
|
|
Added 2003-06-23 by GeorgZ
|
|
If you want to make changes to all spells,
|
|
check x2_inc_spellhook.nss to find out more
|
|
|
|
*/
|
|
int iContinue = 0;
|
|
object oCaster = OBJECT_SELF;
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_CHARMED, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_CONFUSED, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_CUTSCENE_PARALYZE, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_CUTSCENEIMMOBILIZE, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_DAZED, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_DOMINATED, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_FRIGHTENED, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_PARALYZE, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_PETRIFY, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_SLEEP, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( PRCGetHasEffect( EFFECT_TYPE_STUNNED, oCaster ) )
|
|
{
|
|
iContinue++;
|
|
}
|
|
if ( iContinue > 0 )
|
|
{
|
|
IncrementRemainingFeatUses(oCaster, FEAT_GFKILL_GHOST_STEP);
|
|
return;
|
|
}
|
|
if (!Ninja_AbilitiesEnabled(OBJECT_SELF))
|
|
{
|
|
IncrementRemainingFeatUses(OBJECT_SELF, FEAT_GHOST_STEP);
|
|
SendMessageToPC(OBJECT_SELF, "Your ki powers will not function while encumbered or wearing armor");
|
|
return;
|
|
}
|
|
if (!X2PreSpellCastCode())
|
|
{
|
|
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
|
|
return;
|
|
}
|
|
Ninja_DecrementKi(OBJECT_SELF, FEAT_GHOST_STEP);
|
|
|
|
// End of Spell Cast Hook
|
|
|
|
|
|
//Declare major variables
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
|
|
//effect eVis = EffectVisualEffect(VFX_DUR_INVISIBILITY);
|
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
|
|
|
// a major hack here, if we're a level 10 or higher ninja, Ghost Step also makes you ethereal
|
|
// probably should be a replacing feat so other classes can use it
|
|
|
|
effect eLink;
|
|
|
|
|
|
effect eInvis = EffectInvisibility(INVISIBILITY_TYPE_NORMAL);
|
|
eLink = EffectLinkEffects(eInvis, eDur);
|
|
|
|
//Fire cast spell at event for the specified target
|
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_GHOST_STEP, FALSE));
|
|
|
|
float nDuration = RoundsToSeconds(1);
|
|
|
|
//Apply the VFX impact and effects
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, nDuration,TRUE,-1, 1);
|
|
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
// Getting rid of the local integer storing the spellschool name
|
|
}
|
|
|