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.
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*:://////////////////////////////////////////////
 | ||
| //:: Spell Name Wave Of Exaltation
 | ||
| //:: Spell FileName XXX_S_WaveOfExal
 | ||
| //:://////////////////////////////////////////////
 | ||
| //:: In Game Spell desctiption
 | ||
| //:://////////////////////////////////////////////
 | ||
|     Transmutation
 | ||
|     Also known as: Elhiria’s Wave Of Exaltation
 | ||
|     Level: Brd 2, Sor/Wiz 2
 | ||
|     Components: V, S
 | ||
|     Casting Time: 1 standard action
 | ||
|     Range: 6.67M (20ft.)
 | ||
|     Area: Caster and 1 creature/level, in a 6.67M. burst (20ft.) centered on
 | ||
|                 the caster
 | ||
|     Duration: 1 minute/level (D)
 | ||
|     Saving Throw: Fortitude Negates (Harmless)
 | ||
|     Spell Resistance: Yes (Harmless)
 | ||
|     Source: Various (VolkorTheRed)
 | ||
| 
 | ||
|     A wave starts at the point of origin of the spell and spreads out te envelop
 | ||
|     all affected allied creatures in a mantle of positive feelings and resolvement.
 | ||
| 
 | ||
|     The transmuted creatures’ skin becomes harder to penetrate by enemy weapons.
 | ||
|     The creatures  receive DR 1/Epic and get an +1 morale bonus on all saving
 | ||
|     throws.
 | ||
| //:://////////////////////////////////////////////
 | ||
| //:: Spell Effects Applied / Notes
 | ||
| //:://////////////////////////////////////////////
 | ||
|     As the spell says - DR 1/Epic, and +1 bonus on saving throws.
 | ||
| 
 | ||
|     Changed to +1 on saves, Saving Grace still has some potency then.
 | ||
| //:://////////////////////////////////////////////
 | ||
| //:: Created By: Jasperre
 | ||
| //::////////////////////////////////////////////*/
 | ||
| 
 | ||
| #include "SMP_INC_SPELLS"
 | ||
| 
 | ||
| void main()
 | ||
| {
 | ||
|     // Spell hook check.
 | ||
|     if(!SMP_SpellHookCheck(SMP_SPELL_WAVE_OF_EXALTATION)) return;
 | ||
| 
 | ||
|     //Declare major variables
 | ||
|     object oCaster = OBJECT_SELF;
 | ||
|     object oTarget;
 | ||
|     object oTargetDiamond;
 | ||
|     // 1 creature/level.
 | ||
|     int nCasterLevel = SMP_GetCasterLevel();
 | ||
|     int nMetaMagic = SMP_GetMetaMagicFeat();
 | ||
|     int nCnt;
 | ||
| 
 | ||
|     // Note: This does increase by 1 if caster is affected
 | ||
|     int nDoneCreatures = 0;
 | ||
| 
 | ||
|     // 1 round/level duration
 | ||
|     float fDuration = SMP_GetDuration(SMP_ROUNDS, nCasterLevel, nMetaMagic);
 | ||
| 
 | ||
|     // Delcare effects
 | ||
|     effect eDR = EffectDamageReduction(1, DAMAGE_POWER_PLUS_TWENTY);
 | ||
|     effect eSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_ALL);
 | ||
|     effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
 | ||
|     effect eVis = EffectVisualEffect(VFX_IMP_HEAD_MIND);
 | ||
| 
 | ||
|     // Link effects
 | ||
|     effect eLink = EffectLinkEffects(eDR, eDur);
 | ||
|     eLink = EffectLinkEffects(eLink, eSave);
 | ||
| 
 | ||
|     // Loop all targets without effect nearby. Start with the caster!
 | ||
|     oTarget = oCaster;
 | ||
|     // Loop for 6.67M or 20ft
 | ||
|     while(GetIsObjectValid(oTarget) && nDoneCreatures < nCasterLevel &&
 | ||
|           GetDistanceToObject(oTarget) <= RADIUS_SIZE_FEET_20)
 | ||
|     {
 | ||
|         // Make sure they are in our LOS, are a friend too.
 | ||
|         if((LineOfSightObject(oCaster, oTarget) &&
 | ||
|            (GetIsFriend(oTarget) || GetFactionEqual(oTarget))) ||
 | ||
|            (oTarget == oCaster))
 | ||
|         {
 | ||
|             // Add one to nDoneCreatures
 | ||
|             nDoneCreatures++;
 | ||
| 
 | ||
|             // Signal spell cast at event
 | ||
|             SMP_SignalSpellCastAt(oTarget, SMP_SPELL_WAVE_OF_EXALTATION, FALSE);
 | ||
| 
 | ||
|             // Remove previous castings
 | ||
|             SMP_RemoveSpellEffectsFromTarget(SMP_SPELL_WAVE_OF_EXALTATION, oTarget);
 | ||
| 
 | ||
|             // Apply effects
 | ||
|             SMP_ApplyDurationAndVFX(oTarget, eVis, eDur, fDuration);
 | ||
|         }
 | ||
|         // Get next nearest target
 | ||
|         nCnt++;
 | ||
|         oTarget = GetNearestObject(OBJECT_TYPE_CREATURE, oCaster, nCnt);
 | ||
|     }
 | ||
| }
 |