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
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | |
| 15/02/19 by Stratovarius
 | |
| 
 | |
| Curtain of Shadows
 | |
| 
 | |
| Initiate, Veil of Shadows 
 | |
| Level/School: 5th/Transmutation 
 | |
| Range: Close (25 ft. + 5 ft./2 levels) 
 | |
| Effect: Shadowy wall 
 | |
| Duration: 1 minute/level 
 | |
| Saving Throw: None 
 | |
| Spell Resistance: No
 | |
| 
 | |
| You create a wall of frigid shadow that wracks all who pass through it with cold.
 | |
| 
 | |
| You create a wall of shadow. Any creature passing through the wall takes 1d6 points of cold damage per caster level (maximum 15d6).
 | |
| */
 | |
| 
 | |
| #include "shd_inc_shdfunc"
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     if (!GetIsObjectValid(GetAreaOfEffectCreator()))
 | |
|     {
 | |
|         DestroyObject(OBJECT_SELF);
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     //Declare major variables
 | |
|     object oShadow = GetAreaOfEffectCreator();
 | |
|     struct mystery myst = GetLocalMystery(oShadow, MYST_HOLD_MYST+"6"); 
 | |
| 
 | |
|     if (myst.nMystId == MYST_FEARFUL_GLOOM)
 | |
|     {
 | |
|     	//Capture the first target object in the shape.
 | |
|     	object oTarget = GetFirstInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE);
 | |
|     	while(GetIsObjectValid(oTarget))
 | |
|     	{    
 | |
|     	    if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oShadow))
 | |
|     	    {
 | |
|     			if (GetHitDice(oTarget) > 4)
 | |
|     			{
 | |
|         		    if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget,myst.nSaveDC, SAVING_THROW_TYPE_FEAR))
 | |
|         		    {
 | |
|         		        SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectFrightened(), oTarget, RoundsToSeconds(d6(2)), TRUE, myst.nMystId, myst.nShadowcasterLevel);
 | |
|         		    }
 | |
|         		    else 
 | |
|         		    	SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectShaken(), oTarget, RoundsToSeconds(1), TRUE, myst.nMystId, myst.nShadowcasterLevel);
 | |
|         		} 
 | |
|         		else 
 | |
|         			SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectFrightened(), oTarget, RoundsToSeconds(d6(2)), TRUE, myst.nMystId, myst.nShadowcasterLevel);
 | |
|     	    }
 | |
|     	    //Select the next target within the spell shape.
 | |
|     	    oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE);
 | |
|     	} 
 | |
|     }  
 | |
|     if (myst.nMystId == MYST_SICKENING_SHADOW)
 | |
|     {
 | |
|     	//Capture the first target object in the shape.
 | |
|     	object oTarget = GetFirstInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE);
 | |
|     	while(GetIsObjectValid(oTarget))
 | |
|     	{    
 | |
|     	    if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oShadow))
 | |
|     	    {
 | |
|         		if (!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, myst.nSaveDC, SAVING_THROW_TYPE_SPELL))
 | |
|         		{
 | |
|         			float fDur = RoundsToSeconds(d4(1));
 | |
|         		    SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectNausea(oTarget, fDur), oTarget, fDur, TRUE, myst.nMystId, myst.nShadowcasterLevel);
 | |
|         		    DelayCommand(fDur, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSickened(), oTarget, RoundsToSeconds(d6(2)), TRUE, myst.nMystId, myst.nShadowcasterLevel));
 | |
|         		}
 | |
|         		else 
 | |
|         			SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSickened(), oTarget, RoundsToSeconds(d6(2)), TRUE, myst.nMystId, myst.nShadowcasterLevel);
 | |
|     	    }
 | |
|     	    //Select the next target within the spell shape.
 | |
|     	    oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE);
 | |
|     	} 
 | |
|     }    
 | |
| }
 |