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.
		
			
				
	
	
		
			117 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //::///////////////////////////////////////////////
 | |
| //:: Mordenkainen's Disjunction
 | |
| //:: NW_S0_MordDisj.nss
 | |
| //:: Copyright (c) 2001 Bioware Corp.
 | |
| //:://////////////////////////////////////////////
 | |
| /*
 | |
|     Massive Dispel Magic and Spell Breach rolled into one
 | |
|     If the target is a general area of effect they lose
 | |
|     6 spell protections.  If it is an area of effect everyone
 | |
|     in the area loses 2 spells protections.
 | |
| */
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Created By: Preston Watamaniuk
 | |
| //:: Created On: Jan 7, 2002
 | |
| //:: Updated On: Oct 20, 2003, Georg Zoeller
 | |
| //:://////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| //:: modified by mr_bumpkin Dec 4, 2003 for PRC stuff
 | |
| #include "inc_dispel"  
 | |
| 
 | |
| 
 | |
| void StripEffects(int nNumber, object oTarget);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| void main()
 | |
| {
 | |
| DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
 | |
| SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ABJURATION);
 | |
|     //--------------------------------------------------------------------------
 | |
|     /*
 | |
|       Spellcast Hook Code
 | |
|       Added 2003-06-20 by Georg
 | |
|       If you want to make changes to all spells,
 | |
|       check x2_inc_spellhook.nss to find out more
 | |
|     */
 | |
|     //--------------------------------------------------------------------------
 | |
|     if (!X2PreSpellCastCode())
 | |
|     {
 | |
|         return;
 | |
|     }
 | |
|     // End of Spell Cast Hook
 | |
| 
 | |
|      effect  eVis        = EffectVisualEffect(VFX_IMP_HEAD_ODD);
 | |
|     effect   eImpact     = EffectVisualEffect(VFX_FNF_DISPEL_DISJUNCTION);
 | |
|     object   oTarget     = PRCGetSpellTargetObject();
 | |
|     location lLocal      = PRCGetSpellTargetLocation();
 | |
|     int      nCasterLevel= PRCGetCasterLevel(OBJECT_SELF);
 | |
|     int iTypeDispel = GetLocalInt(GetModule(),"BIODispel");
 | |
| 
 | |
| 
 | |
|     //--------------------------------------------------------------------------
 | |
|     // Mord's is not capped anymore as we can go past level 20 now
 | |
|     //--------------------------------------------------------------------------
 | |
|     /*
 | |
|         if(nCasterLevel > 20)
 | |
|         {
 | |
|             nCasterLevel = 20;
 | |
|         }
 | |
|     */
 | |
| 
 | |
|     if (GetIsObjectValid(oTarget))
 | |
|     {
 | |
|         //----------------------------------------------------------------------
 | |
|         // Targeted Dispel - Dispel all
 | |
|         //----------------------------------------------------------------------
 | |
|           if (iTypeDispel)
 | |
|              spellsDispelMagic(oTarget, nCasterLevel, eVis, eImpact,TRUE,TRUE);
 | |
|            else
 | |
|              spellsDispelMagicMod(oTarget, nCasterLevel, eVis, eImpact,TRUE,TRUE);
 | |
| 
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         //----------------------------------------------------------------------
 | |
|         // Area of Effect - Only dispel best effect
 | |
|         //----------------------------------------------------------------------
 | |
| 
 | |
|         //Apply the VFX impact and effects
 | |
|         ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, PRCGetSpellTargetLocation());
 | |
|         oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lLocal, FALSE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_AREA_OF_EFFECT | OBJECT_TYPE_PLACEABLE );
 | |
|         while (GetIsObjectValid(oTarget))
 | |
|         {
 | |
|             if(GetObjectType(oTarget) == OBJECT_TYPE_AREA_OF_EFFECT)
 | |
|             {
 | |
|                 //--------------------------------------------------------------
 | |
|                 // Handle Area of Effects
 | |
|                 //--------------------------------------------------------------
 | |
|                   if (iTypeDispel)
 | |
|                    spellsDispelAoE(oTarget, OBJECT_SELF,nCasterLevel);
 | |
|                 else
 | |
|                    spellsDispelAoEMod(oTarget, OBJECT_SELF,nCasterLevel);
 | |
| 
 | |
|             }
 | |
|             else if (GetObjectType(oTarget) == OBJECT_TYPE_PLACEABLE)
 | |
|             {
 | |
|                 SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId()));
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                    if (iTypeDispel)
 | |
|                      spellsDispelMagic(oTarget, nCasterLevel, eVis, eImpact, FALSE,TRUE);
 | |
|                   else
 | |
|                      spellsDispelMagicMod(oTarget, nCasterLevel, eVis, eImpact, FALSE,TRUE);
 | |
|             }
 | |
| 
 | |
|            oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE,lLocal, FALSE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_AREA_OF_EFFECT | OBJECT_TYPE_PLACEABLE);
 | |
|         }
 | |
|     }
 | |
| 
 | |
| DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
 | |
| // Getting rid of the local integer storing the spellschool name
 | |
| }
 | |
| 
 |