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.
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
//::///////////////////////////////////////////////
 | 
						||
//:: Name      Otiluke's Resilient Sphere
 | 
						||
//:: FileName  sp_otiluke_rs.nss
 | 
						||
//:://////////////////////////////////////////////
 | 
						||
/**@file Otiluke's Resilient Sphere
 | 
						||
Evocation [Force]
 | 
						||
Level: Sor/Wiz 4
 | 
						||
Components: V, S, M
 | 
						||
Range: Short
 | 
						||
Effect: Sphere, centered around a creature
 | 
						||
Duration:       1 min./level (D)
 | 
						||
Saving Throw:   Reflex negates
 | 
						||
Spell Resistance:       Yes
 | 
						||
 | 
						||
A globe of shimmering force encloses a creature within
 | 
						||
the diameter of the sphere. The sphere contains its 
 | 
						||
subject for the spell’s duration. The sphere is not
 | 
						||
subject to damage of any sort except from a rod of
 | 
						||
cancellation, a rod of negation, a disintegrate spell,
 | 
						||
or a targeted dispel magic spell. These effects destroy
 | 
						||
the sphere without harm to the subject. Nothing can
 | 
						||
pass through the sphere, inside or out, though the 
 | 
						||
subject can breathe normally.
 | 
						||
 | 
						||
Author:    Tenjac
 | 
						||
Created:   7/6/07
 | 
						||
*/
 | 
						||
//:://////////////////////////////////////////////
 | 
						||
//:://////////////////////////////////////////////
 | 
						||
 | 
						||
#include "prc_inc_spells"
 | 
						||
#include "prc_add_spell_dc"
 | 
						||
 | 
						||
void main()
 | 
						||
{
 | 
						||
        if(!X2PreSpellCastCode()) return;
 | 
						||
        
 | 
						||
        PRCSetSchool(SPELL_SCHOOL_EVOCATION);
 | 
						||
        
 | 
						||
        object oPC = OBJECT_SELF;
 | 
						||
        object oTarget = PRCGetSpellTargetObject();
 | 
						||
        effect eAoE = EffectAreaOfEffect(VFX_PER_OTILUKES_RESILIENT_SPHERE);
 | 
						||
        int nCasterLvl = PRCGetCasterLevel(oPC);
 | 
						||
        float fDur = (60.0 * nCasterLvl);
 | 
						||
        
 | 
						||
        int nMetaMagic = PRCGetMetaMagicFeat();
 | 
						||
        if (nMetaMagic & METAMAGIC_EXTEND) fDur += fDur;
 | 
						||
        
 | 
						||
        //Make SR check
 | 
						||
	if (!PRCDoResistSpell(OBJECT_SELF, oTarget,nCasterLvl))
 | 
						||
	{
 | 
						||
		//Make Forttude save
 | 
						||
		if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, (PRCGetSaveDC(oTarget,OBJECT_SELF)), SAVING_THROW_TYPE_NONE))
 | 
						||
        	{
 | 
						||
        		//Set local to signify the target
 | 
						||
        		SetLocalInt(oTarget, "PRC_OTILUKES_RS_TARGET", 1);
 | 
						||
        
 | 
						||
        		//Paralyze the target 
 | 
						||
        		effect eLink = EffectCutsceneParalyze();
 | 
						||
        		       eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_RESILIENT_SPHERE));
 | 
						||
        
 | 
						||
        
 | 
						||
        		SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAoE, oTarget, fDur, TRUE, SPELL_OTILUKES_RESILIENT_SPHERE, nCasterLvl);
 | 
						||
        		SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDur, TRUE, SPELL_OTILUKES_RESILIENT_SPHERE, nCasterLvl);
 | 
						||
        
 | 
						||
                object oAoE = GetAreaOfEffectObject(GetLocation(oTarget), "VFX_PER_OTILUKES_RESILIENT_SPHERE");
 | 
						||
                SetAllAoEInts(SPELL_OTILUKES_RESILIENT_SPHERE, oAoE, PRCGetSpellSaveDC(SPELL_OTILUKES_RESILIENT_SPHERE, SPELL_SCHOOL_EVOCATION), 0, nCasterLvl);
 | 
						||
 | 
						||
        		//Check for plot flag, if it's there, mark it as existing plot so we don't
 | 
						||
        		//have poeple using ORS to remove it and kill plot chars.
 | 
						||
        		if(GetPlotFlag(oTarget))
 | 
						||
        		{
 | 
						||
        		        SetLocalInt(oTarget, "PRC_OTILUKES_RS_ALREADYPLOT", 1);
 | 
						||
        		}
 | 
						||
        
 | 
						||
        		else SetPlotFlag(oTarget, TRUE);
 | 
						||
        	}
 | 
						||
        }
 | 
						||
} |