//:://///////////////////////////////////////////// //:: Grease: Heartbeat //:: NW_S0_GreaseC.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Creatures entering the zone of grease must make a reflex save or fall down. Those that make their save have their movement reduced by 1/2. */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Aug 1, 2001 //::////////////////////////////////////////////// //:: modified by mr_bumpkin Dec 4, 2003 for PRC stuff #include "prc_inc_spells" #include "prc_add_spell_dc" void main() { DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION); //Declare major variables object oTarget; effect eFall = EffectKnockdown(); float fDelay; //Get first target in spell area oTarget = GetFirstInPersistentObject(); while(GetIsObjectValid(oTarget)) { if(!GetHasFeat(FEAT_WOODLAND_STRIDE, oTarget) &&(GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) != TRUE) ) { if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) { int nDC = PRCGetSaveDC(oTarget,GetAreaOfEffectCreator()); if(DEBUG) DoDebug("nw_s0_greasec running, SpellId: " + IntToString(PRCGetSpellId())); fDelay = PRCGetRandomDelay(0.0, 2.0); if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, (nDC), SAVING_THROW_TYPE_NONE, OBJECT_SELF, fDelay)) { DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eFall, oTarget, 4.0,FALSE)); } } } //Get next target in spell area oTarget = GetNextInPersistentObject(); } DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); // Getting rid of the local integer storing the spellschool name }