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.
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*:://////////////////////////////////////////////
 | |
| //:: Spell Name Storm of Vengance - On Enter
 | |
| //:: Spell FileName PHS_S_StormVenA
 | |
| //:://////////////////////////////////////////////
 | |
| //:: In Game Spell desctiption
 | |
| //:://////////////////////////////////////////////
 | |
|     On Enter: saving throw or deafened for 1d4x10 minutes.
 | |
|     No ranged attacks in the cloud.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Spell Effects Applied / Notes
 | |
| //:://////////////////////////////////////////////
 | |
|     As above, really!
 | |
| 
 | |
|     Concentration checks are made here in 2 second delay command heartbeats,
 | |
|     which are checked for the integer each time in the heartbeat.
 | |
| 
 | |
|     If concentration is broken, the AOE is destroyed.
 | |
| //:://////////////////////////////////////////////
 | |
| //:: Created By: Jasperre
 | |
| //::////////////////////////////////////////////*/
 | |
| 
 | |
| #include "PHS_INC_SPELLS"
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     // Check AOE creator
 | |
|     if(!PHS_CheckAOECreator()) return;
 | |
| 
 | |
|     // Declare major variables
 | |
|     object oCaster = GetAreaOfEffectCreator();
 | |
|     object oTarget = GetEnteringObject();
 | |
|     int nMetaMagic = PHS_GetAOEMetaMagic();
 | |
|     int nSpellSaveDC = PHS_GetAOESpellSaveDC();
 | |
| 
 | |
|     // Declare effects
 | |
|     effect eDeaf = EffectDeaf();
 | |
|     effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
 | |
|     effect eLink = EffectLinkEffects(eDeaf, eCessate);
 | |
|     effect eMissRanged = EffectMissChance(100, MISS_CHANCE_TYPE_VS_RANGED);
 | |
|     effect eConsRanged = EffectConcealment(100, MISS_CHANCE_TYPE_VS_RANGED);
 | |
| 
 | |
|     // eMissLink needs to be supernatural.
 | |
|     effect eMissLink = EffectLinkEffects(eMissRanged, eConsRanged);
 | |
|     eMissLink = SupernaturalEffect(eMissLink);
 | |
| 
 | |
|     // Always apply the consealment against ranged attacks and ranged attack
 | |
|     // failure.
 | |
|     PHS_ApplyPermanent(oTarget, eMissLink);
 | |
| 
 | |
|     // Get random duration
 | |
|     float fDuration = PHS_GetRandomDuration(PHS_ROUNDS, 4, 1, nMetaMagic);
 | |
|     // It is 10x1d4
 | |
|     fDuration *= 10;
 | |
| 
 | |
|     // PvP check and can the entering object hear the sound to start with?
 | |
|     if(!GetIsReactionTypeFriendly(oTarget, oCaster) && PHS_GetCanHear(oTarget))
 | |
|     {
 | |
|         // Signal event
 | |
|         PHS_SignalSpellCastAt(oTarget, PHS_SPELL_STORM_OF_VENGEANCE);
 | |
| 
 | |
|         // Spell reistance and immunity check
 | |
|         if(!PHS_SpellResistanceCheck(oCaster, oTarget))
 | |
|         {
 | |
|             // Saving throw against the effect
 | |
|             if(!PHS_SavingThrow(SAVING_THROW_FORT, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_NONE, oCaster))
 | |
|             {
 | |
|                 // Apply effects for the duration
 | |
|                 DelayCommand(0.1, PHS_ApplyDuration(oTarget, eLink, fDuration));
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |