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.
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | ||
| 21/02/19 by Stratovarius
 | ||
| 
 | ||
| Shadow Hood
 | ||
| 
 | ||
| Fundamental 
 | ||
| Level/School: 0/Evocation
 | ||
| Range: Close (25 ft. + 5 ft./2 levels) 
 | ||
| Target: One creature 
 | ||
| Duration: 1 round/level 
 | ||
| Saving Throw: Will negates 
 | ||
| Spell Resistance: No
 | ||
| 
 | ||
| Swirling shadows manifest around your foe’s head.
 | ||
| 
 | ||
| Swirling tendrils and bursts of mystic shadow distract the subject. It takes a –1 penalty on attack rolls and Dexterity-based checks.
 | ||
| */
 | ||
| 
 | ||
| #include "shd_inc_shdfunc"
 | ||
| #include "shd_mysthook"
 | ||
| #include "prc_inc_sp_tch"
 | ||
| 
 | ||
| void main()
 | ||
| {
 | ||
|     object oShadow      = OBJECT_SELF;
 | ||
|     // Get infinite uses at this level
 | ||
|     if (GetLevelByClass(CLASS_TYPE_SHADOWCASTER, oShadow) >= 14) IncrementRemainingFeatUses(oShadow, 23670);
 | ||
|     if(!ShadPreMystCastCode()) return;
 | ||
| 
 | ||
|     object oTarget      = PRCGetSpellTargetObject();
 | ||
|     struct mystery myst = EvaluateMystery(oShadow, oTarget, METASHADOW_EXTEND);
 | ||
| 
 | ||
|     if(myst.bCanMyst)
 | ||
|     {
 | ||
|         SignalEvent(oTarget, EventSpellCastAt(oShadow, myst.nMystId));
 | ||
|         
 | ||
|         // Only creatures, and PvP check.
 | ||
|         if(!GetIsReactionTypeFriendly(oTarget))
 | ||
|         { 
 | ||
|                 if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetShadowcasterDC(oShadow), SAVING_THROW_TYPE_SPELL))
 | ||
|                 {
 | ||
|                     myst.fDur = 6.0 * myst.nShadowcasterLevel;       
 | ||
|                     if(myst.bExtend) myst.fDur *= 2;
 | ||
|                     
 | ||
|                     myst.eLink = EffectLinkEffects(EffectSkillDecrease(SKILL_HIDE, 1), EffectAttackDecrease(1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_MOVE_SILENTLY, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_OPEN_LOCK, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_PARRY, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_PICK_POCKET, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_SET_TRAP, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_TUMBLE, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_RIDE, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_BALANCE, 1));
 | ||
|                     myst.eLink = EffectLinkEffects(myst.eLink, EffectVisualEffect(VFX_DUR_BRIGHT_LIGHT_INDIGO_PULSE_SLOW));
 | ||
|                     SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(myst.eLink), oTarget, myst.fDur, TRUE, myst.nMystId, myst.nShadowcasterLevel);  
 | ||
|                     SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_BLINDDEAD_DN_PURPLE), oTarget);             
 | ||
|                 }    
 | ||
|         }
 | ||
|     }
 | ||
| }
 |