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.
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/*:://////////////////////////////////////////////
 | 
						|
//:: Spell Name Hallucinatory Terrain: On Heartbeat (AOE)
 | 
						|
//:: Spell FileName PHS_S_HallTerrnC
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
//:: Spell Effects Applied / Notes
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
    It has a special (hidden!) Will Save for this spell, when they enter in the
 | 
						|
    area and stay in for a cirtain number of rounds.
 | 
						|
 | 
						|
    Choose the terrain from a preset list. Bioware's "tilemagic" is what is used,
 | 
						|
    IE the visual effect is a terrain piece.
 | 
						|
 | 
						|
    The AOE is placed via. the use of a placeable, which also has the correct
 | 
						|
    visual applied to it.
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
//:: Created By: Jasperre
 | 
						|
//::////////////////////////////////////////////*/
 | 
						|
 | 
						|
#include "PHS_INC_SPELLS"
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    // Check AOE
 | 
						|
    if(!PHS_CheckAOECreator()) return;
 | 
						|
 | 
						|
    // Declare major variables
 | 
						|
    object oTarget;
 | 
						|
    object oCaster = GetAreaOfEffectCreator();
 | 
						|
    object oSelf = OBJECT_SELF;
 | 
						|
    int nSpellSaveDC = PHS_GetAOESpellSaveDC();
 | 
						|
    int nMetaMagic = PHS_GetAOEMetaMagic();
 | 
						|
    string sName = "PHS_HALL";
 | 
						|
    int nTurnsIn, nWill, nRoll;
 | 
						|
 | 
						|
    // Start cycling through the AOE Object for viable targets
 | 
						|
    oTarget = GetFirstInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE);
 | 
						|
    while(GetIsObjectValid(oTarget))
 | 
						|
    {
 | 
						|
        // Won't bother checking for people who know its an illusion
 | 
						|
        if(!GetFactionEqual(oTarget, oCaster))
 | 
						|
        {
 | 
						|
            // We store a local variable on us until they are in the AOE for a
 | 
						|
            // while.
 | 
						|
            nTurnsIn = PHS_IncreaseStoredInteger(oSelf, sName + ObjectToString(oTarget));
 | 
						|
 | 
						|
            // Need to have been in for an amount of rounds which is
 | 
						|
            // 5 - nWill/5. Once we are, great!
 | 
						|
            nWill = GetWillSavingThrow(oTarget);
 | 
						|
            if(5 - (nWill/5) >= nTurnsIn)
 | 
						|
            {
 | 
						|
                nRoll = d20();
 | 
						|
                // We will do a will save
 | 
						|
                if((nRoll + nWill >= nSpellSaveDC || nRoll == 20) &&
 | 
						|
                   (nRoll != 1))
 | 
						|
                {
 | 
						|
                    // Fire cast spell at event for the affected target
 | 
						|
                    PHS_SignalSpellCastAt(oTarget, PHS_SPELL_HALLUCINATORY_TERRAIN);
 | 
						|
 | 
						|
                    // We tell them
 | 
						|
                    FloatingTextStringOnCreature("*You see the terrain around you is an illusion*", oTarget, FALSE);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        //Get next target.
 | 
						|
        oTarget = GetNextInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE);
 | 
						|
    }
 | 
						|
}
 |