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.
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*:://////////////////////////////////////////////
 | |
| //:: Spell Name Invisibility Purge
 | |
| //:: Spell FileName PHS_S_InvisPurg
 | |
| //:://////////////////////////////////////////////
 | |
| //:: In Game Spell desctiption
 | |
| //:://////////////////////////////////////////////
 | |
|     Evocation
 | |
|     Level: Clr 3
 | |
|     Components: V, S
 | |
|     Casting Time: 1 standard action
 | |
|     Range: Personal
 | |
|     Target: You
 | |
|     Duration: 1 min./level (D)
 | |
| 
 | |
|     You surround yourself with a sphere of power with a radius of 1.67M per
 | |
|     2 caster levels (Maximum 16.67M at level 20) that negates all forms of
 | |
|     invisibility. Anything invisible has thier invisibility removed while in
 | |
|     the area. Natural hiding is not affected.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Spell Effects Applied / Notes
 | |
| //:://////////////////////////////////////////////
 | |
|     I altered it so people wouldn't be put under a false impression.
 | |
| 
 | |
|     Anyones invsibility is removed!
 | |
| 
 | |
|     The AOE changes per 2 caster levels - not per 1, this makes it more
 | |
|     manageable for NwN, and is still a huge radius as the spell progresses
 | |
|     in levels!
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Created By: Jasperre
 | |
| //::////////////////////////////////////////////*/
 | |
| 
 | |
| #include "PHS_INC_SPELLS"
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     // Spell hook check.
 | |
|     if(!PHS_SpellHookCheck(PHS_SPELL_INVISIBILITY_PURGE)) return;
 | |
| 
 | |
|     // Declare Major Variables
 | |
|     object oCaster = OBJECT_SELF;
 | |
|     object oTarget = GetSpellTargetObject(); // Should be OBJECT_SELF
 | |
|     int nCasterLevel = PHS_GetCasterLevel();
 | |
|     int nMetaMagic = PHS_GetMetaMagicFeat();
 | |
|     int nAOE;
 | |
| 
 | |
|     // Make sure they are not immune to spells
 | |
|     if(PHS_TotalSpellImmunity(oTarget)) return;
 | |
| 
 | |
|     // Determine duration in minutes
 | |
|     float fDuration = PHS_GetDuration(PHS_MINUTES, nCasterLevel, nMetaMagic);
 | |
| 
 | |
|     // Get AOE
 | |
|     if(nCasterLevel <= 2)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_05;
 | |
|     }
 | |
|     else if(nCasterLevel <= 4)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_10;
 | |
|     }
 | |
|     else if(nCasterLevel <= 6)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_15;
 | |
|     }
 | |
|     else if(nCasterLevel <= 8)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_20;
 | |
|     }
 | |
|     else if(nCasterLevel <= 10)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_25;
 | |
|     }
 | |
|     else if(nCasterLevel <= 12)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_30;
 | |
|     }
 | |
|     else if(nCasterLevel <= 14)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_35;
 | |
|     }
 | |
|     else if(nCasterLevel <= 16)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_40;
 | |
|     }
 | |
|     else if(nCasterLevel <= 18)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_45;
 | |
|     }
 | |
|     else //if(nCasterLevel <= 20)
 | |
|     {
 | |
|         nAOE = PHS_AOE_MOB_INVISIBILITY_PURGE_50;
 | |
|     }
 | |
| 
 | |
|     // Declare effects
 | |
|     effect eAOE = EffectAreaOfEffect(nAOE);
 | |
|     effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
 | |
| 
 | |
|     // Link effects
 | |
|     effect eLink = EffectLinkEffects(eAOE, eCessate);
 | |
| 
 | |
|     // Remove pervious castings of it
 | |
|     PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_INVISIBILITY_PURGE, oTarget);
 | |
| 
 | |
|     // Fire cast spell at event for the specified target
 | |
|     PHS_SignalSpellCastAt(oTarget, PHS_SPELL_INVISIBILITY_PURGE, FALSE);
 | |
| 
 | |
|     // Apply VFX and effect.
 | |
|     PHS_ApplyDuration(oTarget, eLink, fDuration);
 | |
| }
 |