# This is an automated backup - check out https://outlands.uorazorscripts.com/script/47716944-772c-422f-b3db-034d9a88ae76 for latest # Automation by Jaseowns ## Script: Lord Glacier's Chill ARCANE MAGE AUTO PILOT - UO OUTLANDS RAZOR SCRIPT - v3.0.1 ## Created by: danstock._98439#0 ############################################# ///////// //////// Lord Glaciers Chill ARCANE MAGE AUTO PILOT - UO OUTLANDS RAZOR SCRIPT version 3.0.1 /////// ////// UO Outlands Razor script - Released May 16, 2025 - Last updated October 9, 2026 ///// Compiled by DanStock. (aka. Lord Glacier) //// /// ################################ // QUICK MODE CHANGE: \\ #################################### @setvar! DUNGEONMODE 1 @setvar! WILDERNESSMODE 0 # DUNGEON = Auto FIND GATE # WILDERNESS = Auto RECALL #################################### ################################## ############################### ############################### // SUGGESTED SKILL TEMPLATE: \\ // INVENTORY ITEMS: \\ ################################### ################################### # 120 Necromancy Book of Necromancy # 120 Cooking Wizards Grimoire # 100 Eval Intelligence Parrying Codex # 100 Magery Arcane Codex # 100 Arcane Arcane Staff # 100 Wrestling Potion Satchel (w/ potions) # 80 Parrying Wizard Satchel (w/ regs) # Magic Mushrooms # ASPECT: ARCANE weapon Delectable food trays # ARCANE armour Trapped pouches # Adventurers rope # or ELDRITCH armour Scissors [blessed] * # or VOID armour Wooden Box w/ copper key * # or BLOOD armour Platemail armour # or FROST armour Arcane aspect crystals ################################## ################################## ################################ ################################ ############################## ############################## ///////////////////////// //' CHANGE LOG: '// ///////////////////////// # Oct 09 2026 - version 3.0.1 Added checks for LootBag and Escape Runebook outside of script setup/reset and will now prompt to target new if not found # Sep 30 2026 - version 3.0.0 Another significant update! Reworked the script again to further improve on speed, safety and other efficiencies # Updated to new storage tome IDs, updated loot securing to latest version, improved healing and general combat/efficiency fixes # Added separate large, medium and small damage spell loops based on mana levels to greatly improve speed and response # The improvements are significant enough to call this a whole new version - email any bugs to dan@danstockman.com # # Jun 28 2026 - version 2.0.0: Big update! Bringing everything up to my current versions for all magery attacks and buffs plus overall tweaks and updates! # This new version brings massive improvements to target acquisition speed, target attack speed and overall tempo # Includes updates to nearly every section to improve efficiency, safety and speed as well as adjustments for new Arcane codex changes # Also includes some new features such as Arcane Rune placement (check variable section) so be sure to check all your settings! # Expect a few more minor updates and tweaks as I play-test the latest version over the next couple of weeks. Enjoy! # Jan 05 2026 - version 1.1.7: Minor updates to the reagent splitter and potion keg sections # Jan 04 2026 - version 1.1.6: Added poison potion option to keg filling and added skinning to dungeon escape loop # Jan 03 2026 - version 1.1.5: Minor updates to a couple overheads and added a Storage Tome Container variable to the Auto Recall section # Nov 26 2025 - version 1.1.4: Fixed small bugs in Auto PK Dungeon Gating and Auto Recall After Resurrection sections # Nov 21 2025 - version 1.1.3: Big update! Overhauled entire script to include my latest upgrades and tweaks. Default is now WAR mode for COMBAT and PEACE mode for ESCAPE/RECALL # Nov 16 2025 - version 1.1.2: Squashed bugs in Flamestrike, Potion Keg and Necromancy parts of script. Sorry it took so long (have not played my Arcane Mage echo in a while) # Jun 06 2025 - version 1.1.1: Updated overhead messages for various potions and abilities and tweaked the order of a few things # Jun 05 2025 - version 1.1.0: Added support for using potion kegs for auto filling potions # Jun 04 2025 - version 1.0.9: Added new variable and option for Snacking during Healing Loop and added reagent checks for casting heals # Jun 02 2025 - version 1.0.8: Various minor tweaks and adjustments to timing and orders of operation # May 30 2025 - version 1.0.7: Added Telekinesis to AutoExplosionPotion loop # May 29 2025 - version 1.0.6: Adjusted targeting loop and various no target tweaks based on player testing # May 26 2025 - version 1.0.5: Added separate variable for 'EnableAutoRecallMessages' to control overhead messages during auto recall # May 23 2025 - version 1.0.4: Timing and efficiency updates along with additional tips and comments added # May 21 2025 - version 1.0.3: Added option for using DIY auto recall Razor scripts and added Frost Shell cooldown triggers # May 20 2025 - version 1.0.2: Fixed typo in Gold Drop section and updated logic and cooldown triggers for Weapon Abilities # May 18 2025 - version 1.0.1: Added optional cooldown trigger for Mana Thief proc # May 16 2025 - version 1.0.0: Public script release! /////////////////// //' TIPS: '// /////////////////// # IMPT! (IF USING AUTO RECALL): FIRST RUN OF SCRIPT SHOULD BE DONE IN HOUSE/INN ROOM AND TAKES ROUGHLY 15 SECONDS TO COMPLETE INITIAL (ONE TIME) SETUP! # Initial setup can be redone by setting 'ResetScriptPermanentVariables' variable to '1' below! # Or you can re-target script variables individually in the 'Options' tab above the script # # # Use the skill template above along with ARCANE ASPECT WEAPON and ARCANE CODEX (LEECH stance, CLARITY finisher and LEYLINE ability for maximum MANA generation) # Aspect armour can be ARCANE, ELDRITCH, BLOOD, FROST or your choice - I used ARCANE until it was level 10 and then switched to FROST for the protection (and I am Glacier lol) # Recommend use of MELEE ASPECT CHANCE chain links to increase MANA THIEF proc chance on ARCANE ASPECT weapon (and then DAMAGE TO DISEASED chain links, etc.) # Eating delectable FOOD (w/ cooking skill) will restore HP and MANA (w/ 60 second cooldown) # Eating MUSHROOMS with the Wizards Grimoire will also restore MANA (60-180 second cooldown) # Once ARCANE CODEX and ARCANE ASPECT WEAPON are sufficiently levelled PLATEMAIL ARMOUR can be used and no meditation skills will be necessary # Recommend prioritizing CREATE FOOD and (at first) MANA DRAIN spells in WIZARDS GRIMOIRE before moving on to other spells (ie. FLAMESTRIKE, XPLOS, EBOLT, etc.) # Use www.outlandsbutler.com (or 'PLAYER STATS' page) to make sure you are hitting your MANA REFUND CAP (early build may require use of MANA DRAIN spell) # Recommend PARRY CODEX stances of BULWARK or SHIELD BASH w/ LAST STAND finisher - auto switching options are available based on war mode and buff status # Script displays lots of OVERHEAD MESSAGES by default - these can be disabled in the variable section (minimal target indicators remain - it is my preferred mode!) # Recommend using Razor TEXT FILTERS to cancel redundant system messages and Razor spam # Script has optional COOLDOWNS you can add (see list below) but they are NOT required for script function - just handy to display on bars in your U.I. # Script uses ORGANIZER AGENT-01 for optional MAIN INVENTORY pouch organization (can be set to auto select your main bag in inventory reset below) # If enabled AUTO RECALL triggers when RED is within target range (~12 tiles) or when WEIGHT LIMIT is reached in WILDERNESSMODE (optional DIY script usage, as well) # If enabled and RED is targeted (~12 tiles) in DUNGEONMODE (or WEIGHT LIMIT reached) script will use DUNGEON ESCAPE mode to locate and activate MOONGATES while keeping you alive # If enabled POTIONS will be automatically consumed as needed and MANUAL POTION USE MAY DISRUPT SCRIPT TIMING (turn off script potions if manual hotkey is preferred) # If enabled LOOT CHEST in your HOME/INN/BANK is used store goods, script uses ORGANIZER AGENTS 06-09 as sub-containers you can set inside the chest to organize items further # If enabled and WOODEN BOX and COPPER KEY found in inventory, script will automatically store and lock any looted items when not in combat (ignores Arcane Staves to prevent losing weapon) # Script allows for manual selection of CODEX STANCES in the variable section below (or you can enable AUTOMATIC STANCE SWITCHING instead) # If AUTO ARCANE CODEX stance switching is enabled: WAR = LEECH/CLARITY PEACE = SURGE/CLARITY poisoned/bleeding/diseased/lowhp = SHIELD/CATALYST # If AUTO PARRY CODEX stance switching is enabled: WAR = TESTUDO/LAST STAND PEACE = BULWARK/LAST STAND poisoned/bleeding/diseased/lowhp = WARDING/BARRIER # If you die the DEATH LOOP will auto select moongates and travel to last gated town and then waits to auto-select the resurrection gump when a HEALER is located # If enabled a DRESS LIST of your [blessed] wearables will be equipped after resurrection (must be named 'UltimateArcaneMage') # If enabled after resurrection script can recall home (requires scrolls in [blessed] runebook), resupply, heal, activate aspect and even setup your pack with pouch stacks, etc. # If enabled INVENTORY RESET will stack trapped pouches on your main inventory pouch (after putting scissors inside to protect them from shelf restocking) and then hide the stack # MANY FEATURES ARE TURNED 'OFF' BY DEFAULT! MAKE SURE TO CHECK THE VARIABLE SECTION BELOW CLOSELY PRIOR TO FIRST USE!! # This script is a compilation of many existing scripts married to my own new stuff, but big thanks to user dennozz for many features I learned from studying their scripts! ############################################################################################################################# # # # ////////////////////////////// # # // RESET SCRIPT HERE: // # # ////////////////////////////// # # # # SET THIS VALUE TO '1' AND RUN SCRIPT TO UNSET ALL PERMANENT SCRIPT VARIABLES: # # # @setvar! ResetScriptPermanentVariables 0 # # # THEN RETURN 'ResetScriptPermanentVariables' TO '0' TO RESTART INITIAL SETUP... # # (Or you can re-target script variables individually in the 'Options' tab above the script!) # # # # # ############################################################################################################################# ##################################################### ###' OPTIONAL COOLDOWNS TO ADD IN UO CLIENT: '### ###' (case sensitive!) '### ##################################################### # Mana Thief # Seeking Active # Leyline Active # Mushroom # Snacking # Healing Potion # Purple Potion # Panacea Potion # Weapon Ability # Corpse Skin # Evil Omen # Mind Rot # Pain Spike # Poison Strike # Strangle # Frost Shell Cooldown # Frost Shell Active ########################################################################################################################### # MOST FEATURES ARE TURNED 'OFF' BY DEFAULT! PLEASE CHECK THE 'VARIABLES' SECTION BELOW CAREFULLY DURING INITIAL SETUP! # ########################################################################################################################### ################################# ###' USER VARIABLES: '### ################################# ////////////////////////// //' OFFENSIVE: '// ////////////////////////// @setvar! EnableWeaponCheck 1 # Checks hand for Arcane Staff and will equip if missing # Prioritizes aspect weapon and ignores unidentified magic items // TARGET ATTACKING: // @setvar! TargetAttackRange 10 # Set your target auto attack range (1-10 tiles) # Targeted grey MOBs within this range will be engaged # Grey MOBs will still be targeted and analyzed outside of attack range (up to 12 tiles), but not attacked @setvar! CheckClosestTargetTime 2500 # Adjust the frequency of closest target checks during combat mode (1000 - 2500ms recommended) # If this is set to '0' the target will remain locked until dead or out of range (my preference) // OPENING SPELLS: // @setvar! EnableCastCurse 0 @setvar! EnableCastManaDrain 0 # If enabled, Curse and/or Mana Drain will be cast on NEW targets (or every 60 seconds) before using large spells # Mana drain is helpful for newer builds - but likely not necessary once Aspect is levelled # Curse is highly recommended (upgrade using wizards grimoire) // LARGE DAMAGE SPELLS: // @setvar! EnableCastFlamestrike 1 @setvar! FlamestrikeCooldown 0 # Flamestrike spell will be spammed repeatedly if parameters are met: // Mana > 'CastMediumSpellsBelowMana' (set below), Sulfurous Ash & Spiders silk in inventory, target in attack range, and HP diff < CastGreaterHealHPdiff // Recommend leaving Flamestrike cooldown at '0' unless you want to experiment // MEDIUM DAMAGE SPELLS: // @setvar! CastMediumSpellsBelowMana 60 # Medium damage spells will be used when mana < 'CastMediumSpellsBelowMana' but > 'CastSmallSpellsBelowMana' # I have found '60' for medium and '20' for small to work well but you can experiment (at your own risk) # Adjust your cooldowns to your preference @setvar! EnableCastExplosion 1 @setvar! ExplosionCooldown 10000 @setvar! EnableCastEnergyBolt 1 @setvar! EnergyBoltCooldown 0 @setvar! EnableCastMindblast 0 @setvar! MindBlastCooldown 0 // SMALL DAMAGE SPELLS: // @setvar! CastSmallSpellsBelowMana 20 # Script will prioritize big spells (FS, xplo, ebolt, MB) above this mana value # Magic Arrow, Harm, Fireball and Lightning will only be cast below this point # Value can range from '10-110' (lower than '10' may cause errors) # Spell cooldown values (below) can be increased to reduce casting frequency if necessary @setvar! EnableCastMagicArrow 0 @setvar! MagicArrowCooldown 15000 @setvar! EnableCastHarm 0 @setvar! HarmCooldown 15000 @setvar! EnableCastFireball 0 @setvar! FireballCooldown 15000 @setvar! EnableCastLightning 0 @setvar! LightningCooldown 15000 // POISON SPELL: // @setvar! EnableCastPoison 0 @setvar! SetPoisonLevel 0 # '0' for 'Greater or less' # '1' for 'Deadly' # '2' for 'Lethal' # Poison spell will be cast repeatedly on targeted MOB until set poison level is reached // MEDITATION SETTINGS: // @setvar! EnableMeditation 0 @setvar! MeditateWhenManaBelow 11 @setvar! MeditateUntilManaReaches 50 # If enabled, meditation will trigger if mana falls below 'MeditateWhenManaBelow' # Peace Mode will be activated while meditating # Script will resume if HP drops below 'CastGreaterHealHPdiff' (below) or if War Mode is activated # Otherwise, meditation ends when 'MeditateUntilManaReaches' is reached and script resumes ////////////////////////// //' DEFENSIVE: '// ////////////////////////// @setvar! EnableAutoParalyzePouch 1 # Will automatically pop trapped pouches if paralyzed (will also trigger auto recall/gating, if enabled below) @setvar! AutoTrapYourPouches 0 # Will automatically cast 'Magic Trap' any untrapped pouches found in your backpack @setvar! EnableAutoTaunting 0 # Requires 80+ Parrying skill and will automatically taunt (increases your AR against target) @setvar! EnableCastGreaterHeal 1 @setvar! EnableCastHeal 1 @setvar! CastGreaterHealHPdiff 60 @setvar! CastHealHPdiff 70 @setvar! CastEmergencyHealHPdiff 80 # If damage exceeds 'CastHealHPdiff' Heal spell will be used to quickly recover before casting Greater Heal spell # If damage exceeds 'CastGreaterHealHPdiff' but is less than 'CastHealHPdiff' then Greater Heal spell will be used # If damage exceeds 'CastEmergencyHealHPdiff' then Heal spell will be spammed to keep you alive # Heal potions are always prioritized (if enabled below and found in inventory) for instant healing along with spellcasts @setvar! EnableCastCure 1 # If poisoned and 'EnableCastCure' is enabled, Cure spell will be cast until no longer poisoned @setvar! MinimumManaToApplyMageryBuffs 40 # Magery Buffs (below) will only be applied if mana is above this set point @setvar! EnableMagicReflection 0 @setvar! EnableBless 0 @setvar! EnableReactiveArmour 0 @setvar! EnableProtection 0 @setvar! EnableFrostAspect 0 @setvar! FrostAspectTier 0 # Set your Frost Aspect level (if using Frost Aspect armour) # This will automatically set your optional Frost Shell Cooldown length # Add cooldowns in UO options 'Frost Shell Cooldown' and 'Frost Shell Active' (case sensitive) # Frost Shell cooldown can trigger stance switches (if using auto switching below) @setvar! LowManaWarningAmount 10 # Overhead Low Mana warning (independent of other overhead message settings) ////////////////////////// //' POTIONS: '// ////////////////////////// // POTS & KEGS: // @setvar! EnableHealPotion 1 @setvar! HealPotionHPdiff 25 # Adjust HP diff set points for Heal and Refresh potion # Heal potions will be prioritized over all healing options if not on cooldown @setvar! HealingPotionCooldown 10000 # This value only affects your OPTIONAL COOLDOWN BAR (script uses other checks to verify heal pots are available) # You can reduce this value if using Potion Codex # Add cooldown in UO options: 'Healing Potion' (case sensitive) @setvar! EnableCurePotion 1 # Cure pots will be used as needed (if enabled and found in inventory) @setvar! EnablePanaceaPotion 0 # Requires 80+ Alchemy skill, Cure Potions and Potion Codex in inventory w/ Panacea buff unlocked # Will automatically consume Cure Potion if Bleeding or Diseased @setvar! EnableCleansingBrews 0 # Requires Cleansing Brews in inventory # Will automatically consume Cleansing Brew if Bleeding or Diseased (and not on cooldown) @setvar! EnableRefreshPotion 0 @setvar! RefreshPotionSPdiff 10 # Adjust SP diff set point for Refresh potion consumption @setvar! EnableStrengthPotion 0 @setvar! EnableAgilityPotion 0 @setvar! EnableMagicResistPotion 0 # Strength, Agility and Resist potions will auto-buff when effects wear off (if enabled) * // * If Alchemy skill is greater than 0.0 but less than 2.0 the script will take your next STRENGTH potion BEFORE the effect wears off! // For example, with an Alchemy skill of 1.0 your buff duration will be 2m 05s and a new strength potion is available after 2 mins // Taking your next potion during the extra 5 second buffer will keep your HP at 120 (instead of a temporary drop and HP of 100/120) @setvar! EnableAutoExplosionPots 0 @setvar! PurplePotionCooldown 15000 # Uses 'Telekinesis' spell to make new target MOBs sticky first (if Alchemy skill < 80) @setvar! EnableUsePotionKegs 0 # Will auto fill empty bottles from potion kegs if counts drop below set amounts: # Requires potion kegs and empty bottles (pack extra if using explosion potions) # A good way to carry lots of potions without weighing you down if EnableUsePotionKegs = 1 @setvar! HealingPotionAmount 5 @setvar! CurePotionAmount 5 @setvar! RefreshPotionAmount 2 @setvar! StrengthPotionAmount 1 @setvar! AgilityPotionAmount 1 @setvar! ResistPotionAmount 1 @setvar! ExplosionPotionAmount 1 @setvar! PoisonPotionAmount 0 endif // MUSHROOMS: // @setvar! EnableEatMagicMushrooms 0 @setvar! EatMushroomManadiff 30 # Will consume Magic Mushrooms when mana diff exceeded (if not on cooldown) @setvar! EnableMagicMushroomMaker 0 @setvar! MakeMushroomAmount 5 # Will automatically make mushrooms when you run out (to set amount) // FOOD TRAYS: // @setvar! EnableEatingFood 0 # Will eat food if not buffed (requires delectable FOOD TRAYS) # Not likely to be needed if using Mana or HP Snacking (below) @setvar! EnableEatManaSnacks 0 # Requires cooking skill and delectable food trays in inventory # Will eat snacks to restore mana if mana diff exceeds setpoint (below) # You may also set a cooldown for snacking (below) which should be >= 60000 # Cooldowns for Heal Snacking will also impede Mana Snacking @setvar! EatSnackManadiff 50 @setvar! EatManaSnackCooldown 60000 @setvar! EnableEatHealSnacks 0 # Requires cooking skill and delectable food trays in inventory # Will eat snacks to restore HP if HP diff exceeds setpoint (below) # You may also set a cooldown for snacking (below) which should be >= 60000 # Cooldowns for Mana Snacking will also impede Heal Snacking @setvar! EatSnackHPdiff 80 @setvar! EatHealSnackCooldown 60000 // ARCANE RUNES: // @setvar! EnablePlaceArcaneRunes 0 # '0' for 'Disabled' # '1' for 'Aggression Rune' # '2' for 'Essence Rune' # '3' for 'Fortification Rune' # '4' for 'Frenzy Rune' # '5' for 'Healing Rune' # '6' for 'Immunity Rune' # '7' for 'Mana Rune' # '8' for 'Poison Warding Rune' # '9' for 'Rage Rune' # '10' for 'Spellshielding Rune' # '11' for 'Spell Rune' # '12' for 'Toxicity Rune' # '13' for 'Trap Rune' # '14' for 'Place random rune found in inventory' @setvar! ArcaneRunePlacementCooldown 120000 // Set 'EnablePlaceArcaneRunes' variable above to corresponding Arcane Rune you wish to place ('1-14') // Placement is triggered by PEACE MODE during combat loop (selected rune will be placed and WAR MODE will be resumed) // Placement cooldown can be controlled with 'ArcaneRunePlacementCooldown' variable above (default is 2 mins/120000ms) ///////////////////////// //' NECROMANCY: '// ///////////////////////// @setvar! MinimumManaAmounttoNecroBuff 20 @setvar! EnableNecroStrangle 0 @setvar! EnableNecroCorpseSkin 1 @setvar! EnableNecroMindRot 1 @setvar! EnableNecroEvilOmen 0 # Necro buffs will be used (during combat) if Unholy Points are sufficient and minimum mana is exceeded # For optimum performance 'MinimumManaAmounttoNecroBuff' should be the same or higher than 'CastSmallSpellsBelowMana' (below) @setvar! EnableNecroPainSpike 0 @setvar! PainSpikeAttackDelay 15000 # Adjust delay after acquiring a new target before attempting Pain Spike (to accumulate damage) # Increase delay if fighting tougher MOBs. # Timer starts when new target is attacked and delays Pain Spike (must have corpses in range to trigger) @setvar! EnableNecroPoisonStrike 0 # '0' for 'Disabled' # '1' for 'Apply after Corpse Skin disease delay timer only' # DO NOT USE SETTING '1' IF INTENDING TO TRIGGER FROM CAST POISON TICKS (use '2 - 9' instead!) # SETTING '1' IS FOR CORPSE SKIN DISEASE TRIGGERED POISON STRIKES ONLY! (set delay value below) # '2' for 'Apply in 2 poison ticks left or less' # '3' for 'Apply in 3 poison ticks left or less' # '4' for 'Apply in 4 poison ticks left or less' # '5' for 'Apply in 5 poison ticks left or less' # '6' for 'Apply in 6 poison ticks left or less' # '7' for 'Apply in 7 poison ticks left or less' # '8' for 'Apply in 8 poison ticks left or less' # '9' for 'Apply in 9 poison ticks left or less' # Poison Strike will be triggered by remaining Ticks (if spell poisoned) or by Corpse Skin timer (if diseased) # If using spell poison, use values '2 - 9' to set your Poison Strike trigger point (if sufficient Unholy Points available, etc.) # Poison Strike settings '2 - 9' require 'EnableCastPoison' turned on! (below) # If NOT using spell poison, use value '1' and set delay below (Corpse Skin must be enabled) @setvar! CorpseSkinPoisonStrikeDelay 18000 # Poison Strike setting '1' requires 'EnableNecroCorpseSkin' turned on (above) # Setting 'CorpseSkinPoisonStrikeDelay' is the delay after casting CORPSE SKIN on NEW target before triggering POISON STRIKE # Increase delay value if fighting tougher MOBs /////////////////////////// //' ARCANE CODEX: '// /////////////////////////// @setvar! EnableArcaneCodexHotbar 0 @setvar! EnableArcaneCodexAbilityHotbar 0 @setvar! EnableArcaneCodexStances 0 # '0' for 'Disabled' # '1' for 'Leech Stance' # '2' for 'Shield Stance' # '3' for 'Scatter Stance' # '4' for 'Fracture Stance' # '5' for 'Surge Stance' # '6' for 'Auto Arcane Stance Switching' // Auto: WAR = 'Leech Stance' PEACE = 'Surge Stance' BLEED/POISON/LOWHP = 'Shield Stance' @setvar! EnableArcaneCodexFinisher 0 # '0' for 'Disabled' # '1' for 'Clarity Finisher' # '2' for 'Catalyst Finisher' # '3' for 'Auto Arcane Finisher Switching' // Auto: WAR/PEACE = 'Clarity Finisher' BLEED/POISON/LOWHP = 'Catalyst Finisher' if EnableArcaneCodexStances = 6 or EnableArcaneCodexFinisher = 3 @setvar! SwitchArcaneCodexCooldown 0 # If using Auto Weapon Stance or Finisher switching adjust this cooldown to avoid switching stances too often endif @setvar! EnableArcaneWeaponAbility 0 # '0' for 'Disabled' # '1' for 'Seeking Ability' # '2' for 'Leyline Ability' # '3' for 'Soulfire Ability' /////////////////////////// //' SHIELD CODEX: '// /////////////////////////// @setvar! EnableShieldCodexHotbar 0 @setvar! EnableShieldCodexStances 0 # '0' for 'Disabled' # '1' for 'Shield Bash Stance' # '2' for 'Warding Stance' # '3' for 'Testudo Stance' # '4' for 'Mirror Stance' # '5' for 'Bulwark Stance' # '6' for 'Auto Shield Stance Switching' // Auto: WAR = 'Testudo Stance' PEACE = 'Bulwark Stance' BLEED/POISON/LOWHP = 'Warding Stance' @setvar! EnableShieldCodexFinisher 0 # '0' for 'Disabled' # '1' for 'Last Stand Finisher' # '2' for 'Barrier Finisher' # '3' for 'Auto Shield Finisher Switching' // Auto: PEACE/WAR = 'Last Stand Finisher' BLEED/POISON/LOWHP = 'Barrier Finisher' if EnableShieldCodexStances = 6 or EnableShieldCodexFinisher = 3 @setvar! SwitchShieldCodexCooldown 0 # If using Auto Shield Stance or Finisher switching adjust this cooldown to avoid switching stances too often endif ////////////////////////// //' UTILITY: '// ////////////////////////// @setvar! EnableOverheadMessages 1 # '0' Most overhead messages will be turned OFF (minimal target indicators will remain) # '1' All overhead messages will be turned ON (default mode) # '2' Only overhead messages for targeting or important warnings will be turned ON (my preferred mode!) @setvar! EnableAutoCarving 0 # Will automatically carve nearby corpses when found (requires SKINNING KNIFE) @setvar! EnableAutoSatchels 0 # Will automatically move potions and/or reagents to satchels (requires POTION or WIZARD SATCHELS) @setvar! EnableGoldVacuum 0 # Will automatically pickup discarded GOLD COINS nearby (2 tiles) # WARNING: This can cause you to grab large stacks of gold (and weigh you down) if you are not careful! @setvar! EnableDungeonCleanup 0 # Will automatically pickup discarded resources (regs, ingots, boards, etc.) nearby (2 tiles) @setvar! EnableDropGoldWhenOverweight 0 @setvar! DropGoldAmount 250 # Will drop set amount of gold repeatedly when overweight until no longer impeded @setvar! EnablePutLootinLockBox 0 # Will move all loot into wooden box and then immediately lock it (requires WOODEN BOX and COPPER KEY) # Key must be kept outside the container (but not in your main pack where it can be stolen) # All loot will be automatically moved and secured while FARMING # This is a MUST for dungeon farming IMO - if you are not using this, you really should! @setvar! StoreLootTimer 4500 # StoreLootTimer is the delay to trigger loot storage after target is eliminated # Use '>info' to ID anything you do NOT want locked up (up to 5 items) and add the serials here: @setvar! ItemToIgnore1 0x00000000 @setvar! ItemToIgnore2 0x00000000 @setvar! ItemToIgnore3 0x00000000 @setvar! ItemToIgnore4 0x00000000 @setvar! ItemToIgnore5 0x00000000 # Anything you list above will be skipped while securing loot to avoid locking up things you do not want to. These items will be ignored (only during loot transfers) # You should add spare weapons or any other "loot" items that you do not want secured away during combat (blessed items should now be ignored automatically) @setvar! EnableLootBag 0 # Will open your selected LOOTBAG when unloading at HOME/INN/BANK (if using BUILT IN AUTO RECALL) # This should be the bag that is set as your 'Grab Bag' in Gridloot, etc. # You will be prompted to select a new loot bag whenever one is not found in your inventory # This can be retargeted in the 'Options' tab above the script (or by a full script reset) @setvar! EnableWeightWarningMessage 1 @setvar! GreenWarningDiffWeight 50 @setvar! YellowWarningDiffWeight 25 @setvar! RedWeightLimitDiffWeight 5 # Will display overhead warnings that change colour as they approach your carry weight limit (Green, Yellow and Red) # Red weight limit will trigger AUTO RECALL or AUTO DUNGEON GATE if enabled below (otherwise just an overhead warning and script ends) ///////////////////////////// //' AUTO RECALL/GATE: '// ///////////////////////////// ########################## #' PK TRIGGERS: '# ########################## // RED RECALL/ESCAPE (w/ TRACKING SKILL): // if skill 'Tracking' >= 50 @setvar! EnableTrackingAutoRecall 0 # Make sure "Ignore Houses/Ships" is checked in the Tracking skill menu! if EnableTrackingAutoRecall = 1 @setvar! PKTrackingRange 50 # Range can be 40, 50 or 60 tiles (or 0 will trigger Auto Recall regardless of range) @setvar! EnableRedAlertOverhead 1 # If your build has tracking skill, I highly recommend setting up a Razor overhead message instead of using the script one: // This will display PK name/distance overhead when tracked! // Add overhead message w/ a trigger of "Now tracking" and message '[ RED ALERT: {3} ]' (hue 335) // Then a second with a trigger of "Distance to destination" and message '[ {4} TILES AWAY! ]' (hue 253) // Once complete you should disable "EnableRedAlertOverhead" above if WILDERNESSMODE = 1 @setvar! EnableAutoRedRecall 0 # Auto Recall triggered if PK is tracked within 'PKTrackingRange' tiles (wilderness only) elseif DUNGEONMODE = 1 @setvar! EnableAutoRedDungeonGate 0 # Auto Dungeon Gate triggered if PK is tracked within 'PKTrackingRange' tiles (dungeons only) @setvar! DungeonEscapeTimeLimit 60000 endif endif // RED RECALL/ESCAPE (w/ NO TRACKING SKILL): // elseif skill 'Tracking' < 50 @setvar! EnablePKradar 0 # PK radar must be enabled for Auto Red Recall/Dungeon Gate to function (w/o Tracking Skill) # Radar checks for PK targets within range (roughly every 2 secs) and will alert with an overhead message and/or trigger escapes if EnablePKradar = 1 @setvar! EnableRedAlertOverhead 1 # Optional overhead message alert when PK is targeted (independent of other overhead message settings) if WILDERNESSMODE = 1 @setvar! EnableAutoRedRecall 0 # Auto Recall triggered if PK comes into (~12 tile) target range (wilderness only) elseif DUNGEONMODE = 1 @setvar! EnableAutoRedDungeonGate 0 # Auto Dungeon Gate triggered if PK comes into (~12 tile) target range (dungeons only) @setvar! DungeonEscapeTimeLimit 60000 endif endif endif ############################ #' WEIGHT TRIGGERS: '# ############################ if EnableWeightWarningMessage = 1 if WILDERNESSMODE = 1 @setvar! EnableAutoWeightRecall 0 elseif DUNGEONMODE = 1 @setvar! EnableAutoWeightDungeonGate 0 @setvar! EnableRecallAfterDungeonGate 0 endif endif # Requires 'EnableWeightWarningMessage' to be enabled (above) and is triggered by Red weight limit # Auto Recall or Auto Dungeon Gating will be triggered if 'RedWeightLimitDiffWeight' is reached (set above) # Auto Recall can also be triggered (optionally) upon successful dungeon gate exit via 'EnableRecallAfterDungeonGate' ############################## #' RESURRECTION TRIGGERS: '# ############################## @setvar! EnableRecallAfterResurrection 0 # Must have [blessed] runebook charged w/ scrolls to recall after resurrection! ########################################################### ####' YOU CAN TRIGGER YOUR OWN RAZOR RECALL SCRIPT: '#### ########################################################### # Enable use of your own Razor script for Auto Recall (otherwise script will prompt for a Runebook and use built-in auto recall): @setvar! EnableDIYRecallScript 0 // Type the name of your own Home Recall Razor script here: // createlist DIYRecallScriptList pushlist DIYRecallScriptList " YOUR RECALL SCRIPT NAME " ############################################################ ####' OR USE THE BUILT-IN AUTO RECALL/ESCAPE SCRIPT: '#### ############################################################ @setvar! EnableCastRecall 1 # '0' for 'Scrolls in charged Runebook to "first" rune' # '1' for 'Cast Recall to Runebook using "default" rune' // AUTO RECALL DESTINATION (choose only one): // @setvar! BankRecall 0 @setvar! OwnerInnRecall 0 @setvar! CoOwnerInnRecall 0 @setvar! InsideHouseRecall 0 @setvar! OutsideHouseRecall 0 if OutsideHouseRecall = 1 @setvar! EnableCloseMyDoor 0 @setvar! MyDoor 0x00000000 # Use ">info" to ID your own house door (to quickly close it behind you) endif @setvar! HideAtHomeorInn 0 # Will use hiding skill once inside home or inn room // LOADOUT RESET (after RECALL): // # Safe, Repair Bench, Resource Stockpile, Storage Shelf, Magic Recycler and/or Loot Chest must be found within 2 tiles! # Storage Tomes can be locked down (within 2 tiles) or located inside Loot Chest or Storage Tome Container @setvar! EnableAutoRecallOverheadMessages 1 # Controls overhead messages for recall section only @setvar! EnableSafeDeposit 0 # Will deposit all gold and doubloons found in inventory @setvar! EnableRepairBench 0 # Will repair all equipment (Repair Bench must have charges available) @setvar! EnableResourceStockpile 0 # Will deposit all resources (ingots, boards, gems, etc.) @setvar! EnableStorageShelf 0 # Will restock shelf and then resupply a fresh loadout @setvar! EnableMagicRecycler 0 # Will add all unidentified magic items to your Recycler @setvar! EnableRecycleItemsWhenFull 0 # If Recycler is full, it will attempt to ID, Recycle and deposit resources (if stockpile nearby) before adding items @setvar! EnableStorageTomes 0 # Will add items to any nearby storage tomes (skill scrolls, dyes, runes, maps, cards, etc) @setvar! EnableStorageTomeContainer 0 # Script checks on ground (2 tiles) or in LOOT CHEST (enable below) by default # Otherwise you can designate a TOME CONTAINER to check for your books @setvar! EnableReagentSplitter 0 # Will split reagents into smaller stacks after shelf resupply @setvar! EnableLootChest 0 # Will open selected chest to store non-shelf/stockpile/tome items in your HOME/INN/BANK (uses Razor organizer agents 06-09) // LOADOUT RESET (after DEATH): // # This variable will dress you and reorganize your backpack after death (see instructions below) # Your pack will be setup with anti-theft measures and all aspects will be reactivated, etc. @setvar! EnableDressAfterResurrection 0 # Must have a Razor 'Dress List' named 'UltimateArcaneMage' for all your [blessed] wearables @setvar! EnableResetInventoryAfterDeath 0 @setvar! EnableSetMainPouchOrganizer01 0 // Requires an equal amount of TRAPPED POUCHES (in shelf loadout) and SCISSORS [blessed] (in backpack) // Loadout also requires 1 UNTRAPPED POUCH (for main inventory - optionally set as Organizer Agent-01 above) and 1 BAG (for loot, etc.) // Script will put scissors in each trapped pouch (to keep them from being grabbed during future shelf loading) // Script then STACKS any trapped pouches on top of your main inventory pouch // Loot bag will be moved into main inventory pouch and automatically set as your Grab Bag for Gridloot, etc. // Script will then hide the stack underneath an ATLAS and put a DECOY TRAPPED POUCH out in the open // ASPECT WEAPON and ARMOR will be re-activated automatically and HP restored to MAX // Loadout reset finishes by opening backpack, main pouch, loot bag and any satchels /////////////////////////// //' SCRIPT MODES: '// /////////////////////////// // I use this variable to setup multiple "modes" with different hotkeys. # Copy and paste to new script and update variables for different setups (Dungeon, Wilderness, SYG, etc.) # Just change the NUMBERS (ie. 'if ScriptMode = 2'/'@setvar! ScriptMode 2') and overhead message (ie.'overhead "[ WILDERNESS MODE ]" 1182') for each version # Script will only display overhead mode message when switching between modes or upon first run of a new client login # I use a ROG Ally and set each hotkey to a different button (A, B, X, Y) and have multiple script modes at the ready! if DUNGEONMODE = 1 if ScriptMode = 1 // Do nothing else overhead "[ DUNGEON MODE ]" 2338 @setvar! ScriptMode 1 hotkey 'Toggle War Only' endif elseif WILDERNESSMODE = 1 if ScriptMode = 2 // Do nothing else overhead "[ WILDERNESS MODE ]" 1182 @setvar! ScriptMode 2 hotkey 'Toggle War Only' endif endif ////////////////////////// //' MOB IGNORE LIST: '// ////////////////////////// removelist animalsIgnoreList createlist animalsIgnoreList pushlist animalsIgnoreList "a plover" pushlist animalsIgnoreList "a sheep" pushlist animalsIgnoreList "a frenzied ostard" pushlist animalsIgnoreList "a tundra ostard" pushlist animalsIgnoreList "a desert ostard" pushlist animalsIgnoreList "a forest ostard" pushlist animalsIgnoreList "a finch" pushlist animalsIgnoreList "a sparrow" pushlist animalsIgnoreList "a towhee" pushlist animalsIgnoreList "a lapwing" pushlist animalsIgnoreList "a silverback" pushlist animalsIgnoreList "a giant frog" pushlist animalsIgnoreList "a crow" pushlist animalsIgnoreList "a woodpecker" pushlist animalsIgnoreList "a horse" pushlist animalsIgnoreList "a swift" pushlist animalsIgnoreList "a skylark" pushlist animalsIgnoreList "a hawk" pushlist animalsIgnoreList "a chickadee" pushlist animalsIgnoreList "a cat" pushlist animalsIgnoreList "a dog" pushlist animalsIgnoreList "a black bear" pushlist animalsIgnoreList "a brown bear" pushlist animalsIgnoreList "a grizzly bear" pushlist animalsIgnoreList "a bull" pushlist animalsIgnoreList "a cow" pushlist animalsIgnoreList "a chicken" pushlist animalsIgnoreList "a bird" pushlist animalsIgnoreList "an eagle" pushlist animalsIgnoreList "an elk" pushlist animalsIgnoreList "a great hart" pushlist animalsIgnoreList "a kingfisher" pushlist animalsIgnoreList "a hind" pushlist animalsIgnoreList "a llama" pushlist animalsIgnoreList "a sand crab" pushlist animalsIgnoreList "a pig" pushlist animalsIgnoreList "a polar bear" pushlist animalsIgnoreList "a walrus" pushlist animalsIgnoreList "a cougar" pushlist animalsIgnoreList "a wolf" pushlist animalsIgnoreList "a goat" pushlist animalsIgnoreList "a raven" pushlist animalsIgnoreList "a magpie" pushlist animalsIgnoreList "a warbler" pushlist animalsIgnoreList "a tern" pushlist animalsIgnoreList "a nightingale" pushlist animalsIgnoreList "a wren" pushlist animalsIgnoreList "a nuthatch" pushlist animalsIgnoreList "a starling" pushlist animalsIgnoreList "a cuckoo" pushlist animalsIgnoreList "ADD MOBS TO IGNORE HERE" pushlist animalsIgnoreList "ADD MOBS TO IGNORE HERE" pushlist animalsIgnoreList "ADD MOBS TO IGNORE HERE" /////////////////////////// //' END OF VARIABLES! '// /////////////////////////// ################ !EDIT BELOW THIS LINE AT YOUR OWN RISK! ######## !EDIT BELOW THIS LINE AT YOUR OWN RISK! ######## !EDIT BELOW THIS LINE AT YOUR OWN RISK! ######## !EDIT BELOW THIS LINE AT YOUR OWN RISK! ################ /////////////////////// // SCRIPT RESET: // /////////////////////// if ResetScriptPermanentVariables = 1 @setvar! IHAVEDIED 0 @setvar! TimeToGo 0 @setvar! DungeonGateThenTimeToGo 0 @setvar! ResThenTimeToGo 0 @setvar! RecallScrollsOnly 0 @setvar! RedTargetFound 0 @setvar! RECALLTIME 0 @setvar! WarModeToggledWhileFighting 0 unsetvar AutoRecallChargedRunebook unsetvar FirstRunArcaneMage unsetvar ArcaneMageAutoPilot unsetvar LootBag unsetvar LootChest overhead "[ SCRIPT VARIABLES RESET... ]" 333 sysmsg "Please return 'ResetScriptPermanentVariables' to '0' to continue!" 153 stop endif /////////////////////// // TIMER SETUPS: // /////////////////////// if TimeToGo != 1 and AutoRecallTime != 1 if not timerexists 'PotionKegPVPCooldown' createtimer 'PotionKegPVPCooldown' settimer 'PotionKegPVPCooldown' 30000 endif if not timerexists 'WorldSaveTimer' createtimer 'WorldSaveTimer' settimer 'WorldSaveTimer' 0 endif if not timerexists 'LootTimer' createtimer 'LootTimer' settimer 'LootTimer' 0 endif if not timerexists 'PurplePotionTimer' createtimer 'PurplePotionTimer' settimer 'PurplePotionTimer' 0 endif if not timerexists 'FlamestrikeCooldownTimer' createtimer 'FlamestrikeCooldownTimer' settimer 'FlamestrikeCooldownTimer' FlamestrikeCooldown endif if not timerexists 'ExplosionCooldownTimer' createtimer 'ExplosionCooldownTimer' settimer 'ExplosionCooldownTimer' ExplosionCooldown endif if not timerexists 'EnergyBoltCooldownTimer' createtimer 'EnergyBoltCooldownTimer' settimer 'EnergyBoltCooldownTimer' EnergyBoltCooldown endif if not timerexists 'MindBlastCooldownTimer' createtimer 'MindBlastCooldownTimer' settimer 'MindBlastCooldownTimer' MindBlastCooldown endif if not timerexists 'WeightTimer' createtimer 'WeightTimer' settimer 'WeightTimer' 0 endif if not timerexists 'PKRadar' createtimer 'PKRadar' settimer 'PKRadar' 0 endif if not timerexists 'DungeonEscape' createtimer 'DungeonEscape' settimer 'DungeonEscape' 0 endif if not timerexists 'TargetChecker' createtimer 'TargetChecker' settimer 'TargetChecker' 0 endif if not timerexists 'TauntingTimer' createtimer 'TauntingTimer' settimer 'TauntingTimer' 0 endif if not timerexists 'WeaponCodexTimer' createtimer 'WeaponCodexTimer' settimer 'WeaponCodexTimer' 0 endif if not timerexists 'WeaponCodexCheckTimer' createtimer 'WeaponCodexCheckTimer' settimer 'WeaponCodexCheckTimer' 2000 endif if not timerexists 'ShieldCodexTimer' createtimer 'ShieldCodexTimer' settimer 'ShieldCodexTimer' 0 endif if not timerexists 'ShieldCodexCheckTimer' createtimer 'ShieldCodexCheckTimer' settimer 'ShieldCodexCheckTimer' 2000 endif if not timerexists 'DungeonCleanup' createtimer 'DungeonCleanup' settimer 'DungeonCleanup' 0 endif if not timerexists 'DungeonCleanupRadar' createtimer 'DungeonCleanupRadar' settimer 'DungeonCleanupRadar' 0 endif if not timerexists 'ArcaneStaffCheck' createtimer 'ArcaneStaffCheck' settimer 'ArcaneStaffCheck' 4500 endif if not timerexists 'TargetTimer' createtimer 'TargetTimer' settimer 'TargetTimer' 4500 endif if not timerexists 'MissingRegsTimer' createtimer 'MissingRegsTimer' settimer 'MissingRegsTimer' 4500 endif if not timerexists 'ManaOverheadTimer' createtimer 'ManaOverheadTimer' settimer 'ManaOverheadTimer' 4500 endif if not timerexists 'REDALERT' createtimer 'REDALERT' settimer 'REDALERT' 0 endif if not timerexists 'MANAWAIT' createtimer 'MANAWAIT' settimer 'MANAWAIT' 4500 endif if not timerexists 'GETCLOSER' createtimer 'GETCLOSER' settimer 'GETCLOSER' 4500 endif if not timerexists 'GATEHERE' createtimer 'GATEHERE' settimer 'GATEHERE' 4500 endif if not timerexists 'RECALLDELAY' createtimer 'RECALLDELAY' settimer 'RECALLDELAY' 4500 endif if not timerexists 'RUNAWAY' createtimer 'RUNAWAY' settimer 'RUNAWAY' 6000 endif if not timerexists 'STORELOOT' createtimer 'STORELOOT' settimer 'STORELOOT' 5000 endif if not timerexists 'OverweightMessageTimer' createtimer 'OverweightMessageTimer' settimer 'OverweightMessageTimer' 4500 endif if not timerexists 'InventoryCheck' createtimer 'InventoryCheck' settimer 'InventoryCheck' 5000 endif if not timerexists 'FoodMessageTimer' createtimer 'FoodMessageTimer' settimer 'FoodMessageTimer' 4500 endif if not timerexists 'PouchMessageTimer' createtimer 'PouchMessageTimer' settimer 'PouchMessageTimer' 4500 endif if not timerexists 'PotionKegTimer' createtimer 'PotionKegTimer' settimer 'PotionKegTimer' 3500 endif if not timerexists 'HealPotionTimer' createtimer 'HealPotionTimer' settimer 'HealPotionTimer' 11000 endif if not timerexists 'TelekinesisTimer' createtimer 'TelekinesisTimer' settimer 'TelekinesisTimer' 60000 endif if not timerexists 'OrganizerAgentTimer' createtimer 'OrganizerAgentTimer' settimer 'OrganizerAgentTimer' 15000 endif if not timerexists 'MeditationOverheadTimer' createtimer 'MeditationOverheadTimer' settimer 'MeditationOverheadTimer' 5000 endif if not timerexists 'SkinningTimer' createtimer 'SkinningTimer' settimer 'SkinningTimer' 5000 endif if not timerexists 'MeditationTimer' createtimer 'MeditationTimer' settimer 'MeditationTimer' 10500 endif if not timerexists 'ArcaneWeaponAbilityTimer' createtimer 'ArcaneWeaponAbilityTimer' settimer 'ArcaneWeaponAbilityTimer' 10500 endif if not timerexists 'MagicReflectTimer' createtimer 'MagicReflectTimer' settimer 'MagicReflectTimer' 15000 endif if not timerexists 'EvilOmenTimer' createtimer 'EvilOmenTimer' settimer 'EvilOmenTimer' 30000 endif if not timerexists 'CorpseSkinTimer' createtimer 'CorpseSkinTimer' settimer 'CorpseSkinTimer' 30000 endif if not timerexists 'PainSpikeTimer' createtimer 'PainSpikeTimer' settimer 'PainSpikeTimer' 30000 endif if not timerexists 'PainSpikeDelayTimer' createtimer 'PainSpikeDelayTimer' settimer 'PainSpikeDelayTimer' 10000 endif if not timerexists 'StrangleTimer' createtimer 'StrangleTimer' settimer 'StrangleTimer' 30000 endif if not timerexists 'MindRotTimer' createtimer 'MindRotTimer' settimer 'MindRotTimer' 30000 endif if not timerexists 'EatManaSnackCooldownTimer' createtimer 'EatManaSnackCooldownTimer' settimer 'EatManaSnackCooldownTimer' EatManaSnackCooldown endif if not timerexists 'EatHealSnackCooldownTimer' createtimer 'EatHealSnackCooldownTimer' settimer 'EatHealSnackCooldownTimer' EatHealSnackCooldown endif if not timerexists 'WizardSatchelTimer' createtimer 'WizardSatchelTimer' settimer 'WizardSatchelTimer' 60000 endif if not timerexists 'PotionSatchelTimer' createtimer 'PotionSatchelTimer' settimer 'PotionSatchelTimer' 60000 endif if not timerexists 'CurseTimer' createtimer 'CurseTimer' settimer 'CurseTimer' 60000 endif if not timerexists 'ManaDrainTimer' createtimer 'ManaDrainTimer' settimer 'ManaDrainTimer' 60000 endif if not timerexists 'MagicArrowTimer' createtimer 'MagicArrowTimer' settimer 'MagicArrowTimer' MagicArrowCooldown endif if not timerexists 'HarmTimer' createtimer 'HarmTimer' settimer 'HarmTimer' HarmCooldown endif if not timerexists 'FireballTimer' createtimer 'FireballTimer' settimer 'FireballTimer' FireballCooldown endif if not timerexists 'LightningTimer' createtimer 'LightningTimer' settimer 'LightningTimer' LightningCooldown endif if not timerexists 'MushroomTimer' createtimer 'MushroomTimer' settimer 'MushroomTimer' 60000 endif if not timerexists 'WeightMessageTimer' createtimer 'WeightMessageTimer' settimer 'WeightMessageTimer' 5000 endif if not timerexists 'PKRadarTimer' createtimer 'PKRadarTimer' settimer 'PKRadarTimer' 1500 endif if not timerexists 'GoldRadar' createtimer 'GoldRadar' settimer 'GoldRadar' 5000 endif if not timerexists 'AnalyzingTargetsTimer' createtimer 'AnalyzingTargetsTimer' settimer 'AnalyzingTargetsTimer' 5000 endif if not timerexists 'CannotSeeTargetTimer' createtimer 'CannotSeeTargetTimer' settimer 'CannotSeeTargetTimer' 5000 endif if not timerexists 'ReactiveArmorTimer' createtimer 'ReactiveArmorTimer' settimer 'ReactiveArmorTimer' 5000 endif if not timerexists 'AttackTargetTimer' createtimer 'AttackTargetTimer' settimer 'AttackTargetTimer' 5000 endif if not timerexists 'HealPotionMessageTimer' createtimer 'HealPotionMessageTimer' settimer 'HealPotionMessageTimer' 5000 endif if not timerexists 'BluePotionMessageTimer' createtimer 'BluePotionMessageTimer' settimer 'BluePotionMessageTimer' 4500 endif if not timerexists 'PurplePotionMessageTimer' createtimer 'PurplePotionMessageTimer' settimer 'PurplePotionMessageTimer' 15000 endif if not timerexists 'CurePotionMessageTimer' createtimer 'CurePotionMessageTimer' settimer 'CurePotionMessageTimer' 4500 endif if not timerexists 'WhitePotionMessageTimer' createtimer 'WhitePotionMessageTimer' settimer 'WhitePotionMessageTimer' 5000 endif if not timerexists 'BlackPotionMessageTimer' createtimer 'BlackPotionMessageTimer' settimer 'BlackPotionMessageTimer' 5000 endif if not timerexists 'RedPotionMessageTimer' createtimer 'RedPotionMessageTimer' settimer 'RedPotionMessageTimer' 5000 endif if not timerexists 'CorpseSkinDiseaseTimer' createtimer 'CorpseSkinDiseaseTimer' settimer 'CorpseSkinDiseaseTimer' 30000 endif if not timerexists 'PoisonStrikeTimer' createtimer 'PoisonStrikeTimer' settimer 'PoisonStrikeTimer' 30000 endif if not timerexists 'MeditationMessageTimer' createtimer 'MeditationMessageTimer' settimer 'MeditationMessageTimer' 5000 endif if not timerexists 'NothingToTargetMessageTimer' createtimer 'NothingToTargetMessageTimer' settimer 'NothingToTargetMessageTimer' 5000 endif if not timerexists 'LootStorageTimer' createtimer 'LootStorageTimer' settimer 'LootStorageTimer' 5000 endif if not timerexists 'SwapTargetsTimer' createtimer 'SwapTargetsTimer' settimer 'SwapTargetsTimer' 5000 endif if not timerexists 'AutoHealOverheadTimer' createtimer 'AutoHealOverheadTimer' settimer 'AutoHealOverheadTimer' 5000 endif if not timerexists 'TargetIsTooFarTimer' createtimer 'TargetIsTooFarTimer' settimer 'TargetIsTooFarTimer' 5000 endif if not timerexists 'AntiStallTimer' createtimer 'AntiStallTimer' settimer 'AntiStallTimer' 3500 endif if not timerexists 'SkinningTimeoutTimer' createtimer 'SkinningTimeoutTimer' settimer 'SkinningTimeoutTimer' 3500 endif if not timerexists 'spellTimer' createtimer 'spellTimer' settimer 'spellTimer' 0 endif if not timerexists 'WaitingToRecallTimer' createtimer 'WaitingToRecallTimer' settimer 'WaitingToRecallTimer' 4500 endif if not timerexists 'MushroomMakerTimer' createtimer 'MushroomMakerTimer' settimer 'MushroomMakerTimer' 4500 endif if not timerexists 'IgnoreMOBtimer' createtimer 'IgnoreMOBtimer' settimer 'IgnoreMOBtimer' 3000 endif if not timerexists 'NoHealRegsTimer' createtimer 'NoHealRegsTimer' settimer 'NoHealRegsTimer' 4500 endif if not timerexists 'PopPouchMessageTimer' createtimer 'PopPouchMessageTimer' settimer 'PopPouchMessageTimer' 4500 endif if not timerexists 'EatFoodMessageTimer' createtimer 'EatFoodMessageTimer' settimer 'EatFoodMessageTimer' 4500 endif if not timerexists 'RepairTimer' createtimer 'RepairTimer' settimer 'RepairTimer' 0 endif if not timerexists 'WaitingForHealerTimer' createtimer 'WaitingForHealerTimer' settimer 'WaitingForHealerTimer' 4500 endif if not timerexists 'GateIndicatorTimer' createtimer 'GateIndicatorTimer' settimer 'GateIndicatorTimer' 4500 endif if not timerexists 'CleansingBrewTimer' createtimer 'CleansingBrewTimer' settimer 'CleansingBrewTimer' 120000 endif if not timerexists 'CleansingBrewOverhead' createtimer 'CleansingBrewOverhead' settimer 'CleansingBrewOverhead' 15000 endif if not timerexists 'ArcaneRuneTimer' createtimer 'ArcaneRuneTimer' settimer 'ArcaneRuneTimer' ArcaneRunePlacementCooldown endif if not timerexists 'NecroCooldownTimer' createtimer 'NecroCooldownTimer' settimer 'NecroCooldownTimer' 5000 endif if not timerexists 'BandageMessageTimer' createtimer 'BandageMessageTimer' settimer 'BandageMessageTimer' 1500 endif if not timerexists 'NoTargetTimer' createtimer 'NoTargetTimer' settimer 'NoTargetTimer' 5000 endif if not varexist AutoRecallTime @setvar! AutoRecallTime 0 endif if not varexist previousTarget @setvar! previousTarget 0 endif if not varexist FirstRunArcaneMage setvar FirstRunArcaneMage 0 endif if not varexist TargetSwap @setvar! TargetSwap 0 endif if not varexist ClosestTarget @setvar! ClosestTarget 0 endif if not varexist TargetToAnalyze @setvar! TargetToAnalyze 0 endif if not varexist AttackModeActive @setvar! AttackModeActive 0 endif if not varexist TargetToCheck @setvar! TargetToCheck 0 endif if not varexist AutoWeightRecall @setvar! AutoWeightRecall 0 endif if not varexist SpellInterrupted @setvar! SpellInterrupted 0 endif if not varexist DisableVacuums @setvar! DisableVacuums 0 endif if not varexist NoLockbox @setvar! NoLockbox 0 endif @ignore MyBlessedSpellbook if WILDERNESSMODE = 1 and DUNGEONMODE = 1 overhead '[ INVALID SCRIPT MODE! ]' 37 sysmsg 'Both DUNGEONMODE and WILDERNESSMODE are enabled - please select only ONE AT A TIME at top of script!' 153 wait 1500 overhead '[ STOPPING SCRIPT ]' 88 stop elseif WILDERNESSMODE = 0 and DUNGEONMODE = 0 overhead '[ INVALID SCRIPT MODE! ]' 37 sysmsg 'Both DUNGEONMODE and WILDERNESSMODE are disabled - please select your desired mode at top of script!' 153 wait 1500 overhead '[ STOPPING SCRIPT ]' 88 stop endif @setvar! EnableUseEmotes 0 @setvar! SetEmoteCooldown 120000 # Requires the following emotes to be unlocked: [Awoo, [HighFive, [Yes and [Whistle # Requires 'EnableOverheadMessages' set to '1' # Will use Emotes when Aspect, Codex or Chain Links are leveled up and when entering the Auto Heal loop # Also uses Emotes when certain finishers are performed (W.I.P.) and when target is eliminated # Cooldown defaults to 2 minutes but can be reduced via customizations in-game (375k gold reduces it to 30 seconds) # Add optional cooldown in UO client: 'Emote Cooldown' (case sensitive) if not timerexists "EmoteCooldownTimer" createtimer "EmoteCooldownTimer" settimer "EmoteCooldownTimer" SetEmoteCooldown endif endif ////////////////////// // INITIAL SETUP: // ////////////////////// if not dead and TimeToGo != 1 and AutoRecallTime != 1 if not varexist ArcaneMageAutoPilot or ArcaneMageAutoPilot != 1 overhead "Lord Glacier's Chill Arcane Mage Auto Pilot Script" 2234 # ' overhead "version 3.0.1" 2234 wait 1500 overhead "Last Updated: October 9, 2026" 88 wait 2500 overhead "Thank you for trying my Arcane Mage AUTO PILOT script! It appears this may be your first time running it..." 0 wait 4000 overhead "IMPT: Please make sure to check and adjust your VARIABLES!" 153 wait 4500 overhead "Please read the TIPS section at the beginning of the script for more info" 88 wait 3000 setvar ArcaneMageAutoPilot 1 sysmsg "Beginning Lord Glacier's Chill Arcane Mage Auto Pilot script.......... " 0 # ' wait 1000 endif while FirstRunArcaneMage != 1 if EnableDIYRecallScript != 1 if EnableAutoRedRecall = 1 or EnableAutoWeightRecall = 1 or EnableRecallAfterResurrection = 1 or EnableRecallAfterDungeonGate = 1 if not varexist AutoRecallChargedRunebook or not find AutoRecallChargedRunebook self wait 500 overhead "You have enabled Auto Recall (PK or Weight) and must select a runebook to continue!" 0 wait 1500 overhead "Select your escape runebook..." 253 setvar AutoRecallChargedRunebook wait 500 while targetexists wait 100 endwhile sysmsg "Will cast to 'default rune' in Runebook (if 'casting' enabled) or uses scrolls to 'first location' in Runebook (if no Magery skill)" 153 wait 1500 endif endif endif if EnableLootChest = 1 if EnableAutoRedRecall = 1 or EnableAutoWeightRecall = 1 or EnableRecallAfterResurrection = 1 or EnableRecallAfterDungeonGate = 1 if not varexist LootChest wait 500 overhead "Select a secure container to store your Loot..." 253 sysmsg "Can be disabled under script variables section." 0 wait 1000 overhead "Anything that will not go into a Resource Stockpile, Storage Shelf, Tomes or Magic Recycler" 0 overhead "(ie. Skill Orbs, Research Mats, Paragon chests, etc.)" setvar LootChest wait 500 while targetexists wait 100 endwhile sysmsg "Use Razor Organizer Agents 06 - 09 for the Loot Chest and its contents - organize to your own liking!" 0 wait 1500 endif endif endif if EnableStorageTomeContainer = 1 if EnableAutoRedRecall = 1 or EnableAutoWeightRecall = 1 or EnableRecallAfterResurrection = 1 or EnableRecallAfterDungeonGate = 1 if not varexist TomeContainer wait 500 overhead "Please select a secure container to store your Tomes..." 253 sysmsg "Can be disabled under script variables section." 0 wait 1000 overhead "This will cause script to look in this container for any Storage Tomes when unloading loot..." 0 setvar TomeContainer wait 500 while targetexists wait 100 endwhile sysmsg "Turn this variable off if your tomes are stored on the ground in your home/inn room" 0 wait 1500 endif endif endif if EnableLootBag = 1 and IHAVEDIED != 1 if EnableAutoRedRecall = 1 or EnableAutoWeightRecall = 1 or EnableRecallAfterResurrection = 1 or EnableRecallAfterDungeonGate = 1 if not varexist LootBag wait 500 overhead "Please select your loot bag..." 253 wait 1000 overhead "This should be whatever is set as your 'Grab Bag' and will be opened when unloading loot after recalling..." 0 setvar LootBag wait 500 while targetexists wait 100 endwhile endif if not find LootBag self overhead "[ NO LOOT BAG ]" 337 wait 1500 overhead "Select your new loot bag..." 253 wait 500 setvar LootBag wait 250 while targetexists wait 100 endwhile endif endif endif if not varexist FirstRunArcaneMage or FirstRunArcaneMage != 1 wait 1000 overhead "Good luck out there!" 2234 overhead " - Dan (aka. Glacier)" 2234 wait 1500 setvar FirstRunArcaneMage 1 getlabel backpack backpacklabel endif if FirstRunArcaneMage = 1 hotkey 'Toggle War Only' break endif endwhile endif ############################### ### SCRIPT STARTS HERE: ### ############################### /////////////////// // ALIVE LOOP: // /////////////////// while not dead if dead break endif if TimeToGo != 1 and IHAVEDIED != 1 and AutoRecallTime != 1 if EnableTrackingAutoRecall = 1 and skill 'Tracking' > 50 if not findbuff 'tracking' while not gumpexists 4267467659 useskill 'tracking' wait 250 endwhile if gumpexists 4267467659 while not insysmsg "You will now hunt all hostile players." gumpresponse 8 4267467659 waitforgump 4267467659 5000 endwhile gumpresponse 6 4267467659 wait 500 clearsysmsg endif gumpclose 4267467659 if EnableOverheadMessages = 1 overhead "[ RED RECALL ACTIVATED! ]" 334 endif endif endif if EnableTrackingAutoRecall = 1 and TimeToGo != 1 if PKTrackingRange = 60 if insysmsg ": 60 step" or insysmsg "60 space" or insysmsg ": 59 step" or insysmsg "59 space" or insysmsg ": 58 step" or insysmsg "58 space" or insysmsg ": 57 step" or insysmsg "57 space" or insysmsg ": 56 step" or insysmsg "56 space" or insysmsg ": 55 step" or insysmsg "55 space" or insysmsg ": 54 step" or insysmsg "54 space" or insysmsg ": 53 step" or insysmsg "53 space" or insysmsg ": 52 step" or insysmsg "52 space" or insysmsg ": 51 step" or insysmsg "51 space" or insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif @setvar! RedTargetFound 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg endif elseif PKTrackingRange = 50 if insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif @setvar! RedTargetFound 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg endif elseif PKTrackingRange = 40 if insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif @setvar! RedTargetFound 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg endif elseif PKTrackingRange = 0 if insysmsg "Now tracking" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif @setvar! RedTargetFound 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg endif endif endif if EnablePKradar = 1 and TimeToGo != 1 if timer "PKRadar" > 1500 clearsysmsg hotkey 'Next Murderer Player Target' wait 250 if insysmsg "No one matching that was found" settimer "PKRadar" 0 clearsysmsg else if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 @setvar! MurdererTarget lasttarget endif endif endif if skill 'necromancy' >= 50 and not gumpexists 622436516 if findtype 'necromancer book' backpack yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' wait 500 endwhile elseif EnableOverheadMessages = 1 overhead '[ NO NECRO BOOK! ]' 337 wait 500 endif endif if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self clearignore getlabel backpack backpacklabel if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer MissingRegsTimer > 5000 if counttype "3972" self = 0 overhead '[ NO GARLIC ]' 646 endif if counttype "3962" self = 0 overhead '[ NO BLACK PEARL ]' 3 endif if counttype "3963" self = 0 overhead '[ NO BLOODMOSS ]' 33 endif if counttype "3980" self = 0 overhead '[ NO SULFUROUS ASH ]' 153 endif if counttype "3976" self = 0 overhead '[ NO NIGHTSHADE ]' 363 endif if counttype "3973" self = 0 overhead '[ NO GINSENG ]' 247 endif if counttype "3974" self = 0 overhead '[ NO MANDRAKE ROOT ]' 442 endif if counttype "3981" self = 0 overhead '[ NO SPIDERS SILK ]' 2338 endif settimer MissingRegsTimer 0 endif endif @setvar! MissingRegs 1 else @setvar! MissingRegs 0 endif else @setvar! MissingRegs 0 endif if EnableWeightWarningMessage = 1 if diffweight < RedWeightLimitDiffWeight if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "WeightMessageTimer" > 10000 overhead '[ WEIGHT LIMIT REACHED! ]' 37 settimer "WeightMessageTimer" 0 endif else if timer "WeightMessageTimer" > 10000 overhead " � " 37 settimer "WeightMessageTimer" 0 endif endif if EnableAutoWeightRecall = 1 and not find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 wait 1000 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! AutoWeightRecall 1 replay elseif EnableAutoWeightRecall = 1 and find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 if timer "WaitingToRecallTimer" > 3500 and EnableAutoRecallOverheadMessages = 1 overhead '[ WAITING TO RECALL... ]' 149 settimer "WaitingToRecallTimer" 0 endif wait 500 elseif EnableAutoWeightDungeonGate = 1 and DUNGEONMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 replay else if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ OVERWEIGHT! ]' 337 else overhead " � " 337 endif wait 1500 overhead '[ STOPPING SCRIPT! ]' 88 stop endif endif endif endif if paralyzed and EnableAutoParalyzePouch = 1 if findtype "pouch" self yell "[pouch" wait 250 hotkey 'Toggle Peace Only' @setvar! RedTargetFound 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 else if timer PouchMessageTimer > 5000 and EnableOverheadMessages = 1 overhead "[ NO MORE POUCHES! ]" 337 settimer PouchMessageTimer 0 endif endif endif if EnableDropGoldWhenOverweight = 1 if weight > maxweight if timer OverweightMessageTimer > 4500 overhead "[ OVERWEIGHT! ]" 34 settimer OverweightMessageTimer 0 endif if DropGoldAmount != 0 clearignore @setvar! DisableVacuums 1 wait 250 if EnablePutLootinLockBox = 1 if findtype "wooden box" self as lockbox if findtype "copper key" self as key clearignore getlabel lockbox lockboxlabel wait 100 if "items" in lockboxlabel // Do nothing else dclick key wft 1500 target lockbox wait 500 if insysmsg "It appears to be locked." dclick key wft 1500 target lockbox wait 250 else if EnableOverheadMessages != 0 overhead "[loot box unlocked]" 84 endif endif endif elseif EnableOverheadMessages = 1 overhead "[ NO LOCKBOX KEY! ]" 337 endif endif endif while weight > maxweight and diffhits < CastGreaterHealHPdiff if findtype "gold coin" self as easycomeeasygo lift easycomeeasygo DropGoldAmount droprelloc 0 0 getlabel backpack packdesc if EnableOverheadMessages = 1 overhead "[ DROPPING GOLD... ]" 149 endif wait 250 if insysmsg "cannot drop anything" drop backpack -1 -1 -1 break endif wait 250 else break endif if diffhits > CastGreaterHealHPdiff break endif endwhile endif endif endif ////////////////////////// // BEGIN AUTO RECALL: // ////////////////////////// if not warmode and WarModeToggledWhileFighting != 1 if dead break endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if EnableAutoWeightRecall = 1 and AutoWeightRecall = 1 if EnableDIYRecallScript = 1 @setvar! AutoWeightRecall 0 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else if targetexists hotkey 'Cancel Current Target' endif hotkey 'Toggle Peace only' clearsysmsg while not varexist AutoRecallChargedRunebook and EnableDIYRecallScript != 1 overhead "Select your escape runebook..." 253 @setvar! AutoRecallChargedRunebook wait 2500 endwhile while mana < 11 if timer "MANAWAIT" > 4000 and EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 12 settimer "MANAWAIT" 0 endif wait 500 endwhile if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ AUTO WEIGHT RECALL! ]' 88 wait 500 endif @setvar! AutoWeightRecall 0 @setvar! RECALLTIME 1 endif elseif EnableAutoRedRecall = 1 and RedTargetFound = 1 if EnableDIYRecallScript = 1 @setvar! RedTargetFound 0 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else if targetexists hotkey 'Cancel Current Target' endif hotkey 'Toggle Peace only' clearsysmsg while not varexist AutoRecallChargedRunebook and EnableDIYRecallScript != 1 overhead "Select your escape runebook..." 253 @setvar! AutoRecallChargedRunebook wait 2500 endwhile while mana < 11 if timer "MANAWAIT" > 4000 and EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 12 settimer "MANAWAIT" 0 endif wait 500 endwhile @setvar! RECALLTIME 1 endif elseif EnableRecallAfterDungeonGate = 1 and DungeonGateThenTimeToGo = 1 if EnableDIYRecallScript = 1 @setvar! DungeonGateThenTimeToGo 0 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else if targetexists hotkey 'Cancel Current Target' endif hotkey 'Toggle Peace only' clearsysmsg while not varexist AutoRecallChargedRunebook and EnableDIYRecallScript != 1 overhead "Select your escape runebook..." 253 @setvar! AutoRecallChargedRunebook wait 2500 endwhile while mana < 11 if timer "MANAWAIT" > 4000 and EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 12 settimer "MANAWAIT" 0 endif wait 500 endwhile if EnableOverheadMessages = 1 overhead '[ AUTO RECALL! ]' 88 endif @setvar! DungeonGateThenTimeToGo 0 @setvar! TimeToGo 0 @setvar! RECALLTIME 1 endif elseif EnableRecallAfterResurrection = 1 and ResThenTimeToGo = 1 if EnableDIYRecallScript = 1 @setvar! ResThenTimeToGo 0 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else if targetexists hotkey 'Cancel Current Target' endif hotkey 'Toggle Peace only' clearsysmsg while not varexist AutoRecallChargedRunebook and EnableDIYRecallScript != 1 overhead "Select your escape runebook..." 253 @setvar! AutoRecallChargedRunebook wait 2500 endwhile while mana < 11 if timer "MANAWAIT" > 4000 and EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 12 settimer "MANAWAIT" 0 endif wait 500 endwhile if EnableOverheadMessages = 1 overhead '[ AUTO RECALL! ]' 88 wait 1000 endif @setvar! AutoRecallTime 0 @setvar! TimeToGo 0 @setvar! ResThenTimeToGo 0 @setvar! RecallScrollsOnly 1 @setvar! RECALLTIME 1 endif elseif AutoRecallTime = 1 if EnableDIYRecallScript = 1 @setvar! AutoRecallTime 0 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else if targetexists hotkey 'Cancel Current Target' endif hotkey 'Toggle Peace only' clearsysmsg while not varexist AutoRecallChargedRunebook and EnableDIYRecallScript != 1 overhead "Select your escape runebook..." 253 @setvar! AutoRecallChargedRunebook wait 2500 endwhile while mana < 11 if timer "MANAWAIT" > 4000 and EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 12 settimer "MANAWAIT" 0 endif wait 500 endwhile if EnableOverheadMessages = 1 overhead '[ AUTO RECALL! ]' 88 wait 1000 endif @setvar! AutoRecallTime 0 @setvar! RECALLTIME 1 endif elseif EnableAutoRedDungeonGate = 1 or EnableAutoWeightDungeonGate = 1 if TimeToGo = 1 settimer "DungeonEscape" 0 sysmsg "Dungeon Escape mode enabled! (variables 'EnableAutoRedDungeonGate' and/or 'EnableAutoWeightDungeonGate')" 0 sysmsg "Script will automatically revert after {{DungeonEscapeTimeLimit}}ms or upon dungeon exit" 88 wait 250 sysmsg "Please proceed to the nearest exit gate! It will be indicated by overhead arrows!" 153 //////////////////////////// // DUNGEON ESCAPE LOOP: // //////////////////////////// while timer "DungeonEscape" < DungeonEscapeTimeLimit if dead break endif while not gumpexists 3899019871 and findtype "blue moongate" ground 0 1 2 as EscapeGate dclick EscapeGate wait 500 endwhile if gumpexists 3899019871 and findtype "blue moongate" ground 0 1 2 as EscapeGate while gumpexists 3899019871 and findtype "blue moongate" ground 0 1 2 as EscapeGate gumpresponse 2 3899019871 wait 250 endwhile wait 1500 @setvar! TimeToGo 0 if EnableDIYRecallScript = 1 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! DungeonGateThenTimeToGo 1 @setvar! AutoRecallTime 1 replay endif endif while not gumpexists 3899019871 and findtype 30528 ground 2091 1 1 as EscapeGate dclick EscapeGate wait 500 endwhile if gumpexists 3899019871 and findtype 30528 ground 2091 1 1 as EscapeGate while gumpexists 3899019871 and findtype 30528 ground 2091 1 1 as EscapeGate gumpresponse 2 3899019871 wait 250 endwhile @setvar! TimeToGo 0 if EnableDIYRecallScript = 1 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! DungeonGateThenTimeToGo 1 @setvar! AutoRecallTime 1 replay endif endif while not gumpexists 3773199800 and findtype "blue moongate" ground -1 1 2 as EscapeGate dclick EscapeGate wait 500 endwhile if gumpexists 3773199800 and findtype "blue moongate" ground -1 1 2 as EscapeGate while gumpexists 3773199800 and findtype "blue moongate" ground -1 1 2 as EscapeGate gumpresponse 2 3773199800 wait 250 endwhile wait 1500 @setvar! TimeToGo 0 if EnableDIYRecallScript = 1 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! DungeonGateThenTimeToGo 1 @setvar! AutoRecallTime 1 replay endif endif while not gumpexists 3899019871 and findtype "moongate" ground -1 -1 2 as EscapeGate dclick EscapeGate wait 500 endwhile if gumpexists 3899019871 and findtype "moongate" ground -1 -1 2 as EscapeGate while gumpexists 3899019871 and findtype "moongate" ground -1 -1 2 as EscapeGate gumpresponse 2 3899019871 wait 250 endwhile wait 1500 @setvar! TimeToGo 0 if EnableDIYRecallScript = 1 foreach RecallScript in DIYRecallScriptList script RecallScript endfor else hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! DungeonGateThenTimeToGo 1 @setvar! AutoRecallTime 1 replay endif endif if findtype "moongate" ground -1 1 12 or findtype "blue moongate" ground -1 1 12 as EscapeGate if timer "GETCLOSER" > 4500 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ GET CLOSER TO GATE! ]' 253 else overhead " � " 253 endif settimer "GETCLOSER" 0 endif if timer "GATEHERE" > 500 overhead " � " 253 EscapeGate settimer "GATEHERE" 0 endif else if timer "RUNAWAY" > 4500 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ GET TO A GATE... ]' 77 else overhead " � " 77 endif settimer "RUNAWAY" 0 endif endif if EnableAutoParalyzePouch = 1 if paralyzed if findtype "pouch" self yell "[pouch" else if EnableOverheadMessages = 1 overhead '[ NO MORE POUCHES! ]' 337 endif endif endif endif if EnableDropGoldWhenOverweight = 1 if weight > maxweight if timer OverweightMessageTimer > 4500 overhead "[ OVERWEIGHT! ]" 34 settimer OverweightMessageTimer 0 endif if DropGoldAmount != 0 clearignore @setvar! DisableVacuums 1 wait 250 if EnablePutLootinLockBox = 1 if findtype "wooden box" self as lockbox if findtype "copper key" self as key clearignore getlabel lockbox lockboxlabel wait 100 if "items" in lockboxlabel // Do nothing else dclick key wft 1500 target lockbox wait 500 if insysmsg "It appears to be locked." dclick key wft 1500 target lockbox wait 250 else if EnableOverheadMessages != 0 overhead "[loot box unlocked]" 84 endif endif endif elseif EnableOverheadMessages = 1 overhead "[ NO LOCKBOX KEY! ]" 337 endif endif endif while weight > maxweight and diffhits < CastGreaterHealHPdiff if findtype "gold coin" self as easycomeeasygo lift easycomeeasygo DropGoldAmount droprelloc 0 0 getlabel backpack packdesc if EnableOverheadMessages = 1 overhead "[ DROPPING GOLD... ]" 149 endif wait 250 if insysmsg "cannot drop anything" drop backpack -1 -1 -1 break endif wait 250 else break endif if diffhits > CastGreaterHealHPdiff break endif endwhile endif endif endif if EnableStrengthPotion = 1 if not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif settimer WhitePotionMessageTimer 0 endif clearsysmsg wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif endif endif if targetexists hotkey 'cancel current target' endif if EnableCastHeal = 1 and RedTargetFound = 1 if EnableHealPotion = 1 if skill 'magery' >= 40 and mana >= 4 and not casting while diffhits > 25 and mana >= 4 and findtype 3972 self and findtype 3973 self and findtype 3974 self and cooldown 'Healing Potion' @setvar! SpellInterrupted 0 clearsysmsg cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' else if targetexists hotkey 'cancel current target' endif endif if not cooldown 'Healing Potion' break endif wait 500 endwhile endif else if skill 'magery' >= 40 and mana >= 4 and not casting while diffhits > 25 and mana >= 4 and findtype 3972 self and findtype 3973 self and findtype 3974 self @setvar! SpellInterrupted 0 clearsysmsg cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' else if targetexists hotkey 'cancel current target' endif endif wait 500 endwhile endif endif endif if EnableHealPotion = 1 and diffhits > 25 if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self or not findtype 3981 self @setvar! missingGreaterHealRegs 1 getlabel backpack backpacklabel else @setvar! missingGreaterHealRegs 0 endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self @setvar! missingHealRegs 1 getlabel backpack backpacklabel else @setvar! missingHealRegs 0 endif if missingGreaterHealRegs = 1 or missingHealRegs = 1 if timer NoHealRegsTimer > 4000 overhead '[ MISSING HEALING REGS! ]' 337 settimer NoHealRegsTimer 0 endif endif @setvar! SpellInterrupted 0 clearsysmsg if skill 'magery' >= 60 and diffhits >= CastGreaterHealHPdiff and diffhits <= CastHealHPdiff and mana >= 11 and EnableCastGreaterHeal = 1 and not casting and missingGreaterHealRegs != 1 @setvar! SpellInterrupted 0 cast 'greater heal' getlabel backpack backpacklabel settimer spellTimer 0 @setvar! spellCD 2500 while not targetexists and timer spellTimer < spellCD if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer spellTimer > spellCD break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastHealHPdiff and diffhits < CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 while diffhits > CastGreaterHealHPdiff and mana >= 4 and findtype 3972 self and findtype 3973 self and findtype 3974 self and not dead if targetexists hotkey 'Cancel current target' endif @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' getlabel backpack backpacklabel endif if diffhits <= CastGreaterHealHPdiff break endif endwhile endif @setvar! SpellInterrupted 0 if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if EnableRefreshPotion = 1 and diffstam > RefreshPotionSPdiff if findtype "Red Potion" self dclicktype "Red Potion" if EnableOverheadMessages = 1 and timer RedPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE REFRESH POTION ]' 37 else overhead '[ REFRESH POTION ]' 37 endif clearsysmsg settimer RedPotionMessageTimer 0 endif wait 250 else if timer RedPotionMessageTimer > 4500 overhead '[ NO REFRESH POTS! ]' 337 settimer RedPotionMessageTimer 0 endif endif endif if EnablePanaceaPotion = 1 and skill 'Alchemy' >= 80 and RedTargetFound != 1 if findbuff "Bleed" or findbuff "Diseased" if not findbuff "panacea potion cooldown" if findtype "Orange Potion" self dclicktype "Orange Potion" wait 500 if findbuff "panacea potion cooldown" and EnableOverheadMessages = 1 overhead '[ PANACEA ACTIVATED ]' 55 cooldown "Panacea Potion" 30000 endif endif endif endif endif if EnableCleansingBrews = 1 if findbuff "Diseased" or findbuff "Bleed" if timer CleansingBrewTimer > 120000 if findtype 50675 self 2935 as CleansingBrew dclick CleansingBrew if EnableOverheadMessages = 1 overhead '[ CLEANSING BREW ]' 2117 endif cooldown 'Cleansing Brew' 120000 settimer CleansingBrewTimer 0 wait 250 else if timer CleansingBrewOverhead > 15000 overhead "[ NO CLEANSING BREWS! ]" 337 settimer CleansingBrewOverhead 0 settimer CleansingBrewTimer 0 endif endif else if EnableOverheadMessages = 1 and timer CleansingBrewOverhead > 15000 overhead '[ BREW ON COOLDOWN! ]' 37 settimer CleansingBrewOverhead 0 endif endif endif endif if EnableCurePotion = 1 while poisoned if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 250 else if timer 'CurePotionMessageTimer' > 5000 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif if diffhits >= 30 or not findtype 3972 self or not findtype 3973 self break endif endif endwhile endif if EnableAgilityPotion = 1 and not findbuff "Agility" if findtype "Blue Potion" self dclicktype "Blue Potion" if EnableOverheadMessages = 1 and timer BluePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE AGILITY POTION ]' 93 else overhead '[ AGILITY POTION ]' 93 endif clearsysmsg settimer BluePotionMessageTimer 0 endif wait 250 else if timer BluePotionMessageTimer > 4500 overhead '[ NO AGILITY POTS! ]' 337 settimer BluePotionMessageTimer 0 endif endif endif if EnableMagicResistPotion = 1 and not findbuff "Magic Resist" if findtype "Black Potion" self dclicktype "Black Potion" if EnableOverheadMessages = 1 and timer BlackPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE RESIST POTION ]' 1109 else overhead '[ RESIST POTION ]' 1109 endif clearsysmsg settimer BlackPotionMessageTimer 0 endif wait 250 else if timer BlackPotionMessageTimer > 4500 overhead '[ NO RESIST POTS! ]' 337 settimer BlackPotionMessageTimer 0 endif endif endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if EnableAutoCarving = 1 and findtype 11552 self while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody wait 250 endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if EnableUsePotionKegs = 1 and findtype 'empty bottle%s%' self and findtype 'keg' self and timer 'PotionKegPVPCooldown' > 30000 and AttackModeActive != 2 @setvar! PotionStockCheck 0 while PotionStockCheck < 8 and findtype 'empty bottle%s%' self if PotionStockCheck = 0 if HealingPotionAmount = 0 @setvar! PotionStockCheck 1 else @setvar! PotionType 3852 @setvar! KegColour 253 @setvar! PotionAmounttoFill HealingPotionAmount @setvar! PotionStockCheck 1 endif elseif PotionStockCheck = 1 if CurePotionAmount = 0 @setvar! PotionStockCheck 2 else @setvar! PotionType 3847 @setvar! KegColour 44 @setvar! PotionAmounttoFill CurePotionAmount @setvar! PotionStockCheck 2 endif elseif PotionStockCheck = 2 if RefreshPotionAmount = 0 @setvar! PotionStockCheck 3 else @setvar! PotionType 3851 @setvar! KegColour 37 @setvar! PotionAmounttoFill RefreshPotionAmount @setvar! PotionStockCheck 3 endif elseif PotionStockCheck = 3 if StrengthPotionAmount = 0 @setvar! PotionStockCheck 4 else @setvar! PotionType 3849 @setvar! KegColour 956 @setvar! PotionAmounttoFill StrengthPotionAmount @setvar! PotionStockCheck 4 endif elseif PotionStockCheck = 4 if AgilityPotionAmount = 0 @setvar! PotionStockCheck 5 else @setvar! PotionType 3848 @setvar! KegColour 93 @setvar! PotionAmounttoFill AgilityPotionAmount @setvar! PotionStockCheck 5 endif elseif PotionStockCheck = 5 if ResistPotionAmount = 0 @setvar! PotionStockCheck 6 else @setvar! PotionType 3846 @setvar! KegColour 1109 @setvar! PotionAmounttoFill ResistPotionAmount @setvar! PotionStockCheck 6 endif elseif PotionStockCheck = 6 if PoisonPotionAmount = 0 @setvar! PotionStockCheck 7 else @setvar! PotionType 3850 @setvar! KegColour 363 @setvar! PotionAmounttoFill PoisonPotionAmount @setvar! PotionStockCheck 7 endif elseif PotionStockCheck = 7 if ExplosionPotionAmount = 0 @setvar! PotionStockCheck 8 else @setvar! PotionType 3853 @setvar! KegColour 419 @setvar! PotionAmounttoFill ExplosionPotionAmount @setvar! PotionStockCheck 8 endif else break endif while counttype PotionType self < PotionAmounttoFill if not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif if diffhits > HealPotionHPdiff break endif if findtype 'keg' self KegColour as myKeg dclick myKeg wait 250 if EnableOverheadMessages = 1 if timer 'PotionKegTimer' > 2000 overhead '[ FILLING POTS... ]' KegColour settimer 'PotionKegTimer' 0 endif endif else if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO KEG TO USE... ]' KegColour settimer 'PotionKegTimer' 0 endif break endif if insysmsg "You have been in combat with another player" settimer "PotionKegPVPCooldown" 0 break endif endwhile if counttype PotionType self < PotionAmounttoFill and not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif endwhile endif if warmode if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ ESCAPE CANCELLED! ]' 149 else overhead " � " 149 endif @setvar! TimeToGo 0 hotkey 'Toggle War Only' settimer "DungeonEscape" DungeonEscapeTimeLimit break endif if timer DungeonEscape > DungeonEscapeTimeLimit if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ ESCAPE TIMEOUT! ]' 333 endif @setvar! TimeToGo 0 hotkey 'Toggle War Only' break endif if dead break endif endwhile /////////////////////// // END ESCAPE LOOP // /////////////////////// endif elseif EnableAutoRedRecall = 0 and EnableAutoWeightRecall = 0 // Do nothing elseif EnableAutoRedDungeonGate = 0 and EnableAutoWeightDungeonGate = 0 // Do nothing endif endif getlabel backpack backpacklabel if RECALLTIME = 1 if EnableCastRecall = 1 and skill "Magery" >= 60 and RecallScrollsOnly != 1 and findtype '3962' self and findtype '3963' self and findtype '3974' self cast "Recall" settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 2500 if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif wait 100 endwhile target AutoRecallChargedRunebook wait 1000 else dclick AutoRecallChargedRunebook waitforgump 1551740969 gumpresponse 2 wait 1000 endif if insysmsg 'Your concentration is disturbed' overhead '[ INTERRUPTED! ]' 153 wait 500 for 5 if diffhits > 25 and timer 'HealPotionTimer' > HealingPotionCooldown if findtype "Yellow Potion" self as healpot dclick healpot wait 250 settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 if insysmsg "potion satchel used" overhead '[ FREE HEAL POTION ]' 253 else overhead '[ HEAL POTION ]' 253 endif settimer 'HealPotionMessageTimer' 0 endif endif endif while poisoned if findtype "Orange Potion" self as curepot dclick curepot wait 500 endif endwhile clearsysmsg wait 500 if EnableCastRecall = 1 and skill "Magery" >= 60 and RecallScrollsOnly != 1 and findtype '3962' self and findtype '3963' self and findtype '3974' self cast "Recall" settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 2500 if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif wait 100 endwhile target AutoRecallChargedRunebook wait 1000 else dclick AutoRecallChargedRunebook waitforgump 1551740969 gumpresponse 2 wait 1000 endif if insysmsg 'Your concentration is disturbed' wait 500 else break endif endfor endif @setvar! TimeToGo 0 @setvar! RECALLTIME 0 @setvar! AutoRecallTime 0 if OutsideHouseRecall = 1 wait 2500 if find MyDoor ground -1 -1 2 and EnableCloseMyDoor = 1 dclick MyDoor overhead "*door slams!*" 0 MyDoor wait 1000 endif wait 2500 elseif OwnerInnRecall = 1 wait 500 say "Innkeeper, I need a room!" 2234 waitforgump 2393832411 gumpresponse 4 wait 1500 elseif CoOwnerInnRecall = 1 wait 500 say "Innkeeper, I need a room!" 2234 waitforgump 2393832411 gumpresponse 5 wait 500 gumpresponse 100 wait 1500 elseif InsideHouseRecall = 1 wait 1500 elseif BankRecall = 1 say "Open my bank!" 2234 wait 1000 else wait 1500 endif if HideAtHomeorInn = 1 useskill "Hiding" endif clearignore @setvar! RecallScrollsOnly 0 if EnableResetInventoryAfterDeath = 1 and IHAVEDIED = 1 if EnableAutoRecallOverheadMessages = 1 overhead '[ RESETTING LOADOUT... ]' 77 wait 1500 endif endif if EnableLootChest = 1 dclick LootChest wait 500 endif while queued wait 100 endwhile if EnableStorageTomeContainer = 1 dclick TomeContainer wait 500 endif while queued wait 100 endwhile if IHAVEDIED != 1 if EnableLootBag = 1 and varexist LootBag if find LootBag self dclick LootBag wait 500 else if EnableAutoRecallOverheadMessages = 1 overhead '[ NO LOOT BAG! ]' 337 endif unsetvar LootBag endif endif if EnablePutLootinLockBox = 1 if findtype "wooden box" self as lockbox if findtype "copper key" self as key clearignore getlabel lockbox lockboxlabel wait 250 if "items" in lockboxlabel dclick lockbox wait 500 else dclick key wft 1500 target lockbox if EnableAutoRecallOverheadMessages = 1 overhead "[loot box unlocked]" 84 endif wait 500 dclick lockbox wait 250 if insysmsg "It appears to be locked." dclick key wft 1500 target lockbox wait 500 dclick lockbox wait 500 endif endif elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO LOCKBOX KEY! ]' 337 endif endif endif wait 500 if EnableSafeDeposit = 1 if findtype "bank deposit safe" ground -1 -1 2 as safe clearignore while findtype "gold coin" self as gold if findtype "wooden box" self as lockbox if findtype "copper key" self as key getlabel lockbox lockboxlabel if "items" in lockboxlabel wait 500 else dclick key wft 1500 target lockbox wait 250 if insysmsg "It appears to be locked." dclick key wft 1500 target lockbox wait 250 endif endif elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO LOCKBOX KEY! ]' 337 endif endif if EnableAutoRecallOverheadMessages = 1 overhead '[ DEPOSITING GOLD... ]' 149 else overhead " � " 149 endif menu safe 0 wait 500 endwhile while findtype 2539 self as dubs if EnableAutoRecallOverheadMessages = 1 overhead '[ DEPOSITING DUBS... ]' 149 else overhead " � " 149 endif menu safe 0 wait 500 endwhile elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO BANK SAFE FOUND ]' 337 wait 1500 endif endif if EnableMagicRecycler = 1 if findtype "ornate elven chest|magic item recycler" ground -1 -1 2 as recycler for 2 getlabel recycler recyclerdesc if EnableRecycleItemsWhenFull = 1 if "(125 items" in recyclerdesc dclick recycler waitforgump 4045111101 gumpresponse 7 waitforgump 4045111101 gumpresponse 6 waitforgump 4045111101 gumpresponse 6 if EnableAutoRecallOverheadMessages = 1 overhead '[ RECYCLING JUNK... ]' 66 else overhead " � " 66 endif wait 500 gumpclose 4045111101 if EnableResourceStockpile = 1 if findtype "resource container" ground -1 -1 2 as resource menu resource 0 wft 1500 target recycler wait 500 if EnableAutoRecallOverheadMessages = 1 overhead '[ PILING RESOURCES... ]' 84 else overhead " � " 84 endif wait 500 elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO RESOURCE STOCKPILE FOUND ]' 337 endif endif menu recycler 1 getlabel backpack backpacklabel if insysmsg "0 recyclable" break else if EnableAutoRecallOverheadMessages = 1 overhead '[ ADDING TO RECYCLER... ]' 6 else overhead " � " 6 endif wait 1500 endif endif endif menu recycler 1 wait 500 if insysmsg "0 recyclable" if EnableAutoRecallOverheadMessages = 1 and timer "InventoryCheck" > 5000 overhead '[ NO MAGIC LOOT! ]' 6 elseif timer "InventoryCheck" > 5000 overhead " � " 6 endif break else if EnableAutoRecallOverheadMessages = 1 overhead '[ ADDING TO RECYCLER... ]' 6 else overhead " � " 6 endif settimer "InventoryCheck" 0 wait 1500 endif wait 500 endfor elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO MAGIC ITEM RECYCLER FOUND ]' 337 endif endif if EnableLootChest = 1 dclick LootChest if EnableAutoRecallOverheadMessages = 1 overhead '[ STASHING LOOT... ]' 69 else overhead " � " 69 endif wait 500 for 2 hotkey "Organizer Agent-06" wait 250 hotkey "Organizer Agent-07" wait 250 hotkey "Organizer Agent-08" wait 250 hotkey "Organizer Agent-09" wait 250 endfor while queued wait 100 endwhile endif if EnableStorageTomes = 1 if EnableStorageTomeContainer = 1 dclick TomeContainer wait 500 endif if findtype "70142|70143|70144|70145|70158|70159|70160|70161|70162|70163|70164|70165|70166|70167|70168" ground -1 -1 2 as StorageTome or findtype "70142|70143|70144|70145|70158|70159|70160|70161|70162|70163|70164|70165|70166|70167|70168" LootChest as StorageTome or findtype "70142|70143|70144|70145|70158|70159|70160|70161|70162|70163|70164|70165|70166|70167|70168" TomeContainer as StorageTome while findtype "70142|70143|70144|70145|70158|70159|70160|70161|70162|70163|70164|70165|70166|70167|70168" ground -1 -1 2 as StorageTome menu StorageTome 0 if EnableAutoRecallOverheadMessages = 1 and timer "InventoryCheck" > 3500 overhead '[ STORING TOME ITEMS... ]' 2117 settimer "InventoryCheck" 0 elseif EnableAutoRecallOverheadMessages = 0 and timer "InventoryCheck" > 3500 overhead " � " 2117 settimer "InventoryCheck" 0 endif wait 250 @ignore StorageTome endwhile while findtype "70142|70143|70144|70145|70158|70159|70160|70161|70162|70163|70164|70165|70166|70167|70168" LootChest as StorageTome or findtype "70142|70143|70144|70145|70158|70159|70160|70161|70162|70163|70164|70165|70166|70167|70168" TomeContainer as StorageTome menu StorageTome 0 if EnableAutoRecallOverheadMessages = 1 and timer "InventoryCheck" > 3500 overhead '[ STORING TOME ITEMS... ]' 2117 settimer "InventoryCheck" 0 elseif EnableAutoRecallOverheadMessages = 0 and timer "InventoryCheck" > 3500 overhead " � " 2117 settimer "InventoryCheck" 0 endif wait 250 @ignore StorageTome endwhile @clearignore elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO STORAGE TOMES FOUND ]' 337 wait 1500 endif endif if EnableResourceStockpile = 1 if findtype "resource container" ground -1 -1 2 as resource menu resource 0 wft 500 target self if EnableAutoRecallOverheadMessages = 1 overhead '[ PILING RESOURCES... ]' 84 else overhead " � " 84 endif wait 1500 elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO RESOURCE STOCKPILE FOUND ]' 337 wait 1500 endif endif if EnableRepairBench = 1 if findtype "repair bench" ground -1 -1 3 as RepairBench clearsysmsg dclick RepairBench wait 500 if insysmsg "You do not have any items equipped or in your backpack in need of repairs." if EnableAutoRecallOverheadMessages = 1 overhead '[ NOTHING TO REPAIR! ]' 0 endif wait 1500 else if EnableAutoRecallOverheadMessages = 1 overhead '[ REPAIRING EQUIPMENT... ]' 339 else overhead " � " 339 endif settimer RepairTimer 0 while timer RepairTimer <= 5000 if insysmsg "Repair" break endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ ITEMS REPAIRED! ]' 0 wait 500 overhead "Repair took: {{RepairTimer}}ms" 77 else overhead " � " 0 endif removetimer RepairTimer wait 500 endif elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO REPAIR BENCH FOUND ]' 337 wait 1500 endif endif endif wait 500 if EnableStorageShelf = 1 if findtype "storage shelf" ground -1 -1 2 as shelf if IHAVEDIED != 1 menu shelf 0 wft 500 target self if EnableAutoRecallOverheadMessages = 1 overhead '[ STORING GOODS... ]' 2114 else overhead " � " 2114 endif wait 500 gumpclose 3232825965 wait 1000 endif menu shelf 1 if EnableAutoRecallOverheadMessages = 1 overhead '[ RESUPPLYING... ]' 93 wait 500 else overhead " � " 93 endif wait 1000 elseif EnableAutoRecallOverheadMessages = 1 overhead '[ NO STORAGE SHELF FOUND ]' 337 wait 1500 endif endif if EnableResetInventoryAfterDeath = 1 and IHAVEDIED = 1 clearignore if not varexist maininventorybag or not find maininventorybag self overhead '[ SELECT MAIN POUCH... ]' 253 @setvar! maininventorybag wft 500 while targetexists wait 100 endwhile overhead '[ MAIN POUCH SET! ]' 93 wait 500 endif lift maininventorybag wait 500 drop backpack 69 69 0 wait 500 if EnableSetMainPouchOrganizer01 = 1 hotkey 'Set Organizer Hotbag-01' wft 1000 target maininventorybag if EnableAutoRecallOverheadMessages = 1 overhead '[ POUCH SET TO AGENT-01! ]' 84 endif wait 500 endif dclick maininventorybag wait 1000 sysmsg "Auto-selecting your loot/grab bag..." 0 hotkey 'Set Grab Item Hotbag' wft 1500 while targetexists if findtype 'bag' self as grabbag target grabbag wait 500 else wait 1000 sysmsg "Auto-select failed! Please manually target your loot/grab bag!" 0 wait 1000 overhead '[ SELECT GRAB BAG... ]' 253 wait 3500 endif wait 500 endwhile overhead '[ GRAB BAG SET! ]' 93 wait 500 if EnableLootBag = 1 if not find LootBag self wait 500 overhead "Select your new loot bag..." 253 wait 500 @setvar! LootBag wait 500 while targetexists wait 100 endwhile endif endif if find grabbag self lift grabbag wait 500 drop maininventorybag -1 -1 -1 wait 500 endif while findtype 'scissors' self if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableAutoRecallOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableAutoRecallOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if findtype 'scissors' backpack as myscissors if findtype 'pouch' self as trappedpouch lift myscissors wait 250 drop trappedpouch wait 750 lift trappedpouch wait 250 drop backpack 69 69 0 @ignore trappedpouch @ignore myscissors endif endif wait 500 while queued wait 100 endwhile endwhile clearignore while findtype 'pouch' backpack as decoypouch getlabel decoypouch decoypouchlabel wait 250 if '(1 items' in decoypouchlabel lift decoypouch drop backpack 97 97 0 break else @ignore decoypouch endif endwhile if findtype 'atlas' backpack as hidemypouchstack lift hidemypouchstack drop backpack 72 66 0 wait 500 else say "[atlas" wait 500 if findtype 'atlas' backpack as hidemypouchstack lift hidemypouchstack drop backpack 72 66 0 wait 500 endif endif if EnableAutoRecallOverheadMessages = 1 overhead '[ ACTIVATING ASPECT... ]' 2234 wait 500 endif say "[aspect" waitforgump 2424293173 gumpresponse 13 wait 500 gumpresponse 13 wait 250 gumpresponse 17 wait 500 gumpresponse 17 wait 250 gumpclose 2424293173 wait 500 if skill 'magery' >= 60 and hp < maxhp and mana >= 11 and not casting while hp < maxhp cast 'greater heal' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 2500 if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif wait 100 endwhile target 'self' wait 500 endwhile endif if findtype "storage shelf" ground -1 -1 2 as shelf menu shelf 1 wait 500 endif if find maininventorybag self dclick maininventorybag wait 500 endif if findtype 'alchemists satchel' self as BagofPot dclick BagofPot wait 500 endif if findtype 'reagent satchel' self as WizardBag dclick WizardBag wait 500 endif if find grabbag self dclick grabbag wait 500 endif clearignore @setvar! IHAVEDIED 0 overhead '[ RESET COMPLETE! ]' 69 wait 500 endif if EnableUsePotionKegs = 1 and findtype 'empty bottle%s%' self and findtype 'keg' self and timer 'PotionKegPVPCooldown' > 30000 @setvar! PotionStockCheck 0 while PotionStockCheck < 8 and findtype 'empty bottle%s%' self if PotionStockCheck = 0 if HealingPotionAmount = 0 @setvar! PotionStockCheck 1 else @setvar! PotionType 3852 @setvar! KegColour 253 @setvar! PotionAmounttoFill HealingPotionAmount @setvar! PotionStockCheck 1 endif elseif PotionStockCheck = 1 if CurePotionAmount = 0 @setvar! PotionStockCheck 2 else @setvar! PotionType 3847 @setvar! KegColour 44 @setvar! PotionAmounttoFill CurePotionAmount @setvar! PotionStockCheck 2 endif elseif PotionStockCheck = 2 if RefreshPotionAmount = 0 @setvar! PotionStockCheck 3 else @setvar! PotionType 3851 @setvar! KegColour 37 @setvar! PotionAmounttoFill RefreshPotionAmount @setvar! PotionStockCheck 3 endif elseif PotionStockCheck = 3 if StrengthPotionAmount = 0 @setvar! PotionStockCheck 4 else @setvar! PotionType 3849 @setvar! KegColour 956 @setvar! PotionAmounttoFill StrengthPotionAmount @setvar! PotionStockCheck 4 endif elseif PotionStockCheck = 4 if AgilityPotionAmount = 0 @setvar! PotionStockCheck 5 else @setvar! PotionType 3848 @setvar! KegColour 93 @setvar! PotionAmounttoFill AgilityPotionAmount @setvar! PotionStockCheck 5 endif elseif PotionStockCheck = 5 if ResistPotionAmount = 0 @setvar! PotionStockCheck 6 else @setvar! PotionType 3846 @setvar! KegColour 1109 @setvar! PotionAmounttoFill ResistPotionAmount @setvar! PotionStockCheck 6 endif elseif PotionStockCheck = 6 if PoisonPotionAmount = 0 @setvar! PotionStockCheck 7 else @setvar! PotionType 3850 @setvar! KegColour 363 @setvar! PotionAmounttoFill PoisonPotionAmount @setvar! PotionStockCheck 7 endif elseif PotionStockCheck = 7 if ExplosionPotionAmount = 0 @setvar! PotionStockCheck 8 else @setvar! PotionType 3853 @setvar! KegColour 419 @setvar! PotionAmounttoFill ExplosionPotionAmount @setvar! PotionStockCheck 8 endif else break endif while counttype PotionType self < PotionAmounttoFill if not findtype 'empty bottle%s%' self if EnableAutoRecallOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif if diffhits > HealPotionHPdiff break endif if findtype 'keg' self KegColour as myKeg dclick myKeg wait 250 if EnableAutoRecallOverheadMessages = 1 if timer 'PotionKegTimer' > 2000 overhead '[ FILLING POTS... ]' KegColour settimer 'PotionKegTimer' 0 endif endif else if EnableAutoRecallOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO KEG TO USE... ]' KegColour settimer 'PotionKegTimer' 0 endif break endif if insysmsg "You have been in combat with another player" settimer "PotionKegPVPCooldown" 0 break endif endwhile if counttype PotionType self < PotionAmounttoFill and not findtype 'empty bottle%s%' self if EnableAutoRecallOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif endwhile endif if EnableReagentSplitter = 1 if findtype "reagent satchel" self as MyWizardBag while findtype "reagent satchel" self as MyWizardBag getlabel MyWizardBag MyWizardBaglabel wait 500 if "decorative" in MyWizardBaglabel @ignore MyWizardBag wait 500 else break endif endwhile dclick MyWizardBag wait 500 if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 2338 endif # Spiders Silk @setvar! ReagentStack 0 @setvar! ReagentSerial 3981 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 65 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 65 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 65 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 65 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 65 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 3 endif # Black Pearl @setvar! ReagentSerial 3962 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 76 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 76 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 76 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 76 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 76 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 363 endif # Nightshade @setvar! ReagentSerial 3976 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 88 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 88 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 88 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 88 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 88 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 442 endif # Mandrake Root @setvar! ReagentSerial 3974 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 100 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 100 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 100 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 100 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 100 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 153 endif # Sulfurous Ash @setvar! ReagentSerial 3980 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 112 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 112 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 112 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 112 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 112 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 247 endif # Giseng @setvar! ReagentSerial 3973 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 124 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 124 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 124 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 124 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 124 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 33 endif # Bloodmoss @setvar! ReagentSerial 3963 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 136 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 136 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 136 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 136 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 136 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile if EnableAutoRecallOverheadMessages = 1 overhead '[ SPLITTING REGS... ]' 646 endif # Garlic @setvar! ReagentSerial 3972 @setvar! ReagentCount 0 while findtype ReagentSerial self as regs @setvar! ReagentCount index @ignore regs endwhile @clearignore if counttype ReagentSerial self <= 10 @setvar! ReagentStack 2 elseif counttype ReagentSerial self <= 20 @setvar! ReagentStack 4 elseif counttype ReagentSerial self <= 50 @setvar! ReagentStack 10 elseif counttype ReagentSerial self <= 100 @setvar! ReagentStack 20 elseif counttype ReagentSerial self <= 150 @setvar! ReagentStack 30 elseif counttype ReagentSerial self <= 200 @setvar! ReagentStack 40 else @setvar! ReagentStack 50 endif while findtype ReagentSerial self as regs @setvar! moveRegs 0 if ReagentCount = 0 @setvar! moveRegs 1 elseif ReagentCount != 0 and not find regs MyWizardBag @setvar! moveRegs 1 endif if moveRegs = 1 if index = 0 lift regs ReagentStack drop MyWizardBag 44 148 0 wait 150 elseif index = 1 lift regs ReagentStack drop MyWizardBag 68 148 0 wait 150 elseif index = 2 lift regs ReagentStack drop MyWizardBag 96 148 0 wait 150 elseif index = 3 lift regs ReagentStack drop MyWizardBag 121 148 0 wait 150 else lift regs ReagentStack drop MyWizardBag 142 148 0 wait 150 endif endif @ignore regs if moveRegs = 1 wait 500 endif endwhile else if EnableAutoRecallOverheadMessages = 1 overhead '[ NO WIZARD BAG! ]' 337 wait 500 endif endif endif overhead '[ SCRIPT COMPLETE! ]' 88 hotkey "Organizer Agent-01" @setvar! IHAVEDIED 0 @setvar! DisableVacuums 0 @setvar! RedTargetFound 0 stop else if not warmode and WarModeToggledWhileFighting = 1 @setvar! WarModeToggledWhileFighting 0 hotkey 'Toggle War Only' wait 250 endif endif ////////////////////////// // END AUTO RECALL // ////////////////////////// //////////////////////// // CHECKS: // //////////////////////// if EnableTrackingAutoRecall = 1 and AttackModeActive != 2 and TimeToGo != 1 if PKTrackingRange = 60 if insysmsg ": 60 step" or insysmsg "60 space" or insysmsg ": 59 step" or insysmsg "59 space" or insysmsg ": 58 step" or insysmsg "58 space" or insysmsg ": 57 step" or insysmsg "57 space" or insysmsg ": 56 step" or insysmsg "56 space" or insysmsg ": 55 step" or insysmsg "55 space" or insysmsg ": 54 step" or insysmsg "54 space" or insysmsg ": 53 step" or insysmsg "53 space" or insysmsg ": 52 step" or insysmsg "52 space" or insysmsg ": 51 step" or insysmsg "51 space" or insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 50 if insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 40 if insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 0 if insysmsg "Now tracking" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif endif endif if EnablePKradar = 1 and AttackModeActive != 2 and TimeToGo != 1 if timer "PKRadarTimer" > 1500 clearsysmsg hotkey 'Next Murderer Player Target' wait 250 if insysmsg "No one matching that was found" settimer "PKRadarTimer" 0 clearsysmsg else if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 @setvar! MurdererTarget lasttarget replay endif endif endif if dead break endif if not warmode and WarModeToggledWhileFighting = 1 hotkey 'Toggle War Only' @setvar! WarModeToggledWhileFighting 0 getlabel backpack backpacklabel endif if EnableEatingFood = 1 and AttackModeActive != 2 if not findbuff 'food satisfaction' if findtype "tray" self as Food if EnableOverheadMessages = 1 overhead '[ EATING FOOD... ]' 88 endif dclick Food wait 250 settimer 'EatHealSnackCooldownTimer' 0 settimer 'EatManaSnackCooldownTimer' 0 else if timer EatFoodMessageTimer > 4000 if EnableOverheadMessages = 1 overhead '[ NO FOOD FOUND ]' 337 settimer EatFoodMessageTimer 0 endif endif endif endif endif if EnableGoldVacuum = 1 and DisableVacuums != 1 and AttackModeActive != 2 if findtype "gold coin" ground -1 -1 15 as droppedmoney and timer "GoldRadar" > 3500 overhead " � " 149 droppedmoney settimer "GoldRadar" 0 endif while findtype "gold coin" ground -1 -1 2 as droppedmoney and diffhits < CastGreaterHealHPdiff overhead " � " 149 hotkey "Grab Item" wft 2500 target droppedmoney wait 250 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif if insysmsg "Invalid or inaccessible item" wait 500 @ignore droppedmoney endif wait 250 endwhile endif if EnableDungeonCleanup = 1 and diffhits < CastGreaterHealHPdiff and AttackModeActive != 2 while findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 2 as item if EnableOverheadMessages = 1 if timer "DungeonCleanup" > 1500 overhead '[ CLEANUP... ]' 420 settimer "DungeonCleanup" 0 endif else if timer "DungeonCleanup" > 1500 overhead ' � ' 420 settimer "DungeonCleanup" 0 endif endif hotkey "Grab Item" wft 1000 target item wait 500 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif endwhile if findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 15 as dungeonjunk and timer "DungeonCleanupRadar" > 3500 overhead "�" 420 dungeonjunk settimer "DungeonCleanupRadar" 0 endif endif if counttype 29012 self = 0 and EnableMagicMushroomMaker = 1 and AttackModeActive != 2 while counttype 29012 self < MakeMushroomAmount and mana > 3 and diffhits < CastGreaterHealHPdiff if timer 'MushroomMakerTimer' > 4500 overhead '[ MAKING SHROOMS... ]' 419 settimer 'MushroomMakerTimer' 0 endif if not casting cast 'create food' wait 500 endif if diffhits > CastGreaterHealHPdiff break endif endwhile endif if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if timer 'OrganizerAgentTimer' > 30000 and AttackModeActive != 2 hotkey "Organizer Agent-01" settimer 'OrganizerAgentTimer' 0 endif if EnableAutoCarving = 1 and findtype 11552 self and AttackModeActive != 2 while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile clearsysmsg if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody getlabel backpack backpacklabel endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif break endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if targetexists if findtype " Elven Spellblade" self targettype "Elven Spellblade" else hotkey 'Cancel current target' endif endif if EnableUsePotionKegs = 1 and findtype 'empty bottle%s%' self and findtype 'keg' self and timer 'PotionKegPVPCooldown' > 30000 and AttackModeActive != 2 @setvar! PotionStockCheck 0 while PotionStockCheck < 8 and findtype 'empty bottle%s%' self if PotionStockCheck = 0 if HealingPotionAmount = 0 @setvar! PotionStockCheck 1 else @setvar! PotionType 3852 @setvar! KegColour 253 @setvar! PotionAmounttoFill HealingPotionAmount @setvar! PotionStockCheck 1 endif elseif PotionStockCheck = 1 if CurePotionAmount = 0 @setvar! PotionStockCheck 2 else @setvar! PotionType 3847 @setvar! KegColour 44 @setvar! PotionAmounttoFill CurePotionAmount @setvar! PotionStockCheck 2 endif elseif PotionStockCheck = 2 if RefreshPotionAmount = 0 @setvar! PotionStockCheck 3 else @setvar! PotionType 3851 @setvar! KegColour 37 @setvar! PotionAmounttoFill RefreshPotionAmount @setvar! PotionStockCheck 3 endif elseif PotionStockCheck = 3 if StrengthPotionAmount = 0 @setvar! PotionStockCheck 4 else @setvar! PotionType 3849 @setvar! KegColour 956 @setvar! PotionAmounttoFill StrengthPotionAmount @setvar! PotionStockCheck 4 endif elseif PotionStockCheck = 4 if AgilityPotionAmount = 0 @setvar! PotionStockCheck 5 else @setvar! PotionType 3848 @setvar! KegColour 93 @setvar! PotionAmounttoFill AgilityPotionAmount @setvar! PotionStockCheck 5 endif elseif PotionStockCheck = 5 if ResistPotionAmount = 0 @setvar! PotionStockCheck 6 else @setvar! PotionType 3846 @setvar! KegColour 1109 @setvar! PotionAmounttoFill ResistPotionAmount @setvar! PotionStockCheck 6 endif elseif PotionStockCheck = 6 if PoisonPotionAmount = 0 @setvar! PotionStockCheck 7 else @setvar! PotionType 3850 @setvar! KegColour 363 @setvar! PotionAmounttoFill PoisonPotionAmount @setvar! PotionStockCheck 7 endif elseif PotionStockCheck = 7 if ExplosionPotionAmount = 0 @setvar! PotionStockCheck 8 else @setvar! PotionType 3853 @setvar! KegColour 419 @setvar! PotionAmounttoFill ExplosionPotionAmount @setvar! PotionStockCheck 8 endif else break endif while counttype PotionType self < PotionAmounttoFill if not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif if diffhits > HealPotionHPdiff break endif if findtype 'keg' self KegColour as myKeg dclick myKeg wait 250 if EnableOverheadMessages = 1 if timer 'PotionKegTimer' > 2000 overhead '[ FILLING POTS... ]' KegColour settimer 'PotionKegTimer' 0 endif endif else if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO KEG TO USE... ]' KegColour settimer 'PotionKegTimer' 0 endif break endif if insysmsg "You have been in combat with another player" settimer "PotionKegPVPCooldown" 0 break endif endwhile if counttype PotionType self < PotionAmounttoFill and not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif endwhile endif @setvar! CastingWasInterrupted 0 if EnableWeaponCheck = 1 and skill 'Arcane' >= 50 and not findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" hand if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff for 5 if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff getlabel myArcaneStaff myArcaneStafflabel if "Aspect" in myArcaneStafflabel break elseif "unidentified" in myArcaneStafflabel ignore myArcaneStaff else break endif endif endfor dclick myArcaneStaff clearignore wait 500 else if timer "ArcaneStaffCheck" > 5000 and EnableOverheadMessages = 1 overhead "[ NO ARCANE STAFF! ]" 337 settimer "ArcaneStaffCheck" 0 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if EnableEatHealSnacks = 1 if skill 'Cooking' >= 50 and timer 'EatHealSnackCooldownTimer' > EatHealSnackCooldown and timer 'HealPotionTimer' < 10500 and diffhits > EatSnackHPdiff if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as myhpsnack if EnableOverheadMessages = 1 overhead "[ HP MUNCHING... ]" 420 endif dclick myhpsnack wait 250 settimer 'EatHealSnackCooldownTimer' 0 settimer 'EatManaSnackCooldownTimer' 0 cooldown 'Snacking' EatHealSnackCooldown else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif /////////////////////// // FIND A TARGET // /////////////////////// if not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and AttackModeActive != 2 @setvar! AttackModeActive 1 // Skip target check and jump to attack loop if ClosestTarget is alive and within attack range elseif not dead TargetToAnalyze and find TargetToAnalyze ground -1 -1 12 and AttackModeActive = 2 @setvar! AttackModeActive 0 // Proceed to target checks if TargetToAnalyze is alive and within targeting range else if targetexists hotkey 'cancel current target' endif clearsysmsg hotkey 'target closest grey monster' getlabel backpack backpacklabel @setvar! TargetToAnalyze lasttarget if insysmsg 'No one matching that' @setvar! NoTargetMode 1 getlabel backpack backpacklabel //////////////////////// // NO TARGET LOOP // //////////////////////// while NoTargetMode = 1 if dead break endif if targetexists hotkey 'cancel current target' endif if weight > maxweight and EnableDropGoldWhenOverweight = 1 if timer OverweightMessageTimer > 4500 overhead '[ OVERWEIGHT! ]' 34 settimer OverweightMessageTimer 0 endif if DropGoldAmount != 0 clearignore @setvar! DisableVacuums 1 wait 250 if EnablePutLootinLockBox = 1 if find lockbox self getlabel lockbox lockboxlabel wait 250 if 'items' in lockboxlabel @clearignore wait 500 else dclick key wft 1500 dclick lockbox wait 500 if insysmsg "It appears to be locked." dclick key wft 1500 target lockbox wait 250 else if EnableOverheadMessages != 0 overhead "[loot box unlocked]" 84 endif endif endif endif endif while weight > maxweight if findtype "gold coin" backpack as easycomeeasygo lift easycomeeasygo DropGoldAmount droprelloc 0 0 getlabel backpack packdesc if EnableOverheadMessages = 1 overhead '[ DROPPING GOLD... ]' 149 endif wait 250 if insysmsg "cannot drop anything" drop backpack -1 -1 -1 endif wait 500 endif if dead break endif if diffhits > CastGreaterHealHPdiff break endif endwhile endif endif if paralyzed and EnableAutoParalyzePouch = 1 if findtype "pouch" self yell "[pouch" wait 250 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 else if timer PopPouchMessageTimer > 5000 and EnableOverheadMessages = 1 overhead '[ NO MORE POUCHES! ]' 337 settimer PopPouchMessageTimer 0 endif endif endif if dead break endif if EnableWeightWarningMessage = 1 if diffweight < GreenWarningDiffWeight and diffweight > YellowWarningDiffWeight and timer "WeightTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING... ]' 77 settimer "WeightTimer" 0 else overhead " � " 77 settimer "WeightTimer" 0 endif elseif diffweight < YellowWarningDiffWeight and diffweight > RedWeightLimitDiffWeight and timer "WeightTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING! ]' 153 settimer "WeightTimer" 0 else overhead " � " 153 settimer "WeightTimer" 0 endif elseif diffweight < RedWeightLimitDiffWeight if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "WeightMessageTimer" > 6000 overhead '[ WEIGHT LIMIT REACHED! ]' 37 settimer "WeightMessageTimer" 0 endif else if timer "WeightMessageTimer" > 6000 overhead " � " 37 settimer "WeightMessageTimer" 0 endif endif if EnableAutoWeightRecall = 1 and not find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 wait 1000 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! AutoWeightRecall 1 replay elseif EnableAutoWeightRecall = 1 and find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 if timer "RECALLDELAY" > 3500 and EnableAutoRecallOverheadMessages = 1 overhead '[ WAITING TO RECALL... ]' 149 settimer "RECALLDELAY" 0 endif wait 500 elseif EnableAutoWeightDungeonGate = 1 and DUNGEONMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 replay else if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ OVERWEIGHT! ]' 337 else overhead " � " 337 endif wait 1500 overhead '[ STOPPING SCRIPT! ]' 88 stop endif endif endif if warmode clearsysmsg hotkey 'target closest grey monster' getlabel backpack backpacklabel @setvar! TargetToAnalyze lasttarget wait 250 if insysmsg 'No one matching that' if timer NothingToTargetMessageTimer > 3500 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ NOTHING TO TARGET... ]' 2338 else overhead ' � ' 2338 endif settimer NothingToTargetMessageTimer 0 endif clearsysmsg else @setvar! AttackModeActive 0 @setvar! NoTargetMode 0 break endif endif while not warmode if WarModeToggledWhileFighting = 1 or TimeToGo = 1 break else if WILDERNESSMODE = 1 if EnableAutoRedRecall = 1 or EnableAutoWeightRecall = 1 overhead '[ RECALLING IN... ]' 2114 if warmode break endif wait 500 overhead "3" 69 wait 1000 if warmode break endif overhead "2" 69 wait 1000 if warmode break endif overhead "1" 69 wait 500 if warmode break else @setvar! TimeToGo 1 @setvar! AutoRecallTime 1 break endif endif elseif DUNGEONMODE = 1 if EnableAutoRedDungeonGate = 1 or EnableAutoWeightDungeonGate = 1 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ DUNGEON ESCAPE! ]' 337 else overhead "�" 337 endif hotkey 'Toggle Peace Only' @setvar! TimeToGo 1 getlabel backpack backpacklabel wait 250 break endif endif endif endwhile if TimeToGo = 1 and not warmode break endif if EnableDIYRecallScript != 1 and diffhits < CastGreaterHealHPdiff if EnableAutoRedRecall = 1 or EnableAutoWeightRecall = 1 or EnableRecallAfterResurrection = 1 or EnableRecallAfterDungeonGate = 1 if not varexist AutoRecallChargedRunebook wait 500 overhead "You have enabled Auto Recall (PK or Weight) and must select a runebook to continue!" 0 wait 1500 overhead "Select your escape runebook..." 253 setvar AutoRecallChargedRunebook wait 500 while targetexists wait 100 endwhile sysmsg "Will cast to 'default rune' in Runebook (if 'casting' enabled) or uses scrolls to 'first location' in Runebook (if no Magery skill)" 153 wait 1500 endif if not find AutoRecallChargedRunebook self overhead "[ NO RUNEBOOK FOUND! ]" 337 wait 1500 overhead "Select your new escape runebook..." 253 wait 500 setvar AutoRecallChargedRunebook wait 250 while targetexists if diffhits > CastGreaterHealHPdiff break endif wait 100 endwhile endif endif endif if EnableLootBag = 1 and IHAVEDIED != 1 and diffhits < CastGreaterHealHPdiff if EnableAutoRedRecall = 1 or EnableAutoWeightRecall = 1 or EnableRecallAfterResurrection = 1 or EnableRecallAfterDungeonGate = 1 if not varexist LootBag wait 500 overhead "Please select your loot bag..." 253 wait 1000 overhead "This should be whatever is set as your 'Grab Bag' and will be opened when unloading loot after recalling..." 0 setvar LootBag wait 500 while targetexists wait 100 endwhile endif if not find LootBag self overhead "[ NO LOOT BAG ]" 337 wait 1500 overhead "Select your new loot bag..." 253 wait 500 setvar LootBag wait 250 while targetexists if diffhits > CastGreaterHealHPdiff break endif wait 100 endwhile endif endif endif if EnableAutoSatchels = 1 and diffhits < CastGreaterHealHPdiff if findtype "3962|3963|3972|3973|3974|3976|3980|3981" backpack and findtype "reagent satchel" self as MyWizardBag while findtype "reagent satchel" self as MyWizardBag getlabel MyWizardBag MyWizardBagdesc if 'decorative' in MyWizardBagdesc @ignore MyWizardBag else break endif endwhile if timer "WizardSatchelTimer" > 60000 menu MyWizardBag 0 wait 500 settimer "WizardSatchelTimer" 0 endif endif if findtype "Yellow Potion|Orange Potion|Red Potion|White Potion|Blue Potion|Black Potion|" backpack and findtype 31262 self as MyPotBag if timer "PotionSatchelTimer" > 60000 menu MyPotBag 0 wait 500 settimer "PotionSatchelTimer" 0 endif endif endif if EnableAutoCarving = 1 and findtype 11552 self while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody wait 250 endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if TimeToGo = 1 and not warmode break endif if EnableTrackingAutoRecall = 1 and TimeToGo != 1 if PKTrackingRange = 60 if insysmsg ": 60 step" or insysmsg "60 space" or insysmsg ": 59 step" or insysmsg "59 space" or insysmsg ": 58 step" or insysmsg "58 space" or insysmsg ": 57 step" or insysmsg "57 space" or insysmsg ": 56 step" or insysmsg "56 space" or insysmsg ": 55 step" or insysmsg "55 space" or insysmsg ": 54 step" or insysmsg "54 space" or insysmsg ": 53 step" or insysmsg "53 space" or insysmsg ": 52 step" or insysmsg "52 space" or insysmsg ": 51 step" or insysmsg "51 space" or insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 50 if insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 40 if insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 0 if insysmsg "Now tracking" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif endif endif if EnablePKradar = 1 and TimeToGo != 1 if timer "PKRadarTimer" > 1500 clearsysmsg hotkey 'Next Murderer Player Target' wait 250 if insysmsg "No one matching that was found" settimer "PKRadarTimer" 0 clearsysmsg else if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 @setvar! MurdererTarget lasttarget replay endif endif endif if AutoTrapYourPouches = 1 and diffhits < CastGreaterHealHPdiff while findtype 3705 backpack 0 and findtype 3972 self and findtype 3973 self and findtype 3980 self cast 'magic trap' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif if CastingWasInterrupted = 0 target self endif wait 250 endwhile endif if dead break endif if warmode clearsysmsg hotkey 'target closest grey monster' getlabel backpack backpacklabel @setvar! TargetToAnalyze lasttarget wait 250 if insysmsg 'No one matching that' if timer NothingToTargetMessageTimer > 3500 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ NOTHING TO TARGET... ]' 2338 else overhead ' � ' 2338 endif settimer NothingToTargetMessageTimer 0 endif clearsysmsg else @setvar! AttackModeActive 0 @setvar! NoTargetMode 0 break endif endif if TimeToGo = 1 and not warmode break endif if EnableUsePotionKegs = 1 and findtype 'empty bottle%s%' self and findtype 'keg' self and timer 'PotionKegPVPCooldown' > 30000 @setvar! PotionStockCheck 0 while PotionStockCheck < 8 and findtype 'empty bottle%s%' self if PotionStockCheck = 0 if HealingPotionAmount = 0 @setvar! PotionStockCheck 1 else @setvar! PotionType 3852 @setvar! KegColour 253 @setvar! PotionAmounttoFill HealingPotionAmount @setvar! PotionStockCheck 1 endif elseif PotionStockCheck = 1 if CurePotionAmount = 0 @setvar! PotionStockCheck 2 else @setvar! PotionType 3847 @setvar! KegColour 44 @setvar! PotionAmounttoFill CurePotionAmount @setvar! PotionStockCheck 2 endif elseif PotionStockCheck = 2 if RefreshPotionAmount = 0 @setvar! PotionStockCheck 3 else @setvar! PotionType 3851 @setvar! KegColour 37 @setvar! PotionAmounttoFill RefreshPotionAmount @setvar! PotionStockCheck 3 endif elseif PotionStockCheck = 3 if StrengthPotionAmount = 0 @setvar! PotionStockCheck 4 else @setvar! PotionType 3849 @setvar! KegColour 956 @setvar! PotionAmounttoFill StrengthPotionAmount @setvar! PotionStockCheck 4 endif elseif PotionStockCheck = 4 if AgilityPotionAmount = 0 @setvar! PotionStockCheck 5 else @setvar! PotionType 3848 @setvar! KegColour 93 @setvar! PotionAmounttoFill AgilityPotionAmount @setvar! PotionStockCheck 5 endif elseif PotionStockCheck = 5 if ResistPotionAmount = 0 @setvar! PotionStockCheck 6 else @setvar! PotionType 3846 @setvar! KegColour 1109 @setvar! PotionAmounttoFill ResistPotionAmount @setvar! PotionStockCheck 6 endif elseif PotionStockCheck = 6 if PoisonPotionAmount = 0 @setvar! PotionStockCheck 7 else @setvar! PotionType 3850 @setvar! KegColour 363 @setvar! PotionAmounttoFill PoisonPotionAmount @setvar! PotionStockCheck 7 endif elseif PotionStockCheck = 7 if ExplosionPotionAmount = 0 @setvar! PotionStockCheck 8 else @setvar! PotionType 3853 @setvar! KegColour 419 @setvar! PotionAmounttoFill ExplosionPotionAmount @setvar! PotionStockCheck 8 endif else break endif while counttype PotionType self < PotionAmounttoFill and warmode if not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif if diffhits > HealPotionHPdiff break endif if not warmode break endif if findtype 'keg' self KegColour as myKeg dclick myKeg wait 250 if EnableOverheadMessages = 1 if timer 'PotionKegTimer' > 2000 overhead '[ FILLING POTS... ]' KegColour settimer 'PotionKegTimer' 0 endif endif else if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO KEG TO USE... ]' KegColour settimer 'PotionKegTimer' 0 endif break endif if insysmsg "You have been in combat with another player" settimer "PotionKegPVPCooldown" 0 break endif endwhile if counttype PotionType self < PotionAmounttoFill and not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif endwhile endif if EnableStrengthPotion = 1 and diffhits < CastGreaterHealHPdiff if skill 'Alchemy' > 0 and skill 'Alchemy' < 2 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif elseif skill 'Alchemy' = 0 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif else if not findbuff "Strength" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif endif endif endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self or not findtype 3981 self @setvar! missingGreaterHealRegs 1 getlabel backpack backpacklabel else @setvar! missingGreaterHealRegs 0 endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self @setvar! missingHealRegs 1 getlabel backpack backpacklabel else @setvar! missingHealRegs 0 endif if missingGreaterHealRegs = 1 or missingHealRegs = 1 if timer NoHealRegsTimer > 4000 overhead '[ MISSING HEALING REGS! ]' 337 settimer NoHealRegsTimer 0 endif endif @setvar! SpellInterrupted 0 clearsysmsg if skill 'magery' >= 60 and diffhits >= CastGreaterHealHPdiff and diffhits <= CastHealHPdiff and mana >= 11 and EnableCastGreaterHeal = 1 and not casting and missingGreaterHealRegs != 1 @setvar! SpellInterrupted 0 cast 'greater heal' getlabel backpack backpacklabel settimer spellTimer 0 @setvar! spellCD 2500 while not targetexists and timer spellTimer < spellCD if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer spellTimer > spellCD break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastHealHPdiff and diffhits < CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 while diffhits > CastGreaterHealHPdiff and mana >= 4 and findtype 3972 self and findtype 3973 self and findtype 3974 self and not dead if targetexists hotkey 'Cancel current target' endif @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' getlabel backpack backpacklabel endif if diffhits <= CastGreaterHealHPdiff break endif endwhile endif if EnableAgilityPotion = 1 and not findbuff "Agility" and diffhits < CastGreaterHealHPdiff if findtype "Blue Potion" self dclicktype "Blue Potion" if EnableOverheadMessages = 1 and timer BluePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE AGILITY POTION ]' 93 else overhead '[ AGILITY POTION ]' 93 endif clearsysmsg settimer BluePotionMessageTimer 0 endif wait 250 else if timer BluePotionMessageTimer > 4500 overhead '[ NO AGILITY POTS! ]' 337 settimer BluePotionMessageTimer 0 endif endif endif if EnableMagicResistPotion = 1 and not findbuff "Magic Resist" and diffhits < CastGreaterHealHPdiff if findtype "Black Potion" self dclicktype "Black Potion" if EnableOverheadMessages = 1 and timer BlackPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE RESIST POTION ]' 1109 else overhead '[ RESIST POTION ]' 1109 endif clearsysmsg settimer BlackPotionMessageTimer 0 endif wait 250 else if timer BlackPotionMessageTimer > 4500 overhead '[ NO RESIST POTS! ]' 337 settimer BlackPotionMessageTimer 0 endif endif endif if TimeToGo = 1 and warmode break endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if warmode clearsysmsg hotkey 'target closest grey monster' getlabel backpack backpacklabel @setvar! TargetToAnalyze lasttarget wait 250 if insysmsg 'No one matching that' if timer NothingToTargetMessageTimer > 3500 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ NOTHING TO TARGET... ]' 2338 else overhead ' � ' 2338 endif settimer NothingToTargetMessageTimer 0 endif clearsysmsg else @setvar! AttackModeActive 0 @setvar! NoTargetMode 0 break endif endif if warmode if EnableMagicReflection = 1 and skill 'magery' >= 70 and not findbuff "Magic Reflection" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and timer MagicReflectTimer > 15000 and findtype 3972 self and findtype 3974 self and findtype 3981 self if targetexists hotkey 'cancel current target' endif cast 'Magic Reflection' while not casting wait 250 if insysmsg "that spell will not" or insysmsg "that spell is already" or insysmsg "You must wait" settimer MagicReflectTimer 0 clearsysmsg break endif if targetexists hotkey 'cancel current target' endif cast 'Magic Reflection' endwhile while casting if timer MagicReflectTimer < 5000 break endif if diffhits >= CastGreaterHealHPdiff interrupt @setvar! AttackModeActive 1 break endif if EnableCurePotion = 1 while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif endwhile settimer MagicReflectTimer 0 wait 250 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif endif if EnableReactiveArmour = 1 and skill 'magery' >= 30 and not findbuff "Reactive Armor" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and timer ReactiveArmorTimer > 15000 and findtype 3980 self and findtype 3972 self and findtype 3981 self if targetexists hotkey 'cancel current target' endif cast 'Reactive Armor' settimer AntiStallTimer 0 while not casting and timer AntiStallTimer < 3500 wait 250 if insysmsg "that spell will not" or insysmsg "that spell is already" settimer ReactiveArmorTimer 0 break endif if targetexists hotkey 'cancel current target' endif cast 'Reactive Armor' endwhile if timer ReactiveArmorTimer < 5000 // Do nothing else while casting wait 250 endwhile settimer ReactiveArmorTimer 0 endif wait 250 endif if EnableProtection = 1 and skill 'magery' >= 40 and not findbuff "Protection" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and findtype 3980 self and findtype 3972 self and findtype 3973 self cast 'Protection' settimer AntiStallTimer 0 while not casting and timer AntiStallTimer < 3500 if timer AntiStallTimer > 3500 settimer AntiStallTimer 0 break endif cast 'Protection' wait 250 endwhile while casting wait 250 endwhile endif if EnableBless = 1 and skill 'magery' >= 50 and not findbuff "Cunning" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and findtype 3972 self and findtype 3974 self if targetexists hotkey 'cancel current target' endif cast 'Bless' settimer AntiStallTimer 0 while not casting and timer AntiStallTimer < 3500 if timer AntiStallTimer > 3500 settimer AntiStallTimer 0 break endif cast 'Bless' wait 250 endwhile while casting wait 250 endwhile wft 1500 target 'self' wait 250 endif endif if EnableRefreshPotion = 1 and diffstam > RefreshPotionSPdiff if findtype "Red Potion" self dclicktype "Red Potion" if EnableOverheadMessages = 1 and timer RedPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE REFRESH POTION ]' 37 else overhead '[ REFRESH POTION ]' 37 endif clearsysmsg settimer RedPotionMessageTimer 0 endif wait 250 else if timer RedPotionMessageTimer > 4500 overhead '[ NO REFRESH POTS! ]' 337 settimer RedPotionMessageTimer 0 endif endif endif if EnableGoldVacuum = 1 and DisableVacuums != 1 and warmode if findtype "gold coin" ground -1 -1 15 as droppedmoney and timer "GoldRadar" > 3500 overhead " � " 149 droppedmoney settimer "GoldRadar" 0 endif while findtype "gold coin" ground -1 -1 2 as droppedmoney and diffhits < CastGreaterHealHPdiff overhead " � " 149 hotkey "Grab Item" wft 2500 target droppedmoney wait 250 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif if insysmsg "Invalid or inaccessible item" wait 500 @ignore droppedmoney endif wait 250 endwhile endif if not varexist "NoLockbox" @setvar! NoLockbox 0 endif if findtype "wooden box" self and findtype "copper key" self @setvar! NoLockbox 0 else @setvar! NoLockbox 1 endif if EnablePutLootinLockBox = 1 and NoLockbox != 1 and timer LootTimer > StoreLootTimer and warmode and NeedtoSecureLoot = 1 if not findtype "wooden box" backpack or not findtype "copper key" backpack if EnableOverheadMessages != 0 overhead '[ NO LOCKBOX FOUND! ]' 337 endif @setvar! NoLockbox 1 wait 1500 elseif counttype 2474 backpack > 1 or counttype 4110 backpack > 1 if EnableOverheadMessages != 0 overhead '[ TOO MANY LOCKBOXES/KEYS! ]' 337 endif @setvar! NoLockbox 1 wait 1500 else if targetexists hotkey 'Cancel Current Target' endif clearsysmsg hotkey 'Target closest grey monster' wait 250 if insysmsg "No one matching that was found" if findtype "wooden box" backpack as lockbox and findtype "copper key" backpack as key @ignore ItemToIgnore1 @ignore ItemToIgnore2 @ignore ItemToIgnore3 @ignore ItemToIgnore4 @ignore ItemToIgnore5 @ignore weapon @setvar! FoundNewTarget 0 settimer STORELOOT 0 settimer LootTimer 0 settimer PKRadar 0 getlabel lockbox lockboxLabel if "items" in lockboxLabel // Do nothing else if EnableOverheadMessages != 0 overhead "[loot box unlocked]" 84 endif dclick key wft 1500 target lockbox getlabel backpack backpacklabel endif removelist TemporaryLootIgnoreList createlist TemporaryLootIgnoreList if findtype '3821|5356|70148|70151|70154|70157|30988|20016|11858|39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|39917|39918|3834|67713|67723|67734|67744|67754|67764|67773|67774|67775|67776|67777|67778|7109|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31043|31045|31047|31049|31051|31053|31055|31169|31172|31128|31141|31002|31130|31000|31001|31180|31182|31178|30991|30999|20014|20012|20010|20008|20006|30992|30997|31176|31188|30998|30989|30996|30995|31186|31184|30990|30993|37181|4026|4025|31010|31008|31007|31006|31015|31005|31009|31012|31011|31004|31003|31191|17686|31014|30994|31142|31190|24434|43206|29363|43166|22336|29348|17087|3985|8826|3827|29030|3836|5981|4248|5359|3839|3838|48407|3865|3859|3885|3856|3878|3877|3873|3861|3862|576|5123|7177|7027|3920|5131|5179|5075|5060|5076|5042|10245|3938|3913|7169|3909|5063|5089|7170|7033|3762|5040|5103|5117|7181|7029|3568|6264|3742|5139|6263|7026|5125|3740|5121|5204|5105|5185|5078|5115|7175|5059|7034|3713|3915|5112|5070|5049|5205|5046|7035|3911|7179|5106|5143|3573|3719|5177|7610|5181|3917|5132|7031|5207|5056|5085|3763|5129|5187|3721|5138|3570|5101|5061|5074|5142|5182|5146|6265|5090|5203|5044|5144|3932|5201|5127|3572|7173|5135|3937|3571|22326|27611|9917|8455|5362|45315|8454|22187|5901|7982|7983|7984|7985|7986|7987|7988|7989|7990|7991|7992|7993|7994|7995|7996|7997|7998|7999|8000|8001|8002|8003|8004|8005|8006|8007|8008|8009|8010|8011|8012|8013|8014|8015|8016|8017|8018|8019|8020|8021|8022|8023|8024|8025|8026|8027|8028|8029|8030|8031|8032|8034|8035|8036|8037|8038|8039|8040|8041|8042|8033|8044|3843|3842|15296|15297|29025|29034|29036|2472|2475|3648|3649|3650|3651|3708|3712|29832|29833|7107' backpack as loottostore ////////////////////////// // LOOT STORAGE LOOP: // ////////////////////////// while findtype '5356|70148|70151|70154|70157|30988|20016|11858|39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|3821|39917|39918|3834|67713|67723|67734|67744|67754|67764|67773|67774|67775|67776|67777|67778|7109|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31043|31045|31047|31049|31051|31053|31055|31169|31172|31128|31141|31002|31130|31000|31001|31180|31182|31178|30991|30999|20014|20012|20010|20008|20006|30992|30997|31176|31188|30998|30989|30996|30995|31186|31184|30990|30993|37181|4026|4025|31010|31008|31007|31006|31015|31005|31009|31012|31011|31004|31003|31191|17686|31014|30994|31142|31190|24434|43206|29363|43166|22336|29348|17087|3985|8826|3827|29030|3836|5981|4248|5359|3839|3838|48407|3865|3859|3885|3856|3878|3877|3873|3861|3862|576|5123|7177|7027|3920|5131|5179|5075|5060|5076|5042|10245|3938|3913|7169|3909|5063|5089|7170|7033|3762|5040|5103|5117|7181|7029|3568|6264|3742|5139|6263|7026|5125|3740|5121|5204|5105|5185|5078|5115|7175|5059|7034|3713|3915|5112|5070|5049|5205|5046|7035|3911|7179|5106|5143|3573|3719|5177|7610|5181|3917|5132|7031|5207|5056|5085|3763|5129|5187|3721|5138|3570|5101|5061|5074|5142|5182|5146|6265|5090|5203|5044|5144|3932|5201|5127|3572|7173|5135|3937|3571|22326|27611|9917|8455|5362|45315|8454|22187|5901|7982|7983|7984|7985|7986|7987|7988|7989|7990|7991|7992|7993|7994|7995|7996|7997|7998|7999|8000|8001|8002|8003|8004|8005|8006|8007|8008|8009|8010|8011|8012|8013|8014|8015|8016|8017|8018|8019|8020|8021|8022|8023|8024|8025|8026|8027|8028|8029|8030|8031|8032|8034|8035|8036|8037|8038|8039|8040|8041|8042|8033|8044|3843|3842|15296|15297|29025|29034|29036|2472|2475|3648|3649|3650|3651|3708|3712|29832|29833|7107' backpack as loottostore if dead break endif if diffhits >= CastGreaterHealHPdiff sysmsg 'Damage threshold exceeded - Loot storage loop cancelled!' 153 break endif if not warmode sysmsg 'Peace Mode triggered - Loot storage loop cancelled!' 153 hotkey 'Toggle War Only' break endif if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "LootStorageTimer" > 3200 overhead '[ SECURING LOOT... ]' 149 settimer "LootStorageTimer" 0 endif endif getlabel loottostore loottostorelabel wait 200 if "blessed" in loottostorelabel or "aspect" in loottostorelabel @ignore loottostore pushlist TemporaryLootIgnoreList loottostore else lift loottostore 60000 drop lockbox -1 -1 -1 wait 200 if find loottostore lockbox @ignore loottostore else @ignore loottostore pushlist TemporaryLootIgnoreList loottostore endif endif if insysmsg "to be locked" clearsysmsg dclick key wft 1500 target lockbox wait 250 endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff and not dead if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if HealPotionCheck != counttype 3852 self or insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 if insysmsg "potion satchel used" overhead '[ FREE HEAL POTION ]' 253 else overhead "[ HEAL POTION ]" 253 endif endif clearsysmsg endif endif else if timer 'HealPotionMessageTimer' > 4500 overhead "[ NO HEAL POTS! ]" 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if diffhits > 0 and not bandaging and not dead if skill 'healing' > 0 if findtype 'clean bandage%s%' self if targetexists hotkey 'cancel current target' endif hotkey 'Bandage Self' if EnableOverheadMessages = 1 if timer BandageMessageTimer > 5000 overhead "[ BANDAGING... ]" 88 settimer BandageMessageTimer 0 endif endif else if timer BandageMessageTimer > 5000 and EnableOverheadMessages = 1 overhead "[ OUT OF BANDAGES! ]" 337 settimer BandageMessageTimer 0 endif endif endif endif if EnableCurePotion = 1 and not dead while poisoned if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 overhead "[ CURE POTION ]" 44 settimer 'CurePotionMessageTimer' 0 endif wait 250 else if timer 'CurePotionMessageTimer' > 5000 overhead "[ NO CURE POTS! ]" 337 settimer 'CurePotionMessageTimer' 0 endif if not findtype 3972 self or not findtype 3973 self break endif endif if not poisoned break endif endwhile endif if EnablePKradar = 1 and TimeToGo != 1 if timer "PKRadar" > 2000 clearsysmsg hotkey 'Next Murderer Player Target' wait 150 if insysmsg "No one matching that was found" settimer "PKRadar" 0 else hotkey 'Toggle Peace Only' @setvar! RedTargetFound 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 @setvar! SkipInfiniteLoop 1 @setvar! MurdererTarget lasttarget if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif settimer "REDALERT" 0 replay endif endif endif if EnableTrackingAutoRecall = 1 and TimeToGo != 1 if PKTrackingRange = 60 if insysmsg ": 60 step" or insysmsg "60 space" or insysmsg ": 59 step" or insysmsg "59 space" or insysmsg ": 58 step" or insysmsg "58 space" or insysmsg ": 57 step" or insysmsg "57 space" or insysmsg ": 56 step" or insysmsg "56 space" or insysmsg ": 55 step" or insysmsg "55 space" or insysmsg ": 54 step" or insysmsg "54 space" or insysmsg ": 53 step" or insysmsg "53 space" or insysmsg ": 52 step" or insysmsg "52 space" or insysmsg ": 51 step" or insysmsg "51 space" or insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif settimer "REDALERT" 0 @setvar! RedTargetFound 1 @setvar! SkipInfiniteLoop 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 50 if insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif settimer "REDALERT" 0 @setvar! RedTargetFound 1 @setvar! SkipInfiniteLoop 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 40 if insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif settimer "REDALERT" 0 @setvar! RedTargetFound 1 @setvar! SkipInfiniteLoop 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 0 if insysmsg "Now tracking" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif settimer "REDALERT" 0 @setvar! RedTargetFound 1 @setvar! SkipInfiniteLoop 1 @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 clearsysmsg replay endif endif endif if timer 'STORELOOT' > 1500 clearsysmsg hotkey 'Target Closest Grey Monster' getlabel backpack backpacklabel wait 100 if insysmsg 'No one matching that was found' @setvar! FoundNewTarget 0 @setvar! LootTargetMOB 0 else @setvar! LootTargetMOB lasttarget getlabel LootTargetMOB templabel if inlist animalsIgnoreList tempLabel if timer "IgnoreMOBtimer" > 2500 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ IGNORING MOB! ]' 333 LootTargetMOB else overhead " � " 333 LootTargetMOB endif getlabel backpack backpacklabel settimer "IgnoreMOBtimer" 0 endif @ignore LootTargetMOB elseif find LootTargetMOB ground -1 -1 12 clearsysmsg skill 'begging' wft 500 if not targetexists or insysmsg 'You must wait' clearsysmsg skill 'begging' wft 500 endif target LootTargetMOB getlabel backpack backpackdesc if not dead LootTargetMOB if insysmsg "Target cannot be seen" or insysmsg "That is too far away." @setvar! FoundNewTarget 0 @setvar! LootTargetMOB 0 elseif insysmsg "Perhaps" or insysmsg "They do not appear to have anything to offer you" sysmsg 'Nearby MOB detected - Loot storage loop cancelled!' 153 @setvar! FoundNewTarget 1 break endif endif else @setvar! LootTargetMOB 0 endif endif settimer 'STORELOOT' 0 endif endwhile endif ///////////////////////////// // END LOOT STORAGE LOOP // ///////////////////////////// if not dead dclick key wft 1500 target lockbox if EnableOverheadMessages != 0 overhead "[loot box locked]" 69 endif @setvar! NeedtoSecureLoot 0 endif foreach TemporaryLootIgnore in TemporaryLootIgnoreList @unignore TemporaryLootIgnore endfor removelist TemporaryLootIgnoreList @unignore ItemToIgnore1 @unignore ItemToIgnore2 @unignore ItemToIgnore3 @unignore ItemToIgnore4 @unignore ItemToIgnore5 @unignore weapon @setvar! NeedtoSecureLoot 0 settimer LootTimer 0 getlabel lockbox lockboxLabel if "items" in lockboxLabel and not dead dclick key wft 1500 target lockbox endif endif else @setvar! TargetToAnalyze lasttarget getlabel backpack backpacklabel break endif endif settimer LootTimer 0 endif if dead break endif if EnableDungeonCleanup = 1 and diffhits < CastGreaterHealHPdiff and warmode while findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 2 as item if EnableOverheadMessages = 1 if timer "DungeonCleanup" > 1500 overhead '[ CLEANUP... ]' 420 settimer "DungeonCleanup" 0 endif else if timer "DungeonCleanup" > 1500 overhead ' � ' 420 settimer "DungeonCleanup" 0 endif endif hotkey "Grab Item" wft 1000 target item wait 500 if dead break endif if diffhits > CastGreaterHealHPdiff break endif endwhile if findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 15 as dungeonjunk and timer "DungeonCleanupRadar" > 3500 overhead "�" 420 dungeonjunk settimer "DungeonCleanupRadar" 0 endif endif if dead break endif if targetexists hotkey 'cancel current target' endif if SkipTimers != 1 @setvar! SkipTimers 1 endif endwhile //////////////////////////// // END NO TARGET LOOP // //////////////////////////// getlabel backpack backpacklabel else @setvar! AttackModeActive 0 endif endif if not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and AttackModeActive = 1 and warmode and TimeToGo != 1 // Skip target checks and begin attack loop! ////////////////////// // TARGET CHECKER // ////////////////////// elseif not dead TargetToAnalyze and find TargetToAnalyze ground -1 -1 12 and TimeToGo != 1 if warmode while diffhits < CastGreaterHealHPdiff and find TargetToAnalyze ground -1 -1 12 and AttackModeActive = 0 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer AnalyzingTargetsTimer > 10000 overhead '[ ANALYZING TARGET... ]' 90 settimer AnalyzingTargetsTimer 0 endif endif if dead break endif if dead TargetToAnalyze or not find TargetToAnalyze ground -1 -1 12 @setvar! AttackModeActive 0 break endif if EnableAutoCarving = 1 and findtype 11552 self while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile clearsysmsg if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody wait 250 endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif break endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if find TargetToAnalyze ground -1 -1 12 getlabel TargetToAnalyze tempLabel while "-" in tempLabel getlabel TargetToAnalyze tempLabel endwhile if inlist animalsIgnoreList tempLabel if timer "IgnoreMOBtimer" > 2500 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ IGNORING MOB! ]' 333 TargetToAnalyze else overhead " � " 333 TargetToAnalyze endif getlabel backpack backpacklabel settimer "IgnoreMOBtimer" 0 @ignore TargetToAnalyze endif settimer NoTargetTimer 0 else clearsysmsg skill 'begging' settimer AntiStallTimer 0 wait 250 while not targetexists if insysmsg 'you must wait' clearsysmsg skill 'begging' wait 250 endif wait 250 if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if targetexists target TargetToAnalyze getlabel backpack backpacklabel endif if not dead TargetToAnalyze and find TargetToAnalyze ground -1 -1 12 if insysmsg "cannot be seen" if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "CannotSeeTargetTimer" > 3000 overhead '[ CANNOT SEE TARGET! ]' 44 settimer "CannotSeeTargetTimer" 0 endif elseif timer "CannotSeeTargetTimer" > 4500 overhead " � " 44 TargetToAnalyze settimer "CannotSeeTargetTimer" 0 endif settimer NoTargetTimer 0 if diffhits > CastGreaterHealHPdiff break endif clearsysmsg hotkey 'target closest grey monster' getlabel backpack backpacklabel @setvar! TargetToCheck lasttarget if insysmsg 'No one matching that' @setvar! AttackModeActive 0 @setvar! TargetToAnalyze 0 @setvar! TargetToCheck 0 break elseif TargetToCheck != TargetToAnalyze @setvar! AttackModeActive 0 @setvar! TargetToAnalyze 0 @setvar! TargetToCheck 0 break elseif find TargetToAnalyze ground -1 -1 TargetAttackRange @setvar! TargetToAnalyze lasttarget @setvar! AttackModeActive 2 else break endif elseif insysmsg "That is too far away." if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "TargetIsTooFarTimer" > 2000 overhead '[ GET CLOSER! ]' 69 overhead " � " 69 TargetToAnalyze settimer "TargetIsTooFarTimer" 0 endif elseif timer "TargetIsTooFarTimer" > 4500 overhead " � " 44 TargetToAnalyze settimer "TargetIsTooFarTimer" 0 endif settimer NoTargetTimer 0 elseif insysmsg "Perhaps" or insysmsg "You are too far away from them." or insysmsg "They do not appear to have anything to offer you." or insysmsg "You must wait" or insysmsg "You cannot beg from an individual" if find TargetToAnalyze ground -1 -1 TargetAttackRange if ClosestTarget != TargetToAnalyze settimer CurseTimer 60000 settimer ManaDrainTimer 60000 getlabel backpack backpacklabel endif clearsysmsg @setvar! ClosestTarget TargetToAnalyze @setvar! previousTarget ClosestTarget settimer 'PainSpikeDelayTimer' 0 @setvar! ClosestTargetisSticky 0 attack ClosestTarget if timer "AttackTargetTimer" > 15000 if EnableOverheadMessages != 0 overhead '[ ATTACKING! ]' 69 endif settimer "AttackTargetTimer" 0 endif @setvar! AttackModeActive 1 @setvar! NoTargetMode 0 @setvar! TargetSwap 0 @setvar! ClosestTargetisSticky 0 @setvar! RepeatCastingPoison 1 settimer PainSpikeDelayTimer 0 settimer TargetChecker 0 settimer NoTargetTimer 0 if EnableNecroCorpseSkin = 1 settimer CorpseSkinDiseaseTimer 0 endif if find ClosestTarget ground -1 -1 TargetAttackRange getlabel ClosestTarget TargetDesc if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ PARAGON! ]' 12 ClosestTarget overhead " � " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ TARGET ]' 69 ClosestTarget overhead " � " 69 ClosestTarget settimer "TargetTimer" 0 endif else if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead " ��� " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead " � " 69 ClosestTarget settimer "TargetTimer" 0 endif endif endif break else if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "TargetIsTooFarTimer" > 3500 overhead '[ GET CLOSER! ]' 69 settimer "TargetIsTooFarTimer" 0 endif elseif timer "TargetIsTooFarTimer" > 4500 overhead " � " 69 TargetToAnalyze settimer "TargetIsTooFarTimer" 0 endif settimer NoTargetTimer 0 endif endif else break endif endif else @setvar! TargetToAnalyze 0 break endif getlabel backpack backpacklabel if AttackModeActive != 0 break endif if targetexists hotkey 'cancel current target' endif if casting interrupt endif endwhile if dead break endif else if WarModeToggledWhileFighting = 1 hotkey 'Toggle War Only' @setvar! AttackModeActive 2 replay else if DUNGEONMODE = 1 @setvar! TimeToGo 1 elseif WILDERNESSMODE = 1 @setvar! AutoRecallTime 1 endif replay endif endif getlabel backpack backpacklabel endif //////////////////////// // BUFFS: // //////////////////////// if dead break endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif @setvar! CastingWasInterrupted 0 if TimeToGo != 1 if EnableMagicReflection = 1 and skill 'magery' >= 70 and not findbuff "Magic Reflection" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and timer MagicReflectTimer > 15000 and findtype 3972 self and findtype 3974 self and findtype 3981 self if targetexists hotkey 'cancel current target' endif cast 'Magic Reflection' while not casting wait 250 if insysmsg "that spell will not" or insysmsg "that spell is already" or insysmsg "You must wait" settimer MagicReflectTimer 0 clearsysmsg break endif if targetexists hotkey 'cancel current target' endif cast 'Magic Reflection' endwhile while casting if timer MagicReflectTimer < 5000 break endif if diffhits >= CastGreaterHealHPdiff interrupt @setvar! AttackModeActive 1 break endif if EnableCurePotion = 1 while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif endwhile settimer MagicReflectTimer 0 wait 250 endif if EnableReactiveArmour = 1 and skill 'magery' >= 30 and not findbuff "Reactive Armor" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and timer ReactiveArmorTimer > 15000 and findtype 3980 self and findtype 3972 self and findtype 3981 self if targetexists hotkey 'cancel current target' endif cast 'Reactive Armor' settimer AntiStallTimer 0 while not casting and timer AntiStallTimer < 3500 wait 250 if insysmsg "that spell will not" or insysmsg "that spell is already" settimer ReactiveArmorTimer 0 break endif if targetexists hotkey 'cancel current target' endif cast 'Reactive Armor' endwhile if timer ReactiveArmorTimer < 5000 // Do nothing else while casting wait 250 endwhile settimer ReactiveArmorTimer 0 endif wait 250 endif if EnableProtection = 1 and skill 'magery' >= 40 and not findbuff "Protection" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and findtype 3980 self and findtype 3972 self and findtype 3973 self cast 'Protection' settimer AntiStallTimer 0 while not casting and timer AntiStallTimer < 3500 if timer AntiStallTimer > 3500 settimer AntiStallTimer 0 break endif cast 'Protection' wait 250 endwhile while casting wait 250 endwhile endif if EnableBless = 1 and skill 'magery' >= 50 and not findbuff "Cunning" and mana >= MinimumManaToApplyMageryBuffs and diffhits < CastGreaterHealHPdiff and findtype 3972 self and findtype 3974 self if targetexists hotkey 'cancel current target' endif cast 'Bless' settimer AntiStallTimer 0 while not casting and timer AntiStallTimer < 3500 if timer AntiStallTimer > 3500 settimer AntiStallTimer 0 break endif cast 'Bless' wait 250 endwhile while casting wait 250 endwhile wft 1500 target 'self' wait 250 endif endif ////////////////////////// // BEGIN ATTACK LOOP: // ////////////////////////// while not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and AttackModeActive = 1 and TargetSwap != 1 and TimeToGo != 1 if skill "Arcane" >= 80 and EnableArcaneWeaponAbility != 0 if EnableArcaneCodexAbilityHotbar = 1 if not gumpexists 3954121934 yell '[abilitieshotbar' wait 500 endif endif endif if EnableWeaponCheck = 1 and skill 'Arcane' >= 50 and not findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" hand if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff for 5 if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff getlabel myArcaneStaff myArcaneStafflabel if "Aspect" in myArcaneStafflabel break elseif "unidentified" in myArcaneStafflabel ignore myArcaneStaff else break endif endif endfor dclick myArcaneStaff clearignore wait 500 else if timer "ArcaneStaffCheck" > 5000 and EnableOverheadMessages = 1 overhead "[ NO ARCANE STAFF! ]" 337 settimer "ArcaneStaffCheck" 0 endif endif endif if timer "TargetTimer" > 3500 and find ClosestTarget ground -1 -1 TargetAttackRange getlabel ClosestTarget TargetDesc if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ PARAGON! ]' 12 ClosestTarget overhead " � " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ TARGET ]' 253 ClosestTarget overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif else if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead " ��� " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif endif endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if EnableAutoTaunting = 1 if skill 'Parrying' >= 80 and find ClosestTarget ground -1 -1 12 and timer "TauntingTimer" > 15000 say "[Taunt" wft 500 target ClosestTarget wait 250 if not targetexists if insysmsg "Cannot be seen" settimer "TauntingTimer" 10000 else if EnableOverheadMessages = 1 overhead "[ TAUNTING... ]" 2117 endif settimer "TauntingTimer" 0 endif endif endif endif if EnableStrengthPotion = 1 and diffhits < CastGreaterHealHPdiff if skill 'Alchemy' > 0 and skill 'Alchemy' < 2 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 500 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif elseif skill 'Alchemy' = 0 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 500 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif else if not findbuff "Strength" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 500 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif endif endif endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if EnableAgilityPotion = 1 and not findbuff "Agility" and diffhits < CastGreaterHealHPdiff if findtype "Blue Potion" self dclicktype "Blue Potion" if EnableOverheadMessages = 1 and timer BluePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE AGILITY POTION ]' 93 else overhead '[ AGILITY POTION ]' 93 endif clearsysmsg settimer BluePotionMessageTimer 0 endif wait 250 else if timer BluePotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO AGILITY POTS! ]' 337 settimer BluePotionMessageTimer 0 endif endif endif if EnableMagicResistPotion = 1 and not findbuff "Magic Resist" and diffhits < CastGreaterHealHPdiff if findtype "Black Potion" self dclicktype "Black Potion" if EnableOverheadMessages = 1 and timer BlackPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE RESIST POTION ]' 1109 else overhead '[ RESIST POTION ]' 1109 endif clearsysmsg settimer BlackPotionMessageTimer 0 endif wait 250 else if timer BlackPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO RESIST POTS! ]' 337 settimer BlackPotionMessageTimer 0 endif endif endif if EnableRefreshPotion = 1 and diffstam > RefreshPotionSPdiff if findtype "Red Potion" self dclicktype "Red Potion" if EnableOverheadMessages = 1 and timer RedPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE REFRESH POTION ]' 37 else overhead '[ REFRESH POTION ]' 37 endif clearsysmsg settimer RedPotionMessageTimer 0 endif wait 250 else if timer RedPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO REFRESH POTS! ]' 337 settimer RedPotionMessageTimer 0 endif endif endif if EnableAutoExplosionPots = 1 and diffhits < CastGreaterHealHPdiff if findtype 'purple potion' self as explotPot getlabel explotPot potLabel if "(" in potLabel if timer PurplePotionTimer > PurplePotionCooldown @setvar! PurplePotionReady 1 else @setvar! PurplePotionReady 0 endif else @setvar! PurplePotionReady 1 endif if skill 'Alchemy' < 80 if timer TelekinesisTimer > 60000 or ClosestTargetisSticky = 0 if PurplePotionReady = 1 and find ClosestTarget ground -1 -1 TargetAttackRange and not dead ClosestTarget if findtype 'purple potion' self settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if timer AntiStallTimer > 1500 break endif cast 'Telekinesis' wait 500 endwhile clearsysmsg wft 500 target ClosestTarget wait 250 if insysmsg "You are too far" @setvar! ClosestTargetisSticky 0 clearsysmsg else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 4500 overhead '[ EXPLOSION POTION! ]' 419 settimer PurplePotionMessageTimer 0 endif settimer TelekinesisTimer 0 @setvar! ClosestTargetisSticky 1 endif endif endif endif else @setvar! ClosestTargetisSticky 1 endif else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 15000 overhead '[ NO PURPLE POTIONS ]' 337 settimer PurplePotionMessageTimer 0 endif endif endif @setvar! CastingWasInterrupted 0 if targetexists hotkey 'cancel current target' endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 settimer TargetChecker 0 break endif if EnableAutoExplosionPots = 1 if timer TelekinesisTimer > 60000 @setvar! ClosestTargetisSticky 0 settimer TelekinesisTimer 0 endif endif if PurplePotionReady = 1 and ClosestTargetisSticky = 1 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and diffhits < CastGreaterHealHPdiff settimer AntiStallTimer 0 while not insysmsg "Where should i throw this potion?" and timer AntiStallTimer < 1500 potion 'explosion' if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile @setvar! PurplePotionReady 0 settimer PurplePotionTimer 0 settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! CastingWasInterrupted 1 @setvar! TargetSwap 0 hotkey 'cancel current target' break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 target ClosestTarget cooldown "Purple Potion" PurplePotionCooldown getlabel backpack packdesc wait 250 endif endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if EnableCastCurse = 1 and timer CurseTimer > 60000 and mana >= 11 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3972 self and findtype 3976 self and findtype 3980 self clearsysmsg cast 'Curse' settimer spellTimer 0 settimer AntiStallTimer 0 @setvar! SpellcastCooldown 800 while not targetexists and timer AntiStallTimer < 2500 if diffhits >= CastGreaterHealHPdiff interrupt @setvar! AttackModeActive 1 @setvar! CastingWasInterrupted 1 break endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif if timer spellTimer < SpellcastCooldown if EnableCurePotion = 1 while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff and casting and not targetexists if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif endif endwhile if CastingWasInterrupted = 0 clearsysmsg settimer CurseTimer 0 target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "cannot be seen" break elseif insysmsg "You curse your target" if EnableOverheadMessages = 1 overhead "[ CURSED ]" 1109 ClosestTarget elseif EnableOverheadMessages = 2 overhead "*cursed*" 1109 ClosestTarget endif endif endif endif if EnableCastManaDrain = 1 and timer ManaDrainTimer > 60000 and mana >= 11 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3962 self and findtype 3974 self and findtype 3981 self clearsysmsg cast 'Mana Drain' settimer spellTimer 0 settimer AntiStallTimer 0 @setvar! SpellcastCooldown 800 while not targetexists and timer AntiStallTimer < 2500 if diffhits >= CastGreaterHealHPdiff interrupt @setvar! AttackModeActive 1 @setvar! CastingWasInterrupted 1 break endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif if timer spellTimer < SpellcastCooldown if EnableCurePotion = 1 while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff and casting and not targetexists if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif endif endwhile if CastingWasInterrupted = 0 clearsysmsg settimer ManaDrainTimer 0 target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "cannot be seen" break endif endif endif if EnableGoldVacuum = 1 and DisableVacuums != 1 and warmode if findtype "gold coin" ground -1 -1 15 as droppedmoney and timer "GoldRadar" > 3500 overhead " � " 149 droppedmoney settimer "GoldRadar" 0 endif while findtype "gold coin" ground -1 -1 2 as droppedmoney and diffhits < CastGreaterHealHPdiff overhead " � " 149 hotkey "Grab Item" wft 2500 target droppedmoney wait 250 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif if insysmsg "Invalid or inaccessible item" wait 500 @ignore droppedmoney endif wait 250 endwhile endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 settimer TargetChecker 0 break endif if dead break endif if CheckClosestTargetTime != 0 if timer TargetChecker > CheckClosestTargetTime @setvar! TargetSwap 0 hotkey "Target Closest Grey Monster" getlabel backpack backpacklabel @setvar! TargetToCheck lasttarget wait 250 if TargetToCheck != ClosestTarget settimer TargetChecker 0 @setvar! TargetToAnalyze lasttarget @setvar! ClosestTargetisSticky 0 @setvar! AttackModeActive 2 @setvar! TargetSwap 1 break endif settimer TargetChecker 0 endif endif if skill 'Necromancy' >= 50 and not gumpexists 622436516 if findtype 'necromancer book' backpack yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' wait 500 endwhile elseif EnableOverheadMessages = 1 overhead '[ NO NECRO BOOK! ]' 337 wait 500 endif endif if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self clearignore getlabel backpack backpacklabel if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer MissingRegsTimer > 5000 if counttype "3972" self = 0 overhead '[ NO GARLIC ]' 646 endif if counttype "3962" self = 0 overhead '[ NO BLACK PEARL ]' 3 endif if counttype "3963" self = 0 overhead '[ NO BLOODMOSS ]' 33 endif if counttype "3980" self = 0 overhead '[ NO SULFUROUS ASH ]' 153 endif if counttype "3976" self = 0 overhead '[ NO NIGHTSHADE ]' 363 endif if counttype "3973" self = 0 overhead '[ NO GINSENG ]' 247 endif if counttype "3974" self = 0 overhead '[ NO MANDRAKE ROOT ]' 442 endif if counttype "3981" self = 0 overhead '[ NO SPIDERS SILK ]' 2338 endif settimer MissingRegsTimer 0 endif endif @setvar! MissingRegs 1 else @setvar! MissingRegs 0 endif else @setvar! MissingRegs 0 endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif ////////////////////////////// // SPAM FLAMESTRIKE LOOP: // ////////////////////////////// while EnableCastFlamestrike = 1 and mana >= CastMediumSpellsBelowMana and findtype 3981 self and findtype 3980 self and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and TargetSwap != 1 and diffhits < CastGreaterHealHPdiff if dead break endif if EnableDropGoldWhenOverweight = 1 if weight > maxweight replay endif endif if EnableWeightWarningMessage = 1 if diffweight < GreenWarningDiffWeight and diffweight > YellowWarningDiffWeight and timer "WeightMessageTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING... ]' 77 settimer "WeightMessageTimer" 0 else overhead " � " 77 settimer "WeightMessageTimer" 0 endif elseif diffweight < YellowWarningDiffWeight and diffweight > RedWeightLimitDiffWeight and timer "WeightMessageTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING! ]' 153 settimer "WeightMessageTimer" 0 else overhead " � " 153 settimer "WeightMessageTimer" 0 endif elseif diffweight < RedWeightLimitDiffWeight if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "WeightMessageTimer" > 6000 overhead '[ WEIGHT LIMIT REACHED! ]' 37 settimer "WeightMessageTimer" 0 endif else if timer "WeightMessageTimer" > 6000 overhead " � " 37 settimer "WeightMessageTimer" 0 endif endif if EnableAutoWeightRecall = 1 and not find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! AutoWeightRecall 1 replay elseif EnableAutoWeightRecall = 1 and find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 if timer "WaitingToRecallTimer" > 3500 and EnableAutoRecallOverheadMessages = 1 overhead '[ WAITING TO RECALL... ]' 149 settimer "WaitingToRecallTimer" 0 endif wait 500 elseif EnableAutoWeightDungeonGate = 1 and DUNGEONMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 replay else if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ OVERWEIGHT! ]' 337 else overhead " � " 337 endif wait 1500 overhead '[ STOPPING SCRIPT! ]' 88 stop endif endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if diffhits > CastGreaterHealHPdiff or paralyzed break endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if TargetSwap = 1 @setvar! AttackModeActive 2 break endif if timer "TargetTimer" > 3500 and find ClosestTarget ground -1 -1 TargetAttackRange getlabel ClosestTarget TargetDesc if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ PARAGON! ]' 12 ClosestTarget overhead " � " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ TARGET ]' 253 ClosestTarget overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif else if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead " ��� " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif endif endif if EnableWeaponCheck = 1 and skill 'Arcane' >= 50 and not findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" hand if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff for 5 if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff getlabel myArcaneStaff myArcaneStafflabel if "Aspect" in myArcaneStafflabel break elseif "unidentified" in myArcaneStafflabel ignore myArcaneStaff else break endif endif endfor dclick myArcaneStaff clearignore wait 500 else if timer "ArcaneStaffCheck" > 5000 and EnableOverheadMessages = 1 overhead "[ NO ARCANE STAFF! ]" 337 settimer "ArcaneStaffCheck" 0 endif endif endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange settimer TargetChecker 0 @setvar! TargetSwap 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! AttackModeActive 0 break endif if CheckClosestTargetTime != 0 if timer TargetChecker > CheckClosestTargetTime @setvar! TargetSwap 0 hotkey "Target Closest Grey Monster" getlabel backpack backpacklabel @setvar! TargetToCheck lasttarget wait 250 if TargetToCheck != ClosestTarget settimer TargetChecker 0 @setvar! TargetToAnalyze lasttarget @setvar! ClosestTargetisSticky 0 @setvar! AttackModeActive 2 @setvar! TargetSwap 1 break endif settimer TargetChecker 0 endif endif if skill "Arcane" >= 80 and EnableArcaneWeaponAbility != 0 and diffhits < CastGreaterHealHPdiff if EnableArcaneCodexAbilityHotbar = 1 if not gumpexists 3954121934 yell '[abilitieshotbar' wait 500 endif endif if timer ArcaneWeaponAbilityTimer > 60000 if EnableArcaneWeaponAbility = 1 say "[Weaponability1" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ SEEKING ABILITY! ]" 2114 endif cooldown "Seeking Active" 15000 cooldown "Weapon Ability" 60000 endif elseif EnableArcaneWeaponAbility = 2 and diffmana > 25 say "[Weaponability2" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ LEYLINE ABILITY! ]" 420 endif cooldown "Leyline Active" 15000 cooldown "Weapon Ability" 60000 endif elseif EnableArcaneWeaponAbility = 3 say "[Weaponability3" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ SOULFIRE ABILITY! ]" 2116 endif cooldown "Weapon Ability" 60000 endif endif endif endif if mana < LowManaWarningAmount and timer ManaOverheadTimer > 4500 and LowManaWarningAmount != 0 overhead "[ LOW MANA! ]" 34 settimer ManaOverheadTimer 0 endif if EnableNecroStrangle = 1 or EnableNecroCorpseSkin = 1 or EnableNecroMindRot = 1 or EnableNecroEvilOmen = 1 or EnableNecroPainSpike = 1 if findtype 'necromancer book' backpack yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' endwhile endif endif if gumpexists 622436516 if ingump "12/|13/|14/|15/|16/|17/|18/|19/|20/|21/|11/|10/|9/|8/|7/|6/|5/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 elseif ingump "4/" 622436516 if ingump "14/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "3/" 622436516 if ingump "13/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "2/" 622436516 if ingump "12/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "1/" 622436516 if ingump "11/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 0 @setvar! EvilOmenAvailable 0 @setvar! PainSpikeAvailable 0 endif elseif ingump "0/" 622436516 if ingump "10/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 0 @setvar! EvilOmenAvailable 0 @setvar! PainSpikeAvailable 0 endif endif endif if EnableNecroStrangle = 1 and StrangleAvailable = 1 and timer StrangleTimer > 30000 and skill 'necromancy' >= 85 and mana >= 50 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[Strangle' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer StrangleTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ STRANGLE ]' 334 endif settimer StrangleTimer 0 cooldown "Strangle" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroCorpseSkin = 1 and CorpseSkinAvailable = 1 and timer CorpseSkinTimer > 30000 and skill 'necromancy' >= 65 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[CorpseSkin' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer CorpseSkinTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ CORPSE SKIN ]' 40 endif settimer CorpseSkinTimer 0 cooldown "Corpse Skin" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroMindRot = 1 and MindRotAvailable = 1 and timer MindRotTimer > 30000 and skill 'necromancy' >= 75 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[MindRot' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer MindRotTimer 28000 break else break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ MIND ROT ]' 223 endif settimer MindRotTimer 0 cooldown "Mind Rot" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroEvilOmen = 1 and EvilOmenAvailable = 1 and timer EvilOmenTimer > 30000 and skill 'necromancy' >= 60 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[EvilOmen' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer EvilOmenTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ EVIL OMEN ]' 238 endif settimer EvilOmenTimer 0 cooldown "Evil Omen" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroPainSpike = 1 and PainSpikeAvailable = 1 and timer 'PainSpikeTimer' > 30000 and skill 'necromancy' >= 95 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 4 and findtype 8198 ground -1 -1 2 as corpsespike and timer 'PainSpikeDelayTimer' > PainSpikeAttackDelay and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg yell "[PainSpike" wft 1000 target ClosestTarget getlabel backpack backpacklabel wft 250 if insysmsg "You do not see any corpses" or insysmsg "seconds before you may use that ability again." settimer PainSpikeTimer 25000 @setvar! CastingWasInterrupted 1 endif if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ PAIN SPIKE! ]' 337 endif settimer PainSpikeTimer 0 cooldown "Pain Spike" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroPoisonStrike != 0 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and diffhits < CastGreaterHealHPdiff and timer NecroCooldownTimer > 1000 getlabel ClosestTarget targetLabel if "-" in targetLabel getlabel ClosestTarget targetLabel endif @setvar! CastPoisonStrike 0 if EnableCastPoison = 1 if "Ticks" in targetLabel or "resists" in targetLabel and EnableCastPoison = 1 @setvar! RepeatCastingPoison 1 if SetPoisonLevel = 2 if "Lethal" in targetLabel @setvar! RepeatCastingPoison 0 endif elseif SetPoisonLevel = 1 if "Lethal" in targetLabel or "Deadly" in targetLabel @setvar! RepeatCastingPoison 0 endif else @setvar! RepeatCastingPoison 0 endif if EnableNecroPoisonStrike != 0 if findtype 'necromancer book' backpack and not gumpexists 622436516 yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' wait 500 endwhile endif if EnableNecroPoisonStrike = 2 if "[2" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 3 if "[2" in targetLabel or "[3" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 4 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 5 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 6 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 7 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 8 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel or "[8" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 9 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel or "[8" in targetLabel or "[9" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif endif getlabel backpack packdesc endif endif else if timer CorpseSkinDiseaseTimer > CorpseSkinPoisonStrikeDelay and EnableNecroPoisonStrike = 1 and EnableNecroCorpseSkin = 1 @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif endif getlabel backpack packdesc if CastPoisonStrike = 1 if findtype 'necromancer book' backpack and not gumpexists 622436516 while not gumpexists 622436516 yell '[necromancyhotbar' endwhile endif @setvar! PoisonStrikeAvailable 0 if gumpexists 622436516 if ingump "12/|13/|14/|15/|16/|17/|18/|19/|20/|21/|11/|10/|9/|8/|7/|6/|5/|4/|3/|2/" 622436516 @setvar! PoisonStrikeAvailable 1 elseif ingump "1/" 622436516 @setvar! PoisonStrikeAvailable 1 elseif ingump "0/" 622436516 if ingump "10/" 622436516 @setvar! PoisonStrikeAvailable 1 else @setvar! PoisonStrikeAvailable 0 endif endif endif if CastPoisonStrike = 1 and PoisonStrikeAvailable = 1 and timer PoisonStrikeTimer > 30000 and skill 'necromancy' >= 55 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange clearsysmsg while not insysmsg "unholy symbols remaining" if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif yell '[PoisonStrike' wft 1500 clearsysmsg target ClosestTarget wait 250 if insysmsg "seconds before you may use that ability again." settimer PoisonStrikeTimer 28000 clearsysmsg break elseif insysmsg "You do not have a Spell-based poison or disease effect on that target." settimer PoisonStrikeTimer 15000 clearsysmsg break else break endif endwhile if insysmsg "unholy symbols remaining" if EnableOverheadMessages = 1 overhead '[ POISON STRIKE! ]' 77 endif @setvar! PoisonStrikeAvailable 0 settimer PoisonStrikeTimer 0 cooldown "Poison Strike" 30000 @setvar! CastPoisonStrike 0 settimer NecroCooldownTimer 0 endif endif endif if EnableCastPoison = 1 and RepeatCastingPoison = 1 and diffhits < CastGreaterHealHPdiff and mana >= 9 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3976 self cast 'Poison' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 2500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif endwhile if CastingWasInterrupted = 1 and EnableNecroMindRot = 1 and MindRotAvailable = 1 and timer MindRotTimer > 30000 and skill 'necromancy' >= 75 while not insysmsg "unholy symbols remaining" yell '[MindRot' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer MindRotTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ MIND ROT ]' 330 endif settimer MindRotTimer 0 cooldown "Mind Rot" 30000 endif @setvar! CastingWasInterrupted 0 endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "cannot be seen" break endif endif endif endif if EnableMeditation = 1 and mana < MeditateWhenManaBelow and not findbuff "meditating" and timer 'MeditationTimer' > 10000 skill 'meditation' getlabel backpack packdesc wait 250 if not findbuff 'meditating' settimer 'MeditationTimer' 7500 elseif findbuff 'meditating' hotkey 'Toggle Peace Only' settimer 'MeditationTimer' 0 while mana < maxmana and diffhits < CastGreaterHealHPdiff if not findbuff 'meditating' hotkey 'Toggle War Only' break endif if mana > MeditateUntilManaReaches hotkey 'Toggle War Only' break endif if warmode on break endif if diffhits > CastGreaterHealHPdiff break endif if dead break endif if timer 'MeditationMessageTimer' > 4000 if EnableOverheadMessages = 1 overhead '[ MEDITATING... ]' 11 else overhead "*meditating*" 11 endif settimer 'MeditationMessageTimer' 0 endif endwhile if diffhits > CastGreaterHealHPdiff break endif if dead break endif endif elseif EnableMeditation != 1 and MeditateWhenManaBelow != 0 and mana < MeditateWhenManaBelow if timer MissingRegsTimer > 4000 if EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 420 settimer MissingRegsTimer 0 endif endif endif if EnablePKradar = 1 and TimeToGo != 1 if timer "PKRadarTimer" > 1500 clearsysmsg hotkey 'Next Murderer Player Target' wait 150 if insysmsg "No one matching that was found" settimer "PKRadarTimer" 0 clearsysmsg else if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 @setvar! MurdererTarget lasttarget replay endif endif endif if EnableTrackingAutoRecall = 1 and TimeToGo != 1 if PKTrackingRange = 60 if insysmsg ": 60 step" or insysmsg "60 space" or insysmsg ": 59 step" or insysmsg "59 space" or insysmsg ": 58 step" or insysmsg "58 space" or insysmsg ": 57 step" or insysmsg "57 space" or insysmsg ": 56 step" or insysmsg "56 space" or insysmsg ": 55 step" or insysmsg "55 space" or insysmsg ": 54 step" or insysmsg "54 space" or insysmsg ": 53 step" or insysmsg "53 space" or insysmsg ": 52 step" or insysmsg "52 space" or insysmsg ": 51 step" or insysmsg "51 space" or insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 50 if insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 40 if insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 0 if insysmsg "Now tracking" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif endif endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if EnableStrengthPotion = 1 and diffhits < CastGreaterHealHPdiff if skill 'Alchemy' > 0 and skill 'Alchemy' < 2 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif elseif skill 'Alchemy' = 0 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif else if not findbuff "Strength" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif endif endif endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if EnableAgilityPotion = 1 and not findbuff "Agility" and diffhits < CastGreaterHealHPdiff if findtype "Blue Potion" self dclicktype "Blue Potion" if EnableOverheadMessages = 1 and timer BluePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE AGILITY POTION ]' 93 else overhead '[ AGILITY POTION ]' 93 endif clearsysmsg settimer BluePotionMessageTimer 0 endif wait 250 else if timer BluePotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO AGILITY POTS! ]' 337 settimer BluePotionMessageTimer 0 endif endif endif if EnableMagicResistPotion = 1 and not findbuff "Magic Resist" and diffhits < CastGreaterHealHPdiff if findtype "Black Potion" self dclicktype "Black Potion" if EnableOverheadMessages = 1 and timer BlackPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE RESIST POTION ]' 1109 else overhead '[ RESIST POTION ]' 1109 endif clearsysmsg settimer BlackPotionMessageTimer 0 endif wait 250 else if timer BlackPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO RESIST POTS! ]' 337 settimer BlackPotionMessageTimer 0 endif endif endif if EnableRefreshPotion = 1 and diffstam > RefreshPotionSPdiff if findtype "Red Potion" self dclicktype "Red Potion" if EnableOverheadMessages = 1 and timer RedPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE REFRESH POTION ]' 37 else overhead '[ REFRESH POTION ]' 37 endif clearsysmsg settimer RedPotionMessageTimer 0 endif wait 250 else if timer RedPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO REFRESH POTS! ]' 337 settimer RedPotionMessageTimer 0 endif endif endif @setvar! SpellcastCooldown 0 @setvar! CastingWasInterrupted 0 if EnableCastFlamestrike = 1 and mana >= CastMediumSpellsBelowMana and findtype 3981 self and findtype 3980 self and timer FlamestrikeCooldownTimer > FlamestrikeCooldown cast 'flamestrike' settimer FlamestrikeCooldownTimer 0 settimer spellTimer 0 @setvar! SpellcastCooldown 1400 else break endif settimer AntiStallTimer 0 while not targetexists if targetexists break endif if diffhits >= CastGreaterHealHPdiff interrupt @setvar! AttackModeActive 1 @setvar! CastingWasInterrupted 1 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if EnablePanaceaPotion = 1 and skill 'Alchemy' >= 80 and RedTargetFound != 1 if findbuff "Bleed" or findbuff "Diseased" if not findbuff "panacea potion cooldown" if findtype "Orange Potion" self dclicktype "Orange Potion" wait 500 if findbuff "panacea potion cooldown" and EnableOverheadMessages = 1 overhead '[ PANACEA ACTIVATED ]' 55 cooldown "Panacea Potion" 30000 endif endif endif endif endif if EnableCleansingBrews = 1 if findbuff "Diseased" or findbuff "Bleed" if timer CleansingBrewTimer > 120000 if findtype 50675 self 2935 as CleansingBrew dclick CleansingBrew if EnableOverheadMessages = 1 overhead '[ CLEANSING BREW ]' 2117 endif cooldown 'Cleansing Brew' 120000 settimer CleansingBrewTimer 0 wait 250 else if timer CleansingBrewOverhead > 15000 overhead "[ NO CLEANSING BREWS! ]" 337 settimer CleansingBrewOverhead 0 settimer CleansingBrewTimer 0 endif endif else if EnableOverheadMessages = 1 and timer CleansingBrewOverhead > 15000 overhead '[ BREW ON COOLDOWN! ]' 37 settimer CleansingBrewOverhead 0 endif endif endif endif if EnableCurePotion = 1 while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff and casting and not targetexists if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if timer AntiStallTimer > 3500 settimer AntiStallTimer 0 break endif endwhile if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack backpacklabel wait 100 if insysmsg "cannot be seen" @setvar! AttackModeActive 2 break endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if EnableFrostAspect = 1 if insysmsg "Frost Shell activated" cooldown "Frost Shell Active" 5000 if EnableOverheadMessages = 1 overhead '[ FROST SHELL! ]' 2234 endif if FrostAspectTier = 0 cooldown "Frost Shell Cooldown" 30000 elseif FrostAspectTier = 1 cooldown "Frost Shell Cooldown" 29000 elseif FrostAspectTier = 2 cooldown "Frost Shell Cooldown" 28000 elseif FrostAspectTier = 3 cooldown "Frost Shell Cooldown" 27000 elseif FrostAspectTier = 4 cooldown "Frost Shell Cooldown" 26000 elseif FrostAspectTier = 5 cooldown "Frost Shell Cooldown" 25000 elseif FrostAspectTier = 6 cooldown "Frost Shell Cooldown" 24000 elseif FrostAspectTier = 7 cooldown "Frost Shell Cooldown" 23000 elseif FrostAspectTier = 8 cooldown "Frost Shell Cooldown" 22000 elseif FrostAspectTier = 9 cooldown "Frost Shell Cooldown" 21000 elseif FrostAspectTier = 10 cooldown "Frost Shell Cooldown" 20000 elseif FrostAspectTier = 11 cooldown "Frost Shell Cooldown" 19000 elseif FrostAspectTier = 12 cooldown "Frost Shell Cooldown" 18000 elseif FrostAspectTier = 13 cooldown "Frost Shell Cooldown" 17000 elseif FrostAspectTier = 14 cooldown "Frost Shell Cooldown" 16000 elseif FrostAspectTier = 15 cooldown "Frost Shell Cooldown" 15000 endif clearsysmsg endif endif if dead break endif if EnableUsePotionKegs = 1 and findtype 'empty bottle%s%' self and findtype 'keg' self and timer 'PotionKegPVPCooldown' > 30000 @setvar! PotionStockCheck 0 while PotionStockCheck < 8 and findtype 'empty bottle%s%' self if PotionStockCheck = 0 if HealingPotionAmount = 0 @setvar! PotionStockCheck 1 else @setvar! PotionType 3852 @setvar! KegColour 253 @setvar! PotionAmounttoFill HealingPotionAmount @setvar! PotionStockCheck 1 endif elseif PotionStockCheck = 1 if CurePotionAmount = 0 @setvar! PotionStockCheck 2 else @setvar! PotionType 3847 @setvar! KegColour 44 @setvar! PotionAmounttoFill CurePotionAmount @setvar! PotionStockCheck 2 endif elseif PotionStockCheck = 2 if RefreshPotionAmount = 0 @setvar! PotionStockCheck 3 else @setvar! PotionType 3851 @setvar! KegColour 37 @setvar! PotionAmounttoFill RefreshPotionAmount @setvar! PotionStockCheck 3 endif elseif PotionStockCheck = 3 if StrengthPotionAmount = 0 @setvar! PotionStockCheck 4 else @setvar! PotionType 3849 @setvar! KegColour 956 @setvar! PotionAmounttoFill StrengthPotionAmount @setvar! PotionStockCheck 4 endif elseif PotionStockCheck = 4 if AgilityPotionAmount = 0 @setvar! PotionStockCheck 5 else @setvar! PotionType 3848 @setvar! KegColour 93 @setvar! PotionAmounttoFill AgilityPotionAmount @setvar! PotionStockCheck 5 endif elseif PotionStockCheck = 5 if ResistPotionAmount = 0 @setvar! PotionStockCheck 6 else @setvar! PotionType 3846 @setvar! KegColour 1109 @setvar! PotionAmounttoFill ResistPotionAmount @setvar! PotionStockCheck 6 endif elseif PotionStockCheck = 6 if PoisonPotionAmount = 0 @setvar! PotionStockCheck 7 else @setvar! PotionType 3850 @setvar! KegColour 363 @setvar! PotionAmounttoFill PoisonPotionAmount @setvar! PotionStockCheck 7 endif elseif PotionStockCheck = 7 if ExplosionPotionAmount = 0 @setvar! PotionStockCheck 8 else @setvar! PotionType 3853 @setvar! KegColour 419 @setvar! PotionAmounttoFill ExplosionPotionAmount @setvar! PotionStockCheck 8 endif else break endif while counttype PotionType self < PotionAmounttoFill if not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif if diffhits > HealPotionHPdiff break endif if findtype 'keg' self KegColour as myKeg dclick myKeg wait 250 if EnableOverheadMessages = 1 if timer 'PotionKegTimer' > 2000 overhead '[ FILLING POTS... ]' KegColour settimer 'PotionKegTimer' 0 endif endif else if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO KEG TO USE... ]' KegColour settimer 'PotionKegTimer' 0 endif break endif if insysmsg "You have been in combat with another player" settimer "PotionKegPVPCooldown" 0 break endif endwhile if counttype PotionType self < PotionAmounttoFill and not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif endwhile endif if EnableAutoExplosionPots = 1 and diffhits < CastGreaterHealHPdiff if findtype 'purple potion' self as explotPot getlabel explotPot potLabel if "(" in potLabel if timer PurplePotionTimer > PurplePotionCooldown @setvar! PurplePotionReady 1 else @setvar! PurplePotionReady 0 endif else @setvar! PurplePotionReady 1 endif if skill 'Alchemy' < 80 if timer TelekinesisTimer > 60000 or ClosestTargetisSticky = 0 if PurplePotionReady = 1 and find ClosestTarget ground -1 -1 TargetAttackRange and not dead ClosestTarget if findtype 'purple potion' self settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if timer AntiStallTimer > 1500 break endif cast 'Telekinesis' wait 500 endwhile clearsysmsg wft 500 target ClosestTarget wait 250 if insysmsg "You are too far" @setvar! ClosestTargetisSticky 0 clearsysmsg else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 4500 overhead '[ EXPLOSION POTION! ]' 419 settimer PurplePotionMessageTimer 0 endif settimer TelekinesisTimer 0 @setvar! ClosestTargetisSticky 1 endif endif endif endif else @setvar! ClosestTargetisSticky 1 endif else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 15000 overhead '[ NO PURPLE POTIONS ]' 337 settimer PurplePotionMessageTimer 0 endif endif endif @setvar! CastingWasInterrupted 0 if targetexists hotkey 'cancel current target' endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 settimer TargetChecker 0 break endif if EnableAutoExplosionPots = 1 if timer TelekinesisTimer > 60000 @setvar! ClosestTargetisSticky 0 settimer TelekinesisTimer 0 endif endif if PurplePotionReady = 1 and ClosestTargetisSticky = 1 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and diffhits < CastGreaterHealHPdiff settimer AntiStallTimer 0 while not insysmsg "Where should i throw this potion?" and timer AntiStallTimer < 1500 potion 'explosion' if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile @setvar! PurplePotionReady 0 settimer PurplePotionTimer 0 settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! CastingWasInterrupted 1 @setvar! TargetSwap 0 hotkey 'cancel current target' break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 target ClosestTarget cooldown "Purple Potion" PurplePotionCooldown getlabel backpack packdesc wait 250 endif endif if counttype 29012 self = 0 and EnableMagicMushroomMaker = 1 while counttype 29012 self < MakeMushroomAmount and mana > 3 and diffhits < CastGreaterHealHPdiff if timer 'MushroomMakerTimer' > 4500 overhead '[ MAKING SHROOMS... ]' 419 settimer 'MushroomMakerTimer' 0 endif if not casting cast 'create food' wait 500 endif if diffhits > CastGreaterHealHPdiff break endif endwhile if dead break endif endif if EnableGoldVacuum = 1 and DisableVacuums != 1 if findtype "gold coin" ground -1 -1 15 as droppedmoney and timer "GoldRadar" > 3500 overhead " � " 149 droppedmoney settimer "GoldRadar" 0 endif while findtype "gold coin" ground -1 -1 2 as droppedmoney and diffhits < CastGreaterHealHPdiff overhead " � " 149 hotkey "Grab Item" wft 2500 target droppedmoney wait 250 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif if insysmsg "Invalid or inaccessible item" wait 500 @ignore droppedmoney endif wait 250 endwhile endif if EnableDungeonCleanup = 1 and diffhits < CastGreaterHealHPdiff while findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 2 as item if EnableOverheadMessages = 1 if timer "DungeonCleanup" > 1500 overhead '[ CLEANUP... ]' 420 settimer "DungeonCleanup" 0 endif else if timer "DungeonCleanup" > 1500 overhead ' � ' 420 settimer "DungeonCleanup" 0 endif endif hotkey "Grab Item" wft 1000 target item wait 500 if dead break endif if diffhits > CastGreaterHealHPdiff break endif endwhile if findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 15 as dungeonjunk and timer "DungeonCleanupRadar" > 3500 overhead "�" 420 dungeonjunk settimer "DungeonCleanupRadar" 0 endif endif if EnableAutoCarving = 1 and findtype 11552 self while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody wait 250 endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if EnableArcaneCodexStances != 0 or EnableArcaneCodexFinisher != 0 if skill 'Arcane' >= 80 if findtype "arcane codex" backpack as MyCodex if not gumpexists 2016719803 and EnableArcaneCodexHotbar = 1 while not gumpexists 1066647553 say "[CodexHotBar" wait 500 if gumpexists 2016719803 break endif endwhile endif if EnableArcaneCodexStances = 6 if not warmode @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 1 elseif cooldown "Frost Shell" or poisoned or findbuff "bleed" or findbuff "disease" or diffhits > 70 @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 1 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif warmode @setvar! SwitchToLeechStance 1 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 endif elseif EnableArcaneCodexStances = 1 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 1 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 2 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 1 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 3 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 1 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 4 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 1 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 5 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 1 endif getlabel MyCodex MyCodexDesc if EnableArcaneCodexStances = 6 or EnableArcaneCodexFinisher = 3 if timer "WeaponCodexTimer" > SwitchArcaneCodexCooldown and diffhits < CastGreaterHealHPdiff if SwitchToLeechStance = 1 if "Leech" in MyCodexDesc // Do nothing else yell [ArcaneStance1 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToShieldStance = 1 if "Shield" in MyCodexDesc // Do nothing else yell [ArcaneStance2 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 or EnableArcaneCodexFinisher = 3 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToScatterStance = 1 if "Scatter" in MyCodexDesc // Do nothing else yell [ArcaneStance3 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToFractureStance = 1 if "Fracture" in MyCodexDesc // Do nothing else yell [ArcaneStance4 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 or EnableArcaneCodexFinisher = 3 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToSurgeStance = 1 if "Surge" in MyCodexDesc // Do nothing else yell [ArcaneStance5 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif endif endif elseif EnableArcaneCodexStances != 6 and EnableArcaneCodexStances != 0 and EnableArcaneCodexFinisher != 3 if EnableArcaneCodexFinisher != 0 and timer "WeaponCodexCheckTimer" > 2000 and mana > 50 and diffhits < CastGreaterHealHPdiff if SwitchToLeechStance = 1 if "Leech" in MyCodexDesc // Do nothing else yell [ArcaneStance1 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToShieldStance = 1 if "Shield" in MyCodexDesc // Do nothing else yell [ArcaneStance2 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 or EnableArcaneCodexFinisher = 3 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToScatterStance = 1 if "Scatter" in MyCodexDesc // Do nothing else yell [ArcaneStance3 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToFractureStance = 1 if "Fracture" in MyCodexDesc // Do nothing else yell [ArcaneStance4 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 or EnableArcaneCodexFinisher = 3 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToSurgeStance = 1 if "Surge" in MyCodexDesc // Do nothing else yell [ArcaneStance5 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif endif endif endif endif endif endif if EnableShieldCodexStances != 0 or EnableShieldCodexFinisher != 0 if skill "Parrying" >= 80 and findtype "shield codex" backpack as ShieldCodex if not gumpexists 2016719803 and EnableShieldCodexHotbar = 1 while not gumpexists 1066647553 say "[CodexHotBar" wait 500 if gumpexists 2016719803 break endif endwhile endif if EnableShieldCodexStances = 6 if not warmode @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 1 elseif cooldown "Frost Shell" or findbuff "bleed" or findbuff "disease" or poisoned or diffhits > 70 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 1 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif warmode @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 1 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 endif elseif EnableShieldCodexStances = 1 @setvar! SwitchToShieldBashStance 1 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 2 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 2 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 3 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 1 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 4 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 1 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 5 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 1 endif getlabel ShieldCodex ShieldCodexDesc if EnableShieldCodexStances = 6 or EnableShieldCodexFinisher = 3 if timer "ShieldCodexTimer" > SwitchShieldCodexCooldown and diffhits < CastGreaterHealHPdiff if SwitchToWardingStance = 1 if "Warding" in ShieldCodexDesc // Do nothing else yell [ShieldsStance2 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 if EnableShieldCodexFinisher = 2 or EnableShieldCodexFinisher = 3 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 and DisableShieldFinisher != 1 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToMirrorStance = 1 if "Mirror" in ShieldCodexDesc // Do nothing else yell [ShieldsStance4 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToBulwarkStance = 1 if "Bulwark" in ShieldCodexDesc // Do nothing else yell [ShieldsStance5 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToTestudoStance = 1 if "Testudo" in ShieldCodexDesc // Do nothing else yell [ShieldsStance3 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToShieldBashStance = 1 if "Shield Bash" in ShieldCodexDesc // Do nothing else yell [ShieldsStance1 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 2 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif endif endif elseif EnableShieldCodexStances != 6 and EnableShieldCodexFinisher != 3 if timer "ShieldCodexCheckTimer" > 2000 if SwitchToWardingStance = 1 if "Warding" in ShieldCodexDesc // Do nothing else yell [ShieldsStance2 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 if EnableShieldCodexFinisher = 2 or EnableShieldCodexFinisher = 3 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 and DisableShieldFinisher != 1 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToMirrorStance = 1 if "Mirror" in ShieldCodexDesc // Do nothing else yell [ShieldsStance4 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToBulwarkStance = 1 if "Bulwark" in ShieldCodexDesc // Do nothing else yell [ShieldsStance5 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToTestudoStance = 1 if "Testudo" in ShieldCodexDesc // Do nothing else yell [ShieldsStance3 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToShieldBashStance = 1 if "Shield Bash" in ShieldCodexDesc // Do nothing else yell [ShieldsStance1 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif endif endif endif endif endif if not warmode if EnablePlaceArcaneRunes != 0 and timer ArcaneRuneTimer > ArcaneRunePlacementCooldown if findtype '39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|39917|39918' self if EnablePlaceArcaneRunes = 1 # Aggression Rune if findtype '39892' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ AGGRESSION RUNE PLACED ]' 2117 endif else if EnableOverheadMessages = 1 overhead '[ NO AGGRESSION RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 2 # Essence Rune if findtype '39909' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ ESSENCE RUNE PLACED ]' 2916 endif else if EnableOverheadMessages = 1 overhead '[ NO ESSENCE RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 3 # Fortification Rune if findtype '39918' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ FORTIFICATION RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO FORTIFICATION RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 4 # Frenzy Rune if findtype '39889' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ FRENZY RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO FRENZY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 5 # Healing Rune if findtype '39896' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ HEALING RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO HEALING RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 6 # Immunity Rune if findtype '39898' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ IMMUNITY RUNE PLACED ]' 2897 endif else if EnableOverheadMessages = 1 overhead '[ NO IMMUNITY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 7 # Mana Rune if findtype '39912' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ MANA RUNE PLACED ]' 2606 endif else if EnableOverheadMessages = 1 overhead '[ NO MANA RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 8 # Poison Warding Rune if findtype '39905' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ POISON WARD RUNE PLACED ]' 2384 endif else if EnableOverheadMessages = 1 overhead '[ NO POISON WARD RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 9 # Rage Rune if findtype '39897' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ RAGE RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO RAGE RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 10 # Spellshielding Rune if findtype '39916' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ SPELLSHIELD RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO SPELLSHIELD RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 11 # Spell Rune if findtype '39891' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ SPELL RUNE PLACED ]' 2606 endif else if EnableOverheadMessages = 1 overhead '[ NO SPELL RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 12 # Toxicity Rune if findtype '39911' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ TOXICITY RUNE PLACED ]' 2384 endif else if EnableOverheadMessages = 1 overhead '[ NO TOXICITY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 13 # Trap Rune if findtype '39917' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ TRAP RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO TRAP RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 14 # Random Rune if findtype '39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|39917|39918' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ ARCANE RUNE PLACED ]' 13 endif else if EnableOverheadMessages = 1 overhead '[ NO ARCANE RUNES! ]' 337 endif endif endif else if EnableOverheadMessages = 1 overhead '[ NO ARCANE RUNES! ]' 337 endif endif settimer ArcaneRuneTimer 0 hotkey 'Toggle War Only' wait 500 endif endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if EnableOverheadMessages = 1 if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ CHAIN LINK UNLOCKED!! ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ ASPECT TIER UNLOCKED!! ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead "[ CODEX POINT UNLOCKED! ]" 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY JOB COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY POINTS � ]" 419 endif if insysmsg 'You charge your spell with additional energy' overhead '[ CHARGED SPELL! ]' 22 endif if insysmsg 'You generate mana for your spell' overhead '[ MANA REFUNDED! ]' 11 endif if insysmsg "You parry the spell" overhead "[ SPELL PARRY ]" 111 endif if insysmsg "You enter a state of arcane clarity" overhead '[ CLARITY! ]' 11 endif if insysmsg "Your attack places a hex" overhead '[ HEX ACTIVE ]' 14 ClosestTarget endif if insysmsg "100% arcane buildup" overhead '[ ARCANE BUILDUP 100%! ]' 2114 endif if insysmsg "causes you to bleed" overhead "[ YOU ARE BLEEDING... ]" 2118 endif if insysmsg "been struck by an ancient blight" overhead "[ DISEASED... ]" 1109 endif if insysmsg "You feel chilled!" overhead "[ YOU ARE CHILLED... ]" 2234 endif if insysmsg "You resist a disease effect" overhead "[ DISEASE RESISTED! ]" 888 endif if insysmsg "resist a bleed" overhead "[ BLEED RESISTED! ]" 888 endif if insysmsg "The creature pierces and bypasses your armor!" overhead "[ YOU ARE PIERCED... ]" 337 endif if insysmsg "Their attack disarms you!" overhead "[ DISARMED! ]" 337 endif if insysmsg "Their attack hamstrings you!" overhead "[ HAMSTRUNG! ]" 337 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif else if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ � CHAIN! � ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ � ASPECT � ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead '[ � CODEX! � ]' 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You parry the spell" overhead "*spell parry*" 111 endif if insysmsg "Your attack places a hex" overhead '*hexxed*' 14 ClosestTarget endif if insysmsg "100% arcane buildup" overhead '[ ARCANE 100%! ]' 2114 endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY � ]" 419 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif if insysmsg "Their attack disarms you!" overhead "*disarmed*" 337 endif if insysmsg "Their attack hamstrings you!" overhead "*hamstrung*" 337 endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if dead break endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange settimer TargetChecker 0 @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if diffhits > CastGreaterHealHPdiff or paralyzed break endif endwhile //////////////////////////// // END FLAMESTRIKE LOOP // //////////////////////////// if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif /////////////////////////// // MEDIUM ATTACK LOOP: // /////////////////////////// while mana <= CastMediumSpellsBelowMana and mana >= CastSmallSpellsBelowMana and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and TargetSwap != 1 and diffhits < CastGreaterHealHPdiff if dead break endif if EnableDropGoldWhenOverweight = 1 if weight > maxweight replay endif endif if EnableWeightWarningMessage = 1 if diffweight < GreenWarningDiffWeight and diffweight > YellowWarningDiffWeight and timer "WeightMessageTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING... ]' 77 settimer "WeightMessageTimer" 0 else overhead " � " 77 settimer "WeightMessageTimer" 0 endif elseif diffweight < YellowWarningDiffWeight and diffweight > RedWeightLimitDiffWeight and timer "WeightMessageTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING! ]' 153 settimer "WeightMessageTimer" 0 else overhead " � " 153 settimer "WeightMessageTimer" 0 endif elseif diffweight < RedWeightLimitDiffWeight if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "WeightMessageTimer" > 6000 overhead '[ WEIGHT LIMIT REACHED! ]' 37 settimer "WeightMessageTimer" 0 endif else if timer "WeightMessageTimer" > 6000 overhead " � " 37 settimer "WeightMessageTimer" 0 endif endif if EnableAutoWeightRecall = 1 and not find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! AutoWeightRecall 1 replay elseif EnableAutoWeightRecall = 1 and find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 if timer "WaitingToRecallTimer" > 3500 and EnableAutoRecallOverheadMessages = 1 overhead '[ WAITING TO RECALL... ]' 149 settimer "WaitingToRecallTimer" 0 endif wait 500 elseif EnableAutoWeightDungeonGate = 1 and DUNGEONMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 replay else if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ OVERWEIGHT! ]' 337 else overhead " � " 337 endif wait 1500 overhead '[ STOPPING SCRIPT! ]' 88 stop endif endif endif if diffhits > CastGreaterHealHPdiff or paralyzed break endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if TargetSwap = 1 @setvar! AttackModeActive 2 break endif if mana > CastMediumSpellsBelowMana break endif if timer "TargetTimer" > 3500 and find ClosestTarget ground -1 -1 TargetAttackRange getlabel ClosestTarget TargetDesc if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ PARAGON! ]' 12 ClosestTarget overhead " � " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ TARGET ]' 253 ClosestTarget overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif else if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead " ��� " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif endif endif if EnableWeaponCheck = 1 and skill 'Arcane' >= 50 and not findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" hand if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff for 5 if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff getlabel myArcaneStaff myArcaneStafflabel if "Aspect" in myArcaneStafflabel break elseif "unidentified" in myArcaneStafflabel ignore myArcaneStaff else break endif endif endfor dclick myArcaneStaff clearignore wait 500 else if timer "ArcaneStaffCheck" > 5000 and EnableOverheadMessages = 1 overhead "[ NO ARCANE STAFF! ]" 337 settimer "ArcaneStaffCheck" 0 endif endif endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange settimer TargetChecker 0 @setvar! TargetSwap 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! AttackModeActive 0 break endif if CheckClosestTargetTime != 0 if timer TargetChecker > CheckClosestTargetTime @setvar! TargetSwap 0 hotkey "Target Closest Grey Monster" getlabel backpack backpacklabel @setvar! TargetToCheck lasttarget wait 250 if TargetToCheck != ClosestTarget settimer TargetChecker 0 @setvar! TargetToAnalyze lasttarget @setvar! ClosestTargetisSticky 0 @setvar! AttackModeActive 2 @setvar! TargetSwap 1 break endif settimer TargetChecker 0 endif endif if skill "Arcane" >= 80 and EnableArcaneWeaponAbility != 0 and diffhits < CastGreaterHealHPdiff if EnableArcaneCodexAbilityHotbar = 1 if not gumpexists 3954121934 yell '[abilitieshotbar' wait 500 endif endif if timer ArcaneWeaponAbilityTimer > 60000 if EnableArcaneWeaponAbility = 1 say "[Weaponability1" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ SEEKING ABILITY! ]" 2114 endif cooldown "Seeking Active" 15000 cooldown "Weapon Ability" 60000 endif elseif EnableArcaneWeaponAbility = 2 and diffmana > 25 say "[Weaponability2" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ LEYLINE ABILITY! ]" 420 endif cooldown "Leyline Active" 15000 cooldown "Weapon Ability" 60000 endif elseif EnableArcaneWeaponAbility = 3 say "[Weaponability3" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ SOULFIRE ABILITY! ]" 2116 endif cooldown "Weapon Ability" 60000 endif endif endif endif if mana < LowManaWarningAmount and timer ManaOverheadTimer > 4500 and LowManaWarningAmount != 0 overhead "[ LOW MANA! ]" 34 settimer ManaOverheadTimer 0 endif if EnableNecroStrangle = 1 or EnableNecroCorpseSkin = 1 or EnableNecroMindRot = 1 or EnableNecroEvilOmen = 1 or EnableNecroPainSpike = 1 if findtype 'necromancer book' backpack yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' endwhile endif endif if gumpexists 622436516 if ingump "12/|13/|14/|15/|16/|17/|18/|19/|20/|21/|11/|10/|9/|8/|7/|6/|5/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 elseif ingump "4/" 622436516 if ingump "14/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "3/" 622436516 if ingump "13/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "2/" 622436516 if ingump "12/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "1/" 622436516 if ingump "11/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 0 @setvar! EvilOmenAvailable 0 @setvar! PainSpikeAvailable 0 endif elseif ingump "0/" 622436516 if ingump "10/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 0 @setvar! EvilOmenAvailable 0 @setvar! PainSpikeAvailable 0 endif endif endif if EnableNecroStrangle = 1 and StrangleAvailable = 1 and timer StrangleTimer > 30000 and skill 'necromancy' >= 85 and mana >= 50 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[Strangle' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer StrangleTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ STRANGLE ]' 334 endif settimer StrangleTimer 0 cooldown "Strangle" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroCorpseSkin = 1 and CorpseSkinAvailable = 1 and timer CorpseSkinTimer > 30000 and skill 'necromancy' >= 65 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[CorpseSkin' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer CorpseSkinTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ CORPSE SKIN ]' 40 endif settimer CorpseSkinTimer 0 cooldown "Corpse Skin" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroMindRot = 1 and MindRotAvailable = 1 and timer MindRotTimer > 30000 and skill 'necromancy' >= 75 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[MindRot' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer MindRotTimer 28000 break else break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ MIND ROT ]' 223 endif settimer MindRotTimer 0 cooldown "Mind Rot" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroEvilOmen = 1 and EvilOmenAvailable = 1 and timer EvilOmenTimer > 30000 and skill 'necromancy' >= 60 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[EvilOmen' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer EvilOmenTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ EVIL OMEN ]' 238 endif settimer EvilOmenTimer 0 cooldown "Evil Omen" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroPainSpike = 1 and PainSpikeAvailable = 1 and timer 'PainSpikeTimer' > 30000 and skill 'necromancy' >= 95 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 4 and findtype 8198 ground -1 -1 2 as corpsespike and timer 'PainSpikeDelayTimer' > PainSpikeAttackDelay and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg yell "[PainSpike" wft 1000 target ClosestTarget getlabel backpack backpacklabel wft 250 if insysmsg "You do not see any corpses" or insysmsg "seconds before you may use that ability again." settimer PainSpikeTimer 25000 @setvar! CastingWasInterrupted 1 endif if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ PAIN SPIKE! ]' 337 endif settimer PainSpikeTimer 0 cooldown "Pain Spike" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroPoisonStrike != 0 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and diffhits < CastGreaterHealHPdiff and timer NecroCooldownTimer > 1000 getlabel ClosestTarget targetLabel if "-" in targetLabel getlabel ClosestTarget targetLabel endif @setvar! CastPoisonStrike 0 if EnableCastPoison = 1 if "Ticks" in targetLabel or "resists" in targetLabel and EnableCastPoison = 1 @setvar! RepeatCastingPoison 1 if SetPoisonLevel = 2 if "Lethal" in targetLabel @setvar! RepeatCastingPoison 0 endif elseif SetPoisonLevel = 1 if "Lethal" in targetLabel or "Deadly" in targetLabel @setvar! RepeatCastingPoison 0 endif else @setvar! RepeatCastingPoison 0 endif if EnableNecroPoisonStrike != 0 if findtype 'necromancer book' backpack and not gumpexists 622436516 yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' wait 500 endwhile endif if EnableNecroPoisonStrike = 2 if "[2" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 3 if "[2" in targetLabel or "[3" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 4 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 5 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 6 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 7 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 8 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel or "[8" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 9 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel or "[8" in targetLabel or "[9" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif endif getlabel backpack packdesc endif endif else if timer CorpseSkinDiseaseTimer > CorpseSkinPoisonStrikeDelay and EnableNecroPoisonStrike = 1 and EnableNecroCorpseSkin = 1 @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif endif getlabel backpack packdesc if CastPoisonStrike = 1 if findtype 'necromancer book' backpack and not gumpexists 622436516 while not gumpexists 622436516 yell '[necromancyhotbar' endwhile endif @setvar! PoisonStrikeAvailable 0 if gumpexists 622436516 if ingump "12/|13/|14/|15/|16/|17/|18/|19/|20/|21/|11/|10/|9/|8/|7/|6/|5/|4/|3/|2/" 622436516 @setvar! PoisonStrikeAvailable 1 elseif ingump "1/" 622436516 @setvar! PoisonStrikeAvailable 1 elseif ingump "0/" 622436516 if ingump "10/" 622436516 @setvar! PoisonStrikeAvailable 1 else @setvar! PoisonStrikeAvailable 0 endif endif endif if CastPoisonStrike = 1 and PoisonStrikeAvailable = 1 and timer PoisonStrikeTimer > 30000 and skill 'necromancy' >= 55 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange clearsysmsg while not insysmsg "unholy symbols remaining" if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif yell '[PoisonStrike' wft 1500 clearsysmsg target ClosestTarget wait 250 if insysmsg "seconds before you may use that ability again." settimer PoisonStrikeTimer 28000 clearsysmsg break elseif insysmsg "You do not have a Spell-based poison or disease effect on that target." settimer PoisonStrikeTimer 15000 clearsysmsg break else break endif endwhile if insysmsg "unholy symbols remaining" if EnableOverheadMessages = 1 overhead '[ POISON STRIKE! ]' 77 endif @setvar! PoisonStrikeAvailable 0 settimer PoisonStrikeTimer 0 cooldown "Poison Strike" 30000 @setvar! CastPoisonStrike 0 settimer NecroCooldownTimer 0 endif endif endif if EnableCastPoison = 1 and RepeatCastingPoison = 1 and diffhits < CastGreaterHealHPdiff and mana >= 9 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3976 self cast 'Poison' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 2500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif endwhile if CastingWasInterrupted = 1 and EnableNecroMindRot = 1 and MindRotAvailable = 1 and timer MindRotTimer > 30000 and skill 'necromancy' >= 75 while not insysmsg "unholy symbols remaining" yell '[MindRot' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer MindRotTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ MIND ROT ]' 330 endif settimer MindRotTimer 0 cooldown "Mind Rot" 30000 endif @setvar! CastingWasInterrupted 0 endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "cannot be seen" break endif endif endif endif if EnableMeditation = 1 and mana < MeditateWhenManaBelow and not findbuff "meditating" and timer 'MeditationTimer' > 10000 skill 'meditation' getlabel backpack packdesc wait 250 if not findbuff 'meditating' settimer 'MeditationTimer' 7500 elseif findbuff 'meditating' hotkey 'Toggle Peace Only' settimer 'MeditationTimer' 0 while mana < maxmana and diffhits < CastGreaterHealHPdiff if not findbuff 'meditating' hotkey 'Toggle War Only' break endif if mana > MeditateUntilManaReaches hotkey 'Toggle War Only' break endif if warmode on break endif if diffhits > CastGreaterHealHPdiff break endif if dead break endif if timer 'MeditationMessageTimer' > 4000 if EnableOverheadMessages = 1 overhead '[ MEDITATING... ]' 11 else overhead "*meditating*" 11 endif settimer 'MeditationMessageTimer' 0 endif endwhile if diffhits > CastGreaterHealHPdiff break endif if dead break endif endif elseif EnableMeditation != 1 and MeditateWhenManaBelow != 0 and mana < MeditateWhenManaBelow if timer MissingRegsTimer > 4000 if EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 420 settimer MissingRegsTimer 0 endif endif endif if EnablePKradar = 1 and TimeToGo != 1 if timer "PKRadarTimer" > 1500 clearsysmsg hotkey 'Next Murderer Player Target' wait 250 if insysmsg "No one matching that was found" settimer "PKRadarTimer" 0 clearsysmsg else if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 @setvar! MurdererTarget lasttarget replay endif endif endif if EnableTrackingAutoRecall = 1 and TimeToGo != 1 if PKTrackingRange = 60 if insysmsg ": 60 step" or insysmsg "60 space" or insysmsg ": 59 step" or insysmsg "59 space" or insysmsg ": 58 step" or insysmsg "58 space" or insysmsg ": 57 step" or insysmsg "57 space" or insysmsg ": 56 step" or insysmsg "56 space" or insysmsg ": 55 step" or insysmsg "55 space" or insysmsg ": 54 step" or insysmsg "54 space" or insysmsg ": 53 step" or insysmsg "53 space" or insysmsg ": 52 step" or insysmsg "52 space" or insysmsg ": 51 step" or insysmsg "51 space" or insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 50 if insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 40 if insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 0 if insysmsg "Now tracking" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif endif endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if EnableStrengthPotion = 1 and diffhits < CastGreaterHealHPdiff if skill 'Alchemy' > 0 and skill 'Alchemy' < 2 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif elseif skill 'Alchemy' = 0 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif else if not findbuff "Strength" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif endif endif endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if EnableAgilityPotion = 1 and not findbuff "Agility" and diffhits < CastGreaterHealHPdiff if findtype "Blue Potion" self dclicktype "Blue Potion" if EnableOverheadMessages = 1 and timer BluePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE AGILITY POTION ]' 93 else overhead '[ AGILITY POTION ]' 93 endif clearsysmsg settimer BluePotionMessageTimer 0 endif wait 250 else if timer BluePotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO AGILITY POTS! ]' 337 settimer BluePotionMessageTimer 0 endif endif endif if EnableMagicResistPotion = 1 and not findbuff "Magic Resist" and diffhits < CastGreaterHealHPdiff if findtype "Black Potion" self dclicktype "Black Potion" if EnableOverheadMessages = 1 and timer BlackPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE RESIST POTION ]' 1109 else overhead '[ RESIST POTION ]' 1109 endif clearsysmsg settimer BlackPotionMessageTimer 0 endif wait 250 else if timer BlackPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO RESIST POTS! ]' 337 settimer BlackPotionMessageTimer 0 endif endif endif if EnableRefreshPotion = 1 and diffstam > RefreshPotionSPdiff if findtype "Red Potion" self dclicktype "Red Potion" if EnableOverheadMessages = 1 and timer RedPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE REFRESH POTION ]' 37 else overhead '[ REFRESH POTION ]' 37 endif clearsysmsg settimer RedPotionMessageTimer 0 endif wait 250 else if timer RedPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO REFRESH POTS! ]' 337 settimer RedPotionMessageTimer 0 endif endif endif @setvar! SpellcastCooldown 0 @setvar! CastingWasInterrupted 0 if diffhits < CastGreaterHealHPdiff if EnableCastExplosion = 1 and mana >= 20 and findtype 3963 self and findtype 3974 self and timer ExplosionCooldownTimer > ExplosionCooldown cast 'Explosion' settimer ExplosionCooldownTimer 0 settimer EnergyBoltCooldownTimer EnergyBoltCooldown settimer spellTimer 0 @setvar! SpellcastCooldown 1200 elseif EnableCastEnergyBolt = 1 and mana >= 20 and findtype 3962 self and findtype 3976 self and timer EnergyBoltCooldownTimer > EnergyBoltCooldown cast 'energy bolt' settimer EnergyBoltCooldownTimer 0 settimer MindBlastCooldownTimer MindBlastCooldown settimer spellTimer 0 @setvar! SpellcastCooldown 1200 elseif EnableCastMindblast = 1 and mana >= 20 and findtype 3962 self and findtype 3974 self and findtype 3976 self and findtype 3980 self and timer MindBlastCooldownTimer > MindBlastCooldown cast 'mind blast' settimer MindBlastCooldownTimer 0 settimer spellTimer 0 @setvar! SpellcastCooldown 1200 endif settimer AntiStallTimer 0 getlabel backpack backpacklabel while not targetexists if targetexists break endif if diffhits >= CastGreaterHealHPdiff interrupt @setvar! AttackModeActive 1 @setvar! CastingWasInterrupted 1 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if EnablePanaceaPotion = 1 and skill 'Alchemy' >= 80 and RedTargetFound != 1 if findbuff "Bleed" or findbuff "Diseased" if not findbuff "panacea potion cooldown" if findtype "Orange Potion" self dclicktype "Orange Potion" wait 500 if findbuff "panacea potion cooldown" and EnableOverheadMessages = 1 overhead '[ PANACEA ACTIVATED ]' 55 cooldown "Panacea Potion" 30000 endif endif endif endif endif if EnableCleansingBrews = 1 if findbuff "Diseased" or findbuff "Bleed" if timer CleansingBrewTimer > 120000 if findtype 50675 self 2935 as CleansingBrew dclick CleansingBrew if EnableOverheadMessages = 1 overhead '[ CLEANSING BREW ]' 2117 endif cooldown 'Cleansing Brew' 120000 settimer CleansingBrewTimer 0 wait 250 else if timer CleansingBrewOverhead > 15000 overhead "[ NO CLEANSING BREWS! ]" 337 settimer CleansingBrewOverhead 0 settimer CleansingBrewTimer 0 endif endif else if EnableOverheadMessages = 1 and timer CleansingBrewOverhead > 15000 overhead '[ BREW ON COOLDOWN! ]' 37 settimer CleansingBrewOverhead 0 endif endif endif endif if EnableCurePotion = 1 while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff and casting and not targetexists if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if timer AntiStallTimer > 3500 settimer AntiStallTimer 0 break endif endwhile if dead break endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack backpacklabel wait 250 if insysmsg "cannot be seen" @setvar! AttackModeActive 2 break endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif endif if EnableFrostAspect = 1 if insysmsg "Frost Shell activated" cooldown "Frost Shell Active" 5000 if EnableOverheadMessages = 1 overhead '[ FROST SHELL! ]' 2234 endif if FrostAspectTier = 0 cooldown "Frost Shell Cooldown" 30000 elseif FrostAspectTier = 1 cooldown "Frost Shell Cooldown" 29000 elseif FrostAspectTier = 2 cooldown "Frost Shell Cooldown" 28000 elseif FrostAspectTier = 3 cooldown "Frost Shell Cooldown" 27000 elseif FrostAspectTier = 4 cooldown "Frost Shell Cooldown" 26000 elseif FrostAspectTier = 5 cooldown "Frost Shell Cooldown" 25000 elseif FrostAspectTier = 6 cooldown "Frost Shell Cooldown" 24000 elseif FrostAspectTier = 7 cooldown "Frost Shell Cooldown" 23000 elseif FrostAspectTier = 8 cooldown "Frost Shell Cooldown" 22000 elseif FrostAspectTier = 9 cooldown "Frost Shell Cooldown" 21000 elseif FrostAspectTier = 10 cooldown "Frost Shell Cooldown" 20000 elseif FrostAspectTier = 11 cooldown "Frost Shell Cooldown" 19000 elseif FrostAspectTier = 12 cooldown "Frost Shell Cooldown" 18000 elseif FrostAspectTier = 13 cooldown "Frost Shell Cooldown" 17000 elseif FrostAspectTier = 14 cooldown "Frost Shell Cooldown" 16000 elseif FrostAspectTier = 15 cooldown "Frost Shell Cooldown" 15000 endif clearsysmsg endif endif if dead break endif if EnableUsePotionKegs = 1 and findtype 'empty bottle%s%' self and findtype 'keg' self and timer 'PotionKegPVPCooldown' > 30000 @setvar! PotionStockCheck 0 while PotionStockCheck < 8 and findtype 'empty bottle%s%' self if PotionStockCheck = 0 if HealingPotionAmount = 0 @setvar! PotionStockCheck 1 else @setvar! PotionType 3852 @setvar! KegColour 253 @setvar! PotionAmounttoFill HealingPotionAmount @setvar! PotionStockCheck 1 endif elseif PotionStockCheck = 1 if CurePotionAmount = 0 @setvar! PotionStockCheck 2 else @setvar! PotionType 3847 @setvar! KegColour 44 @setvar! PotionAmounttoFill CurePotionAmount @setvar! PotionStockCheck 2 endif elseif PotionStockCheck = 2 if RefreshPotionAmount = 0 @setvar! PotionStockCheck 3 else @setvar! PotionType 3851 @setvar! KegColour 37 @setvar! PotionAmounttoFill RefreshPotionAmount @setvar! PotionStockCheck 3 endif elseif PotionStockCheck = 3 if StrengthPotionAmount = 0 @setvar! PotionStockCheck 4 else @setvar! PotionType 3849 @setvar! KegColour 956 @setvar! PotionAmounttoFill StrengthPotionAmount @setvar! PotionStockCheck 4 endif elseif PotionStockCheck = 4 if AgilityPotionAmount = 0 @setvar! PotionStockCheck 5 else @setvar! PotionType 3848 @setvar! KegColour 93 @setvar! PotionAmounttoFill AgilityPotionAmount @setvar! PotionStockCheck 5 endif elseif PotionStockCheck = 5 if ResistPotionAmount = 0 @setvar! PotionStockCheck 6 else @setvar! PotionType 3846 @setvar! KegColour 1109 @setvar! PotionAmounttoFill ResistPotionAmount @setvar! PotionStockCheck 6 endif elseif PotionStockCheck = 6 if PoisonPotionAmount = 0 @setvar! PotionStockCheck 7 else @setvar! PotionType 3850 @setvar! KegColour 363 @setvar! PotionAmounttoFill PoisonPotionAmount @setvar! PotionStockCheck 7 endif elseif PotionStockCheck = 7 if ExplosionPotionAmount = 0 @setvar! PotionStockCheck 8 else @setvar! PotionType 3853 @setvar! KegColour 419 @setvar! PotionAmounttoFill ExplosionPotionAmount @setvar! PotionStockCheck 8 endif else break endif while counttype PotionType self < PotionAmounttoFill if not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif if diffhits > HealPotionHPdiff break endif if findtype 'keg' self KegColour as myKeg dclick myKeg wait 250 if EnableOverheadMessages = 1 if timer 'PotionKegTimer' > 2000 overhead '[ FILLING POTS... ]' KegColour settimer 'PotionKegTimer' 0 endif endif else if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO KEG TO USE... ]' KegColour settimer 'PotionKegTimer' 0 endif break endif if insysmsg "You have been in combat with another player" settimer "PotionKegPVPCooldown" 0 break endif endwhile if counttype PotionType self < PotionAmounttoFill and not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif endwhile endif if EnableAutoExplosionPots = 1 and diffhits < CastGreaterHealHPdiff if findtype 'purple potion' self as explotPot getlabel explotPot potLabel if "(" in potLabel if timer PurplePotionTimer > PurplePotionCooldown @setvar! PurplePotionReady 1 else @setvar! PurplePotionReady 0 endif else @setvar! PurplePotionReady 1 endif if skill 'Alchemy' < 80 if timer TelekinesisTimer > 60000 or ClosestTargetisSticky = 0 if PurplePotionReady = 1 and find ClosestTarget ground -1 -1 TargetAttackRange and not dead ClosestTarget if findtype 'purple potion' self settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if timer AntiStallTimer > 1500 break endif cast 'Telekinesis' wait 500 endwhile clearsysmsg wft 500 target ClosestTarget wait 250 if insysmsg "You are too far" @setvar! ClosestTargetisSticky 0 clearsysmsg else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 4500 overhead '[ EXPLOSION POTION! ]' 419 settimer PurplePotionMessageTimer 0 endif settimer TelekinesisTimer 0 @setvar! ClosestTargetisSticky 1 endif endif endif endif else @setvar! ClosestTargetisSticky 1 endif else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 15000 overhead '[ NO PURPLE POTIONS ]' 337 settimer PurplePotionMessageTimer 0 endif endif endif @setvar! CastingWasInterrupted 0 if targetexists hotkey 'cancel current target' endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 settimer TargetChecker 0 break endif if EnableAutoExplosionPots = 1 if timer TelekinesisTimer > 60000 @setvar! ClosestTargetisSticky 0 settimer TelekinesisTimer 0 endif endif if PurplePotionReady = 1 and ClosestTargetisSticky = 1 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and diffhits < CastGreaterHealHPdiff settimer AntiStallTimer 0 while not insysmsg "Where should i throw this potion?" and timer AntiStallTimer < 1500 potion 'explosion' if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile @setvar! PurplePotionReady 0 settimer PurplePotionTimer 0 settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! CastingWasInterrupted 1 @setvar! TargetSwap 0 hotkey 'cancel current target' break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 target ClosestTarget cooldown "Purple Potion" PurplePotionCooldown getlabel backpack packdesc wait 250 endif endif if counttype 29012 self = 0 and EnableMagicMushroomMaker = 1 while counttype 29012 self < MakeMushroomAmount and mana > 3 and diffhits < CastGreaterHealHPdiff if timer 'MushroomMakerTimer' > 4500 overhead '[ MAKING SHROOMS... ]' 419 settimer 'MushroomMakerTimer' 0 endif if not casting cast 'create food' wait 500 endif if diffhits > CastGreaterHealHPdiff break endif endwhile if dead break endif endif if EnableGoldVacuum = 1 and DisableVacuums != 1 if findtype "gold coin" ground -1 -1 15 as droppedmoney and timer "GoldRadar" > 3500 overhead " � " 149 droppedmoney settimer "GoldRadar" 0 endif while findtype "gold coin" ground -1 -1 2 as droppedmoney and diffhits < CastGreaterHealHPdiff overhead " � " 149 hotkey "Grab Item" wft 2500 target droppedmoney wait 250 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif if insysmsg "Invalid or inaccessible item" wait 500 @ignore droppedmoney endif wait 250 endwhile endif if EnableDungeonCleanup = 1 and diffhits < CastGreaterHealHPdiff while findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 2 as item if EnableOverheadMessages = 1 if timer "DungeonCleanup" > 1500 overhead '[ CLEANUP... ]' 420 settimer "DungeonCleanup" 0 endif else if timer "DungeonCleanup" > 1500 overhead ' � ' 420 settimer "DungeonCleanup" 0 endif endif hotkey "Grab Item" wft 1000 target item wait 500 if dead break endif if diffhits > CastGreaterHealHPdiff break endif endwhile if findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 15 as dungeonjunk and timer "DungeonCleanupRadar" > 3500 overhead "�" 420 dungeonjunk settimer "DungeonCleanupRadar" 0 endif endif if EnableAutoCarving = 1 and findtype 11552 self while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody wait 250 endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if EnableArcaneCodexStances != 0 or EnableArcaneCodexFinisher != 0 if skill 'Arcane' >= 80 if findtype "arcane codex" backpack as MyCodex if not gumpexists 2016719803 and EnableArcaneCodexHotbar = 1 while not gumpexists 1066647553 say "[CodexHotBar" wait 500 if gumpexists 2016719803 break endif endwhile endif if EnableArcaneCodexStances = 6 if not warmode @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 1 elseif cooldown "Frost Shell" or poisoned or findbuff "bleed" or findbuff "disease" or diffhits > 70 @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 1 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif warmode @setvar! SwitchToLeechStance 1 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 endif elseif EnableArcaneCodexStances = 1 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 1 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 2 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 1 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 3 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 1 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 4 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 1 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 5 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 1 endif getlabel MyCodex MyCodexDesc if EnableArcaneCodexStances = 6 or EnableArcaneCodexFinisher = 3 if timer "WeaponCodexTimer" > SwitchArcaneCodexCooldown and diffhits < CastGreaterHealHPdiff if SwitchToLeechStance = 1 if "Leech" in MyCodexDesc // Do nothing else yell [ArcaneStance1 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToShieldStance = 1 if "Shield" in MyCodexDesc // Do nothing else yell [ArcaneStance2 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 or EnableArcaneCodexFinisher = 3 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToScatterStance = 1 if "Scatter" in MyCodexDesc // Do nothing else yell [ArcaneStance3 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToFractureStance = 1 if "Fracture" in MyCodexDesc // Do nothing else yell [ArcaneStance4 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 or EnableArcaneCodexFinisher = 3 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToSurgeStance = 1 if "Surge" in MyCodexDesc // Do nothing else yell [ArcaneStance5 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif endif endif elseif EnableArcaneCodexStances != 6 and EnableArcaneCodexStances != 0 and EnableArcaneCodexFinisher != 3 if EnableArcaneCodexFinisher != 0 and timer "WeaponCodexCheckTimer" > 2000 and mana > 50 and diffhits < CastGreaterHealHPdiff if SwitchToLeechStance = 1 if "Leech" in MyCodexDesc // Do nothing else yell [ArcaneStance1 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToShieldStance = 1 if "Shield" in MyCodexDesc // Do nothing else yell [ArcaneStance2 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 or EnableArcaneCodexFinisher = 3 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToScatterStance = 1 if "Scatter" in MyCodexDesc // Do nothing else yell [ArcaneStance3 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToFractureStance = 1 if "Fracture" in MyCodexDesc // Do nothing else yell [ArcaneStance4 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 or EnableArcaneCodexFinisher = 3 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToSurgeStance = 1 if "Surge" in MyCodexDesc // Do nothing else yell [ArcaneStance5 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif endif endif endif endif endif endif if EnableShieldCodexStances != 0 or EnableShieldCodexFinisher != 0 if skill "Parrying" >= 80 and findtype "shield codex" backpack as ShieldCodex if not gumpexists 2016719803 and EnableShieldCodexHotbar = 1 while not gumpexists 1066647553 say "[CodexHotBar" wait 500 if gumpexists 2016719803 break endif endwhile endif if EnableShieldCodexStances = 6 if not warmode @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 1 elseif cooldown "Frost Shell" or findbuff "bleed" or findbuff "disease" or poisoned or diffhits > 70 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 1 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif warmode @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 1 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 endif elseif EnableShieldCodexStances = 1 @setvar! SwitchToShieldBashStance 1 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 2 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 2 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 3 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 1 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 4 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 1 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 5 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 1 endif getlabel ShieldCodex ShieldCodexDesc if EnableShieldCodexStances = 6 or EnableShieldCodexFinisher = 3 if timer "ShieldCodexTimer" > SwitchShieldCodexCooldown and diffhits < CastGreaterHealHPdiff if SwitchToWardingStance = 1 if "Warding" in ShieldCodexDesc // Do nothing else yell [ShieldsStance2 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 if EnableShieldCodexFinisher = 2 or EnableShieldCodexFinisher = 3 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 and DisableShieldFinisher != 1 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToMirrorStance = 1 if "Mirror" in ShieldCodexDesc // Do nothing else yell [ShieldsStance4 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToBulwarkStance = 1 if "Bulwark" in ShieldCodexDesc // Do nothing else yell [ShieldsStance5 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToTestudoStance = 1 if "Testudo" in ShieldCodexDesc // Do nothing else yell [ShieldsStance3 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToShieldBashStance = 1 if "Shield Bash" in ShieldCodexDesc // Do nothing else yell [ShieldsStance1 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 2 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif endif endif elseif EnableShieldCodexStances != 6 and EnableShieldCodexFinisher != 3 if timer "ShieldCodexCheckTimer" > 2000 if SwitchToWardingStance = 1 if "Warding" in ShieldCodexDesc // Do nothing else yell [ShieldsStance2 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 if EnableShieldCodexFinisher = 2 or EnableShieldCodexFinisher = 3 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 and DisableShieldFinisher != 1 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToMirrorStance = 1 if "Mirror" in ShieldCodexDesc // Do nothing else yell [ShieldsStance4 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToBulwarkStance = 1 if "Bulwark" in ShieldCodexDesc // Do nothing else yell [ShieldsStance5 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToTestudoStance = 1 if "Testudo" in ShieldCodexDesc // Do nothing else yell [ShieldsStance3 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToShieldBashStance = 1 if "Shield Bash" in ShieldCodexDesc // Do nothing else yell [ShieldsStance1 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif endif endif endif endif endif if not warmode if EnablePlaceArcaneRunes != 0 and timer ArcaneRuneTimer > ArcaneRunePlacementCooldown if findtype '39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|39917|39918' self if EnablePlaceArcaneRunes = 1 # Aggression Rune if findtype '39892' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ AGGRESSION RUNE PLACED ]' 2117 endif else if EnableOverheadMessages = 1 overhead '[ NO AGGRESSION RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 2 # Essence Rune if findtype '39909' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ ESSENCE RUNE PLACED ]' 2916 endif else if EnableOverheadMessages = 1 overhead '[ NO ESSENCE RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 3 # Fortification Rune if findtype '39918' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ FORTIFICATION RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO FORTIFICATION RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 4 # Frenzy Rune if findtype '39889' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ FRENZY RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO FRENZY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 5 # Healing Rune if findtype '39896' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ HEALING RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO HEALING RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 6 # Immunity Rune if findtype '39898' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ IMMUNITY RUNE PLACED ]' 2897 endif else if EnableOverheadMessages = 1 overhead '[ NO IMMUNITY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 7 # Mana Rune if findtype '39912' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ MANA RUNE PLACED ]' 2606 endif else if EnableOverheadMessages = 1 overhead '[ NO MANA RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 8 # Poison Warding Rune if findtype '39905' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ POISON WARD RUNE PLACED ]' 2384 endif else if EnableOverheadMessages = 1 overhead '[ NO POISON WARD RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 9 # Rage Rune if findtype '39897' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ RAGE RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO RAGE RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 10 # Spellshielding Rune if findtype '39916' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ SPELLSHIELD RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO SPELLSHIELD RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 11 # Spell Rune if findtype '39891' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ SPELL RUNE PLACED ]' 2606 endif else if EnableOverheadMessages = 1 overhead '[ NO SPELL RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 12 # Toxicity Rune if findtype '39911' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ TOXICITY RUNE PLACED ]' 2384 endif else if EnableOverheadMessages = 1 overhead '[ NO TOXICITY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 13 # Trap Rune if findtype '39917' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ TRAP RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO TRAP RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 14 # Random Rune if findtype '39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|39917|39918' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ ARCANE RUNE PLACED ]' 13 endif else if EnableOverheadMessages = 1 overhead '[ NO ARCANE RUNES! ]' 337 endif endif endif else if EnableOverheadMessages = 1 overhead '[ NO ARCANE RUNES! ]' 337 endif endif settimer ArcaneRuneTimer 0 hotkey 'Toggle War Only' wait 500 endif endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if EnableOverheadMessages = 1 if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ CHAIN LINK UNLOCKED!! ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ ASPECT TIER UNLOCKED!! ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead "[ CODEX POINT UNLOCKED! ]" 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY JOB COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY POINTS � ]" 419 endif if insysmsg 'You charge your spell with additional energy' overhead '[ CHARGED SPELL! ]' 22 endif if insysmsg 'You generate mana for your spell' overhead '[ MANA REFUNDED! ]' 11 endif if insysmsg "You parry the spell" overhead "[ SPELL PARRY ]" 111 endif if insysmsg "You enter a state of arcane clarity" overhead '[ CLARITY! ]' 11 endif if insysmsg "Your attack places a hex" overhead '[ HEX ACTIVE ]' 14 ClosestTarget endif if insysmsg "100% arcane buildup" overhead '[ ARCANE BUILDUP 100%! ]' 2114 endif if insysmsg "causes you to bleed" overhead "[ YOU ARE BLEEDING... ]" 2118 endif if insysmsg "been struck by an ancient blight" overhead "[ DISEASED... ]" 1109 endif if insysmsg "You feel chilled!" overhead "[ YOU ARE CHILLED... ]" 2234 endif if insysmsg "You resist a disease effect" overhead "[ DISEASE RESISTED! ]" 888 endif if insysmsg "resist a bleed" overhead "[ BLEED RESISTED! ]" 888 endif if insysmsg "The creature pierces and bypasses your armor!" overhead "[ YOU ARE PIERCED... ]" 337 endif if insysmsg "Their attack disarms you!" overhead "[ DISARMED! ]" 337 endif if insysmsg "Their attack hamstrings you!" overhead "[ HAMSTRUNG! ]" 337 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif else if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ � CHAIN! � ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ � ASPECT � ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead '[ � CODEX! � ]' 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You parry the spell" overhead "*spell parry*" 111 endif if insysmsg "Your attack places a hex" overhead '*hexxed*' 14 ClosestTarget endif if insysmsg "100% arcane buildup" overhead '[ ARCANE 100%! ]' 2114 endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY � ]" 419 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif if insysmsg "Their attack disarms you!" overhead "*disarmed*" 337 endif if insysmsg "Their attack hamstrings you!" overhead "*hamstrung*" 337 endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if dead break endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange settimer TargetChecker 0 @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if diffhits > CastGreaterHealHPdiff or paralyzed break endif endwhile ////////////////////////////// // END MEDIUM ATTACK LOOP // ////////////////////////////// if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif ///////////////////////// // SMALL ATTACK LOOP // ///////////////////////// while mana <= CastSmallSpellsBelowMana and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and TargetSwap != 1 and diffhits < CastGreaterHealHPdiff if dead break endif if EnableDropGoldWhenOverweight = 1 if weight > maxweight replay endif endif if EnableWeightWarningMessage = 1 if diffweight < GreenWarningDiffWeight and diffweight > YellowWarningDiffWeight and timer "WeightMessageTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING... ]' 77 settimer "WeightMessageTimer" 0 else overhead " � " 77 settimer "WeightMessageTimer" 0 endif elseif diffweight < YellowWarningDiffWeight and diffweight > RedWeightLimitDiffWeight and timer "WeightMessageTimer" > 6000 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ WEIGHT WARNING! ]' 153 settimer "WeightMessageTimer" 0 else overhead " � " 153 settimer "WeightMessageTimer" 0 endif elseif diffweight < RedWeightLimitDiffWeight if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer "WeightMessageTimer" > 6000 overhead '[ WEIGHT LIMIT REACHED! ]' 37 settimer "WeightMessageTimer" 0 endif else if timer "WeightMessageTimer" > 6000 overhead " � " 37 settimer "WeightMessageTimer" 0 endif endif if EnableAutoWeightRecall = 1 and not find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! AutoWeightRecall 1 replay elseif EnableAutoWeightRecall = 1 and find ClosestTarget ground -1 -1 8 and WILDERNESSMODE = 1 if timer "WaitingToRecallTimer" > 3500 and EnableAutoRecallOverheadMessages = 1 overhead '[ WAITING TO RECALL... ]' 149 settimer "WaitingToRecallTimer" 0 endif wait 500 elseif EnableAutoWeightDungeonGate = 1 and DUNGEONMODE = 1 wait 500 hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! TimeToGo 1 replay else if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ OVERWEIGHT! ]' 337 else overhead " � " 337 endif wait 1500 overhead '[ STOPPING SCRIPT! ]' 88 stop endif endif endif if diffhits > CastGreaterHealHPdiff or paralyzed break endif if mana > CastSmallSpellsBelowMana break endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if TargetSwap = 1 @setvar! AttackModeActive 2 break endif if timer "TargetTimer" > 3500 and find ClosestTarget ground -1 -1 TargetAttackRange getlabel ClosestTarget TargetDesc if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ PARAGON! ]' 12 ClosestTarget overhead " � " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead '[ TARGET ]' 253 ClosestTarget overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif else if "Paragon" in TargetDesc and find ClosestTarget ground -1 -1 TargetAttackRange overhead " ��� " 12 ClosestTarget settimer "TargetTimer" 0 elseif find ClosestTarget ground -1 -1 TargetAttackRange overhead " � " 253 ClosestTarget settimer "TargetTimer" 0 endif endif endif if EnableWeaponCheck = 1 and skill 'Arcane' >= 50 and not findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" hand if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff for 5 if findtype "31043|31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31045|31047|31049|31051|31053|31055" self as myArcaneStaff getlabel myArcaneStaff myArcaneStafflabel if "Aspect" in myArcaneStafflabel break elseif "unidentified" in myArcaneStafflabel ignore myArcaneStaff else break endif endif endfor dclick myArcaneStaff clearignore wait 500 else if timer "ArcaneStaffCheck" > 5000 and EnableOverheadMessages = 1 overhead "[ NO ARCANE STAFF! ]" 337 settimer "ArcaneStaffCheck" 0 endif endif endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange settimer TargetChecker 0 @setvar! TargetSwap 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! AttackModeActive 0 break endif if CheckClosestTargetTime != 0 if timer TargetChecker > CheckClosestTargetTime @setvar! TargetSwap 0 hotkey "Target Closest Grey Monster" getlabel backpack backpacklabel @setvar! TargetToCheck lasttarget wait 250 if TargetToCheck != ClosestTarget settimer TargetChecker 0 @setvar! TargetToAnalyze lasttarget @setvar! ClosestTargetisSticky 0 @setvar! AttackModeActive 2 @setvar! TargetSwap 1 break endif settimer TargetChecker 0 endif endif if skill "Arcane" >= 80 and EnableArcaneWeaponAbility != 0 and diffhits < CastGreaterHealHPdiff if EnableArcaneCodexAbilityHotbar = 1 if not gumpexists 3954121934 yell '[abilitieshotbar' wait 500 endif endif if timer ArcaneWeaponAbilityTimer > 60000 if EnableArcaneWeaponAbility = 1 say "[Weaponability1" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ SEEKING ABILITY! ]" 2114 endif cooldown "Seeking Active" 15000 cooldown "Weapon Ability" 60000 endif elseif EnableArcaneWeaponAbility = 2 and diffmana > 25 say "[Weaponability2" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ LEYLINE ABILITY! ]" 420 endif cooldown "Leyline Active" 15000 cooldown "Weapon Ability" 60000 endif elseif EnableArcaneWeaponAbility = 3 say "[Weaponability3" getlabel backpack packdesc wait 500 if insysmsg "You cannot perform that ability yet" settimer ArcaneWeaponAbilityTimer 55000 else settimer ArcaneWeaponAbilityTimer 0 if EnableOverheadMessages = 1 overhead "[ SOULFIRE ABILITY! ]" 2116 endif cooldown "Weapon Ability" 60000 endif endif endif endif if mana < LowManaWarningAmount and timer ManaOverheadTimer > 4500 and LowManaWarningAmount != 0 overhead "[ LOW MANA! ]" 34 settimer ManaOverheadTimer 0 endif if EnableNecroStrangle = 1 or EnableNecroCorpseSkin = 1 or EnableNecroMindRot = 1 or EnableNecroEvilOmen = 1 or EnableNecroPainSpike = 1 if findtype 'necromancer book' backpack yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' endwhile endif endif if gumpexists 622436516 if ingump "12/|13/|14/|15/|16/|17/|18/|19/|20/|21/|11/|10/|9/|8/|7/|6/|5/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 elseif ingump "4/" 622436516 if ingump "14/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "3/" 622436516 if ingump "13/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "2/" 622436516 if ingump "12/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 0 endif elseif ingump "1/" 622436516 if ingump "11/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 0 @setvar! EvilOmenAvailable 0 @setvar! PainSpikeAvailable 0 endif elseif ingump "0/" 622436516 if ingump "10/" 622436516 @setvar! StrangleAvailable 1 @setvar! MindRotAvailable 1 @setvar! CorpseSkinAvailable 1 @setvar! EvilOmenAvailable 1 @setvar! PainSpikeAvailable 1 else @setvar! StrangleAvailable 0 @setvar! MindRotAvailable 0 @setvar! CorpseSkinAvailable 0 @setvar! EvilOmenAvailable 0 @setvar! PainSpikeAvailable 0 endif endif endif if EnableNecroStrangle = 1 and StrangleAvailable = 1 and timer StrangleTimer > 30000 and skill 'necromancy' >= 85 and mana >= 50 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[Strangle' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer StrangleTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ STRANGLE ]' 334 endif settimer StrangleTimer 0 cooldown "Strangle" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroCorpseSkin = 1 and CorpseSkinAvailable = 1 and timer CorpseSkinTimer > 30000 and skill 'necromancy' >= 65 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[CorpseSkin' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer CorpseSkinTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ CORPSE SKIN ]' 40 endif settimer CorpseSkinTimer 0 cooldown "Corpse Skin" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroMindRot = 1 and MindRotAvailable = 1 and timer MindRotTimer > 30000 and skill 'necromancy' >= 75 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[MindRot' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer MindRotTimer 28000 break else break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ MIND ROT ]' 223 endif settimer MindRotTimer 0 cooldown "Mind Rot" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroEvilOmen = 1 and EvilOmenAvailable = 1 and timer EvilOmenTimer > 30000 and skill 'necromancy' >= 60 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg while not insysmsg "unholy symbols remaining" yell '[EvilOmen' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer EvilOmenTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ EVIL OMEN ]' 238 endif settimer EvilOmenTimer 0 cooldown "Evil Omen" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroPainSpike = 1 and PainSpikeAvailable = 1 and timer 'PainSpikeTimer' > 30000 and skill 'necromancy' >= 95 and mana >= MinimumManaAmounttoNecroBuff and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 4 and findtype 8198 ground -1 -1 2 as corpsespike and timer 'PainSpikeDelayTimer' > PainSpikeAttackDelay and timer NecroCooldownTimer > 1000 @setvar! CastingWasInterrupted 0 clearsysmsg yell "[PainSpike" wft 1000 target ClosestTarget getlabel backpack backpacklabel wft 250 if insysmsg "You do not see any corpses" or insysmsg "seconds before you may use that ability again." settimer PainSpikeTimer 25000 @setvar! CastingWasInterrupted 1 endif if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ PAIN SPIKE! ]' 337 endif settimer PainSpikeTimer 0 cooldown "Pain Spike" 30000 settimer NecroCooldownTimer 0 endif endif if EnableNecroPoisonStrike != 0 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and diffhits < CastGreaterHealHPdiff and timer NecroCooldownTimer > 1000 getlabel ClosestTarget targetLabel if "-" in targetLabel getlabel ClosestTarget targetLabel endif @setvar! CastPoisonStrike 0 if EnableCastPoison = 1 if "Ticks" in targetLabel or "resists" in targetLabel and EnableCastPoison = 1 @setvar! RepeatCastingPoison 1 if SetPoisonLevel = 2 if "Lethal" in targetLabel @setvar! RepeatCastingPoison 0 endif elseif SetPoisonLevel = 1 if "Lethal" in targetLabel or "Deadly" in targetLabel @setvar! RepeatCastingPoison 0 endif else @setvar! RepeatCastingPoison 0 endif if EnableNecroPoisonStrike != 0 if findtype 'necromancer book' backpack and not gumpexists 622436516 yell '[necromancyhotbar' while not gumpexists 622436516 yell '[necromancyhotbar' wait 500 endwhile endif if EnableNecroPoisonStrike = 2 if "[2" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 3 if "[2" in targetLabel or "[3" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 4 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 5 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 6 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 7 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 8 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel or "[8" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif elseif EnableNecroPoisonStrike = 9 if "[2" in targetLabel or "[3" in targetLabel or "[4" in targetLabel or "[5" in targetLabel or "[6" in targetLabel or "[7" in targetLabel or "[8" in targetLabel or "[9" in targetLabel @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif endif getlabel backpack packdesc endif endif else if timer CorpseSkinDiseaseTimer > CorpseSkinPoisonStrikeDelay and EnableNecroPoisonStrike = 1 and EnableNecroCorpseSkin = 1 @setvar! CastPoisonStrike 1 else @setvar! CastPoisonStrike 0 endif endif getlabel backpack packdesc if CastPoisonStrike = 1 if findtype 'necromancer book' backpack and not gumpexists 622436516 while not gumpexists 622436516 yell '[necromancyhotbar' endwhile endif @setvar! PoisonStrikeAvailable 0 if gumpexists 622436516 if ingump "12/|13/|14/|15/|16/|17/|18/|19/|20/|21/|11/|10/|9/|8/|7/|6/|5/|4/|3/|2/" 622436516 @setvar! PoisonStrikeAvailable 1 elseif ingump "1/" 622436516 @setvar! PoisonStrikeAvailable 1 elseif ingump "0/" 622436516 if ingump "10/" 622436516 @setvar! PoisonStrikeAvailable 1 else @setvar! PoisonStrikeAvailable 0 endif endif endif if CastPoisonStrike = 1 and PoisonStrikeAvailable = 1 and timer PoisonStrikeTimer > 30000 and skill 'necromancy' >= 55 and diffhits < CastGreaterHealHPdiff and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange clearsysmsg while not insysmsg "unholy symbols remaining" if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif yell '[PoisonStrike' wft 1500 clearsysmsg target ClosestTarget wait 250 if insysmsg "seconds before you may use that ability again." settimer PoisonStrikeTimer 28000 clearsysmsg break elseif insysmsg "You do not have a Spell-based poison or disease effect on that target." settimer PoisonStrikeTimer 15000 clearsysmsg break else break endif endwhile if insysmsg "unholy symbols remaining" if EnableOverheadMessages = 1 overhead '[ POISON STRIKE! ]' 77 endif @setvar! PoisonStrikeAvailable 0 settimer PoisonStrikeTimer 0 cooldown "Poison Strike" 30000 @setvar! CastPoisonStrike 0 settimer NecroCooldownTimer 0 endif endif endif if EnableCastPoison = 1 and RepeatCastingPoison = 1 and diffhits < CastGreaterHealHPdiff and mana >= 9 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3976 self cast 'Poison' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 2500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 2500 settimer AntiStallTimer 0 break endif endwhile if CastingWasInterrupted = 1 and EnableNecroMindRot = 1 and MindRotAvailable = 1 and timer MindRotTimer > 30000 and skill 'necromancy' >= 75 while not insysmsg "unholy symbols remaining" yell '[MindRot' getlabel backpack packdesc wait 250 if insysmsg "seconds before you may use that ability again." @setvar! CastingWasInterrupted 1 settimer MindRotTimer 28000 break endif endwhile if CastingWasInterrupted = 0 if EnableOverheadMessages = 1 overhead '[ MIND ROT ]' 330 endif settimer MindRotTimer 0 cooldown "Mind Rot" 30000 endif @setvar! CastingWasInterrupted 0 endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "cannot be seen" break endif endif endif endif if EnableMeditation = 1 and mana < MeditateWhenManaBelow and not findbuff "meditating" and timer 'MeditationTimer' > 10000 skill 'meditation' getlabel backpack packdesc wait 250 if not findbuff 'meditating' settimer 'MeditationTimer' 7500 elseif findbuff 'meditating' hotkey 'Toggle Peace Only' settimer 'MeditationTimer' 0 while mana < maxmana and diffhits < CastGreaterHealHPdiff if not findbuff 'meditating' hotkey 'Toggle War Only' break endif if mana > MeditateUntilManaReaches hotkey 'Toggle War Only' break endif if warmode on break endif if diffhits > CastGreaterHealHPdiff break endif if dead break endif if timer 'MeditationMessageTimer' > 4000 if EnableOverheadMessages = 1 overhead '[ MEDITATING... ]' 11 else overhead "*meditating*" 11 endif settimer 'MeditationMessageTimer' 0 endif endwhile if diffhits > CastGreaterHealHPdiff break endif if dead break endif endif elseif EnableMeditation != 1 and MeditateWhenManaBelow != 0 and mana < MeditateWhenManaBelow if timer MissingRegsTimer > 4000 if EnableOverheadMessages = 1 overhead '[ WAITING FOR MANA... ]' 420 settimer MissingRegsTimer 0 endif endif endif if EnablePKradar = 1 and TimeToGo != 1 if timer "PKRadarTimer" > 1500 clearsysmsg hotkey 'Next Murderer Player Target' wait 250 if insysmsg "No one matching that was found" settimer "PKRadarTimer" 0 clearsysmsg else if EnableRedAlertOverhead = 1 overhead "[ !! RED ALERT !! ]" 37 endif hotkey 'Toggle Peace Only' @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 @setvar! MurdererTarget lasttarget replay endif endif endif if EnableTrackingAutoRecall = 1 and TimeToGo != 1 if PKTrackingRange = 60 if insysmsg ": 60 step" or insysmsg "60 space" or insysmsg ": 59 step" or insysmsg "59 space" or insysmsg ": 58 step" or insysmsg "58 space" or insysmsg ": 57 step" or insysmsg "57 space" or insysmsg ": 56 step" or insysmsg "56 space" or insysmsg ": 55 step" or insysmsg "55 space" or insysmsg ": 54 step" or insysmsg "54 space" or insysmsg ": 53 step" or insysmsg "53 space" or insysmsg ": 52 step" or insysmsg "52 space" or insysmsg ": 51 step" or insysmsg "51 space" or insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 50 if insysmsg ": 50 step" or insysmsg "50 space" or insysmsg ": 49 step" or insysmsg "49 space" or insysmsg ": 48 step" or insysmsg "48 space" or insysmsg ": 47 step" or insysmsg "47 space" or insysmsg ": 46 step" or insysmsg "46 space" or insysmsg ": 45 step" or insysmsg "45 space" or insysmsg ": 44 step" or insysmsg "44 space" or insysmsg ": 43 step" or insysmsg "43 space" or insysmsg ": 42 step" or insysmsg "42 space" or insysmsg ": 41 step" or insysmsg "41 space" or insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 40 if insysmsg ": 40 step" or insysmsg "40 space" or insysmsg ": 39 step" or insysmsg "39 space" or insysmsg ": 38 step" or insysmsg "38 space" or insysmsg ": 37 step" or insysmsg "37 space" or insysmsg ": 36 step" or insysmsg "36 space" or insysmsg ": 35 step" or insysmsg "35 space" or insysmsg ": 34 step" or insysmsg "34 space" or insysmsg ": 33 step" or insysmsg "33 space" or insysmsg ": 32 step" or insysmsg "32 space" or insysmsg ": 31 step" or insysmsg "31 space" or insysmsg ": 30 step" or insysmsg "30 space" or insysmsg ": 29 step" or insysmsg "29 space" or insysmsg ": 28 step" or insysmsg "28 space" or insysmsg ": 27 step" or insysmsg "27 space" or insysmsg ": 26 step" or insysmsg "26 space" or insysmsg ": 25 step" or insysmsg "25 space" or insysmsg ": 24 step" or insysmsg "24 space" or insysmsg ": 23 step" or insysmsg "23 space" or insysmsg ": 22 step" or insysmsg "22 space" or insysmsg ": 21 step" or insysmsg "21 space" or insysmsg ": 20 step" or insysmsg "20 space" or insysmsg ": 19 step" or insysmsg "19 space" or insysmsg ": 18 step" or insysmsg "18 space" or insysmsg ": 17 step" or insysmsg "17 space" or insysmsg ": 16 step" or insysmsg "16 space" or insysmsg ": 15 step" or insysmsg "15 space" or insysmsg ": 14 step" or insysmsg "14 space" or insysmsg ": 13 step" or insysmsg "13 space" or insysmsg ": 12 step" or insysmsg "12 space" or insysmsg ": 11 step" or insysmsg "11 space" or insysmsg ": 10 step" or insysmsg "10 space" or insysmsg ": 9 step" or insysmsg "(9 space" or insysmsg ": 8 step" or insysmsg "(8 space" or insysmsg ": 7 step" or insysmsg "(7 space" or insysmsg ": 6 step" or insysmsg "(6 space" or insysmsg ": 5 step" or insysmsg "(5 space" or insysmsg ": 4 step" or insysmsg "(4 space" or insysmsg ": 3 step" or insysmsg "(3 space" or insysmsg ": 2 step" or insysmsg "(2 space" or insysmsg ": 1 step" or insysmsg "(1 space" or insysmsg ": 0 step" or insysmsg "(0 space" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif elseif PKTrackingRange = 0 if insysmsg "Now tracking" hotkey 'Toggle Peace Only' if EnableRedAlertOverhead = 1 overhead '[ !! RED ALERT !! ]' 37 endif @setvar! WarModeToggledWhileFighting 0 @setvar! RedTargetFound 1 @setvar! TimeToGo 1 clearsysmsg replay endif endif endif if EnableEatMagicMushrooms = 1 if diffmana > EatMushroomManadiff and timer MushroomTimer > 60000 if counttype 29012 backpack dclicktype 29012 backpack getlabel backpack packdesc wait 250 if insysmsg "You consume a magic mushroom" settimer MushroomTimer 0 cooldown "Mushroom" 60000 if EnableOverheadMessages = 1 overhead '[ EATING SHROOMS... ]' 13 endif endif elseif EnableOverheadMessages = 1 overhead '[ OUT OF SHROOMS! ]' 337 endif endif endif if EnableEatManaSnacks = 1 if skill 'Cooking' >= 50 if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as mysnack if timer 'EatManaSnackCooldownTimer' > EatManaSnackCooldown and diffmana > EatSnackManadiff if EnableOverheadMessages = 1 overhead "[ MANA MUNCHING... ]" 420 endif dclick mysnack wait 250 settimer 'EatManaSnackCooldownTimer' 0 settimer 'EatHealSnackCooldownTimer' 0 cooldown "Snacking" EatManaSnackCooldown endif else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if EnableStrengthPotion = 1 and diffhits < CastGreaterHealHPdiff if skill 'Alchemy' > 0 and skill 'Alchemy' < 2 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif elseif skill 'Alchemy' = 0 if insysmsg "You may now use a strength" or not findbuff "Strength Potion Usage Cooldown" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif clearsysmsg endif else if not findbuff "Strength" if findtype "White Potion" self dclicktype "White Potion" if EnableOverheadMessages = 1 and timer WhitePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE STRENGTH POTION ]' 956 else overhead '[ STRENGTH POTION ]' 956 endif clearsysmsg settimer WhitePotionMessageTimer 0 endif wait 250 else if timer WhitePotionMessageTimer > 4500 overhead '[ NO STRENGTH POTS! ]' 337 settimer WhitePotionMessageTimer 0 endif endif endif endif endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if EnableAgilityPotion = 1 and not findbuff "Agility" and diffhits < CastGreaterHealHPdiff if findtype "Blue Potion" self dclicktype "Blue Potion" if EnableOverheadMessages = 1 and timer BluePotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE AGILITY POTION ]' 93 else overhead '[ AGILITY POTION ]' 93 endif clearsysmsg settimer BluePotionMessageTimer 0 endif wait 250 else if timer BluePotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO AGILITY POTS! ]' 337 settimer BluePotionMessageTimer 0 endif endif endif if EnableMagicResistPotion = 1 and not findbuff "Magic Resist" and diffhits < CastGreaterHealHPdiff if findtype "Black Potion" self dclicktype "Black Potion" if EnableOverheadMessages = 1 and timer BlackPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE RESIST POTION ]' 1109 else overhead '[ RESIST POTION ]' 1109 endif clearsysmsg settimer BlackPotionMessageTimer 0 endif wait 250 else if timer BlackPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO RESIST POTS! ]' 337 settimer BlackPotionMessageTimer 0 endif endif endif if EnableRefreshPotion = 1 and diffstam > RefreshPotionSPdiff if findtype "Red Potion" self dclicktype "Red Potion" if EnableOverheadMessages = 1 and timer RedPotionMessageTimer > 4500 if insysmsg "potion satchel used" overhead '[ FREE REFRESH POTION ]' 37 else overhead '[ REFRESH POTION ]' 37 endif clearsysmsg settimer RedPotionMessageTimer 0 endif wait 250 else if timer RedPotionMessageTimer > 4500 and EnableOverheadMessages = 1 overhead '[ NO REFRESH POTS! ]' 337 settimer RedPotionMessageTimer 0 endif endif endif @setvar! SpellcastCooldown 0 @setvar! CastingWasInterrupted 0 if EnableCastMagicArrow = 1 and timer MagicArrowTimer > MagicArrowCooldown and diffhits < CastGreaterHealHPdiff and mana >= 4 and mana < CastSmallSpellsBelowMana and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3980 self cast 'magic arrow' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! CastingWasInterrupted 1 @setvar! TargetSwap 0 interrupt break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "wizardry" settimer MagicArrowTimer 0 elseif insysmsg "cannot be seen" break else settimer MagicArrowTimer MagicArrowCooldown endif endif endif if EnableCastHarm = 1 and timer HarmTimer > HarmCooldown and diffhits < CastGreaterHealHPdiff and mana >= 6 and mana < CastSmallSpellsBelowMana and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3976 self and findtype 3981 self cast 'harm' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange interrupt @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "wizardry" settimer HarmTimer 0 elseif insysmsg "cannot be seen" break else settimer HarmTimer HarmCooldown endif endif endif if EnableCastFireball = 1 and timer FireballTimer > FireballCooldown and diffhits < CastGreaterHealHPdiff and mana >= 9 and mana < CastSmallSpellsBelowMana and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3962 self cast 'fireball' settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange interrupt @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "wizardry" settimer FireballTimer 0 elseif insysmsg "cannot be seen" break else settimer FireballTimer FireballCooldown endif endif endif if EnableCastLightning = 1 and timer LightningTimer > LightningCooldown and diffhits < CastGreaterHealHPdiff and mana >= 11 and mana < CastSmallSpellsBelowMana and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and findtype 3974 self and findtype 3980 self cast 'lightning' settimer AntiStallTimer 0 settimer spellTimer 0 @setvar! SpellcastCooldown 800 while not targetexists and timer AntiStallTimer < 1500 if diffhits >= CastGreaterHealHPdiff interrupt @setvar! AttackModeActive 1 @setvar! CastingWasInterrupted 1 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange interrupt @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! CastingWasInterrupted 1 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if insysmsg "Your concentration is disturbed" interrupt @setvar! CastingWasInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif if timer spellTimer < SpellcastCooldown if EnableCurePotion = 1 while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff and casting and not targetexists if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 clearsysmsg target ClosestTarget getlabel backpack packdesc wait 250 if insysmsg "wizardry" settimer LightningTimer 0 elseif insysmsg "cannot be seen" break else settimer LightningTimer LightningCooldown endif endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if EnableFrostAspect = 1 if insysmsg "Frost Shell activated" cooldown "Frost Shell Active" 5000 if EnableOverheadMessages = 1 overhead '[ FROST SHELL! ]' 2234 endif if FrostAspectTier = 0 cooldown "Frost Shell Cooldown" 30000 elseif FrostAspectTier = 1 cooldown "Frost Shell Cooldown" 29000 elseif FrostAspectTier = 2 cooldown "Frost Shell Cooldown" 28000 elseif FrostAspectTier = 3 cooldown "Frost Shell Cooldown" 27000 elseif FrostAspectTier = 4 cooldown "Frost Shell Cooldown" 26000 elseif FrostAspectTier = 5 cooldown "Frost Shell Cooldown" 25000 elseif FrostAspectTier = 6 cooldown "Frost Shell Cooldown" 24000 elseif FrostAspectTier = 7 cooldown "Frost Shell Cooldown" 23000 elseif FrostAspectTier = 8 cooldown "Frost Shell Cooldown" 22000 elseif FrostAspectTier = 9 cooldown "Frost Shell Cooldown" 21000 elseif FrostAspectTier = 10 cooldown "Frost Shell Cooldown" 20000 elseif FrostAspectTier = 11 cooldown "Frost Shell Cooldown" 19000 elseif FrostAspectTier = 12 cooldown "Frost Shell Cooldown" 18000 elseif FrostAspectTier = 13 cooldown "Frost Shell Cooldown" 17000 elseif FrostAspectTier = 14 cooldown "Frost Shell Cooldown" 16000 elseif FrostAspectTier = 15 cooldown "Frost Shell Cooldown" 15000 endif clearsysmsg endif endif if dead break endif if EnableUsePotionKegs = 1 and findtype 'empty bottle%s%' self and findtype 'keg' self and timer 'PotionKegPVPCooldown' > 30000 @setvar! PotionStockCheck 0 while PotionStockCheck < 8 and findtype 'empty bottle%s%' self if PotionStockCheck = 0 if HealingPotionAmount = 0 @setvar! PotionStockCheck 1 else @setvar! PotionType 3852 @setvar! KegColour 253 @setvar! PotionAmounttoFill HealingPotionAmount @setvar! PotionStockCheck 1 endif elseif PotionStockCheck = 1 if CurePotionAmount = 0 @setvar! PotionStockCheck 2 else @setvar! PotionType 3847 @setvar! KegColour 44 @setvar! PotionAmounttoFill CurePotionAmount @setvar! PotionStockCheck 2 endif elseif PotionStockCheck = 2 if RefreshPotionAmount = 0 @setvar! PotionStockCheck 3 else @setvar! PotionType 3851 @setvar! KegColour 37 @setvar! PotionAmounttoFill RefreshPotionAmount @setvar! PotionStockCheck 3 endif elseif PotionStockCheck = 3 if StrengthPotionAmount = 0 @setvar! PotionStockCheck 4 else @setvar! PotionType 3849 @setvar! KegColour 956 @setvar! PotionAmounttoFill StrengthPotionAmount @setvar! PotionStockCheck 4 endif elseif PotionStockCheck = 4 if AgilityPotionAmount = 0 @setvar! PotionStockCheck 5 else @setvar! PotionType 3848 @setvar! KegColour 93 @setvar! PotionAmounttoFill AgilityPotionAmount @setvar! PotionStockCheck 5 endif elseif PotionStockCheck = 5 if ResistPotionAmount = 0 @setvar! PotionStockCheck 6 else @setvar! PotionType 3846 @setvar! KegColour 1109 @setvar! PotionAmounttoFill ResistPotionAmount @setvar! PotionStockCheck 6 endif elseif PotionStockCheck = 6 if PoisonPotionAmount = 0 @setvar! PotionStockCheck 7 else @setvar! PotionType 3850 @setvar! KegColour 363 @setvar! PotionAmounttoFill PoisonPotionAmount @setvar! PotionStockCheck 7 endif elseif PotionStockCheck = 7 if ExplosionPotionAmount = 0 @setvar! PotionStockCheck 8 else @setvar! PotionType 3853 @setvar! KegColour 419 @setvar! PotionAmounttoFill ExplosionPotionAmount @setvar! PotionStockCheck 8 endif else break endif while counttype PotionType self < PotionAmounttoFill if not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif if diffhits > HealPotionHPdiff break endif if findtype 'keg' self KegColour as myKeg dclick myKeg wait 250 if EnableOverheadMessages = 1 if timer 'PotionKegTimer' > 2000 overhead '[ FILLING POTS... ]' KegColour settimer 'PotionKegTimer' 0 endif endif else if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO KEG TO USE... ]' KegColour settimer 'PotionKegTimer' 0 endif break endif if insysmsg "You have been in combat with another player" settimer "PotionKegPVPCooldown" 0 break endif endwhile if counttype PotionType self < PotionAmounttoFill and not findtype 'empty bottle%s%' self if EnableOverheadMessages = 1 and timer 'PotionKegTimer' > 5000 overhead '[ NO EMPTY BOTTLES... ]' 337 settimer 'PotionKegTimer' 0 endif break endif endwhile endif if EnableAutoExplosionPots = 1 and diffhits < CastGreaterHealHPdiff if findtype 'purple potion' self as explotPot getlabel explotPot potLabel if "(" in potLabel if timer PurplePotionTimer > PurplePotionCooldown @setvar! PurplePotionReady 1 else @setvar! PurplePotionReady 0 endif else @setvar! PurplePotionReady 1 endif if skill 'Alchemy' < 80 if timer TelekinesisTimer > 60000 or ClosestTargetisSticky = 0 if PurplePotionReady = 1 and find ClosestTarget ground -1 -1 TargetAttackRange and not dead ClosestTarget if findtype 'purple potion' self settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if timer AntiStallTimer > 1500 break endif cast 'Telekinesis' wait 500 endwhile clearsysmsg wft 500 target ClosestTarget wait 250 if insysmsg "You are too far" @setvar! ClosestTargetisSticky 0 clearsysmsg else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 4500 overhead '[ EXPLOSION POTION! ]' 419 settimer PurplePotionMessageTimer 0 endif settimer TelekinesisTimer 0 @setvar! ClosestTargetisSticky 1 endif endif endif endif else @setvar! ClosestTargetisSticky 1 endif else if EnableOverheadMessages = 1 and timer PurplePotionMessageTimer > 15000 overhead '[ NO PURPLE POTIONS ]' 337 settimer PurplePotionMessageTimer 0 endif endif endif @setvar! CastingWasInterrupted 0 if targetexists hotkey 'cancel current target' endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 settimer TargetChecker 0 break endif if EnableAutoExplosionPots = 1 if timer TelekinesisTimer > 60000 @setvar! ClosestTargetisSticky 0 settimer TelekinesisTimer 0 endif endif if PurplePotionReady = 1 and ClosestTargetisSticky = 1 and not dead ClosestTarget and find ClosestTarget ground -1 -1 TargetAttackRange and diffhits < CastGreaterHealHPdiff settimer AntiStallTimer 0 while not insysmsg "Where should i throw this potion?" and timer AntiStallTimer < 1500 potion 'explosion' if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile @setvar! PurplePotionReady 0 settimer PurplePotionTimer 0 settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange @setvar! RepeatCastingPoison 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! CastingWasInterrupted 1 @setvar! TargetSwap 0 hotkey 'cancel current target' break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange break endif if CastingWasInterrupted = 0 target ClosestTarget cooldown "Purple Potion" PurplePotionCooldown getlabel backpack packdesc wait 250 endif endif if counttype 29012 self = 0 and EnableMagicMushroomMaker = 1 while counttype 29012 self < MakeMushroomAmount and mana > 3 and diffhits < CastGreaterHealHPdiff if timer 'MushroomMakerTimer' > 4500 overhead '[ MAKING SHROOMS... ]' 419 settimer 'MushroomMakerTimer' 0 endif if not casting cast 'create food' wait 500 endif if diffhits > CastGreaterHealHPdiff break endif endwhile if diffhits > CastGreaterHealHPdiff break endif if dead break endif endif if EnableGoldVacuum = 1 and DisableVacuums != 1 if findtype "gold coin" ground -1 -1 15 as droppedmoney and timer "GoldRadar" > 3500 overhead " � " 149 droppedmoney settimer "GoldRadar" 0 endif while findtype "gold coin" ground -1 -1 2 as droppedmoney and diffhits < CastGreaterHealHPdiff overhead " � " 149 hotkey "Grab Item" wft 2500 target droppedmoney wait 250 if dead break endif if diffhits >= CastGreaterHealHPdiff @setvar! AttackModeActive 1 break endif if insysmsg "Invalid or inaccessible item" wait 500 @ignore droppedmoney endif wait 250 endwhile endif if EnableDungeonCleanup = 1 and diffhits < CastGreaterHealHPdiff while findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 2 as item if EnableOverheadMessages = 1 if timer "DungeonCleanup" > 1500 overhead '[ CLEANUP... ]' 420 settimer "DungeonCleanup" 0 endif else if timer "DungeonCleanup" > 1500 overhead ' � ' 420 settimer "DungeonCleanup" 0 endif endif hotkey "Grab Item" wft 1000 target item wait 500 if dead break endif if diffhits > CastGreaterHealHPdiff break endif endwhile if findtype "iron ingot%s|board%s|cut up leather|3972|3962|3963|3980|3976|3973|3974|3981" ground -1 -1 15 as dungeonjunk and timer "DungeonCleanupRadar" > 3500 overhead "�" 420 dungeonjunk settimer "DungeonCleanupRadar" 0 endif endif if EnableAutoCarving = 1 and findtype 11552 self while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody wait 250 endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if EnableArcaneCodexStances != 0 or EnableArcaneCodexFinisher != 0 if skill 'Arcane' >= 80 if findtype "arcane codex" backpack as MyCodex if not gumpexists 2016719803 and EnableArcaneCodexHotbar = 1 while not gumpexists 1066647553 say "[CodexHotBar" wait 500 if gumpexists 2016719803 break endif endwhile endif if EnableArcaneCodexStances = 6 if not warmode @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 1 elseif cooldown "Frost Shell" or poisoned or findbuff "bleed" or findbuff "disease" or diffhits > 70 @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 1 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif warmode @setvar! SwitchToLeechStance 1 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 endif elseif EnableArcaneCodexStances = 1 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 1 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 2 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 1 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 3 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 1 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 4 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 1 @setvar! SwitchToSurgeStance 0 elseif EnableArcaneCodexStances = 5 getlabel MyCodex MyCodexDesc @setvar! SwitchToLeechStance 0 @setvar! SwitchToShieldStance 0 @setvar! SwitchToScatterStance 0 @setvar! SwitchToFractureStance 0 @setvar! SwitchToSurgeStance 1 endif getlabel MyCodex MyCodexDesc if EnableArcaneCodexStances = 6 or EnableArcaneCodexFinisher = 3 if timer "WeaponCodexTimer" > SwitchArcaneCodexCooldown and diffhits < CastGreaterHealHPdiff if SwitchToLeechStance = 1 if "Leech" in MyCodexDesc // Do nothing else yell [ArcaneStance1 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToShieldStance = 1 if "Shield" in MyCodexDesc // Do nothing else yell [ArcaneStance2 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 or EnableArcaneCodexFinisher = 3 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToScatterStance = 1 if "Scatter" in MyCodexDesc // Do nothing else yell [ArcaneStance3 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToFractureStance = 1 if "Fracture" in MyCodexDesc // Do nothing else yell [ArcaneStance4 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 or EnableArcaneCodexFinisher = 3 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToSurgeStance = 1 if "Surge" in MyCodexDesc // Do nothing else yell [ArcaneStance5 settimer "WeaponCodexTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif endif endif elseif EnableArcaneCodexStances != 6 and EnableArcaneCodexStances != 0 and EnableArcaneCodexFinisher != 3 if EnableArcaneCodexFinisher != 0 and timer "WeaponCodexCheckTimer" > 2000 and mana > 50 and diffhits < CastGreaterHealHPdiff if SwitchToLeechStance = 1 if "Leech" in MyCodexDesc // Do nothing else yell [ArcaneStance1 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToShieldStance = 1 if "Shield" in MyCodexDesc // Do nothing else yell [ArcaneStance2 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 or EnableArcaneCodexFinisher = 3 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToScatterStance = 1 if "Scatter" in MyCodexDesc // Do nothing else yell [ArcaneStance3 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToFractureStance = 1 if "Fracture" in MyCodexDesc // Do nothing else yell [ArcaneStance4 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 2 or EnableArcaneCodexFinisher = 3 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 yell [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif elseif SwitchToSurgeStance = 1 if "Surge" in MyCodexDesc // Do nothing else yell [ArcaneStance5 settimer "WeaponCodexCheckTimer" 0 wait 250 endif if EnableArcaneCodexFinisher = 3 or EnableArcaneCodexFinisher = 2 if "Catalyst" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher2 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif elseif EnableArcaneCodexFinisher = 1 if "Clarity" in MyCodexDesc // Do nothing elseif DisableWeaponFinisher != 1 say [ArcaneFinisher1 @setvar! DisableWeaponFinisher 0 settimer "WeaponCodexCheckTimer" 0 wait 250 if insysmsg "You must first reach rank 5" @setvar! DisableWeaponFinisher 1 endif endif endif endif endif endif endif endif endif if EnableShieldCodexStances != 0 or EnableShieldCodexFinisher != 0 if skill "Parrying" >= 80 and findtype "shield codex" backpack as ShieldCodex if not gumpexists 2016719803 and EnableShieldCodexHotbar = 1 while not gumpexists 1066647553 say "[CodexHotBar" wait 500 if gumpexists 2016719803 break endif endwhile endif if EnableShieldCodexStances = 6 if not warmode @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 1 elseif cooldown "Frost Shell" or findbuff "bleed" or findbuff "disease" or poisoned or diffhits > 70 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 1 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif warmode @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 1 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 endif elseif EnableShieldCodexStances = 1 @setvar! SwitchToShieldBashStance 1 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 2 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 2 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 3 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 1 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 4 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 1 @setvar! SwitchToBulwarkStance 0 elseif EnableShieldCodexStances = 5 @setvar! SwitchToShieldBashStance 0 @setvar! SwitchToWardingStance 0 @setvar! SwitchToTestudoStance 0 @setvar! SwitchToMirrorStance 0 @setvar! SwitchToBulwarkStance 1 endif getlabel ShieldCodex ShieldCodexDesc if EnableShieldCodexStances = 6 or EnableShieldCodexFinisher = 3 if timer "ShieldCodexTimer" > SwitchShieldCodexCooldown and diffhits < CastGreaterHealHPdiff if SwitchToWardingStance = 1 if "Warding" in ShieldCodexDesc // Do nothing else yell [ShieldsStance2 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 if EnableShieldCodexFinisher = 2 or EnableShieldCodexFinisher = 3 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 and DisableShieldFinisher != 1 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToMirrorStance = 1 if "Mirror" in ShieldCodexDesc // Do nothing else yell [ShieldsStance4 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToBulwarkStance = 1 if "Bulwark" in ShieldCodexDesc // Do nothing else yell [ShieldsStance5 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToTestudoStance = 1 if "Testudo" in ShieldCodexDesc // Do nothing else yell [ShieldsStance3 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToShieldBashStance = 1 if "Shield Bash" in ShieldCodexDesc // Do nothing else yell [ShieldsStance1 settimer "ShieldCodexTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 2 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif endif endif elseif EnableShieldCodexStances != 6 and EnableShieldCodexFinisher != 3 if timer "ShieldCodexCheckTimer" > 2000 if SwitchToWardingStance = 1 if "Warding" in ShieldCodexDesc // Do nothing else yell [ShieldsStance2 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 if EnableShieldCodexFinisher = 2 or EnableShieldCodexFinisher = 3 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 and DisableShieldFinisher != 1 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToMirrorStance = 1 if "Mirror" in ShieldCodexDesc // Do nothing else yell [ShieldsStance4 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToBulwarkStance = 1 if "Bulwark" in ShieldCodexDesc // Do nothing else yell [ShieldsStance5 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToTestudoStance = 1 if "Testudo" in ShieldCodexDesc // Do nothing else yell [ShieldsStance3 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif elseif SwitchToShieldBashStance = 1 if "Shield Bash" in ShieldCodexDesc // Do nothing else yell [ShieldsStance1 settimer "ShieldCodexCheckTimer" 0 wait 500 endif if EnableShieldCodexFinisher != 0 and DisableShieldFinisher != 1 if EnableShieldCodexFinisher = 2 and DisableShieldFinisher != 1 if "Barrier" in ShieldCodexDesc // Do nothing else say [ShieldsFinisher2 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif elseif EnableShieldCodexFinisher = 1 or EnableShieldCodexFinisher = 3 if "Last Stand" in ShieldCodexDesc // Do nothing else yell [ShieldsFinisher1 settimer "ShieldCodexCheckTimer" 0 wait 500 if insysmsg "You must first reach rank 5" @setvar! DisableShieldFinisher 1 endif endif endif endif endif endif endif endif endif if not warmode if EnablePlaceArcaneRunes != 0 and timer ArcaneRuneTimer > ArcaneRunePlacementCooldown if findtype '39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|39917|39918' self if EnablePlaceArcaneRunes = 1 # Aggression Rune if findtype '39892' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ AGGRESSION RUNE PLACED ]' 2117 endif else if EnableOverheadMessages = 1 overhead '[ NO AGGRESSION RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 2 # Essence Rune if findtype '39909' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ ESSENCE RUNE PLACED ]' 2916 endif else if EnableOverheadMessages = 1 overhead '[ NO ESSENCE RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 3 # Fortification Rune if findtype '39918' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ FORTIFICATION RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO FORTIFICATION RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 4 # Frenzy Rune if findtype '39889' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ FRENZY RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO FRENZY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 5 # Healing Rune if findtype '39896' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ HEALING RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO HEALING RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 6 # Immunity Rune if findtype '39898' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ IMMUNITY RUNE PLACED ]' 2897 endif else if EnableOverheadMessages = 1 overhead '[ NO IMMUNITY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 7 # Mana Rune if findtype '39912' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ MANA RUNE PLACED ]' 2606 endif else if EnableOverheadMessages = 1 overhead '[ NO MANA RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 8 # Poison Warding Rune if findtype '39905' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ POISON WARD RUNE PLACED ]' 2384 endif else if EnableOverheadMessages = 1 overhead '[ NO POISON WARD RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 9 # Rage Rune if findtype '39897' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ RAGE RUNE PLACED ]' 2377 endif else if EnableOverheadMessages = 1 overhead '[ NO RAGE RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 10 # Spellshielding Rune if findtype '39916' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ SPELLSHIELD RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO SPELLSHIELD RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 11 # Spell Rune if findtype '39891' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ SPELL RUNE PLACED ]' 2606 endif else if EnableOverheadMessages = 1 overhead '[ NO SPELL RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 12 # Toxicity Rune if findtype '39911' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ TOXICITY RUNE PLACED ]' 2384 endif else if EnableOverheadMessages = 1 overhead '[ NO TOXICITY RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 13 # Trap Rune if findtype '39917' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ TRAP RUNE PLACED ]' 2247 endif else if EnableOverheadMessages = 1 overhead '[ NO TRAP RUNE! ]' 337 endif endif elseif EnablePlaceArcaneRunes = 14 # Random Rune if findtype '39889|39891|39892|39896|39897|39898|39905|39909|39911|39912|39916|39917|39918' self as MyArcaneRune dclick MyArcaneRune getlabel backpack backpacklabel if EnableOverheadMessages = 1 overhead '[ ARCANE RUNE PLACED ]' 13 endif else if EnableOverheadMessages = 1 overhead '[ NO ARCANE RUNES! ]' 337 endif endif endif else if EnableOverheadMessages = 1 overhead '[ NO ARCANE RUNES! ]' 337 endif endif settimer ArcaneRuneTimer 0 hotkey 'Toggle War Only' wait 500 endif endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if EnableOverheadMessages = 1 if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ CHAIN LINK UNLOCKED!! ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ ASPECT TIER UNLOCKED!! ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead "[ CODEX POINT UNLOCKED! ]" 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY JOB COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY POINTS � ]" 419 endif if insysmsg 'You charge your spell with additional energy' overhead '[ CHARGED SPELL! ]' 22 endif if insysmsg 'You generate mana for your spell' overhead '[ MANA REFUNDED! ]' 11 endif if insysmsg "You parry the spell" overhead "[ SPELL PARRY ]" 111 endif if insysmsg "You enter a state of arcane clarity" overhead '[ CLARITY! ]' 11 endif if insysmsg "Your attack places a hex" overhead '[ HEX ACTIVE ]' 14 ClosestTarget endif if insysmsg "100% arcane buildup" overhead '[ ARCANE BUILDUP 100%! ]' 2114 endif if insysmsg "causes you to bleed" overhead "[ YOU ARE BLEEDING... ]" 2118 endif if insysmsg "been struck by an ancient blight" overhead "[ DISEASED... ]" 1109 endif if insysmsg "You feel chilled!" overhead "[ YOU ARE CHILLED... ]" 2234 endif if insysmsg "You resist a disease effect" overhead "[ DISEASE RESISTED! ]" 888 endif if insysmsg "resist a bleed" overhead "[ BLEED RESISTED! ]" 888 endif if insysmsg "The creature pierces and bypasses your armor!" overhead "[ YOU ARE PIERCED... ]" 337 endif if insysmsg "Their attack disarms you!" overhead "[ DISARMED! ]" 337 endif if insysmsg "Their attack hamstrings you!" overhead "[ HAMSTRUNG! ]" 337 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif else if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ � CHAIN! � ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ � ASPECT � ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead '[ � CODEX! � ]' 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You parry the spell" overhead "*spell parry*" 111 endif if insysmsg "Your attack places a hex" overhead '*hexxed*' 14 ClosestTarget endif if insysmsg "100% arcane buildup" overhead '[ ARCANE 100%! ]' 2114 endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY � ]" 419 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif if insysmsg "Their attack disarms you!" overhead "*disarmed*" 337 endif if insysmsg "Their attack hamstrings you!" overhead "*hamstrung*" 337 endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if dead break endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange settimer TargetChecker 0 @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if diffhits > CastGreaterHealHPdiff or paralyzed break endif endwhile ///////////////////////////// // END SMALL ATTACK LOOP // ///////////////////////////// if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self clearignore getlabel backpack backpacklabel if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer MissingRegsTimer > 5000 if counttype "3972" self = 0 overhead '[ NO GARLIC ]' 646 endif if counttype "3962" self = 0 overhead '[ NO BLACK PEARL ]' 3 endif if counttype "3963" self = 0 overhead '[ NO BLOODMOSS ]' 33 endif if counttype "3980" self = 0 overhead '[ NO SULFUROUS ASH ]' 153 endif if counttype "3976" self = 0 overhead '[ NO NIGHTSHADE ]' 363 endif if counttype "3973" self = 0 overhead '[ NO GINSENG ]' 247 endif if counttype "3974" self = 0 overhead '[ NO MANDRAKE ROOT ]' 442 endif if counttype "3981" self = 0 overhead '[ NO SPIDERS SILK ]' 2338 endif settimer MissingRegsTimer 0 endif endif @setvar! MissingRegs 1 else @setvar! MissingRegs 0 endif else @setvar! MissingRegs 0 endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self or not findtype 3981 self @setvar! missingGreaterHealRegs 1 getlabel backpack backpacklabel else @setvar! missingGreaterHealRegs 0 endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self @setvar! missingHealRegs 1 getlabel backpack backpacklabel else @setvar! missingHealRegs 0 endif if missingGreaterHealRegs = 1 or missingHealRegs = 1 if timer NoHealRegsTimer > 4000 overhead '[ MISSING HEALING REGS! ]' 337 settimer NoHealRegsTimer 0 endif endif @setvar! SpellInterrupted 0 clearsysmsg if skill 'magery' >= 60 and diffhits >= CastGreaterHealHPdiff and diffhits <= CastHealHPdiff and mana >= 11 and EnableCastGreaterHeal = 1 and not casting and missingGreaterHealRegs != 1 @setvar! SpellInterrupted 0 cast 'greater heal' getlabel backpack backpacklabel settimer spellTimer 0 @setvar! spellCD 2500 while not targetexists and timer spellTimer < spellCD if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer spellTimer > spellCD break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastHealHPdiff and diffhits < CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 while diffhits > CastGreaterHealHPdiff and mana >= 4 and findtype 3972 self and findtype 3973 self and findtype 3974 self and not dead if targetexists hotkey 'Cancel current target' endif @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' getlabel backpack backpacklabel endif if diffhits <= CastGreaterHealHPdiff break endif endwhile endif @setvar! SpellInterrupted 0 if paralyzed and EnableAutoParalyzePouch = 1 if findtype "pouch" self yell "[pouch" wait 250 else if timer PopPouchMessageTimer > 5000 and EnableOverheadMessages = 1 overhead '[ NO MORE POUCHES! ]' 337 settimer PopPouchMessageTimer 0 endif endif endif if EnablePanaceaPotion = 1 and skill 'Alchemy' >= 80 if findbuff "Bleed" or findbuff "Diseased" if not findbuff "panacea potion cooldown" if findtype "Orange Potion" self dclicktype "Orange Potion" wait 250 if findbuff "panacea potion cooldown" and EnableOverheadMessages = 1 overhead '[ PANACEA ACTIVATED ]' 55 cooldown "Panacea Potion" 30000 endif endif endif endif endif if EnableCleansingBrews = 1 if findbuff "Diseased" or findbuff "Bleed" if timer CleansingBrewTimer > 120000 if findtype 50675 self 2935 as CleansingBrew dclick CleansingBrew if EnableOverheadMessages = 1 overhead '[ CLEANSING BREW ]' 2117 endif cooldown 'Cleansing Brew' 120000 settimer CleansingBrewTimer 0 wait 250 else if timer CleansingBrewOverhead > 15000 overhead "[ NO CLEANSING BREWS! ]" 337 settimer CleansingBrewOverhead 0 settimer CleansingBrewTimer 0 endif endif else if EnableOverheadMessages = 1 and timer CleansingBrewOverhead > 15000 overhead '[ BREW ON COOLDOWN! ]' 37 settimer CleansingBrewOverhead 0 endif endif endif endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if EnableCurePotion = 1 or EnableCastCure = 1 while poisoned if findtype "Orange Potion" self and EnableCurePotion = 1 dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif if diffhits >= 30 or not findtype 3972 self or not findtype 3973 self break endif if skill 'magery' >= 40 and mana >= 6 and EnableCastCure = 1 and not casting cast 'cure' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif wait 100 endwhile wft 1000 target 'self' wait 500 else break endif endif endwhile endif if EnableEatHealSnacks = 1 if skill 'Cooking' >= 50 and timer 'EatHealSnackCooldownTimer' > EatHealSnackCooldown and timer 'HealPotionTimer' < 10500 and diffhits > EatSnackHPdiff if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as myhpsnack if EnableOverheadMessages = 1 overhead "[ HP MUNCHING... ]" 420 endif dclick myhpsnack wait 250 settimer 'EatHealSnackCooldownTimer' 0 settimer 'EatManaSnackCooldownTimer' 0 cooldown 'Snacking' EatHealSnackCooldown else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if not warmode @setvar! WarModeToggledWhileFighting 1 elseif warmode @setvar! WarModeToggledWhileFighting 0 endif if dead break endif if dead ClosestTarget or not find ClosestTarget ground -1 -1 TargetAttackRange settimer TargetChecker 0 @setvar! AttackModeActive 0 @setvar! RepeatCastingPoison 0 @setvar! ClosestTargetisSticky 0 @setvar! TargetSwap 0 break endif if TargetSwap = 1 @setvar! AttackModeActive 2 break endif endwhile /////////////////////// // END ATTACK LOOP // /////////////////////// /////////////////////// // AFTER KILL: // /////////////////////// if TimeToGo != 1 if TargetSwap = 1 if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer SwapTargetsTimer > 3500 overhead '[ SWAPPING TARGET... ]' 93 settimer SwapTargetsTimer 0 endif endif settimer TargetChecker 0 settimer AnalyzingTargetsTimer 0 @setvar! TargetToAnalyze TargetToCheck @setvar! ClosestTarget 0 @setvar! TargetSwap 0 @setvar! AttackModeActive 2 @setvar! ClosestTargetisSticky 0 @setvar! RepeatCastPoison 0 getlabel backpack backpacklabel endif if AttackModeActive != 2 settimer TargetChecker 0 @setvar! AttackModeActive 0 @setvar! ClosestTargetisSticky 0 @setvar! RepeatCastPoison 0 @setvar! NeedtoSecureLoot 1 settimer LootTimer 0 getlabel backpack backpacklabel if WarModeToggledWhileFighting = 1 or warmode if TargetSwap != 1 and TimeToGo != 1 if not dead ClosestTarget and find ClosestTarget ground -1 -1 18 and not find ClosestTarget ground -1 -1 TargetAttackRange if EnableOverheadMessages != 0 if timer 'NoTargetTimer' > 5000 overhead "[ TARGET LOST... ]" 339 settimer 'NoTargetTimer' 0 endif endif elseif dead ClosestTarget and not find ClosestTarget ground -1 -1 18 if EnableOverheadMessages != 0 if timer 'NoTargetTimer' > 5000 overhead "[ TARGET ELIMINATED! ]" 2114 settimer 'NoTargetTimer' 0 endif endif endif endif endif if EnableOverheadMessages = 1 if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ CHAIN LINK UNLOCKED!! ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ ASPECT TIER UNLOCKED!! ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead "[ CODEX POINT UNLOCKED! ]" 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY JOB COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY POINTS � ]" 419 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif else if insysmsg "something invisible out of" overhead "� SOMEONE HIDING! �" 6 endif if insysmsg "additional mastery chain link" overhead "[ � CHAIN! � ]" 149 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Yes" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "enough experience to upgrade" overhead "[ � ASPECT � ]" 2234 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Whistle" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have unlocked a codex upgrade point" overhead '[ � CODEX! � ]' 2114 wait 250 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[HighFive" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "You have completed a society job" overhead "[ SOCIETY COMPLETE! ]" 419 wait 500 if EnableUseEmotes = 1 and timer EmoteCooldownTimer > SetEmoteCooldown wait 500 say "[Awoo" settimer EmoteCooldownTimer 0 cooldown "Emote Cooldown" SetEmoteCooldown endif endif if insysmsg "Society Job Progress" overhead "[ � SOCIETY � ]" 419 endif if insysmsg "attempting to steal" or insysmsg "attempting to peek" overhead "[ THIEF DETECTED! ]" 910 endif endif if EnableAutoCarving = 1 and findtype 11552 self while findtype "corpse" ground -1 -1 2 as deadbody and diffhits < CastGreaterHealHPdiff settimer SkinningTimeoutTimer 0 if findtype 11552 self if targetexists hotkey 'cancel current target' endif while not targetexists skill 'forensicevaluation' getlabel backpack backpacklabel endwhile clearsysmsg if targetexists and find deadbody ground -1 -1 2 target 'self' @ignore deadbody wait 250 endif if insysmsg "You dont see anything nearby" clearsysmsg break else if EnableOverheadMessages = 1 and timer SkinningTimer > 3000 overhead '[ SKINNING... ]' 333 settimer SkinningTimer 0 endif break endif else if EnableOverheadMessages = 1 and timer SkinningTimer > 15000 overhead '[ NO SKINNING KNIFE ]' 337 settimer SkinningTimer 0 break endif endif if timer SkinningTimeoutTimer > 1500 or diffhits > CastGreaterHealHPdiff break endif endwhile endif if EnableHealPotion = 1 and diffhits >= HealPotionHPdiff if findtype "Yellow Potion" self as HealPot getlabel HealPot HealPotlabel if "next" in HealPotlabel // Do nothing else @setvar! HealPotionCheck 0 if counttype 3852 self as HealPotCount @setvar! HealPotionCheck HealPotCount endif clearsysmsg dclicktype 3852 getlabel backpack backpackdesc wait 250 if insysmsg "potion satchel used" settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ FREE HEAL POTION ]' 253 endif elseif HealPotionCheck != counttype 3852 self settimer 'HealPotionTimer' 0 cooldown "Healing Potion" HealingPotionCooldown if EnableOverheadMessages = 1 and timer 'HealPotionMessageTimer' > 4500 overhead '[ HEAL POTION ]' 253 endif endif clearsysmsg endif else if timer 'HealPotionMessageTimer' > 4500 and EnableOverheadMessages = 1 overhead '[ NO HEAL POTS! ]' 337 settimer 'HealPotionMessageTimer' 0 endif endif endif if skill 'healing' > 0 and hp < maxhp and not bandaging if findtype 'clean bandage%s%' self hotkey 'Bandage Self' if EnableOverheadMessages = 1 overhead '[ BANDAGING... ]' 88 endif else if EnableOverheadMessages = 1 overhead '[ NO BANDAGES! ]' 337 endif endif endif if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self clearignore getlabel backpack backpacklabel if not findtype "3972" self or not findtype "3962" self or not findtype "3963" self or not findtype "3980" self or not findtype "3976" self or not findtype "3973" self or not findtype "3974" self or not findtype "3981" self if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 if timer MissingRegsTimer > 5000 if counttype "3972" self = 0 overhead '[ NO GARLIC ]' 646 endif if counttype "3962" self = 0 overhead '[ NO BLACK PEARL ]' 3 endif if counttype "3963" self = 0 overhead '[ NO BLOODMOSS ]' 33 endif if counttype "3980" self = 0 overhead '[ NO SULFUROUS ASH ]' 153 endif if counttype "3976" self = 0 overhead '[ NO NIGHTSHADE ]' 363 endif if counttype "3973" self = 0 overhead '[ NO GINSENG ]' 247 endif if counttype "3974" self = 0 overhead '[ NO MANDRAKE ROOT ]' 442 endif if counttype "3981" self = 0 overhead '[ NO SPIDERS SILK ]' 2338 endif settimer MissingRegsTimer 0 endif endif @setvar! MissingRegs 1 else @setvar! MissingRegs 0 endif else @setvar! MissingRegs 0 endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self or not findtype 3981 self @setvar! missingGreaterHealRegs 1 getlabel backpack backpacklabel else @setvar! missingGreaterHealRegs 0 endif if not findtype 3972 self or not findtype 3973 self or not findtype 3974 self @setvar! missingHealRegs 1 getlabel backpack backpacklabel else @setvar! missingHealRegs 0 endif if missingGreaterHealRegs = 1 or missingHealRegs = 1 if timer NoHealRegsTimer > 4000 overhead '[ MISSING HEALING REGS! ]' 337 settimer NoHealRegsTimer 0 endif endif @setvar! SpellInterrupted 0 clearsysmsg if skill 'magery' >= 60 and diffhits >= CastGreaterHealHPdiff and diffhits <= CastHealHPdiff and mana >= 11 and EnableCastGreaterHeal = 1 and not casting and missingGreaterHealRegs != 1 @setvar! SpellInterrupted 0 cast 'greater heal' getlabel backpack backpacklabel settimer spellTimer 0 @setvar! spellCD 2500 while not targetexists and timer spellTimer < spellCD if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer spellTimer > spellCD break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastHealHPdiff and diffhits < CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' endif elseif skill 'magery' >= 40 and diffhits >= CastEmergencyHealHPdiff and mana >= 4 and EnableCastHeal = 1 and not casting and missingHealRegs != 1 while diffhits > CastGreaterHealHPdiff and mana >= 4 and findtype 3972 self and findtype 3973 self and findtype 3974 self and not dead if targetexists hotkey 'Cancel current target' endif @setvar! SpellInterrupted 0 cast 'heal' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if insysmsg "Your concentration is disturbed" interrupt @setvar! SpellInterrupted 1 break endif if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif endwhile if SpellInterrupted = 0 target 'self' getlabel backpack backpacklabel endif if diffhits <= CastGreaterHealHPdiff break endif endwhile endif @setvar! SpellInterrupted 0 if paralyzed and EnableAutoParalyzePouch = 1 if findtype "pouch" self yell "[pouch" wait 250 else if timer PopPouchMessageTimer > 5000 and EnableOverheadMessages = 1 overhead '[ NO MORE POUCHES! ]' 337 settimer PopPouchMessageTimer 0 endif endif endif if EnablePanaceaPotion = 1 and skill 'Alchemy' >= 80 if findbuff "Bleed" or findbuff "Diseased" if not findbuff "panacea potion cooldown" if findtype "Orange Potion" self dclicktype "Orange Potion" wait 250 if findbuff "panacea potion cooldown" and EnableOverheadMessages = 1 overhead '[ PANACEA ACTIVATED ]' 55 cooldown "Panacea Potion" 30000 endif endif endif endif endif if EnableCleansingBrews = 1 if findbuff "Diseased" or findbuff "Bleed" if timer CleansingBrewTimer > 120000 if findtype 50675 self 2935 as CleansingBrew dclick CleansingBrew if EnableOverheadMessages = 1 overhead '[ CLEANSING BREW ]' 2117 endif cooldown 'Cleansing Brew' 120000 settimer CleansingBrewTimer 0 wait 250 else if timer CleansingBrewOverhead > 15000 overhead "[ NO CLEANSING BREWS! ]" 337 settimer CleansingBrewOverhead 0 settimer CleansingBrewTimer 0 endif endif else if EnableOverheadMessages = 1 and timer CleansingBrewOverhead > 15000 overhead '[ BREW ON COOLDOWN! ]' 37 settimer CleansingBrewOverhead 0 endif endif endif endif if EnableCurePotion = 1 or EnableCastCure = 1 while poisoned if findtype "Orange Potion" self and EnableCurePotion = 1 dclicktype "Orange Potion" if EnableOverheadMessages = 1 and timer 'CurePotionMessageTimer' > 3500 if insysmsg "potion satchel used" overhead '[ FREE CURE POTION ]' 44 else overhead '[ CURE POTION ]' 44 endif clearsysmsg settimer 'CurePotionMessageTimer' 0 endif wait 500 else if timer 'CurePotionMessageTimer' > 5000 and EnableOverheadMessages = 1 overhead '[ NO CURE POTS! ]' 337 settimer 'CurePotionMessageTimer' 0 endif if diffhits >= 30 or not findtype 3972 self or not findtype 3973 self break endif if skill 'magery' >= 40 and mana >= 6 and EnableCastCure = 1 and not casting cast 'cure' getlabel backpack backpacklabel settimer AntiStallTimer 0 while not targetexists and timer AntiStallTimer < 1500 if timer AntiStallTimer > 1500 settimer AntiStallTimer 0 break endif wait 100 endwhile wft 1000 target 'self' wait 500 else break endif endif endwhile endif if insysmsg "Mana Thief activated" if EnableOverheadMessages != 0 overhead "[ MANA THIEF! ]" 22 endif cooldown "Mana Thief" 60000 endif if EnableEatHealSnacks = 1 if skill 'Cooking' >= 50 and timer 'EatHealSnackCooldownTimer' > EatHealSnackCooldown and timer 'HealPotionTimer' < 10500 and diffhits > EatSnackHPdiff if findtype "29774|28883|28885|28880|28879|28888|28886|29773|28881" backpack as myhpsnack if EnableOverheadMessages = 1 overhead "[ HP MUNCHING... ]" 420 endif dclick myhpsnack wait 250 settimer 'EatHealSnackCooldownTimer' 0 settimer 'EatManaSnackCooldownTimer' 0 cooldown 'Snacking' EatHealSnackCooldown else if timer FoodMessageTimer > 15000 and EnableOverheadMessages = 1 overhead "[ NO MORE FOOD! ]" 337 settimer FoodMessageTimer 0 endif endif endif endif if targetexists if findtype " Elven Spellblade" self targettype "Elven Spellblade" else target backpack endif endif if not warmode and WarModeToggledWhileFighting = 1 hotkey 'Toggle War Only' @setvar! WarModeToggledWhileFighting 0 endif clearsysmsg hotkey 'target closest grey monster' wait 250 @setvar! TargetToAnalyze lasttarget if insysmsg 'No one matching that' @setvar! AttackModeActive 0 @setvar! TargetToAnalyze 0 else @setvar! TargetToAnalyze lasttarget @setvar! AttackModeActive 2 endif endif endif if dead break endif endwhile ////////////////////// // END ALIVE LOOP // ////////////////////// ///////////////////////// // BEGIN DEATH LOOP: // ///////////////////////// if dead if EnableOverheadMessages = 1 or EnableOverheadMessages = 2 overhead '[ R.I.P. ]' 337 endif wait 1500 while dead if insysmsg "world is saving" settimer "WorldSaveTimer" 0 if EnableOverheadMessages = 1 overhead '[ WORLD SAVING... ]' 253 endif while timer "WorldSaveTimer" < 4500 if insysmsg "save complete" clearsysmsg break endif wait 100 endwhile if EnableOverheadMessages = 1 overhead '[ SAVE COMPLETE! ]' 253 endif endif @setvar! IHAVEDIED 1 wait 500 if timer "WaitingForHealerTimer" > 4000 overhead '[ FIND A HEALER! ]' 0 settimer "WaitingForHealerTimer" 0 endif if findtype "blue moongate|30528|moongate" ground -1 -1 15 as EscapeGate if timer "GateIndicatorTimer" > 2000 overhead " � " 253 EscapeGate settimer "GateIndicatorTimer" 0 endif endif while not gumpexists 3773199800 and findtype "blue moongate|30528|moongate" ground 0 1 2 as EscapeGate dclick EscapeGate wait 500 endwhile while gumpexists 3773199800 gumpresponse 16 wait 500 waitforgump 3773199800 gumpresponse 2 overhead '[ GATING TO TOWN... ]' 88 break endwhile while gumpexists 2957810225 overhead '[ HEALED! ]' 84 gumpresponse 1 wait 1000 gumpclose 2957810225 if EnableDressAfterResurrection = 1 overhead '[ DRESSING... ]' 22 wait 500 dress 'UltimateArcaneMage' wait 500 while queued wait 100 endwhile dress 'UltimateArcaneMage' wait 500 while queued wait 100 endwhile dress 'UltimateArcaneMage' wait 500 endif if EnableRecallAfterResurrection = 1 hotkey 'Toggle Peace Only' @setvar! ResThenTimeToGo 1 @setvar! WarModeToggledWhileFighting 0 wait 500 replay else wait 2500 overhead '[ STOPPING SCRIPT! ]' 88 stop endif endwhile endwhile endif replay ////////////////////// // END DEATH LOOP // ////////////////////// ############################# ### SCRIPT ENDS HERE! ### ############################# // Thank you for using my scripts! I can be contacted via email here: dan@danstockman.com // Good luck out there and say hello if you see me in Avadon (Lord Glacier) - please don't PK me lol