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.
		
			
				
	
	
		
			112 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //::///////////////////////////////////////////////
 | |
| //:: Dispel Magic
 | |
| //:: NW_S0_DisMagic.nss
 | |
| //:: Copyright (c) 2001 Bioware Corp.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Attempts to dispel all magic on a targeted
 | |
| //:: object, or simply the most powerful that it
 | |
| //:: can on every object in an area if no target
 | |
| //:: specified.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Created By: Preston Watamaniuk
 | |
| //:: Created On: Jan 7, 2002
 | |
| //:: Updated On: Oct 20, 2003, Georg Zoeller
 | |
| //:://////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| //:: modified by mr_bumpkin Dec 4, 2003
 | |
| #include "inc_dispel"  
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 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_BREACH);
 | |
|     effect    eImpact      = EffectVisualEffect(VFX_FNF_DISPEL);
 | |
|     object    oTarget      = PRCGetSpellTargetObject();
 | |
|     location  lLocal       = PRCGetSpellTargetLocation();
 | |
|     int       nCasterLevel = PRCGetCasterLevel(OBJECT_SELF);
 | |
|     int iTypeDispel = GetLocalInt(GetModule(),"BIODispel");
 | |
| 
 | |
|     //--------------------------------------------------------------------------
 | |
|     // Dispel Magic is capped at caster level 10
 | |
|     //--------------------------------------------------------------------------
 | |
|     if(nCasterLevel > 10)
 | |
|     {
 | |
|         nCasterLevel = 10;
 | |
|     }
 | |
|     
 | |
|     if (GetIsObjectValid(oTarget))
 | |
|     {
 | |
|         //----------------------------------------------------------------------
 | |
|         // Targeted Dispel - Dispel all
 | |
|         //----------------------------------------------------------------------
 | |
|           if (iTypeDispel)
 | |
|              spellsDispelMagic(oTarget, nCasterLevel, eVis, eImpact);
 | |
|            else
 | |
|              spellsDispelMagicMod(oTarget, nCasterLevel, eVis, eImpact);
 | |
|   
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         //----------------------------------------------------------------------
 | |
|         // Area of Effect - Only dispel best effect
 | |
|         //----------------------------------------------------------------------
 | |
| 
 | |
|         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);
 | |
|                   else
 | |
|                      spellsDispelMagicMod(oTarget, nCasterLevel, eVis, eImpact, FALSE);
 | |
|             }
 | |
| 
 | |
|            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
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 |