//:://///////////////////////////////////////////// //:: Demilich paralzying touch //:: x2_s3_demitouch //:: Copyright (c) 2003 Bioware Corp. //::////////////////////////////////////////////// /* On touch a demilich can paralyze an opponent. Fort vs DC 38 Duration varies by game difficulty between 1 and 5 rounds (Sorry, no permanent paralyze, its just not fun) */ //::////////////////////////////////////////////// //:: Created By: Georg Zoeller //:: Created On: 2003-08-27 //::////////////////////////////////////////////// #include "NW_I0_SPELLS" void main() { object oItem; // The item casting triggering this spellscript object oSpellTarget; // On a weapon: The one being hit. On an armor: The one hitting the armor object oSpellOrigin; // On a weapon: The one wielding the weapon. On an armor: The one wearing an armor // fill the variables oSpellOrigin = OBJECT_SELF; oSpellTarget = GetSpellTargetObject(); oItem = GetSpellCastItem(); object oCaster = OBJECT_SELF; if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(oCaster)) { //Make them stop what they are doing instantly! AssignCommand(oCaster, ClearAllActions()); //Though the player may show animation, nothing happens! :) //SetModuleOverrideSpellScriptFinished(); FloatingTextStringOnCreature("All spells fizzle in town.", oCaster); return; } /////////////////////////////////////////////////////////////////////////////// //Handle Jail... //NO ITEMS WORK IN JAIL!!! if(GetLocalInt(GetArea(oCaster), "JAIL")==1) { AssignCommand(oCaster, ClearAllActions()); //Though the player may show animation, nothing happens! :) //SetModuleOverrideSpellScriptFinished(); return; } /////////////////////////////////////////////////////////////////////////////// int nDuration = 3; int nDiff = GetGameDifficulty(); if (nDiff == GAME_DIFFICULTY_CORE_RULES) { nDuration = 4; } else if (nDiff == GAME_DIFFICULTY_DIFFICULT) { nDuration = 6; } else if (nDiff == GAME_DIFFICULTY_VERY_EASY) { nDuration =2; } if (GetIsObjectValid(oItem)) { SignalEvent(oSpellTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId())); if(!GetHasSpellEffect(GetSpellId(),oSpellTarget)) { if(!MySavingThrow(SAVING_THROW_FORT, oSpellTarget,36 , SAVING_THROW_TYPE_ALL)) { effect eVis = EffectVisualEffect(VFX_IMP_STUN); effect eDur = EffectVisualEffect(VFX_DUR_PARALYZED); effect ePara = EffectParalyze(); ePara = SupernaturalEffect(ePara); ePara = EffectLinkEffects(eDur,ePara); ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oSpellTarget); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePara,oSpellTarget,RoundsToSeconds(nDuration)); } } } }