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.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | ||
| 18/02/19 by Stratovarius
 | ||
| 
 | ||
| Dark Soul
 | ||
| 
 | ||
| Master, Heart and Soul 
 | ||
| Level/School: 7th/Enchantment (Compulsion) [Mind Affecting]
 | ||
| Range: Personal 
 | ||
| Target: You 
 | ||
| Duration: 1 round/level 
 | ||
| Saving Throw: Will negates; see text 
 | ||
| Spell Resistance: Yes; see text
 | ||
| 
 | ||
| You open the subject’s mind to the Plane of Shadow, altering its personality.
 | ||
| 
 | ||
| You turn the dark energies from the Plane of Shadow upon another creature, compelling it to act in ways that it normally would not. 
 | ||
| While this effect is active, you can use a standard action to focus the shadow energies on one living creature within 30 feet that you select. 
 | ||
| The creature must succeed on a Will saving throw (DC 17 + your Cha modifier) or immediately make a melee attack against one target within its reach.
 | ||
| */
 | ||
| 
 | ||
| #include "shd_inc_shdfunc"
 | ||
| #include "prc_inc_combat"
 | ||
| 
 | ||
| void main()
 | ||
| {
 | ||
|     object oShadow      = OBJECT_SELF;
 | ||
|     object oTarget      = PRCGetSpellTargetObject();
 | ||
|     int nPen = ShadowSRPen(oShadow, GetShadowcasterLevel(oShadow));
 | ||
|     
 | ||
|     if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, oShadow))
 | ||
|     {
 | ||
|         //Fire cast spell at event for the specified target
 | ||
|         SignalEvent(oTarget, EventSpellCastAt(oShadow, PRCGetSpellId()));
 | ||
|         if (!PRCDoResistSpell(oShadow, oTarget, nPen) && !/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetShadowcasterDC(oShadow), SAVING_THROW_TYPE_MIND_SPELLS))
 | ||
|         {
 | ||
|             SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SOUND_SYMBOL_PAIN), oTarget);
 | ||
|             location lTarget = GetLocation(oTarget);
 | ||
|             int bBreak = FALSE;
 | ||
| 
 | ||
|             // Use the function to get the closest creature as a target
 | ||
|             object oAreaTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
 | ||
|             while(GetIsObjectValid(oAreaTarget) && !bBreak)
 | ||
|             {
 | ||
|                 if(oAreaTarget != oTarget && oAreaTarget != oShadow && GetIsInMeleeRange(oTarget, oAreaTarget))
 | ||
|                 {
 | ||
|                     //effect eNone;
 | ||
|                     AssignCommand(oTarget, ClearAllActions());
 | ||
|                     AssignCommand(oTarget, ActionAttack(oAreaTarget));
 | ||
|                     //AssignCommand(oTarget, PerformAttack(oAreaTarget, oTarget, eNone));
 | ||
|                     //if (DEBUG) DoDebug("shd_myst_drkslft: Successful attack against "+GetName(oAreaTarget));
 | ||
|                     //FloatingTextStringOnCreature("shd_myst_drkslft: Successful attack against "+GetName(oAreaTarget), oShadow, FALSE);
 | ||
|                     DelayCommand(4.5, AssignCommand(oTarget, ClearAllActions()));
 | ||
|                     bBreak = TRUE;
 | ||
|                 }
 | ||
|             //Select the next target within the spell shape.
 | ||
|             oAreaTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
 | ||
|             }             
 | ||
| 
 | ||
|         }
 | ||
|     }    
 | ||
| } |