IF HotKey(K) Global("USERANGE","LOCALS",1) THEN RESPONSE #100 EquipMostDamagingMelee() SetGlobal("USERANGE","LOCALS",0) SmallWait(1) DisplayStringHead(Myself,15529) // Melee END IF HotKey(K) Global("USERANGE","LOCALS",0) THEN RESPONSE #100 EquipRanged() SetGlobal("USERANGE","LOCALS",1) SmallWait(1) DisplayStringHead(Myself,9403) // Missile Weapons END IF HotKey(E) Global("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobal("HP_ITEM","LOCALS",2) DisplayStringHead(Myself,969999) // Item has no usable ability. END IF HotKey(E) Global("HP_ITEM","LOCALS",0) THEN RESPONSE #100 SetGlobal("HP_ITEM","LOCALS",1) DisplayStringHead(Myself,969998) // Personal Item END IF HotKey(E) Global("HP_ITEM","LOCALS",2) THEN RESPONSE #100 SetGlobal("HP_ITEM","LOCALS",0) DisplayStringHead(Myself,969997) // Quick Item END IF HotKey(F) Global("STAB_ON","LOCALS",0) THEN RESPONSE #100 DisplayStringHead(Myself,969982) // Backstab Damage SetGlobal("STAB_ON","LOCALS",1) END IF HotKey(F) Global("STAB_ON","LOCALS",1) THEN RESPONSE #100 DisplayStringHead(Myself,969981) // Backstab Double Damage SetGlobal("STAB_ON","LOCALS",0) END IF HotKey(D) Global("AI_ONOFF","LOCALS",1) THEN RESPONSE #100 DisplayStringHead(Myself,16469) // On SetGlobal("AI_ONOFF","LOCALS",0) END IF ActionListEmpty() Global("AI_ONOFF","LOCALS",1) THEN RESPONSE #100 NoAction() END IF HotKey(D) Global("AI_ONOFF","LOCALS",0) THEN RESPONSE #100 DisplayStringHead(Myself,16470) // Off SetGlobal("AI_ONOFF","LOCALS",1) END IF HPPercentLT(Myself,25) OR(2) !CombatCounter(0) See(NearestEnemyOf(Myself)) Global("PAUSED","LOCALS",0) THEN RESPONSE #100 SetGlobal("PAUSED","LOCALS",1) UnhideGUI() DisplayStringHead(Myself,969977) // Help me! If you don't help me, they'll kill me. PauseGame() END IF ActionListEmpty() !Detect(NearestEnemyOf(Myself)) Global("PAUSED","LOCALS",1) Delay(30) THEN RESPONSE #100 SetGlobal("PAUSED","LOCALS",0) Continue() END IF See(NearestEnemyOf(Myself)) Global("HP_WEPCH","LOCALS",1) THEN RESPONSE #100 SetGlobal("HP_WEPCH","LOCALS",0) Continue() END IF ActionListEmpty() Global("HP_WEPCH","LOCALS",0) CombatCounter(0) !See(NearestEnemyOf(Myself)) Global("USERANGE","LOCALS",0) THEN RESPONSE #100 EquipMostDamagingMelee() SmallWait(3) SetGlobal("HP_WEPCH","LOCALS",1) SetGlobal("MEL_MISS","LOCALS",0) Continue() END IF ActionListEmpty() Global("HP_WEPCH","LOCALS",0) CombatCounter(0) !See(NearestEnemyOf(Myself)) Global("USERANGE","LOCALS",1) THEN RESPONSE #100 EquipRanged() SmallWait(3) SetGlobal("HP_WEPCH","LOCALS",1) SetGlobal("MEL_MISS","LOCALS",1) Continue() END IF PartyRested() THEN RESPONSE #100 SetGlobal("ZBOOT12","LOCALS",0) SetGlobal("ZNPMISC1","LOCALS",0) SetGlobal("ZRECALL","LOCALS",0) SetGlobal("ZLIMWISH","LOCALS",0) SetGlobal("Z1BAG02","LOCALS",0) END IF See(NearestEnemyOfType([0.0.0.LONG_BOW])) OR(5) SpellCast(LastSeenBy(Myself),WIZARD_STONE_SKIN) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_MAGIC_ENERGY) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_MAGIC_WEAPONS) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_NORMAL_MISSILES) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_NORMAL_WEAPONS) !Specifics(LastSeenBy(Myself),205) THEN RESPONSE #100 ChangeSpecifics(LastSeenBy(Myself),205) Continue() END IF See(SecondNearestEnemyOfType([0.0.0.LONG_BOW])) OR(5) SpellCast(LastSeenBy(Myself),WIZARD_STONE_SKIN) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_MAGIC_ENERGY) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_MAGIC_WEAPONS) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_NORMAL_MISSILES) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_NORMAL_WEAPONS) !Specifics(LastSeenBy(Myself),205) THEN RESPONSE #100 ChangeSpecifics(LastSeenBy(Myself),205) Continue() END IF See(ThirdNearestEnemyOfType([0.0.0.LONG_BOW])) OR(5) SpellCast(LastSeenBy(Myself),WIZARD_STONE_SKIN) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_MAGIC_ENERGY) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_MAGIC_WEAPONS) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_NORMAL_MISSILES) SpellCast(LastSeenBy(Myself),WIZARD_PROTECTION_FROM_NORMAL_WEAPONS) !Specifics(LastSeenBy(Myself),205) THEN RESPONSE #100 ChangeSpecifics(LastSeenBy(Myself),205) Continue() END IF See(NearestEnemyOfType([0.0.0.LONG_BOW])) OR(8) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_SPELL_TURNING) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_TURNING) SpellCast(LastSeenBy(Myself),WIZARD_GLOBE_OF_INVULNERABILITY) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_GLOBE_OF_INVULNERABILITY) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_SPELL_DEFLECTION) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_SHIELD) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_DEFLECTION) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_TRAP) !Specifics(LastSeenBy(Myself),211) THEN RESPONSE #100 ChangeSpecifics(LastSeenBy(Myself),211) Continue() END IF See(SecondNearestEnemyOfType([0.0.0.LONG_BOW])) OR(8) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_SPELL_TURNING) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_TURNING) SpellCast(LastSeenBy(Myself),WIZARD_GLOBE_OF_INVULNERABILITY) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_GLOBE_OF_INVULNERABILITY) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_SPELL_DEFLECTION) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_SHIELD) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_DEFLECTION) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_TRAP) !Specifics(LastSeenBy(Myself),211) THEN RESPONSE #100 ChangeSpecifics(LastSeenBy(Myself),211) Continue() END IF See(ThirdNearestEnemyOfType([0.0.0.LONG_BOW])) OR(8) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_SPELL_TURNING) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_TURNING) SpellCast(LastSeenBy(Myself),WIZARD_GLOBE_OF_INVULNERABILITY) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_GLOBE_OF_INVULNERABILITY) SpellCast(LastSeenBy(Myself),WIZARD_MINOR_SPELL_DEFLECTION) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_SHIELD) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_DEFLECTION) SpellCast(LastSeenBy(Myself),WIZARD_SPELL_TRAP) !Specifics(LastSeenBy(Myself),211) THEN RESPONSE #100 ChangeSpecifics(LastSeenBy(Myself),211) Continue() END IF See([ALLY]) !InParty(LastSeenBy(Myself)) !Specifics(LastSeenBy(Myself),207) OR(3) Gender(LastSeenBy(Myself),MALE) Gender(LastSeenBy(Myself),FEMALE) Gender(LastSeenBy(Myself),ILLUSIONARY) !Allegiance(LastSeenBy(Myself),GOODBUTBLUE) !Allegiance(LastSeenBy(Myself),NEUTRAL) !Class(LastSeenBy(Myself),WIZARD_EYE) THEN RESPONSE #100 ActionOverride(LastSeenBy(Myself),ChangeAIScript("ogremasu",CLASS)) ChangeSpecifics(LastSeenBy(Myself),207) END ///////Summoning Cutoffs for Ill Effects////////// IF OR(4) SpellCast([ANYTHING],WIZARD_DEATH_FOG) SpellCast([ANYTHING],WIZARD_CLOUDKILL) CheckStat(Myself,17,180) CheckStat(Myself,16,180) !GlobalTimerNotExpired("NOSUMMON","GLOBAL") THEN RESPONSE #100 SetGlobalTimer("NOSUMMON","GLOBAL",ONE_TURN) END IF SpellCast([ANYTHING],WIZARD_DEATH_SPELL) !GlobalTimerNotExpired("NOSUMMON","GLOBAL") THEN RESPONSE #100 SetGlobalTimer("NOSUMMON","GLOBAL",30) END /////////Cloud-like Area of Effects///////////////// IF CheckStat(Myself,11,180) // I'm in a stinking cloud !StateCheck(Myself,STATE_SLEEPING) // not yet affected CheckStatGT(Myself,4,SAVEVSSPELL) //and I got a reasonable chance of failing a save throw (25%+) OR(12) See(StrongestOf) // Don't use the nearest party member or enemy--it can switch as time progresses See(WeakestOf) // These are all constant objects, not subject to proximity or other factors See(BestAC) See(WorstAC) See(StrongestOfMale) See(Player6) // Use specific party members as last resort See(Player5) See(Player4) See(Player3) See(Player2) See(Player1) See(Protagonist) !Range(LastSeenBy(Myself),0) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastSeenBy(Myself),30) //Get your butt moving (to point b) SetInterrupt(TRUE) END IF CheckStatGT(Myself,11,180) // I'm in a web,entangle, or grease spell CheckStatLT(Myself,15,180) CheckStatLT(Myself,1,131) // I don't have free action CheckStatLT(Myself,1,WEB) //and not webbed up CheckStatLT(Myself,1,ENTANGLE) //nor entangled --I can move CheckStatGT(Myself,4,SAVEVSSPELL) //and I got a reasonable chance of failing a save throw (25%+) OR(12) See(StrongestOf) // Don't use the nearest party member or enemy--it can switch as time progresses See(WeakestOf) // These are all constant objects, not subject to proximity or other factors See(BestAC) See(WorstAC) See(StrongestOfMale) See(Player6) // Use specific party members as last resort See(Player5) See(Player4) See(Player3) See(Player2) See(Player1) See(Protagonist) !Range(LastSeenBy(Myself),0) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastSeenBy(Myself),30) //Get your butt moving (to point b) SetInterrupt(TRUE) END IF CheckStat(Myself,15,180) // I'm in an Ice Storm CheckStatLT(Myself,100,RESISTCOLD) // Not Immune OR(12) See(StrongestOf) // Don't use the nearest party member or enemy--it can switch as time progresses See(WeakestOf) // These are all constant objects, not subject to proximity or other factors See(BestAC) See(WorstAC) See(StrongestOfMale) See(Player6) // Use specific party members as last resort See(Player5) See(Player4) See(Player3) See(Player2) See(Player1) See(Protagonist) !Range(LastSeenBy(Myself),0) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastSeenBy(Myself),30) //Get your butt moving (to point b) SetInterrupt(TRUE) END IF CheckStat(Myself,16,180) // I'm in a Cloudkill or Death Fog CheckStatLT(Myself,100,RESISTPOISON) // Not Immune OR(12) See(StrongestOf) // Don't use the nearest party member or enemy--it can switch as time progresses See(WeakestOf) // These are all constant objects, not subject to proximity or other factors See(BestAC) See(WorstAC) See(StrongestOfMale) See(Player6) // Use specific party members as last resort See(Player5) See(Player4) See(Player3) See(Player2) See(Player1) See(Protagonist) !Range(LastSeenBy(Myself),0) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastSeenBy(Myself),30) //Get your butt moving (to point b) SetInterrupt(TRUE) END IF CheckStat(Myself,17,180) // I'm in a Death Fog CheckStatLT(Myself,100,RESISTACID) // Not Immune OR(12) See(StrongestOf) // Don't use the nearest party member or enemy--it can switch as time progresses See(WeakestOf) // These are all constant objects, not subject to proximity or other factors See(BestAC) See(WorstAC) See(StrongestOfMale) See(Player6) // Use specific party members as last resort See(Player5) See(Player4) See(Player3) See(Player2) See(Player1) See(Protagonist) !Range(LastSeenBy(Myself),0) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastSeenBy(Myself),30) //Get your butt moving (to point b) SetInterrupt(TRUE) END IF CheckStat(Myself,18,180) // Incendiary Cloud, Meteor Swarm or Fire Storm -- bad stuff CheckStatLT(Myself,100,RESISTFIRE) // Not Immune OR(12) See(StrongestOf) // Don't use the nearest party member or enemy--it can switch as time progresses See(WeakestOf) // These are all constant objects, not subject to proximity or other factors See(BestAC) See(WorstAC) See(StrongestOfMale) See(Player6) // Use specific party members as last resort See(Player5) See(Player4) See(Player3) See(Player2) See(Player1) See(Protagonist) !Range(LastSeenBy(Myself),0) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastSeenBy(Myself),30) //Get your butt moving (to point b) SetInterrupt(TRUE) END ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// IF ActionListEmpty() CheckStatLT(Myself,1,STONESKINS) HaveSpell(WIZARD_STONE_SKIN) CheckStatLT(Myself,5,SPELLFAILUREMAGE) THEN RESPONSE #100 Spell(Myself,WIZARD_STONE_SKIN) END IF !GlobalTimerNotExpired("SHOUTED","LOCALS") HPPercentLT(Myself,25) AttackedBy([ANYTHING],DEFAULT) NumCreatureGT([EVILCUTOFF],0) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) GlobalShout(2001) Continue() END IF !See([ENEMY]) Global("CALLER","LOCALS",1) THEN RESPONSE #100 GlobalShout(5050) SetGlobal("CALLED","GLOBAL",0) SetGlobal("CALLER","LOCALS",0) END IF See([ENEMY]) Global("CALLED","GLOBAL",0) Global("CALLER","LOCALS",0) OR(6) ObjectActionListEmpty(Player1) ObjectActionListEmpty(Player2) ObjectActionListEmpty(Player3) ObjectActionListEmpty(Player4) ObjectActionListEmpty(Player5) ObjectActionListEmpty(Player6) THEN RESPONSE #100 SetGlobal("CALLED","GLOBAL",1) SetGlobal("CALLER","LOCALS",1) GlobalShout(5003) Continue() END IF OR(2) CombatCounter(0) See([ENEMY]) Global("MV_ENEMY","LOCALS",1) THEN RESPONSE #100 SetGlobal("MV_ENEMY","LOCALS",0) END IF Heard([GOODCUTOFF],5003) Global("CALLED","GLOBAL",1) !See([ENEMY]) CheckStatGT(Myself,50,HIDEINSHADOWS) !StateCheck(Myself,0x400010) OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") THEN RESPONSE #100 Hide() END IF Heard([GOODCUTOFF],5003) Global("CALLED","GLOBAL",1) HaveSpellRES("SPCL414") // Set Special Snare !See([ENEMY]) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") CheckStatGT(Myself,25,SETTRAPS) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SetGlobal("MV_ENEMY","LOCALS",1) SpellRES("SPCL414",Myself) // Set Special Snare END IF Heard([GOODCUTOFF],5003) Global("CALLED","GLOBAL",1) HaveSpellRES("SPCL412") // Set Snare !See([ENEMY]) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") CheckStatGT(Myself,25,SETTRAPS) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SetGlobal("MV_ENEMY","LOCALS",1) SpellRES("SPCL412",Myself) // Set Snare END IF Heard([GOODCUTOFF],5003) !See([ENEMY]) Global("CALLED","GLOBAL",1) Global("MV_ENEMY","LOCALS",0) THEN RESPONSE #100 SetGlobal("MV_ENEMY","LOCALS",1) MoveToObject(LastHeardBy(Myself)) Continue() END IF HaveSpell(INNATE_SLOW_POISON) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") StateCheck(Myself,STATE_POISONED) HPPercentLT(Myself,76) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) IncrementGlobal("NOHEAL","GLOBAL",1) Spell(Myself,INNATE_SLOW_POISON) END IF StateCheck(Myself,STATE_POISONED) HPPercentLT(Myself,76) HasItem("POTN20",Myself) // Antidote !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN20",Myself) // Antidote DisplayStringHead(Myself,7029) // Antidote END IF StateCheck(Myself,STATE_POISONED) HPPercentLT(Myself,76) HasItem("POTN17",Myself) // Elixir of Health !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN17",Myself) // Elixir of Health DisplayStringHead(Myself,7011) // Elixir of Health END IF ActionListEmpty() !GlobalTimerNotExpired("SHOUTED","LOCALS") !Global("REDO2101","LOCALS",0) OR(2) StateCheck(Myself,STATE_DISEASED) CheckStatGT(Myself,3,STATE_DISEASED_FIX) HPPercentLT(Myself,76) Detect(NearestMyGroupOfType([GOODCUTOFF.0.0.CLERIC_ALL])) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",3) IncrementGlobal("REDO2101","LOCALS",1) Shout(2101) DisplayStringHead(Myself,969976) Continue() END IF ActionListEmpty() !GlobalTimerNotExpired("SHOUTED","LOCALS") !Global("REDO2101","LOCALS",0) OR(2) StateCheck(Myself,STATE_DISEASED) CheckStatGT(Myself,0,STATE_DISEASED_FIX) Detect(NearestMyGroupOfType([GOODCUTOFF.0.0.CLERIC_ALL])) !Detect(NearestEnemyOf(Myself)) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) IncrementGlobal("REDO2101","LOCALS",1) Shout(2101) DisplayStringHead(Myself,969976) Continue() END IF ActionListEmpty() !GlobalTimerNotExpired("SHOUTED","LOCALS") GlobalGT("REDO2101","LOCALS",0) GlobalLT("REDO2101","LOCALS",10) OR(2) StateCheck(Myself,STATE_DISEASED) CheckStatGT(Myself,3,STATE_DISEASED_FIX) HPPercentLT(Myself,76) Detect(NearestMyGroupOfType([GOODCUTOFF.0.0.CLERIC_ALL])) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",3) IncrementGlobal("REDO2101","LOCALS",1) Shout(2101) Continue() END IF ActionListEmpty() !GlobalTimerNotExpired("SHOUTED","LOCALS") GlobalGT("REDO2101","LOCALS",0) GlobalLT("REDO2101","LOCALS",10) OR(2) StateCheck(Myself,STATE_DISEASED) CheckStatGT(Myself,0,STATE_DISEASED_FIX) Detect(NearestMyGroupOfType([GOODCUTOFF.0.0.CLERIC_ALL])) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) IncrementGlobal("REDO2101","LOCALS",1) Shout(2101) Continue() END IF GlobalGT("REDO2101","LOCALS",9) THEN RESPONSE #100 SetGlobal("REDO2101","LOCALS",0) Continue() END IF GlobalGT("REDO2101","LOCALS",0) GlobalLT("REDO2101","LOCALS",10) !StateCheck(Myself,STATE_DISEASED) CheckStat(Myself,0,STATE_DISEASED_FIX) THEN RESPONSE #100 SetGlobal("REDO2101","LOCALS",0) Continue() END IF ActionListEmpty() !GlobalTimerNotExpired("SHOUTED","LOCALS") Global("REDO2000","LOCALS",0) StateCheck(Myself,STATE_POISONED) HPPercentLT(Myself,76) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",3) IncrementGlobal("REDO2000","LOCALS",1) Shout(2000) DisplayStringHead(Myself,14662) // Poisoned Continue() END IF ActionListEmpty() !GlobalTimerNotExpired("SHOUTED","LOCALS") GlobalGT("REDO2000","LOCALS",0) GlobalLT("REDO2000","LOCALS",10) StateCheck(Myself,STATE_POISONED) HPPercentLT(Myself,76) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",3) IncrementGlobal("REDO2000","LOCALS",1) Shout(2000) Continue() END IF GlobalGT("REDO2000","LOCALS",9) THEN RESPONSE #100 SetGlobal("REDO2000","LOCALS",0) Continue() END IF GlobalGT("REDO2000","LOCALS",0) GlobalLT("REDO2000","LOCALS",10) !StateCheck(Myself,STATE_POISONED) THEN RESPONSE #100 SetGlobal("REDO2000","LOCALS",0) Continue() END IF !GlobalTimerNotExpired("SHOUTED","LOCALS") HPPercentLT(Myself,21) CheckStatGT(Myself,50,STEALTH) OR(2) AttackedBy([ANYTHING],DEFAULT) Range(NearestEnemyOf(Myself),4) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) Shout(2018) DisplayStringHead(Myself,969977) // Dying RunAwayFrom(NearestEnemyOf(Myself),75) Wait(1) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN52",Myself) // Potion of Extra Healing Wait(2) Hide() END IF !GlobalTimerNotExpired("SHOUTED","LOCALS") HPPercentLT(Myself,21) HasItem("POTN10",Myself) // Potion of Invisibility !StateCheck(Myself,0x400010) OR(2) AttackedBy([ANYTHING],DEFAULT) Range(NearestEnemyOf(Myself),4) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) Shout(2018) DisplayStringHead(Myself,969977) // Dying SetGlobalTimer("SPL_CAST","LOCALS",12) UseItem("POTN10",Myself) // Potion of Invisibility RunAwayFrom(NearestEnemyOf(Myself),75) Wait(6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN52",Myself) // Potion of Extra Healing END IF !GlobalTimerNotExpired("SHOUTED","LOCALS") HPPercentLT(Myself,21) HasItem("POTN52",Myself) // Potion of Extra Healing OR(2) AttackedBy([ANYTHING],DEFAULT) Range(NearestEnemyOf(Myself),6) THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) Shout(2018) DisplayStringHead(Myself,969977) // Dying RunAwayFrom(NearestEnemyOf(Myself),75) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN52",Myself) // Potion of Extra Healing END IF HPPercentLT(Myself,21) HasItem("POTN52",Myself) // Potion of Extra Healing OR(2) AttackedBy([ANYTHING],DEFAULT) Range(NearestEnemyOf(Myself),6) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) RunAwayFrom(NearestEnemyOf(Myself),75) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN52",Myself) // Potion of Extra Healing END IF See(NearestEnemyOfType([EVILCUTOFF.0.0.OGRE_MAGE])) Gender(LastSeenBy(Myself),SUMMONED) Range(LastSeenBy(Myself),10) THEN RESPONSE #100 RunAwayFrom(LastSeenBy(Myself),60) END ////Friendly Fire Warning/////// IF OR(7) AttackedBy([GOODCUTOFF],DEFAULT) AttackedBy(Player1,DEFAULT) AttackedBy(Player2,DEFAULT) AttackedBy(Player3,DEFAULT) AttackedBy(Player4,DEFAULT) AttackedBy(Player5,DEFAULT) AttackedBy(Player6,DEFAULT) !AttackedBy(Myself,DEFAULT) !Range(LastHitter(Myself),0) THEN RESPONSE #100 DisplayStringHead(Myself,969996) // You there! Stop and throw down your weapons. SetInterrupt(FALSE) RunAwayFrom(LastAttackerOf(Myself),45) SetInterrupt(TRUE) END IF HaveSpell(3101) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") HPPercentLT(Myself,25) OR(2) CheckStatGT(Myself,11,MAXHITPOINTS) LevelLT(Myself,3) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) Spell(Myself,3101) END IF HaveSpell(3101) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") HPPercentLT(Myself,50) OR(2) CheckStatGT(Myself,16,MAXHITPOINTS) LevelLT(Myself,3) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) Spell(Myself,3101) END IF HPPercentLT(Myself,36) HasItem("POTN52",Myself) // Potion of Extra Healing CheckStatGT(Myself,26,MAXHITPOINTS) See(NearestEnemyOf(Myself)) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN52",Myself) // Potion of Extra Healing DisplayStringHead(Myself,30674) // Potion of Extra Healing END IF HPPercentLT(Myself,51) HasItem("POTN08",Myself) // Potion of Healing CheckStatGT(Myself,17,MAXHITPOINTS) See(NearestEnemyOf(Myself)) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN08",Myself) // Potion of Healing DisplayStringHead(Myself,6990) // Potion of Healing END IF HPPercentLT(Myself,26) HasItem("POTN08",Myself) // Potion of Healing See(NearestEnemyOf(Myself)) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN08",Myself) // Potion of Healing DisplayStringHead(Myself,6990) // Potion of Healing END IF !GlobalTimerNotExpired("SHOUTED","LOCALS") Global("REDO2020","LOCALS",0) HPPercentLT(Myself,51) OR(2) !HasItem("POTN08",Myself) // Potion of Healing GlobalGT("HP_ITEM","LOCALS",0) OR(2) GlobalGT("HP_ITEM","LOCALS",0) !HasItem("POTN52",Myself) // Potion of Extra Healing THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) IncrementGlobal("REDO2020","LOCALS",1) Shout(2020) DisplayStringHead(Myself,969978) // Injured Continue() END IF !GlobalTimerNotExpired("SHOUTED","LOCALS") GlobalGT("REDO2020","LOCALS",0) GlobalLT("REDO2020","LOCALS",10) HPPercentLT(Myself,51) OR(2) !HasItem("POTN08",Myself) // Potion of Healing GlobalGT("HP_ITEM","LOCALS",0) OR(2) GlobalGT("HP_ITEM","LOCALS",0) !HasItem("POTN52",Myself) // Potion of Extra Healing THEN RESPONSE #100 SetGlobalTimer("SHOUTED","LOCALS",6) IncrementGlobal("REDO2020","LOCALS",1) Shout(2020) Continue() END IF GlobalGT("REDO2020","LOCALS",9) THEN RESPONSE #100 SetGlobal("REDO2020","LOCALS",0) Continue() END IF GlobalGT("REDO2020","LOCALS",0) GlobalLT("REDO2020","LOCALS",10) HPPercentGT(Myself,50) THEN RESPONSE #100 SetGlobal("REDO2020","LOCALS",0) Continue() END IF HPPercentLT(Myself,75) HaveSpell(3101) OR(2) CheckStatGT(Myself,32,MAXHITPOINTS) LevelLT(Myself,5) !See([EVILCUTOFF]) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) Spell(Myself,3101) END IF HPPercentLT(Myself,60) HasItem("POTN52",Myself) // Potion of Extra Healing CheckStatGT(Myself,55,MAXHITPOINTS) Detect(NearestEnemyOf(Myself)) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN52",Myself) // Potion of Extra Healing DisplayStringHead(Myself,30674) // Potion of Extra Healing END IF HPPercentLT(Myself,70) HasItem("POTN08",Myself) // Potion of Healing CheckStatGT(Myself,24,MAXHITPOINTS) Detect(NearestEnemyOf(Myself)) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN08",Myself) // Potion of Healing DisplayStringHead(Myself,6990) // Potion of Healing END IF HPPercentLT(Myself,60) HasItemEquiped("POTN17",Myself) // Elixir of Health CheckStatGT(Myself,24,MAXHITPOINTS) Detect(NearestEnemyOf(Myself)) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) UseItem("POTN17",Myself) // Elixir of Health DisplayStringHead(Myself,7011) // Elixir of Health END IF OR(6) Heard(NearestMyGroupOfType([PC]),2000) Heard(SecondNearestMyGroupOfType([PC]),2000) Heard(ThirdNearestMyGroupOfType([PC]),2000) Heard(FourthNearestMyGroupOfType([PC]),2000) Heard(FifthNearestMyGroupOfType([PC]),2000) Heard(SixthNearestMyGroupOfType([PC]),2000) HasItem("POTN20",Myself) // Antidote !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN20",LastHeardBy(Myself)) // Antidote DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2000) Heard(SecondNearestMyGroupOfType([PC]),2000) Heard(ThirdNearestMyGroupOfType([PC]),2000) Heard(FourthNearestMyGroupOfType([PC]),2000) Heard(FifthNearestMyGroupOfType([PC]),2000) Heard(SixthNearestMyGroupOfType([PC]),2000) !HasItem("POTN20",Myself) // Antidote HasItem("POTN17",Myself) // Elixir of Health !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN17",LastHeardBy(Myself)) // Elixir of Health DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF Global("HEALER","LOCALS",1) OR(6) Heard(NearestMyGroupOfType([PC]),2000) Heard(SecondNearestMyGroupOfType([PC]),2000) Heard(ThirdNearestMyGroupOfType([PC]),2000) Heard(FourthNearestMyGroupOfType([PC]),2000) Heard(FifthNearestMyGroupOfType([PC]),2000) Heard(SixthNearestMyGroupOfType([PC]),2000) HaveSpell(INNATE_SLOW_POISON) !GlobalTimerNotExpired("NOHEAL","GLOBAL") StateCheck(LastHeardBy(Myself),STATE_POISONED) HPPercentLT(LastHeardBy(Myself),51) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) Range(LastHeardBy(Myself),10) OR(2) !AttackedBy(NearestEnemyOf(Myself),MELEE) !Range(NearestEnemyOf(Myself),2) CheckStatLT(Myself,76,SPELLFAILUREINNATE) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) IncrementGlobal("NOHEAL","GLOBAL",1) Spell(LastHeardBy(Myself),INNATE_SLOW_POISON) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2018) Heard(SecondNearestMyGroupOfType([PC]),2018) Heard(ThirdNearestMyGroupOfType([PC]),2018) Heard(FourthNearestMyGroupOfType([PC]),2018) Heard(FifthNearestMyGroupOfType([PC]),2018) Heard(SixthNearestMyGroupOfType([PC]),2018) HaveSpell(INNATE_CURE_LIGHT_WOUNDS) HPPercentLT(LastHeardBy(Myself),26) HPPercentGT(Myself,51) !GlobalTimerNotExpired("SPL_CAST","LOCALS") !GlobalTimerNotExpired("NOHEAL","GLOBAL") CheckStatGT(LastHeardBy(Myself),9,MAXHITPOINTS) InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) Range(LastHeardBy(Myself),10) OR(2) !AttackedBy(NearestEnemyOf(Myself),MELEE) !Range(NearestEnemyOf(Myself),2) CheckStatLT(Myself,76,SPELLFAILUREINNATE) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) Spell(LastHeardBy(Myself),INNATE_CURE_LIGHT_WOUNDS) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2018) Heard(SecondNearestMyGroupOfType([PC]),2018) Heard(ThirdNearestMyGroupOfType([PC]),2018) Heard(FourthNearestMyGroupOfType([PC]),2018) Heard(FifthNearestMyGroupOfType([PC]),2018) Heard(SixthNearestMyGroupOfType([PC]),2018) HPPercentLT(LastHeardBy(Myself),26) CheckStatLT(LastHeardBy(Myself),29,MAXHITPOINTS) HasItem("POTN08",Myself) // Potion of Healing !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN08",LastHeardBy(Myself)) // Potion of Healing DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2018) Heard(SecondNearestMyGroupOfType([PC]),2018) Heard(ThirdNearestMyGroupOfType([PC]),2018) Heard(FourthNearestMyGroupOfType([PC]),2018) Heard(FifthNearestMyGroupOfType([PC]),2018) Heard(SixthNearestMyGroupOfType([PC]),2018) HPPercentLT(LastHeardBy(Myself),26) HasItem("POTN52",Myself) // Potion of Extra Healing CheckStatGT(LastHeardBy(Myself),29,MAXHITPOINTS) !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN52",LastHeardBy(Myself)) // Potion of Extra Healing DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2018) Heard(SecondNearestMyGroupOfType([PC]),2018) Heard(ThirdNearestMyGroupOfType([PC]),2018) Heard(FourthNearestMyGroupOfType([PC]),2018) Heard(FifthNearestMyGroupOfType([PC]),2018) Heard(SixthNearestMyGroupOfType([PC]),2018) HPPercentLT(LastHeardBy(Myself),26) HasItem("POTN08",Myself) // Potion of Healing OR(3) CheckStatGT(LastHeardBy(Myself),9,MAXHITPOINTS) CheckStat(LastHeardBy(Myself),3,LEVEL) CheckStatLT(LastHeardBy(Myself),3,LEVEL) !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN08",LastHeardBy(Myself)) // Potion of Healing DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2020) Heard(SecondNearestMyGroupOfType([PC]),2020) Heard(ThirdNearestMyGroupOfType([PC]),2020) Heard(FourthNearestMyGroupOfType([PC]),2020) Heard(FifthNearestMyGroupOfType([PC]),2020) Heard(SixthNearestMyGroupOfType([PC]),2020) HPPercentLT(LastHeardBy(Myself),51) HasItem("POTN08",Myself) // Potion of Healing CheckStatLT(LastHeardBy(Myself),49,MAXHITPOINTS) !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN08",LastHeardBy(Myself)) // Potion of Healing DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2020) Heard(SecondNearestMyGroupOfType([PC]),2020) Heard(ThirdNearestMyGroupOfType([PC]),2020) Heard(FourthNearestMyGroupOfType([PC]),2020) Heard(FifthNearestMyGroupOfType([PC]),2020) Heard(SixthNearestMyGroupOfType([PC]),2020) HPPercentLT(LastHeardBy(Myself),51) HasItem("POTN52",Myself) // Potion of Extra Healing CheckStatGT(LastHeardBy(Myself),48,MAXHITPOINTS) !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN52",LastHeardBy(Myself)) // Potion of Extra Healing DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF OR(6) Heard(NearestMyGroupOfType([PC]),2020) Heard(SecondNearestMyGroupOfType([PC]),2020) Heard(ThirdNearestMyGroupOfType([PC]),2020) Heard(FourthNearestMyGroupOfType([PC]),2020) Heard(FifthNearestMyGroupOfType([PC]),2020) Heard(SixthNearestMyGroupOfType([PC]),2020) HPPercentLT(LastHeardBy(Myself),51) HasItem("POTN08",Myself) // Potion of Healing OR(3) CheckStatGT(LastHeardBy(Myself),14,MAXHITPOINTS) CheckStat(LastHeardBy(Myself),3,LEVEL) CheckStatLT(LastHeardBy(Myself),3,LEVEL) !GlobalTimerNotExpired("NOHEAL","GLOBAL") GlobalLT("HP_ITEM","LOCALS",1) InParty(LastHeardBy(Myself)) OR(3) !StateCheck(LastHeardBy(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) LOS(LastHeardBy(Myself),8) !InventoryFull(LastHeardBy(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,2254) // Yes, here you go. Wait(2) ActionOverride(LastHeardBy(Myself),Wait(2)) GiveItem("POTN08",LastHeardBy(Myself)) // Potion of Healing DisplayStringHead(LastHeardBy(Myself),969974) // Thank you for helping us. IncrementGlobal("NOHEAL","GLOBAL",1) END IF HasItem("GBERRY",Myself) // Good Berry GlobalLT("HP_ITEM","LOCALS",1) HPPercentLT(Myself,100) CombatCounter(0) ActionListEmpty() OR(2) HPPercentGT(Myself,75) GlobalTimerExpired("BERRIES","LOCALS") THEN RESPONSE #100 UseItem("GBERRY",Myself) // Good Berry DisplayStringHead(Myself,969989) // Goodberry END IF GlobalLT("HP_ITEM","LOCALS",1) HPPercentLT(Myself,76) HasItem("GBERRY",Myself) // Good Berry !GlobalTimerNotExpired("BERRIES","LOCALS") ActionListEmpty() CombatCounter(0) !Detect([EVILCUTOFF]) THEN RESPONSE #100 SetGlobalTimer("BERRIES","LOCALS",9) Continue() END IF HasItem("GBERRY",Myself) // Good Berry GlobalLT("HP_ITEM","LOCALS",1) HPPercent(Myself,100) ActionListEmpty() CombatCounter(0) HPPercentLT(MostDamagedOf(Myself),100) !HasItem("GBERRY",MostDamagedOf(Myself)) // Good Berry LOS(MostDamagedOf(Myself),8) !StateCheck(MostDamagedOf(Myself),STATE_PANIC) !StateCheck(MostDamagedOf(Myself),STATE_CONFUSED) !StateCheck(MostDamagedOf(Myself),STATE_SLEEPING) !StateCheck(MostDamagedOf(Myself),STATE_STUNNED) !InventoryFull(MostDamagedOf(Myself)) THEN RESPONSE #100 DisplayStringHead(Myself,969984) // Yes, here you go. Wait(1) DisplayStringHead(MostDamagedOf(Myself),969964) // Thank you for helping us. GiveItem("GBERRY",MostDamagedOf(Myself)) // Good Berry Continue() END IF ActionListEmpty() OR(2) Class(Myself,THIEF_ALL) Class(Myself,MONK) !ModalState(DETECTTRAPS) ModalState(STEALTH) CombatCounter(0) THEN RESPONSE #100 SetGlobalTimer("GH_THIEF","LOCALS",18) FindTraps() END IF ActionListEmpty() CheckStatGT(Myself,50,HIDEINSHADOWS) !StateCheck(Myself,0x400010) GlobalTimerExpired("GH_THIEF","LOCALS") CombatCounter(0) HPPercent(Myself,100) THEN RESPONSE #100 Hide() END IF ActionListEmpty() CheckStatGT(Myself,50,HIDEINSHADOWS) !StateCheck(Myself,0x400010) GlobalTimerExpired("GH_THIEF","LOCALS") CombatCounter(0) HPPercentGT(Myself,75) HPPercentLT(Myself,100) !PartyHasItem("GBERRY") // Good Berry THEN RESPONSE #100 Hide() END IF HotKey(N) !GlobalTimerNotExpired("SET_TRAP","LOCALS") THEN RESPONSE #100 SetGlobalTimer("SET_TRAP","LOCALS",18) END IF HaveSpellRES("SPCL414") // Set Special Snare !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalTimerNotExpired("SET_TRAP","LOCALS") CheckStatGT(Myself,25,SETTRAPS) Class(Myself,THIEF_ALL) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SpellRES("SPCL414",Myself) // Set Special Snare END IF HaveSpellRES("SPCL412") // Set Snare !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalTimerNotExpired("SET_TRAP","LOCALS") CheckStatGT(Myself,25,SETTRAPS) Class(Myself,THIEF_ALL) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SpellRES("SPCL412",Myself) // Set Snare END //////////// THREAT ASSESSMENT //////////////////////// IF ActionListEmpty() See([EVILCUTOFF]) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",1) Continue() END IF ActionListEmpty() OR(10) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) HPGT(FourthNearestEnemyOf(Myself),50) HPGT(FifthNearestEnemyOf(Myself),50) HPGT(SixthNearestEnemyOf(Myself),50) HPGT(SeventhNearestEnemyOf(Myself),50) HPGT(EighthNearestEnemyOf(Myself),50) HPGT(NinthNearestEnemyOf(Myself),50) HPGT(TenthNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) OR(10) HPGT(NearestEnemyOf(Myself),30) HPGT(SecondNearestEnemyOf(Myself),30) HPGT(ThirdNearestEnemyOf(Myself),30) HPGT(FourthNearestEnemyOf(Myself),30) HPGT(FifthNearestEnemyOf(Myself),30) HPGT(SixthNearestEnemyOf(Myself),30) HPGT(SeventhNearestEnemyOf(Myself),30) HPGT(EighthNearestEnemyOf(Myself),30) HPGT(NinthNearestEnemyOf(Myself),30) HPGT(TenthNearestEnemyOf(Myself),30) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),35) HPGT(SecondNearestEnemyOf(Myself),35) HPGT(ThirdNearestEnemyOf(Myself),35) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),25) HPGT(SecondNearestEnemyOf(Myself),25) HPGT(ThirdNearestEnemyOf(Myself),25) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),20) HPGT(SecondNearestEnemyOf(Myself),20) HPGT(ThirdNearestEnemyOf(Myself),20) HPGT(FourthNearestEnemyOf(Myself),20) HPGT(FifthNearestEnemyOf(Myself),20) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),15) HPGT(SecondNearestEnemyOf(Myself),15) HPGT(ThirdNearestEnemyOf(Myself),15) HPGT(FourthNearestEnemyOf(Myself),15) HPGT(FifthNearestEnemyOf(Myself),15) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() OR(6) See(NearestEnemyOfType([EVILCUTOFF.0.DOPPLEGANGER])) See(NearestEnemyOfType([EVILCUTOFF.0.SPIDER])) See(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE])) See(NearestEnemyOfType([EVILCUTOFF.0.SPECTRE])) See(NearestEnemyOfType([EVILCUTOFF.0.WRAITH])) See(NearestEnemyOfType([EVILCUTOFF.0.MIST])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) OR(6) See(NearestEnemyOfType([EVILCUTOFF.0.DOPPLEGANGER])) See(NearestEnemyOfType([EVILCUTOFF.0.SPIDER])) See(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE])) See(NearestEnemyOfType([EVILCUTOFF.0.0.OGRE_MAGE])) See(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW])) See(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL])) See(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() OR(10) HPGT(NearestEnemyOf(Myself),75) HPGT(SecondNearestEnemyOf(Myself),75) HPGT(ThirdNearestEnemyOf(Myself),75) HPGT(FourthNearestEnemyOf(Myself),75) HPGT(FifthNearestEnemyOf(Myself),75) HPGT(SixthNearestEnemyOf(Myself),75) HPGT(SeventhNearestEnemyOf(Myself),75) HPGT(EighthNearestEnemyOf(Myself),75) HPGT(NinthNearestEnemyOf(Myself),75) HPGT(TenthNearestEnemyOf(Myself),75) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) OR(10) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) HPGT(FourthNearestEnemyOf(Myself),50) HPGT(FifthNearestEnemyOf(Myself),50) HPGT(SixthNearestEnemyOf(Myself),50) HPGT(SeventhNearestEnemyOf(Myself),50) HPGT(EighthNearestEnemyOf(Myself),50) HPGT(NinthNearestEnemyOf(Myself),50) HPGT(TenthNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),35) HPGT(SecondNearestEnemyOf(Myself),35) HPGT(ThirdNearestEnemyOf(Myself),35) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),35) HPGT(SecondNearestEnemyOf(Myself),35) HPGT(ThirdNearestEnemyOf(Myself),35) HPGT(FourthNearestEnemyOf(Myself),35) HPGT(FifthNearestEnemyOf(Myself),35) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),25) HPGT(SecondNearestEnemyOf(Myself),25) HPGT(ThirdNearestEnemyOf(Myself),25) HPGT(FourthNearestEnemyOf(Myself),25) HPGT(FifthNearestEnemyOf(Myself),25) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() OR(8) See(NearestEnemyOfType([EVILCUTOFF.0.BASILISK])) See(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC])) See(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA])) See(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK])) See(NearestEnemyOfType([EVILCUTOFF.0.GOLEM])) See(NearestEnemyOfType([EVILCUTOFF.0.GITHYANKI])) See(NearestEnemyOfType([EVILCUTOFF.0.WYVERN])) See(NearestEnemyOfType([EVILCUTOFF.0.GENIE])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) OR(7) See(NearestEnemyOfType([EVILCUTOFF.0.SPECTRE])) See(NearestEnemyOfType([EVILCUTOFF.0.WRAITH])) See(NearestEnemyOfType([EVILCUTOFF.0.MIST])) See(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK])) See(NearestEnemyOfType([EVILCUTOFF.0.GOLEM])) See(NearestEnemyOfType([EVILCUTOFF.0.WYVERN])) See(NearestEnemyOfType([EVILCUTOFF.0.GENIE])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() OR(10) HPGT(NearestEnemyOf(Myself),100) HPGT(SecondNearestEnemyOf(Myself),100) HPGT(ThirdNearestEnemyOf(Myself),100) HPGT(FourthNearestEnemyOf(Myself),100) HPGT(FifthNearestEnemyOf(Myself),100) HPGT(SixthNearestEnemyOf(Myself),100) HPGT(SeventhNearestEnemyOf(Myself),100) HPGT(EighthNearestEnemyOf(Myself),100) HPGT(NinthNearestEnemyOf(Myself),100) HPGT(TenthNearestEnemyOf(Myself),100) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) OR(10) HPGT(NearestEnemyOf(Myself),75) HPGT(SecondNearestEnemyOf(Myself),75) HPGT(ThirdNearestEnemyOf(Myself),75) HPGT(FourthNearestEnemyOf(Myself),75) HPGT(FifthNearestEnemyOf(Myself),75) HPGT(SixthNearestEnemyOf(Myself),75) HPGT(SeventhNearestEnemyOf(Myself),75) HPGT(EighthNearestEnemyOf(Myself),75) HPGT(NinthNearestEnemyOf(Myself),75) HPGT(TenthNearestEnemyOf(Myself),75) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),75) HPGT(SecondNearestEnemyOf(Myself),75) HPGT(ThirdNearestEnemyOf(Myself),75) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) HPGT(FourthNearestEnemyOf(Myself),50) HPGT(FifthNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),35) HPGT(SecondNearestEnemyOf(Myself),35) HPGT(ThirdNearestEnemyOf(Myself),35) HPGT(FourthNearestEnemyOf(Myself),35) HPGT(FifthNearestEnemyOf(Myself),35) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() OR(6) See(NearestEnemyOfType([EVILCUTOFF.0.VAMPIRE])) See(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER])) See(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER])) See(NearestEnemyOfType([EVILCUTOFF.0.DRAGON])) See(NearestEnemyOfType([EVILCUTOFF.0.DEMILICH])) See(NearestEnemyOfType([EVILCUTOFF.0.LICH])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() CheckStatLT(Myself,7,LEVEL) CheckStatLT(Myself,7,LEVEL2) OR(6) See(NearestEnemyOfType([EVILCUTOFF.0.BASILISK])) See(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC])) See(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA])) See(NearestEnemyOfType([EVILCUTOFF.0.VAMPIRE])) See(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER])) See(NearestEnemyOfType([EVILCUTOFF.0.DRAGON])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() CombatCounter(0) !See([EVILCUTOFF]) GlobalGT("THREAT","LOCALS",0) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",0) END IF ActionListEmpty() See([EVILCUTOFF]) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",1) Continue() END IF ActionListEmpty() OR(10) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) HPGT(FourthNearestEnemyOf(Myself),50) HPGT(FifthNearestEnemyOf(Myself),50) HPGT(SixthNearestEnemyOf(Myself),50) HPGT(SeventhNearestEnemyOf(Myself),50) HPGT(EighthNearestEnemyOf(Myself),50) HPGT(NinthNearestEnemyOf(Myself),50) HPGT(TenthNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),35) HPGT(SecondNearestEnemyOf(Myself),35) HPGT(ThirdNearestEnemyOf(Myself),35) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),20) HPGT(SecondNearestEnemyOf(Myself),20) HPGT(ThirdNearestEnemyOf(Myself),20) HPGT(FourthNearestEnemyOf(Myself),20) HPGT(FifthNearestEnemyOf(Myself),20) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() OR(6) See(NearestEnemyOfType([EVILCUTOFF.0.DOPPLEGANGER])) See(NearestEnemyOfType([EVILCUTOFF.0.SPIDER])) See(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE])) See(NearestEnemyOfType([EVILCUTOFF.0.SPECTRE])) See(NearestEnemyOfType([EVILCUTOFF.0.WRAITH])) See(NearestEnemyOfType([EVILCUTOFF.0.MIST])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",2) Continue() END IF ActionListEmpty() OR(10) HPGT(NearestEnemyOf(Myself),75) HPGT(SecondNearestEnemyOf(Myself),75) HPGT(ThirdNearestEnemyOf(Myself),75) HPGT(FourthNearestEnemyOf(Myself),75) HPGT(FifthNearestEnemyOf(Myself),75) HPGT(SixthNearestEnemyOf(Myself),75) HPGT(SeventhNearestEnemyOf(Myself),75) HPGT(EighthNearestEnemyOf(Myself),75) HPGT(NinthNearestEnemyOf(Myself),75) HPGT(TenthNearestEnemyOf(Myself),75) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),35) HPGT(SecondNearestEnemyOf(Myself),35) HPGT(ThirdNearestEnemyOf(Myself),35) HPGT(FourthNearestEnemyOf(Myself),35) HPGT(FifthNearestEnemyOf(Myself),35) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() OR(8) See(NearestEnemyOfType([EVILCUTOFF.0.BASILISK])) See(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC])) See(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA])) See(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK])) See(NearestEnemyOfType([EVILCUTOFF.0.GOLEM])) See(NearestEnemyOfType([EVILCUTOFF.0.GITHYANKI])) See(NearestEnemyOfType([EVILCUTOFF.0.WYVERN])) See(NearestEnemyOfType([EVILCUTOFF.0.GENIE])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",3) Continue() END IF ActionListEmpty() OR(10) HPGT(NearestEnemyOf(Myself),100) HPGT(SecondNearestEnemyOf(Myself),100) HPGT(ThirdNearestEnemyOf(Myself),100) HPGT(FourthNearestEnemyOf(Myself),100) HPGT(FifthNearestEnemyOf(Myself),100) HPGT(SixthNearestEnemyOf(Myself),100) HPGT(SeventhNearestEnemyOf(Myself),100) HPGT(EighthNearestEnemyOf(Myself),100) HPGT(NinthNearestEnemyOf(Myself),100) HPGT(TenthNearestEnemyOf(Myself),100) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],2) OR(3) HPGT(NearestEnemyOf(Myself),75) HPGT(SecondNearestEnemyOf(Myself),75) HPGT(ThirdNearestEnemyOf(Myself),75) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() NumCreatureGT([EVILCUTOFF],4) OR(5) HPGT(NearestEnemyOf(Myself),50) HPGT(SecondNearestEnemyOf(Myself),50) HPGT(ThirdNearestEnemyOf(Myself),50) HPGT(FourthNearestEnemyOf(Myself),50) HPGT(FifthNearestEnemyOf(Myself),50) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() OR(6) See(NearestEnemyOfType([EVILCUTOFF.0.VAMPIRE])) See(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER])) See(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER])) See(NearestEnemyOfType([EVILCUTOFF.0.DRAGON])) See(NearestEnemyOfType([EVILCUTOFF.0.DEMILICH])) See(NearestEnemyOfType([EVILCUTOFF.0.LICH])) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",4) Continue() END IF ActionListEmpty() CombatCounter(0) !See([EVILCUTOFF]) GlobalGT("THREAT","LOCALS",0) THEN RESPONSE #100 SetGlobal("THREAT","LOCALS",0) END IF ActionListEmpty() CombatCounter(0) !See(NearestEnemyOf(Myself)) THEN RESPONSE #100 END IF See([EVILCUTOFF]) Global("THREAT","LOCALS",0) THEN RESPONSE #100 END IF OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") AttackedBy([ANYTHING],DEFAULT) Range(LastAttackerOf(Myself),4) !HasWeaponEquiped(Myself) THEN RESPONSE #100 EquipMostDamagingMelee() Continue() END IF OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") OR(2) Global("USERANGE","LOCALS",1) Global("MEL_MISS","LOCALS",1) !CombatCounter(0) Range(NearestEnemyOf(Myself),4) THEN RESPONSE #100 SetGlobal("MEL_MISS","LOCALS",0) EquipMostDamagingMelee() Continue() END IF See(Myself) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],9) !InParty(TenthNearestEnemyOf(Myself)) !StateCheck(TenthNearestEnemyOf(Myself),STATE_CHARMED) HPGT(TenthNearestEnemyOf(Myself),5) !StateCheck(TenthNearestEnemyOf(Myself),0x400010) !StateCheck(TenthNearestEnemyOf(Myself),0x102029) !Class(TenthNearestEnemyOf(Myself),INNOCENT) See(TenthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],8) !InParty(NinthNearestEnemyOf(Myself)) !StateCheck(NinthNearestEnemyOf(Myself),STATE_CHARMED) HPGT(NinthNearestEnemyOf(Myself),5) !StateCheck(NinthNearestEnemyOf(Myself),0x400010) !StateCheck(NinthNearestEnemyOf(Myself),0x102029) !Class(NinthNearestEnemyOf(Myself),INNOCENT) See(NinthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],7) !InParty(EighthNearestEnemyOf(Myself)) !StateCheck(EighthNearestEnemyOf(Myself),STATE_CHARMED) HPGT(EighthNearestEnemyOf(Myself),5) !StateCheck(EighthNearestEnemyOf(Myself),0x400010) !StateCheck(EighthNearestEnemyOf(Myself),0x102029) !Class(EighthNearestEnemyOf(Myself),INNOCENT) See(EighthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],6) !InParty(SeventhNearestEnemyOf(Myself)) !StateCheck(SeventhNearestEnemyOf(Myself),STATE_CHARMED) HPGT(SeventhNearestEnemyOf(Myself),5) !StateCheck(SeventhNearestEnemyOf(Myself),0x400010) !StateCheck(SeventhNearestEnemyOf(Myself),0x102029) !Class(SeventhNearestEnemyOf(Myself),INNOCENT) See(SeventhNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],5) !InParty(SixthNearestEnemyOf(Myself)) !StateCheck(SixthNearestEnemyOf(Myself),STATE_CHARMED) HPGT(SixthNearestEnemyOf(Myself),5) !StateCheck(SixthNearestEnemyOf(Myself),0x400010) !StateCheck(SixthNearestEnemyOf(Myself),0x102029) !Class(SixthNearestEnemyOf(Myself),INNOCENT) See(SixthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],4) !InParty(FifthNearestEnemyOf(Myself)) !StateCheck(FifthNearestEnemyOf(Myself),STATE_CHARMED) HPGT(FifthNearestEnemyOf(Myself),5) !StateCheck(FifthNearestEnemyOf(Myself),0x400010) !StateCheck(FifthNearestEnemyOf(Myself),0x102029) !Class(FifthNearestEnemyOf(Myself),INNOCENT) See(FifthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],3) !InParty(FourthNearestEnemyOf(Myself)) !StateCheck(FourthNearestEnemyOf(Myself),STATE_CHARMED) HPGT(FourthNearestEnemyOf(Myself),5) !StateCheck(FourthNearestEnemyOf(Myself),0x400010) !StateCheck(FourthNearestEnemyOf(Myself),0x102029) !Class(FourthNearestEnemyOf(Myself),INNOCENT) See(FourthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],2) !InParty(ThirdNearestEnemyOf(Myself)) !StateCheck(ThirdNearestEnemyOf(Myself),STATE_CHARMED) HPGT(ThirdNearestEnemyOf(Myself),5) !StateCheck(ThirdNearestEnemyOf(Myself),0x400010) !StateCheck(ThirdNearestEnemyOf(Myself),0x102029) !Class(ThirdNearestEnemyOf(Myself),INNOCENT) See(ThirdNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],1) !InParty(SecondNearestEnemyOf(Myself)) !StateCheck(SecondNearestEnemyOf(Myself),STATE_CHARMED) HPGT(SecondNearestEnemyOf(Myself),5) !StateCheck(SecondNearestEnemyOf(Myself),0x400010) !StateCheck(SecondNearestEnemyOf(Myself),0x102029) !Class(SecondNearestEnemyOf(Myself),INNOCENT) See(SecondNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],0) !InParty(NearestEnemyOf(Myself)) !StateCheck(NearestEnemyOf(Myself),STATE_CHARMED) HPGT(NearestEnemyOf(Myself),5) !StateCheck(NearestEnemyOf(Myself),0x400010) !StateCheck(NearestEnemyOf(Myself),0x102029) !Class(NearestEnemyOf(Myself),INNOCENT) See(NearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK])) !InParty(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.UMBERHULK])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.UNDEAD])) !InParty(NearestEnemyOfType([EVILCUTOFF.UNDEAD])) HPGT(NearestEnemyOfType([EVILCUTOFF.UNDEAD]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.UNDEAD]),INNOCENT) OR(7) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.SKELETON])) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.ZOMBIE])) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD])) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.SHADOW])) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.MIST])) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.SPECTRE])) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.WRAITH])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE])) !InParty(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.LYCANTHROPE])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.FIGHTER_ALL])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.FIGHTER_ALL]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.FIGHTER_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.FIGHTER_ALL]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.FIGHTER_ALL]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.FIGHTER_ALL]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.FIGHTER_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.GENIE])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.GENIE]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.GENIE]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.GENIE]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.GENIE]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.GENIE])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.THIEF_ALL])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.THIEF_ALL]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.THIEF_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.THIEF_ALL]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.THIEF_ALL]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.THIEF_ALL]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.THIEF_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.BASILISK])) !InParty(NearestEnemyOfType([EVILCUTOFF.0.BASILISK])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.BASILISK]),0) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.BASILISK]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.BASILISK]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.BASILISK]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.BASILISK])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.RAKSHASA])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.RANGER_ALL])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.RANGER_ALL]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.RANGER_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.RANGER_ALL]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.RANGER_ALL]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.RANGER_ALL]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.RANGER_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.BARD_ALL])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.BARD_ALL]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.BARD_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.BARD_ALL]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.BARD_ALL]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.BARD_ALL]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.BARD_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.DEMONIC])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.PALADIN_ALL])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.PALADIN_ALL]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.PALADIN_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.PALADIN_ALL]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.PALADIN_ALL]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.PALADIN_ALL]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.PALADIN_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.SOLAR])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.SOLAR]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.SOLAR]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.SOLAR]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.SOLAR]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.SOLAR])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.ANTISOLAR])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.ANTISOLAR]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.ANTISOLAR]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.ANTISOLAR]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.ANTISOLAR]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.ANTISOLAR])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.DRUID_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.UNDEAD.VAMPIRE])) !InParty(NearestEnemyOfType([EVILCUTOFF.UNDEAD.VAMPIRE])) HPGT(NearestEnemyOfType([EVILCUTOFF.UNDEAD.VAMPIRE]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD.VAMPIRE]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD.VAMPIRE]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.UNDEAD.VAMPIRE]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.VAMPIRE])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.PLANATAR])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.PLANATAR]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.PLANATAR]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.PLANATAR]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.PLANATAR]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.PLANATAR])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.DARKPLANATAR])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.DARKPLANATAR]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.DARKPLANATAR]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.DARKPLANATAR]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.DARKPLANATAR]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.DARKPLANATAR])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER])) !InParty(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.BEHOLDER])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER])) !InParty(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.MIND_FLAYER])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.UNDEAD.DEMILICH])) !InParty(NearestEnemyOfType([EVILCUTOFF.UNDEAD.DEMILICH])) HPGT(NearestEnemyOfType([EVILCUTOFF.UNDEAD.DEMILICH]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD.DEMILICH]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD.DEMILICH]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.UNDEAD.DEMILICH]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.DEMILICH])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.UNDEAD.LICH])) !InParty(NearestEnemyOfType([EVILCUTOFF.UNDEAD.LICH])) HPGT(NearestEnemyOfType([EVILCUTOFF.UNDEAD.LICH]),5) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD.LICH]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.UNDEAD.LICH]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.UNDEAD.LICH]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.UNDEAD.LICH])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([EVILCUTOFF.0.DRAGON])) !InParty(NearestEnemyOfType([EVILCUTOFF.0.DRAGON])) HPGT(NearestEnemyOfType([EVILCUTOFF.0.DRAGON]),0) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.DRAGON]),0x400010) !StateCheck(NearestEnemyOfType([EVILCUTOFF.0.DRAGON]),0x102029) !Class(NearestEnemyOfType([EVILCUTOFF.0.DRAGON]),INNOCENT) See(NearestEnemyOfType([EVILCUTOFF.0.DRAGON])) False() THEN RESPONSE #100 Continue() END IF HasItemEquiped("BOOT12",Myself) // Gargoyle Boots !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",0) GlobalLT("ZBOOT12","LOCALS",2) !Global("HP_ITEM","LOCALS",2) CheckStatLT(Myself,1,STONESKINS) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) UseItem("BOOT12",Myself) // Gargoyle Boots IncrementGlobal("ZBOOT12","LOCALS",1) DisplayStringHead(Myself,31177) // Gargoyle Boots END IF HasItemEquiped("POTN09",Myself) // Potion of Heroism !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) GlobalGT("THREAT","LOCALS",3) NumCreatureGT([EVILCUTOFF],4) Range(NearestEnemyOf(Myself),4) GlobalLT("HP_ITEM","LOCALS",1) !GlobalTimerNotExpired("GB_HERO","LOCALS") THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SetGlobalTimer("GB_HERO","LOCALS",600) UseItem("POTN09",Myself) // Potion of Heroism DisplayStringHead(Myself,6994) // Potion of Heroism END IF HasItemEquiped("POTN11",Myself) // Potion of Invulnerability !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) GlobalGT("THREAT","LOCALS",3) NumCreatureGT([EVILCUTOFF],4) Range(NearestEnemyOf(Myself),4) GlobalLT("HP_ITEM","LOCALS",1) !GlobalTimerNotExpired("GB_PotnInvuln","LOCALS") OR(6) CheckStatGT(Myself,0,ARMORCLASS) CheckStatGT(Myself,5,SAVEVSDEATH) CheckStatGT(Myself,5,SAVEVSWANDS) CheckStatGT(Myself,5,SAVEVSPOLY) CheckStatGT(Myself,5,SAVEVSBREATH) CheckStatGT(Myself,5,SAVEVSSPELL) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SetGlobalTimer("GB_PotnInvuln","LOCALS",300) UseItem("POTN11",Myself) // Potion of Invulnerability DisplayStringHead(Myself,6998) // Potion of Invulnerability END IF HasItemEquiped("POTN14",Myself) // Oil of Speed !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",3) NumCreatureGT([EVILCUTOFF],4) Range(NearestEnemyOf(Myself),4) GlobalLT("HP_ITEM","LOCALS",1) !StateCheck(Myself,STATE_HASTED) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,7008) // Oil of Speed UseItem("POTN14",Myself) // Oil of Speed END IF HasItemEquiped("POTN07",Myself) // Potion of Storm Giant Strength !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) GlobalGT("THREAT","LOCALS",3) OR(2) HPGT(NearestEnemyOf(Myself),100) NumCreatureGT([EVILCUTOFF],6) Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,24,STR) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,6989) // Potion of Storm Giant Strength UseItem("POTN07",Myself) // Potion of Storm Giant Strength END IF HasItemEquiped("POTN06",Myself) // Potion of Cloud Giant Strength !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) GlobalGT("THREAT","LOCALS",3) OR(2) HPGT(NearestEnemyOf(Myself),100) NumCreatureGT([EVILCUTOFF],6) Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,23,STR) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,6986) // Potion of Cloud Giant Strength UseItem("POTN06",Myself) // Potion of Cloud Giant Strength END IF HasItemEquiped("POTN05",Myself) // Potion of Fire Giant Strength !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) GlobalGT("THREAT","LOCALS",3) OR(2) HPGT(NearestEnemyOf(Myself),100) NumCreatureGT([EVILCUTOFF],6) Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,22,STR) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,6985) // Potion of Fire Giant Strength UseItem("POTN05",Myself) // Potion of Fire Giant Strength END IF HasItemEquiped("POTN04",Myself) // Potion of Frost Giant Strength !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) GlobalGT("THREAT","LOCALS",3) OR(2) HPGT(NearestEnemyOf(Myself),100) NumCreatureGT([EVILCUTOFF],6) Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,21,STR) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,6984) // Potion of Frost Giant Strength UseItem("POTN04",Myself) // Potion of Frost Giant Strength END IF HasItemEquiped("POTN19",Myself) // Potion of Agility !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) OR(2) GlobalGT("THREAT","LOCALS",2) HPPercentLT(Myself,50) !GlobalTimerNotExpired("DEXBOOST","LOCALS") AttackedBy([ANYTHING],DEFAULT) Range(LastAttackerOf(Myself),4) HPGT(LastAttackerOf(Myself),35) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SetGlobalTimer("DEXBOOST","LOCALS",900) DisplayStringHead(Myself,7016) // Potion of Agility UseItem("POTN19",Myself) // Potion of Agility END IF HasItemEquiped("POTN02",Myself) // Potion of Fire Resistance !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",2) GlobalLT("HP_ITEM","LOCALS",1) OR(4) Detect(NearestEnemyOfType([EVILCUTOFF.0.0.ELEMENTAL_FIRE])) Detect(NearestEnemyOfType([EVILCUTOFF.0.0.RED_DRAGON])) Detect(NearestEnemyOfType([EVILCUTOFF.0.0.GENIE_EFREETI])) Detect(NearestEnemyOfType([EVILCUTOFF.0.0.GENIE_NOBLE_EFREETI])) CheckStatLT(Myself,1,RESISTFIRE) CheckStatLT(Myself,1,RESISTMAGICFIRE) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,6975) // Potion of Fire Resistance UseItem("POTN02",Myself) // Potion of Fire Resistance END IF HasItemEquiped("POTN10",Myself) // Potion of Invisibility !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",2) GlobalLT("HP_ITEM","LOCALS",1) NumCreatureGT([EVILCUTOFF],2) !StateCheck(Myself,0x400010) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,6993) // Potion of Invisibility UseItem("POTN10",Myself) // Potion of Invisibility END IF HasItemEquiped("POTN12",Myself) // Potion of Stone Giant Strength !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",2) GlobalLT("HP_ITEM","LOCALS",1) OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) OR(2) HPGT(NearestEnemyOf(Myself),100) NumCreatureGT([EVILCUTOFF],6) Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,20,STR) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,7005) // Potion of Stone Giant Strength UseItem("POTN12",Myself) // Potion of Stone Giant Strength END IF HasItemEquiped("POTN03",Myself) // Potion of Hill Giant Strength !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",2) GlobalLT("HP_ITEM","LOCALS",1) OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) OR(2) HPGT(NearestEnemyOf(Myself),100) NumCreatureGT([EVILCUTOFF],6) Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,19,STR) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,6981) // Potion of Hill Giant Strength UseItem("POTN03",Myself) // Potion of Hill Giant Strength END IF HasItemEquiped("POTN44",Myself) // Potion of Strength !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",2) GlobalLT("HP_ITEM","LOCALS",1) OR(3) Class(Myself,FIGHTER_ALL) Class(Myself,PALADIN_ALL) Class(Myself,RANGER_ALL) OR(2) HPGT(NearestEnemyOf(Myself),100) NumCreatureGT([EVILCUTOFF],6) Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,18,STR) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,7103) // Potion of Strength UseItem("POTN44",Myself) // Potion of Strength END IF HasItemEquiped("AMUL15",Myself) // Shield Amulet !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",0) !GlobalTimerNotExpired("ekAMUL15","LOCALS") GlobalLT("HP_ITEM","LOCALS",1) NumCreatureGT([EVILCUTOFF],0) OR(2) NumCreatureGT([EVILCUTOFF],2) AttackedBy([ANYTHING],DEFAULT) CheckStatGT(Myself,4,ARMORCLASS) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SetGlobalTimer("ekAMUL15","LOCALS",300) UseItem("AMUL15",Myself) // Shield Amulet DisplayStringHead(Myself,6917) // Shield Amulet END IF See(Myself) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],0) !InParty(NearestEnemyOf(Myself)) HPGT(NearestEnemyOf(Myself),5) !StateCheck(NearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(NearestEnemyOf(Myself),0x400010) !StateCheck(NearestEnemyOf(Myself),0x102029) !Class(NearestEnemyOf(Myself),INNOCENT) See(NearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],1) !InParty(SecondNearestEnemyOf(Myself)) HPGT(SecondNearestEnemyOf(Myself),5) !StateCheck(SecondNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(SecondNearestEnemyOf(Myself),0x400010) !StateCheck(SecondNearestEnemyOf(Myself),0x102029) !Class(SecondNearestEnemyOf(Myself),INNOCENT) See(SecondNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],2) !InParty(ThirdNearestEnemyOf(Myself)) HPGT(ThirdNearestEnemyOf(Myself),5) !StateCheck(ThirdNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(ThirdNearestEnemyOf(Myself),0x400010) !StateCheck(ThirdNearestEnemyOf(Myself),0x102029) !Class(ThirdNearestEnemyOf(Myself),INNOCENT) See(ThirdNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],3) !InParty(FourthNearestEnemyOf(Myself)) HPGT(FourthNearestEnemyOf(Myself),5) !StateCheck(FourthNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(FourthNearestEnemyOf(Myself),0x400010) !StateCheck(FourthNearestEnemyOf(Myself),0x102029) !Class(FourthNearestEnemyOf(Myself),INNOCENT) See(FourthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],4) !InParty(FifthNearestEnemyOf(Myself)) HPGT(FifthNearestEnemyOf(Myself),5) !StateCheck(FifthNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(FifthNearestEnemyOf(Myself),0x400010) !StateCheck(FifthNearestEnemyOf(Myself),0x102029) !Class(FifthNearestEnemyOf(Myself),INNOCENT) See(FifthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],5) !InParty(SixthNearestEnemyOf(Myself)) HPGT(SixthNearestEnemyOf(Myself),5) !StateCheck(SixthNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(SixthNearestEnemyOf(Myself),0x400010) !StateCheck(SixthNearestEnemyOf(Myself),0x102029) !Class(SixthNearestEnemyOf(Myself),INNOCENT) See(SixthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],6) !InParty(SeventhNearestEnemyOf(Myself)) HPGT(SeventhNearestEnemyOf(Myself),5) !StateCheck(SeventhNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(SeventhNearestEnemyOf(Myself),0x400010) !StateCheck(SeventhNearestEnemyOf(Myself),0x102029) !Class(SeventhNearestEnemyOf(Myself),INNOCENT) See(SeventhNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],7) !InParty(EighthNearestEnemyOf(Myself)) HPGT(EighthNearestEnemyOf(Myself),5) !StateCheck(EighthNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(EighthNearestEnemyOf(Myself),0x400010) !StateCheck(EighthNearestEnemyOf(Myself),0x102029) !Class(EighthNearestEnemyOf(Myself),INNOCENT) See(EighthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],8) !InParty(NinthNearestEnemyOf(Myself)) HPGT(NinthNearestEnemyOf(Myself),5) !StateCheck(NinthNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(NinthNearestEnemyOf(Myself),0x400010) !StateCheck(NinthNearestEnemyOf(Myself),0x102029) !Class(NinthNearestEnemyOf(Myself),INNOCENT) See(NinthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],9) !InParty(TenthNearestEnemyOf(Myself)) HPGT(TenthNearestEnemyOf(Myself),5) !StateCheck(TenthNearestEnemyOf(Myself),STATE_CHARMED) !StateCheck(TenthNearestEnemyOf(Myself),0x400010) !StateCheck(TenthNearestEnemyOf(Myself),0x102029) !Class(TenthNearestEnemyOf(Myself),INNOCENT) See(TenthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(NearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(NearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(NearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(NearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(NearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(NearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(SecondNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(ThirdNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(FourthNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(FifthNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(SixthNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(SeventhNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(EigthNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(NinthNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL])) HPGT(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL]),5) !InParty(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL])) !StateCheck(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL]),STATE_CHARMED) !StateCheck(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x400010) !StateCheck(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL]),0x102029) !Class(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL]),INNOCENT) See(TenthNearestEnemyOfType([0.0.0.CLERIC_ALL])) False() THEN RESPONSE #100 Continue() END IF Detect(NearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(NearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(NearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(NearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(NearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(NearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(NearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(NearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(SecondNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(SecondNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(SecondNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(SecondNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(SecondNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(SecondNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(SecondNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(SecondNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(ThirdNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(ThirdNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(ThirdNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(ThirdNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(ThirdNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(ThirdNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(ThirdNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(ThirdNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(FourthNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(FourthNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(FourthNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(FourthNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(FourthNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(FourthNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(FourthNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(FourthNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(FifthNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(FifthNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(FifthNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(FifthNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(FifthNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(FifthNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(FifthNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(FifthNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(SixthNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(SixthNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(SixthNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(SixthNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(SixthNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(SixthNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(SixthNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(SixthNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(SeventhNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(SeventhNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(SeventhNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(SeventhNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(SeventhNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(SeventhNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(SeventhNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(SeventhNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(EigthNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(EigthNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(EigthNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(EigthNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(EigthNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(EigthNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(EigthNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(EigthNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(NinthNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(NinthNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(NinthNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(NinthNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(NinthNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(NinthNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(NinthNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(NinthNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF Detect(TenthNearestEnemyOfType([0.0.0.LONG_BOW])) HPGT(TenthNearestEnemyOfType([0.0.0.LONG_BOW]),5) !InParty(TenthNearestEnemyOfType([0.0.0.LONG_BOW])) !StateCheck(TenthNearestEnemyOfType([0.0.0.LONG_BOW]),STATE_CHARMED) !StateCheck(TenthNearestEnemyOfType([0.0.0.LONG_BOW]),0x400010) !StateCheck(TenthNearestEnemyOfType([0.0.0.LONG_BOW]),0x102029) !Class(TenthNearestEnemyOfType([0.0.0.LONG_BOW]),INNOCENT) See(TenthNearestEnemyOfType([0.0.0.LONG_BOW])) False() THEN RESPONSE #100 Continue() END IF HasItemEquiped("POTN13",Myself) // Oil of Fiery Burning !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",2) GlobalLT("HP_ITEM","LOCALS",1) HPGT(LastSeenBy(Myself),15) NumCreatureGT([EVILCUTOFF],2) !Range(LastSeenBy(Myself),12) Range(Player1,5) Range(Player2,5) Range(Player3,5) Range(Player4,5) Range(Player5,5) Range(Player6,5) !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !Range(NearestEnemyOf(Myself),4) CheckStatLT(LastSeenBy(Myself),50,RESISTFIRE) CheckStatLT(Myself,75,SPELLFAILUREMAGE) CheckStatGT(LastSeenBy(Myself),5,SAVEVSSPELL) CheckStatLT(LastSeenBy(Myself),76,RESISTMAGIC) !HasItemEquiped("RAKRING",LastSeenBy(Myself)) // No such index !HasItemEquiped("MAGEAMUL",LastSeenBy(Myself)) // Necklace THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) DisplayStringHead(Myself,7006) // Oil of Fiery Burning UseItem("POTN13",LastSeenBy(Myself)) // Oil of Fiery Burning END IF HaveSpell(3105) OR(2) !GlobalTimerNotExpired("SPL_CAST","LOCALS") CheckStat(Myself,1,165) OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",1) !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !General(LastSeenBy(Myself),UNDEAD) HPGT(LastSeenBy(Myself),35) !HasBounceEffects(LastSeenBy(Myself)) StateCheck(LastSeenBy(Myself),STATE_POISONED) CheckStatGT(LastSeenBy(Myself),5,SAVEVSSPELL) CheckStatGT(LastSeenBy(Myself),5,SAVEVSDEATH) CheckStatLT(LastSeenBy(Myself),1,RESISTPOISON) !Range(NearestEnemyOf(Myself),4) CheckStatLT(Myself,75,SPELLFAILUREPRIEST) CheckStatLT(LastSeenBy(Myself),76,RESISTMAGIC) !HasItem("RAKRING",LastSeenBy(Myself)) // No such index !HasItem("IRONGOL",LastSeenBy(Myself)) // No such index THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Spell(LastSeenBy(Myself),3105) END IF HaveSpell(INNATE_LARLOCHS_MINOR_DRAIN) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",0) OR(2) DamageTakenGT(4) HPPercentLT(Myself,76) NumCreatureGT([EVILCUTOFF],1) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !InParty(LastSeenBy(Myself)) HPGT(LastSeenBy(Myself),10) Range(LastSeenBy(Myself),10) !HasBounceEffects(LastSeenBy(Myself)) CheckStatLT(LastSeenBy(Myself),76,RESISTMAGIC) !HasItem("RAKRING",LastSeenBy(Myself)) // No such index !HasItem("MAGEAMUL",LastSeenBy(Myself)) // Necklace THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Shout(2250) IncrementGlobal("NOHEAL","GLOBAL",1) Spell(LastSeenBy(Myself),INNATE_LARLOCHS_MINOR_DRAIN) END IF HasItemEquiped("WAND08",Myself) // Wand of Sleep !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",0) General(LastSeenBy(Myself),HUMANOID) GlobalLT("HP_ITEM","LOCALS",1) NumCreatureGT([EVILCUTOFF],3) !Range(LastSeenBy(Myself),12) Range(Player1,5) Range(Player2,5) Range(Player3,5) Range(Player4,5) Range(Player5,5) Range(Player6,5) !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) CheckStatLT(LastSeenBy(Myself),76,RESISTMAGIC) !HasItem("RAKRING",LastSeenBy(Myself)) // No such index !HasItem("IMMCHS",LastSeenBy(Myself)) // No such index !HasItem("MAGEAMUL",LastSeenBy(Myself)) // Necklace THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) UseItem("WAND08",LastSeenBy(Myself)) // Wand of Sleep DisplayStringHead(Myself,6692) // Wand of Sleep END IF HasItemEquiped("WAND03",Myself) // Wand of Magic Missiles !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",0) HPLT(LastSeenBy(Myself),10) !HasBounceEffects(LastSeenBy(Myself)) GlobalLT("HP_ITEM","LOCALS",1) !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !HasBounceEffects(LastSeenBy(Myself)) CheckStatLT(LastSeenBy(Myself),76,RESISTMAGIC) !HasItem("RAKRING",LastSeenBy(Myself)) // No such index !HasItem("MAGEAMUL",LastSeenBy(Myself)) // Necklace THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) UseItem("WAND03",LastSeenBy(Myself)) // Wand of Magic Missiles DisplayStringHead(Myself,6689) // Wand of Magic Missiles END IF OR(8) See(Myself) See(Player1) See(Player2) See(Player3) See(Player4) See(Player5) See(Player6) See(NearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],9) !InParty(TenthNearestEnemyOf(Myself)) OR(3) !StateCheck(TenthNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(TenthNearestEnemyOf(Myself),0x102029) !StateCheck(TenthNearestEnemyOf(Myself),STATE_CHARMED) !Class(TenthNearestEnemyOf(Myself),INNOCENT) See(TenthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],8) !InParty(NinthNearestEnemyOf(Myself)) OR(3) !StateCheck(NinthNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(NinthNearestEnemyOf(Myself),0x102029) !StateCheck(NinthNearestEnemyOf(Myself),STATE_CHARMED) !Class(NinthNearestEnemyOf(Myself),INNOCENT) See(NinthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],7) !InParty(EighthNearestEnemyOf(Myself)) OR(3) !StateCheck(EighthNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(EighthNearestEnemyOf(Myself),0x102029) !StateCheck(EighthNearestEnemyOf(Myself),STATE_CHARMED) !Class(EighthNearestEnemyOf(Myself),INNOCENT) See(EighthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],6) !InParty(SeventhNearestEnemyOf(Myself)) OR(3) !StateCheck(SeventhNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(SeventhNearestEnemyOf(Myself),0x102029) !StateCheck(SeventhNearestEnemyOf(Myself),STATE_CHARMED) !Class(SeventhNearestEnemyOf(Myself),INNOCENT) See(SeventhNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],5) !InParty(SixthNearestEnemyOf(Myself)) OR(3) !StateCheck(SixthNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(SixthNearestEnemyOf(Myself),0x102029) !StateCheck(SixthNearestEnemyOf(Myself),STATE_CHARMED) !Class(SixthNearestEnemyOf(Myself),INNOCENT) See(SixthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],4) !InParty(FifthNearestEnemyOf(Myself)) OR(3) !StateCheck(FifthNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(FifthNearestEnemyOf(Myself),0x102029) !StateCheck(FifthNearestEnemyOf(Myself),STATE_CHARMED) !Class(FifthNearestEnemyOf(Myself),INNOCENT) See(FifthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],3) !InParty(FourthNearestEnemyOf(Myself)) OR(3) !StateCheck(FourthNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(FourthNearestEnemyOf(Myself),0x102029) !StateCheck(FourthNearestEnemyOf(Myself),STATE_CHARMED) !Class(FourthNearestEnemyOf(Myself),INNOCENT) See(FourthNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],2) !InParty(ThirdNearestEnemyOf(Myself)) OR(3) !StateCheck(ThirdNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(ThirdNearestEnemyOf(Myself),0x102029) !StateCheck(ThirdNearestEnemyOf(Myself),STATE_CHARMED) !Class(ThirdNearestEnemyOf(Myself),INNOCENT) See(ThirdNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],1) !InParty(SecondNearestEnemyOf(Myself)) OR(3) !StateCheck(SecondNearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(SecondNearestEnemyOf(Myself),0x102029) !StateCheck(SecondNearestEnemyOf(Myself),STATE_CHARMED) !Class(SecondNearestEnemyOf(Myself),INNOCENT) See(SecondNearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF NumCreatureGT([EVILCUTOFF],0) !InParty(NearestEnemyOf(Myself)) OR(3) !StateCheck(NearestEnemyOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(NearestEnemyOf(Myself),0x102029) !StateCheck(NearestEnemyOf(Myself),STATE_CHARMED) !Class(NearestEnemyOf(Myself),INNOCENT) See(NearestEnemyOf(Myself)) False() THEN RESPONSE #100 Continue() END IF OR(6) Heard(NearestMyGroupOfType([PC]),2001) Heard(SecondNearestMyGroupOfType([PC]),2001) Heard(ThirdNearestMyGroupOfType([PC]),2001) Heard(FourthNearestMyGroupOfType([PC]),2001) Heard(FifthNearestMyGroupOfType([PC]),2001) Heard(SixthNearestMyGroupOfType([PC]),2001) !InParty(LastAttackerOf(LastHeardBy(Myself))) OR(3) !StateCheck(LastAttackerOf(LastHeardBy(Myself)),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(LastAttackerOf(LastHeardBy(Myself)),STATE_CHARMED) !Class(LastAttackerOf(LastHeardBy(Myself)),INNOCENT) See(LastAttackerOf(LastHeardBy(Myself))) False() THEN RESPONSE #100 Continue() END IF OR(6) Heard(NearestMyGroupOfType([PC]),2018) Heard(SecondNearestMyGroupOfType([PC]),2018) Heard(ThirdNearestMyGroupOfType([PC]),2018) Heard(FourthNearestMyGroupOfType([PC]),2018) Heard(FifthNearestMyGroupOfType([PC]),2018) Heard(SixthNearestMyGroupOfType([PC]),2018) !InParty(LastAttackerOf(LastHeardBy(Myself))) OR(3) !StateCheck(LastAttackerOf(LastHeardBy(Myself)),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(LastAttackerOf(LastHeardBy(Myself)),STATE_CHARMED) !Class(LastAttackerOf(LastHeardBy(Myself)),INNOCENT) See(LastAttackerOf(LastHeardBy(Myself))) False() THEN RESPONSE #100 Continue() END IF AttackedBy([ANYTHING],DEFAULT) !InParty(LastAttackerOf(Myself)) OR(3) !StateCheck(LastAttackerOf(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(LastAttackerOf(Myself),STATE_CHARMED) !Class(LastAttackerOf(Myself),INNOCENT) !IsGabber(Player1) // IEDSP claims this handles Active Speaker, !IsGabber(Player2) // But I'm skeptical because of the SetGabber(O:Object*) Action !IsGabber(Player3) // Still, it's the ONLY chance at detecting dialog state !IsGabber(Player4) !IsGabber(Player5) !IsGabber(Player6) See(LastAttackerOf(Myself)) False() THEN RESPONSE #100 Continue() END IF HitBy([ANYTHING],0x0000) !InParty(LastHitter(Myself)) OR(3) !StateCheck(LastHitter(Myself),0x00400010) CheckStatGT(Myself,0,SEEINVISIBLE) CheckStatGT(Myself,0,118) !StateCheck(LastHitter(Myself),STATE_CHARMED) !Class(LastHitter(Myself),INNOCENT) See(LastHitter(Myself)) False() THEN RESPONSE #100 Continue() END IF HaveSpellRES("SPCL423") // Poison Weapon !GlobalTimerNotExpired("SPL_CAST","LOCALS") !GlobalTimerNotExpired("POISWEAP","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",2) !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !General(LastSeenBy(Myself),UNDEAD) HPGT(LastSeenBy(Myself),35) !StateCheck(LastSeenBy(Myself),STATE_POISONED) CheckStatGT(LastSeenBy(Myself),5,SAVEVSDEATH) CheckStatLT(LastSeenBy(Myself),51,RESISTPOISON) Range(LastSeenBy(Myself),6) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) SetGlobalTimer("POISWEAP","LOCALS",30) EquipMostDamagingMelee() SpellRES("SPCL423",Myself) // Poison Weapon SetGlobalTimer("INTERUPT","LOCALS",1) Attack(LastSeenBy(Myself)) END IF HaveSpell(3103) !GlobalTimerNotExpired("SPL_CAST","LOCALS") OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") GlobalGT("THREAT","LOCALS",0) !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) Range(LastSeenBy(Myself),8) HPGT(LastSeenBy(Myself),25) !Range(NearestEnemyOf(Myself),4) !StateCheck(Myself,STATE_DRAWUPONHOLYMIGHT) THEN RESPONSE #100 SetGlobalTimer("SPL_CAST","LOCALS",6) Spell(Myself,3103) END ////////////////BACKSTABBING/////////////////////// IF GlobalTimerNotExpired("STABTIME","LOCALS") Global("BACKSTAB","LOCALS",1) !StateCheck(Myself,STATE_INVISIBLE) !StateCheck(Myself,STATE_IMPROVEDINVISIBILITY) OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") THEN RESPONSE #100 SetGlobalTimer("STABTIME","LOCALS",0) SetGlobal("BACKSTAB","LOCALS",0) Continue() END IF GlobalTimerExpired("STABTIME","LOCALS") Global("BACKSTAB","LOCALS",1) CheckStatGT(Myself,1,BACKSTABDAMAGEMULTIPLIER) OR(2) StateCheck(Myself,STATE_INVISIBLE) StateCheck(Myself,STATE_IMPROVEDINVISIBILITY) OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !Allegiance(LastSeenBy(Myself),NEUTRAL) !General(LastSeenBy(Myself),UNDEAD) !Race(LastSeenBy(Myself),DRAGON) !Race(LastSeenBy(Myself),GOLEM) Range(LastSeenBy(Myself),2) THEN RESPONSE #100 DisplayStringHead(Myself,969975) SetGlobal("BACKSTAB","LOCALS",0) SetGlobalTimer("INTERUPT","LOCALS",1) Attack(LastSeenBy(Myself)) END IF GlobalTimerNotExpired("STABTIME","LOCALS") Global("BACKSTAB","LOCALS",1) OR(2) StateCheck(Myself,STATE_INVISIBLE) StateCheck(Myself,STATE_IMPROVEDINVISIBILITY) OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !Allegiance(LastSeenBy(Myself),NEUTRAL) !General(LastSeenBy(Myself),UNDEAD) !Race(LastSeenBy(Myself),DRAGON) !Race(LastSeenBy(Myself),GOLEM) !StateCheck(LastSeenBy(Myself),STATE_INVISIBLE) !StateCheck(LastSeenBy(Myself),STATE_IMPROVEDINVISIBILITY) THEN RESPONSE #100 FollowObjectFormation(LastSeenBy(Myself),1,3) END IF ActionListEmpty() !GlobalTimerNotExpired("STABTIME","LOCALS") CheckStatGT(Myself,1,BACKSTABDAMAGEMULTIPLIER) OR(2) StateCheck(Myself,STATE_INVISIBLE) StateCheck(Myself,STATE_IMPROVEDINVISIBILITY) Global("BACKSTAB","LOCALS",0) OR(3) Global("STAB_ON","LOCALS",1) !CombatCounter(0) Detect(ThirdNearestMyGroupOfType) OR(2) ActionListEmpty() GlobalTimerNotExpired("INTERUPT","LOCALS") !Allegiance(LastSeenBy(Myself),GOODCUTOFF) !Allegiance(LastSeenBy(Myself),NEUTRAL) !InParty(LastSeenBy(Myself)) !General(LastSeenBy(Myself),UNDEAD) !Race(LastSeenBy(Myself),DRAGON) !Race(LastSeenBy(Myself),GOLEM) THEN RESPONSE #100 EquipMostDamagingMelee() SetGlobal("BACKSTAB","LOCALS",1) SetGlobalTimer("STABTIME","LOCALS",6) DisplayStringHead(Myself,969983) // Backstab Damage FollowObjectFormation(LastSeenBy(Myself),1,3) END IF Global("BACKSTAB","LOCALS",1) GlobalTimerExpired("STABTIME","LOCALS") THEN RESPONSE #100 DisplayStringHead(Myself,16461) // Miss SetGlobal("BACKSTAB","LOCALS",0) Continue() END ////////////////////////////////////////////////////////// ///////Weapon Selection, Checks for Charmed Party Members IF ActionListEmpty() !GlobalTimerNotExpired("INTERUPT","LOCALS") InParty(LastSeenBy(Myself)) // A check for charmed party members OR(2) Allegiance(LastSeenBy(Myself),EVILCUTOFF) StateCheck(LastSeenBY(Myself),STATE_CHARMED) OR(2) InWeaponRange(LastSeenBy(Myself)) AttackedBy(LastSeenBy(Myself),DEFAULT) THEN RESPONSE #100 SetGlobalTimer("INTERUPT","LOCALS",3) RunAwayFrom(NearestEnemyOf(Myself),60) END IF ActionListEmpty() !GlobalTimerNotExpired("INTERUPT","LOCALS") Global("MEL_MISS","LOCALS",1) Global("USERANGE","LOCALS",0) Range(LastSeenBy(Myself),10) !Range(LastSeenBy(Myself),4) !CombatCounter(0) THEN RESPONSE #50 SetGlobal("MEL_MISS","LOCALS",1) EquipRanged() SmallWait(3) Continue() RESPONSE #50 SetGlobal("MEL_MISS","LOCALS",0) EquipMostDamagingMelee() SmallWait(3) MoveToObject(LastSeenBy(Myself)) Continue() END IF ActionListEmpty() !GlobalTimerNotExpired("INTERUPT","LOCALS") Global("USERANGE","LOCALS",1) Global("MEL_MISS","LOCALS",0) OR(2) !Range(NearestEnemyOf(Myself),3) !Range(SecondNearestEnemyOf(Myself),5) !CombatCounter(0) THEN RESPONSE #100 SetGlobal("MEL_MISS","LOCALS",1) EquipRanged() SmallWait(3) Continue() END IF ActionListEmpty() !GlobalTimerNotExpired("INTERUPT","LOCALS") Global("MEL_MISS","LOCALS",1) Global("USERANGE","LOCALS",1) OR(2) Range(NearestEnemyOf(Myself),4) Range(SecondNearestEnemyOf(Myself),5) !CombatCounter(0) THEN RESPONSE #60 SetGlobal("MEL_MISS","LOCALS",0) SetGlobalTimer("INTERUPT","LOCALS",1) EquipMostDamagingMelee() SmallWait(3) MoveToObject(LastSeenBy(Myself)) Continue() RESPONSE #40 EquipRanged() SmallWait(3) RunAwayFrom(LastSeenBy(Myself),10) Continue() END //////////////////////////////////////////////////////////////////////// // Special Weapon Considerations // //////////////////////////////////////////////////////////////////////// // Special for Protection from Missiles IF ActionListEmpty() CheckStatGT(LastSeenBy(Myself),0,179) THEN RESPONSE #100 SetGlobal("MEL_MISS","LOCALS",0) // Then tell logic to go get bent EquipMostDamagingMelee() // Draw your blade SmallWait(3) MoveToObject(LastSeenBy(Myself)) // and charge the sucker Continue() END // Special for Fire Shield IF ActionListEmpty() CheckStat(LastSeenBy(Myself),1,125) CheckStatLT(Myself,50,RESISTFIRE) THEN RESPONSE #100 SetGlobal("MEL_MISS","LOCALS",1) EquipRanged() //use your bow, then SmallWait(3) Continue() END IF ActionListEmpty() CheckStat(LastSeenBy(Myself),2,125) CheckStatLT(Myself,50,RESISTCOLD) THEN RESPONSE #100 SetGlobal("MEL_MISS","LOCALS",1) EquipRanged() //use your bow, then SmallWait(3) Continue() END ///Final Attack Blocks IF ActionListEmpty() !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) THEN RESPONSE #100 SetGlobalTimer("INTERUPT","LOCALS",1) Attack(LastSeenBy(Myself)) END IF ActionListEmpty() See(NearestEnemyOf(Myself)) //If it went this far, try to keep it moving !InParty(LastSeenBy(Myself)) !Allegiance(LastSeenBy(Myself),GOODCUTOFF) THEN RESPONSE #100 SetGlobalTimer("INTERUPT","LOCALS",1) Attack(NearestEnemyOf(Myself)) END