Back to "lumberjack" tags

SUPER Auto-Lumberjacking by dennozz

Description: Auto lumberjacking, cast summons, auto heal, auto store wood in locked box, auto recall on pks.

Warning: This is potentially a huge script, skipping formatting.

You can still click [Copy Script] but you may want use [Download Script] as a file instead.

#SUPER Auto-lumber ver.6.11 #ver.6.11 - Minor fixes #ver.6.10 - Recalling logic fixes #ver.6.01 - Auto summoning and auto healing re-make #ver.6.00 - Added more variables and minor changes #********** INFORMATION **********# #Made by @dennozz on discord. #Inspired/learned by other scrips in https://outlands.uorazorscripts.com/ #IMPORTANT: You will need 1 wooden box and 1 copper key that opens the wooden box (this is for anti-theft) # You can craft wooden boxes with 50 carpentry and 50 tinkering #IMPORTANT: You will need to create an in-game options cooldown named `Danger`. #Options -> Cooldowns -> New Entry -> Name: `Danger` -> Cooldown Type -> `PvP Timer` -> Done #IMPORTANT: Do NOT use the check mark for text and messages filter in razor. # Instead click on check-mark Enable text filter, click ADD button, then type the message you want to filter individually. CLick on the first check-mark and click okay. # Recommended individual filter messages: # `You are already casting a spell` # `You are frozen and cannot move` # `You have not yet recovered from casting a spell` # `You do not see any harvestable resources nearby` # My Gathering template (Anti PK): # Lumber - 120 # Mining - 120 # Magery - 100 # Resist - 80 # Healing - 80 # Tracking -80 # Wrestling - 80 # Spirit - 40 # Alchemy - 20 #********** SET YOUR SETTINGS **********# #--- Set auto recall ---# # 0 - will auto recall when PKs are 40 steps or closer (medioum risk) # 1 - will auto recall when detect PKs at any distance (low risk) @setvar! autoRecall 0 #-- Set recall type --# # 0 - using regs (target the book) # 1 - using scroll (target the book) # 2 - using charge recall from first rune in book # 3 - using charge recall from last rune in book @setvar! recallType 3 #--- Set recall object ---# # 0 - carry one runebook | carry one rune | if multiple runes name the one you recall `home` # 1234 - if you carry multiple runebooks or runetomes set the hue of the book you wish to recall (type `>info` to get hue info) @setvar! recallBookHue 176 #--- If regs are low auto recall ---# # 0 - you dont carry regs # 123 - if below this number will recall @setvar! minRegs 5 #--- Auto split regs ---# # 0 - you dont want to split regs into different groups # 1 - will auto split regs in different groups (anti-theft) @setvar! autoSplitRegs 1 # 0 - will automatically select the bag in your backpack on this order : satchel > pouch > backpack bag > round bag > char backpack # 1 - will automatically select character main backpack only (do not work if regs are already splitted in a different bag) # 2 - will let you target any bag @setvar! autoSelectBag 0 #--- Set Elementals Count ---# @setvar! earthElementals 1 @setvar! waterElementals 0 @setvar! airElementals 0 @setvar! fireElementals 0 @setvar! summonDaemons 0 @setvar! summonCreature 0 #--- Set mushrooms ---# @setvar! mushroomCount 3 @setvar! eatMushWhenManaLowerThan 50 @setvar! mushroomTimerCD 60000 #--- Set potions ---# @setvar! drinkStr 1 @setvar! strengthLowerThan 100 @setvar! drinkAgility 0 @setvar! drinkMagicResist 0 @setvar! drinkHeal 1 @setvar! drinkCure 1 @setvar! drinkRefresh 1 @setvar! drinkWhenMissingStamina 15 #--- Set Mage auto heals ---# @setvar! miniHeal 1 @setvar! greaterHeal 1 @setvar! cureSpell 1 #--- Auto healing hp diffs ---# #--- All variables refer to hit points differences ---# #--- When below certain hit points it will trigger ---# @setvar! activateAutoHealDiff 10 @setvar! startCastMiniHealDiff 10 @setvar! endCastMiniHealDiff 30 @setvar! castEmergencyMiniHealDiff 65 @setvar! startCastGreaterHealDiff 30 @setvar! endCastGreaterHealDiff 200 @setvar! drinkHealPotDiff 30 @setvar! interruptCastingDiff 40 #--- Set Mage Buffs ---# @setvar! magicReflect 1 @setvar! blessSpell 0 @setvar! armorReflect 1 @setvar! protectionSpell 1 @setvar! miniumManaToBuff 75 #--- Meditation ---# @setvar! useMeditationSkill 1 @setvar! meditateWhenManaBelow 50 @setvar! meditateUntilManaReach 65 #--- Set Cooldowns ---# @setvar! storeTimerCD 100000 settimer storeTimer storeTimerCD #--- Weight diff limit ---# @setvar! myWeightDiff 41 @setvar! enableAutoSplitter 1 #--- Autosplitter regs, pots, etc. Set auto select bag ---# # 0 - will let you pick the bag # 1 - will auto select in order : satchel > pouch > backpack bag > rounded bag > main backpack @setvar! autoSelectRegBag 1 #--- Set auto select Potion bag ---# # 0 - will let you pick the bag # 1 - will auto select in order : Potions satchel > pouch > backpack bag > rounded bag > main backpack @setvar! autoSelectPotionBag 1 #--- Set auto select bandage/rope bag ---# # 0 - will let you pick the bag # 1 - will auto select in order : satchel > pouch > backpack bag > rounded bag > main backpack @setvar! autoSelectMiscBag 1 #--- Optional : Have a cooldown named `Heal Pot` ---# @setvar! healingPotCD 11000 #********** DO NOT EDIT FROM HERE UNLESS YOU KNOW HOW TO SCRIPT **********# @setvar! isWorldSaving 0 @setvar! maxwaittimeinms 650 @setvar! missingRegs 0 @setvar! foundBook 0 #** Recall triggers ** @setvar! enemyFound 0 @setvar! myHarvestingTool 3908 #-- elementals variables --# removelist maxFollowersList createlist maxFollowersList @setvar! maxFollowers 0 @setvar! currentFollowers 0 if not varexist castingEarth or followers = 0 @setvar! castingEarth 0 endif if not varexist castingWater or followers = 0 @setvar! castingWater 0 endif if not varexist castingFire or followers = 0 @setvar! castingFire 0 endif if not varexist castingAir or followers = 0 @setvar! castingAir 0 endif if not varexist castingDaemon or followers = 0 @setvar! castingDaemon 0 endif if not varexist castingCreature or followers = 0 @setvar! castingCreature 0 endif if earthElementals = 1 pushlist maxFollowersList x pushlist maxFollowersList x elseif earthElementals = 2 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x endif if waterElementals = 1 pushlist maxFollowersList x pushlist maxFollowersList x elseif waterElementals = 2 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x endif if airElementals = 1 pushlist maxFollowersList x pushlist maxFollowersList x elseif airElementals = 2 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x endif if fireElementals = 1 pushlist maxFollowersList x pushlist maxFollowersList x elseif fireElementals = 2 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x endif if summonDaemons = 1 pushlist maxFollowersList x pushlist maxFollowersList x elseif summonDaemons = 2 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x endif if summonCreature = 1 pushlist maxFollowersList x elseif summonCreature = 2 pushlist maxFollowersList x pushlist maxFollowersList x elseif summonCreature = 3 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x elseif summonCreature = 4 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x elseif summonCreature = 5 pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x pushlist maxFollowersList x endif if list maxFollowersList = 0 @setvar! maxFollowers 0 elseif list maxFollowersList = 1 @setvar! maxFollowers 1 elseif list maxFollowersList = 2 @setvar! maxFollowers 2 elseif list maxFollowersList = 3 @setvar! maxFollowers 3 elseif list maxFollowersList = 4 @setvar! maxFollowers 4 else @setvar! maxFollowers 5 endif if not varexist earthFirsty or followers = 0 @setvar! earthFirsty 0 endif if not varexist earthSecondly or followers = 0 @setvar! earthSecondly 0 endif if not varexist waterFirsty or followers = 0 @setvar! waterFirsty 0 endif if not varexist waterSecondly or followers = 0 @setvar! waterSecondly 0 endif if not varexist airFirsty or followers = 0 @setvar! airFirsty 0 endif if not varexist airSecondly or followers = 0 @setvar! airSecondly 0 endif if not varexist fireFirsty or followers = 0 @setvar! fireFirsty 0 endif if not varexist fireSecondly or followers = 0 @setvar! fireSecondly 0 endif if not varexist daemonFirsty or followers = 0 @setvar! daemonFirsty 0 endif if not varexist daemonSecondly or followers = 0 @setvar! daemonSecondly 0 endif if not varexist creatureFirsty or followers = 0 @setvar! creatureFirsty 0 endif if not varexist creatureSecondly or followers = 0 @setvar! creatureSecondly 0 endif if not varexist creatureThirdy or followers = 0 @setvar! creatureThirdy 0 endif if not varexist creatureFourthy or followers = 0 @setvar! creatureFourthy 0 endif if not varexist creatureFithy or followers = 0 @setvar! creatureFithy 0 endif #-- list creation --# if not listexists earthListy or followers = 0 removelist earthListy createlist earthListy endif if not listexists waterListy or followers = 0 removelist waterListy createlist waterListy endif if not listexists airListy or followers = 0 removelist airListy createlist airListy endif if not listexists fireListy or followers = 0 removelist fireListy createlist fireListy endif if not listexists daemonListy or followers = 0 removelist daemonListy createlist daemonListy endif if not listexists creatureListy or followers = 0 removelist creatureListy createlist creatureListy endif if maxFollowers > 5 overhead "Error Max Followers > 5" sysmsg "Error Max Followers > 5: Check your followers settings" stop endif #** Script msgs timers ** @setvar! scriptMessageCD 4500 settimer scriptMessageTimer 0 @setvar! beingAttackedCD 5000 settimer beingAttackedTimer 5000 #--- Script msgs timers ---# @setvar! overweightMessageCD 3000 settimer overweightMessageTimer overweightMessageCD @setvar! noRegsMessageCD 4000 settimer noRegsMessageTimer noRegsMessageCD @setvar! allGuardCD 3000 settimer allGuardTimer allGuardCD @setvar! foodMessageCD 3333 settimer foodMessageTimer foodMessageCD @setvar! autoHealMessageCD 4500 settimer autoHealMessageTimer 0 #--- Summons timers ---# @setvar! summonMsgCD 1500 settimer summonMsgTimer summonMsgCD #--- Resources timers ---# @setvar! pouchMessageCD 2000 settimer pouchMessageTimer pouchMessageCD @setvar! aidsMessageCD 2500 settimer aidsMessageTimer aidsMessageCD @setvar! whiteMessageCD 3000 settimer whiteMessageTimer whiteMessageCD @setvar! blueMessageCD 3500 settimer blueMessageTimer blueMessageCD @setvar! blackMessageCD 4000 settimer blackMessageTimer blackMessageCD @setvar! orangeMessageCD 4500 settimer orangeMessageTimer orangeMessageCD @setvar! yellowMessageCD 5000 settimer yellowMessageTimer yellowMessageCD @setvar! redMessageCD 5500 settimer redMessageTimer redMessageCD #--- Magery buffs timers ---# @setvar! magicReflectCD 15000 settimer magicReflectTimer magicReflectCD @setvar! armorReflectCD 15000 settimer armorReflectTimer armorReflectCD @setvar! protectionCD 15000 settimer protectionTimer protectionCD @setvar! manaMessageCD 2222 settimer manaMessageTimer manaMessageCD #--- Skills timers ---# @setvar! spiritSpeakCD 60000 if not timerexists spiritSpeakTimer settimer spiritSpeakTimer spiritSpeakCD endif @setvar! meditationCD 10500 if not timerexists meditationTimer settimer meditationTimer meditationCD endif @setvar! meditationMessageCD 2777 if not timerexists meditationMessageTimer settimer meditationMessageTimer meditationMessageCD endif if not timerexists mushroomTimer settimer mushroomTimer mushroomTimerCD endif #********** PRE-SCRIPT FOOD BUFF AND TRACKING ON ********** if not findbuff "food" and findtype "tray" backpack as fody dclick fody wait 200 endif #********* CREATE MUSHROOMS ********* if insysmsg "You create" endif while counttype 29012 backpack < mushroomCount and findtype 3963 self and findtype 3976 self and mana > 3 cast 'create food' while not casting cast 'create food' endwhile while casting endwhile wait 200 getlabel backpack xxx if insysmsg! "you create" if insysmsg "you create a magic" else sysmsg "Wizard's Grimoire `create food` not found" 34 @setvar! mushroomCount 0 break endif endif endwhile if not findbuff "tracking" while not gumpexists 4267467659 sysmsg "opening tracking..." 11 skill "tracking" wait maxwaittimeinms endwhile while not insysmsg "You will now hunt all hostile players" sysmsg "setting track to hostile players..." 11 gumpresponse 8 wait 500 waitforgump 4267467659 maxwaittimeinms endwhile if ingump "Begin Hunting" 4267467659 gumpresponse 6 wait maxwaittimeinms waitforgump 4267467659 maxwaittimeinms wait maxwaittimeinms gumpclose 4267467659 wait 100 endif sysmsg "* Now tracking hostile players *" 66 endif #********** AUTO SPLIT REAGENTS **********# clearignore if enableAutoSplitter = 1 @setvar! amount 0 @setvar! myRegBag 0 @setvar! myPotionBag 0 @setvar! myBandageBag 0 @setvar! maxwaittimeinms 650 if autoSelectRegBag = 1 if findtype 30765 self as b @setvar! myRegBag b elseif findtype 3705 self as b @setvar! myRegBag b elseif findtype 3701 self as b @setvar! myRegBag b elseif findtype 3702 self as b @setvar! myRegBag b else @setvar! myRegBag backpack endif else clearsysmsg overhead "Select bag:" 68 @setvar! myRegBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myRegBag endwhile if find myRegBag self getlabel myRegBag bagLabel if "wizard's satchel" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel sysmsg "new bag set" 55 else @setvar! myRegBag 0 overhead "That is not a bag" 34 sysmsg "That is not a bag" 34 stop endif else overhead "No bag found!" 34 stop endif endif if autoSelectPotionBag = 1 if findtype 31262 self as b @setvar! myPotionBag b elseif findtype 3705 self as b @setvar! myPotionBag b elseif findtype 3701 self as b @setvar! myPotionBag b elseif findtype 3702 self as b @setvar! myPotionBag b else @setvar! myPotionBag backpack endif else clearsysmsg overhead "Select Potion bag:" 68 @setvar! myPotionBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myPotionBag endwhile if find myPotionBag self getlabel myPotionBag bagLabel if "alchemists satchel" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel sysmsg "new bag set" 55 else @setvar! myPotionBag 0 overhead "That is not a bag" 34 sysmsg "That is not a bag" 34 stop endif else overhead "No bag found!" 34 stop endif endif #***** Misc Items ***** if autoSelectMiscBag = 1 if findtype 3705 self as b @setvar! myMiscBag b elseif findtype 3701 self as b @setvar! myMiscBag b elseif findtype 3702 self as b @setvar! myMiscBag b else @setvar! myMiscBag backpack endif else clearsysmsg overhead "Select Misc bag:" 68 @setvar! myMiscBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myMiscBag endwhile if find myMiscBag self getlabel myMiscBag bagLabel if "wizard's satchel" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel sysmsg "new bag set" 55 else @setvar! myMiscBag 0 overhead "That is not a bag" 34 sysmsg "That is not a bag" 34 stop endif else overhead "No bag found!" 34 stop endif endif overhead "Splitter Begin.." 55 #***** SPIDER SILK 3981 ***** @setvar! regsID 3981 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting silks.." 0 if index = 0 lift regs amount drop myRegBag 44 65 0 elseif index = 1 lift regs amount drop myRegBag 68 65 0 elseif index = 2 lift regs amount drop myRegBag 96 65 0 elseif index = 3 lift regs amount drop myRegBag 121 65 0 else lift regs amount drop myRegBag 142 65 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** BLACK PEARL 3962 ***** @setvar! regsID 3962 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting pearls.." 11 if index = 0 lift regs amount drop myRegBag 44 65 0 elseif index = 1 lift regs amount drop myRegBag 68 65 0 elseif index = 2 lift regs amount drop myRegBag 96 65 0 elseif index = 3 lift regs amount drop myRegBag 121 65 0 else lift regs amount drop myRegBag 142 65 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** NIGHTSHADE 3976 ***** @setvar! regsID 3976 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting shades.." 66 if index = 0 lift regs amount drop myRegBag 44 88 0 elseif index = 1 lift regs amount drop myRegBag 68 88 0 elseif index = 2 lift regs amount drop myRegBag 96 88 0 elseif index = 3 lift regs amount drop myRegBag 121 88 0 else lift regs amount drop myRegBag 142 88 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** MANDRAKE ROOT 3974 ***** @setvar! regsID 3974 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting roots.." 439 if index = 0 lift regs amount drop myRegBag 44 88 0 elseif index = 1 lift regs amount drop myRegBag 68 88 0 elseif index = 2 lift regs amount drop myRegBag 96 88 0 elseif index = 3 lift regs amount drop myRegBag 121 88 0 else lift regs amount drop myRegBag 142 88 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** SULFUROUS ASH 3980 ***** @setvar! regsID 3980 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting ashes.." 56 if index = 0 lift regs amount drop myRegBag 44 112 0 elseif index = 1 lift regs amount drop myRegBag 68 112 0 elseif index = 2 lift regs amount drop myRegBag 96 112 0 elseif index = 3 lift regs amount drop myRegBag 121 112 0 else lift regs amount drop myRegBag 142 112 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** GINSENG 3973 ***** @setvar! regsID 3973 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting gings.." 149 if index = 0 lift regs amount drop myRegBag 44 112 0 elseif index = 1 lift regs amount drop myRegBag 68 112 0 elseif index = 2 lift regs amount drop myRegBag 96 112 0 elseif index = 3 lift regs amount drop myRegBag 121 112 0 else lift regs amount drop myRegBag 142 112 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** BLOSSMOSS 3963 ***** @setvar! regsID 3963 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting bloods.." 35 if index = 0 lift regs amount drop myRegBag 44 130 0 elseif index = 1 lift regs amount drop myRegBag 68 130 0 elseif index = 2 lift regs amount drop myRegBag 96 130 0 elseif index = 3 lift regs amount drop myRegBag 121 130 0 else lift regs amount drop myRegBag 142 130 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** GARILIC 3972 ***** @setvar! regsID 3972 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting garlics.." 910 if index = 0 lift regs amount drop myRegBag 44 130 0 elseif index = 1 lift regs amount drop myRegBag 68 130 0 elseif index = 2 lift regs amount drop myRegBag 96 130 0 elseif index = 3 lift regs amount drop myRegBag 121 130 0 else lift regs amount drop myRegBag 142 130 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** RECALL SCROLL 8012 ***** @setvar! regsID 8012 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 5 @setvar! amount 1 elseif counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 40 @setvar! amount 8 else @setvar! amount 15 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting scrolls.." 0 if index = 0 lift regs amount drop myRegBag 44 88 0 elseif index = 1 lift regs amount drop myRegBag 68 88 0 elseif index = 2 lift regs amount drop myRegBag 96 88 0 elseif index = 3 lift regs amount drop myRegBag 121 88 0 else lift regs amount drop myRegBag 142 88 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Greater Heal 3852 ***** @setvar! regsID 3852 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Greater Heal.." 48 if index = 0 lift regs amount drop myPotionBag 44 65 0 elseif index = 1 lift regs amount drop myPotionBag 68 65 0 elseif index = 2 lift regs amount drop myPotionBag 96 65 0 elseif index = 3 lift regs amount drop myPotionBag 121 65 0 else lift regs amount drop myPotionBag 142 65 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Greater Cure 3847 ***** @setvar! regsID 3847 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Greater Cure.." 44 if index = 0 lift regs amount drop myPotionBag 44 65 0 elseif index = 1 lift regs amount drop myPotionBag 68 65 0 elseif index = 2 lift regs amount drop myPotionBag 96 65 0 elseif index = 3 lift regs amount drop myPotionBag 121 65 0 else lift regs amount drop myPotionBag 142 65 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Greater Agility 3848 ***** @setvar! regsID 3848 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 1 elseif counttype regsID self <= 20 @setvar! amount 2 elseif counttype regsID self <= 50 @setvar! amount 4 elseif counttype regsID self <= 100 @setvar! amount 10 elseif counttype regsID self <= 150 @setvar! amount 20 elseif counttype regsID self <= 200 @setvar! amount 30 else @setvar! amount 40 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Greater Agility.." 93 if index = 0 lift regs amount drop myPotionBag 44 88 0 elseif index = 1 lift regs amount drop myPotionBag 68 88 0 elseif index = 2 lift regs amount drop myPotionBag 96 88 0 elseif index = 3 lift regs amount drop myPotionBag 121 88 0 else lift regs amount drop myPotionBag 142 88 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Total Refresh 3851 ***** @setvar! regsID 3851 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Total Refresh.." 38 if index = 0 lift regs amount drop myPotionBag 44 88 0 elseif index = 1 lift regs amount drop myPotionBag 68 88 0 elseif index = 2 lift regs amount drop myPotionBag 96 88 0 elseif index = 3 lift regs amount drop myPotionBag 121 88 0 else lift regs amount drop myPotionBag 142 88 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Greater Magic Resist 3846 ***** @setvar! regsID 3846 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 1 elseif counttype regsID self <= 20 @setvar! amount 2 elseif counttype regsID self <= 50 @setvar! amount 5 elseif counttype regsID self <= 100 @setvar! amount 10 elseif counttype regsID self <= 150 @setvar! amount 20 elseif counttype regsID self <= 200 @setvar! amount 30 else @setvar! amount 40 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Greater Magic Resist.." 897 if index = 0 lift regs amount drop myPotionBag 44 112 0 elseif index = 1 lift regs amount drop myPotionBag 68 112 0 elseif index = 2 lift regs amount drop myPotionBag 96 112 0 elseif index = 3 lift regs amount drop myPotionBag 121 112 0 else lift regs amount drop myPotionBag 142 112 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Greater Strength 3849 ***** @setvar! regsID 3849 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Greater Strength.." 2041 if index = 0 lift regs amount drop myPotionBag 44 112 0 elseif index = 1 lift regs amount drop myPotionBag 68 112 0 elseif index = 2 lift regs amount drop myPotionBag 96 112 0 elseif index = 3 lift regs amount drop myPotionBag 121 112 0 else lift regs amount drop myPotionBag 142 112 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Greater Explode 3853 ***** @setvar! regsID 3853 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Greater Explode.." 1275 if index = 0 lift regs amount drop myPotionBag 44 130 0 elseif index = 1 lift regs amount drop myPotionBag 68 130 0 elseif index = 2 lift regs amount drop myPotionBag 96 130 0 elseif index = 3 lift regs amount drop myPotionBag 121 130 0 else lift regs amount drop myPotionBag 142 130 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Lethal Poison 3850 ***** @setvar! regsID 3850 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myPotionBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Lethal Poison.." 1267 if index = 0 lift regs amount drop myPotionBag 44 130 0 elseif index = 1 lift regs amount drop myPotionBag 68 130 0 elseif index = 2 lift regs amount drop myPotionBag 96 130 0 elseif index = 3 lift regs amount drop myPotionBag 121 130 0 else lift regs amount drop myPotionBag 142 130 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Bandages 3617 ***** @setvar! regsID 3617 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myMiscBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Bandages.." 0 if index = 0 lift regs amount drop myMiscBag 44 65 0 elseif index = 1 lift regs amount drop myMiscBag 68 65 0 elseif index = 2 lift regs amount drop myMiscBag 96 65 0 elseif index = 3 lift regs amount drop myMiscBag 121 65 0 else lift regs amount drop myMiscBag 142 65 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile #***** Rope 5370 ***** @setvar! regsID 5370 @setvar! myCounter 0 while findtype regsID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype regsID self <= 10 @setvar! amount 2 elseif counttype regsID self <= 20 @setvar! amount 4 elseif counttype regsID self <= 50 @setvar! amount 10 elseif counttype regsID self <= 100 @setvar! amount 20 elseif counttype regsID self <= 150 @setvar! amount 30 elseif counttype regsID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype regsID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myMiscBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting Rope.." 360 if index = 0 lift regs amount drop myMiscBag 44 65 0 elseif index = 1 lift regs amount drop myMiscBag 68 65 0 elseif index = 2 lift regs amount drop myMiscBag 96 65 0 elseif index = 3 lift regs amount drop myMiscBag 121 65 0 else lift regs amount drop myMiscBag 142 65 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile overhead "Splitter completed" 0 endif sysmsg "* auto-lumber activated *" 66 overhead "* auto-lumber activated *" 66 clearsysmsg clearhands both while not dead settimer cycleTimer 0 if targetexists hotkey 'cancel current target' endif if enemyFound = 0 if insysmsg! "Now tracking" or insysmsg! "Distance to" @setvar! enemyFound 1 endif endif #********** TRIGGER AUTO-RECALL IF BEING ATTACKED / OUT OF REGS / ENEMY TOO CLOSE ********** if cooldown "Danger" > 0 if timer beingAttackedTimer > beingAttackedCD sysmsg "* being attacked *" 34 settimer beingAttackedTimer 0 endif @setvar! autoRecall 1 @setvar! enemyFound 1 endif if minRegs != 0 if counttype 3963 self <= minRegs or counttype 3973 self <= minRegs or counttype 3972 self <= minRegs or counttype 3980 self <= minRegs or counttype 3962 self <= minRegs or counttype 3981 self <= minRegs or counttype 3974 self <= minRegs or counttype 3976 self <= minRegs overhead "* low reagents *" 34 sysmsg " *low reagents recalling out *" 34 @setvar! autoRecall 1 @setvar! enemyFound 1 endif endif if insysmsg ": 0 s" or insysmsg ": 1 s" or insysmsg ": 2 s" or insysmsg ": 3 s" or insysmsg ": 4 s" or insysmsg ": 5 s" or insysmsg ": 6 s" or insysmsg ": 7 s" or insysmsg ": 8 s" or insysmsg ": 9 s" sysmsg "* recalling enemy very close [d 0-9] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg ": 10 s" or insysmsg ": 11 s" or insysmsg ": 12 s" or insysmsg ": 13 s" or insysmsg ": 14 s" or insysmsg ": 15 s" or insysmsg ": 16 s" or insysmsg ": 17 s" sysmsg "* recalling enemy very close [d 10-17] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg ": 18 s" or insysmsg ": 19 s" or insysmsg ": 20 s" or insysmsg ": 21 s" or insysmsg ": 22 s" or insysmsg ": 23 s" or insysmsg ": 24 s" or insysmsg ": 25 s" sysmsg "* recalling enemy very close [d 18-25] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg ": 26 s" or insysmsg ": 27 s" or insysmsg ": 28 s" or insysmsg ": 29 s" or insysmsg ": 30 s" or insysmsg ": 31 s" or insysmsg ": 32 s" or insysmsg ": 33 s" sysmsg "* recalling enemy very close [d 26-33] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg ": 34 s" or insysmsg ": 35 s" or insysmsg ": 36 s" or insysmsg ": 37 s" or insysmsg ": 38 s" or insysmsg ": 39 s" or insysmsg ": 40 s" sysmsg "* recalling enemy very close [d 34-40] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg "(0 s" or insysmsg "(1 s" or insysmsg "(2 s" or insysmsg "(3 s" or insysmsg "(4 s" or insysmsg "(5 s" or insysmsg "(6 s" or insysmsg "(7 s" or insysmsg "(8 s" or insysmsg "(9 s" sysmsg "* recalling enemy very close [n 0-9] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg "(10 s" or insysmsg "(11 s" or insysmsg "(12 s" or insysmsg "(13 s" or insysmsg "(14 s" or insysmsg "(15 s" or insysmsg "(16 s" or insysmsg "(17 s" sysmsg "* recalling enemy very close [n 10-17] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg "(18 s" or insysmsg "(19 s" or insysmsg "(20 s" or insysmsg "(21 s" or insysmsg "(22 s" or insysmsg "(23 s" or insysmsg "(24 s" or insysmsg "(25 s" sysmsg "* recalling enemy very close [n 18-25] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg "(26 s" or insysmsg "(27 s" or insysmsg "(28 s" or insysmsg "(29 s" or insysmsg "(30 s" or insysmsg "(31 s" or insysmsg "(32 s" or insysmsg "(33 s" sysmsg "* recalling enemy very close [n 26-33] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 elseif insysmsg "(34 s" or insysmsg "(35 s" or insysmsg "(36 s" or insysmsg "(37 s" or insysmsg "(38 s" or insysmsg "(39 s" or insysmsg "(40 s" sysmsg "* recalling enemy very close [n 34-40] *" 33 @setvar! autoRecall 1 @setvar! enemyFound 1 endif #********** AUTO-RECALL OUT IF NECESSARY ********** if enemyFound = 1 and autoRecall = 1 sysmsg "recalling..." 66 interrupt clearignore if targetexists hotkey 'cancel current target' wait 250 endif while mana <= 10 and diffhits < activateAutoHealDiff overhead "* low mana to recall *" 44 wait maxwaittimeinms endwhile #********** USING REAGENTS OR RECALL SCROLL ********** if insysmsg "that location is blocked" endif if insysmsg "charges" endif if insysmsg "Your concentration is disturbed" endif if insysmsg "marked" endif if recallType = 0 or recallType = 1 while not casting if recallType = 0 cast 'recall' #sysmsg "recalling using regs" 11 else dclicktype "recall" self #sysmsg "recalling using scroll" 11 endif endwhile while not targetexists if insysmsg "Your concentration is disturbed" interrupt break endif endwhile if targetexists and findtype "runebook|runetome" backpack as obj while findtype "runebook|runetome" backpack as book if hue book = recallBookHue target book wait 250 break endif @ignore book endwhile clearignore if insysmsg "marked" sysmsg "Runebook is not marked! Mark the book NOW!" 16 elseif insysmsg "blocked" sysmsg "Location Blocked! Now using book charge first rune!" 16 @setvar! recallType 2 elseif not findtype 3974 self or not findtype 3962 self or not findtype 3963 self sysmsg "No reagents! Now using book charge first rune!" @setvar! recallType 2 elseif targetexists sysmsg "Hued Book not found. Switching to any book hue" 16 @setvar! recallBookHue 0 else overhead "Successful" 65 sysmsg "Lumberjacking Completed!" 65 stop endif elseif targetexists and findtype "recall rune" backpack as obj @setvar! tempRune 0 while findtype "recall rune" backpack as obj getlabel obj runeLabel if "blank" in runeLabel else if "home" in runeLabel target obj @setvar! tempRune obj break endif @setvar! tempRune obj endif @ignore obj endwhile @clearignore wait 250 if tempRune = 0 sysmsg "No recalleable rune found" 34 hotkey "cancel current target" elseif insysmsg "blocked" sysmsg "Location Blocked!" 34 else overhead "Successful" 65 sysmsg "Lumberjacking Completed!" 65 stop endif elseif targetexists sysmsg "No recall book or rune found" 34 stop endif elseif recallType = 2 or recallType = 3 #********** USING RECALL BOOK CHARGE ********** if findtype "runebook|runetome" backpack while diffhits < activateAutoHealDiff @setvar! foundBook 0 while findtype "runebook" backpack as book if hue book = recallBookHue or recallBookHue = 0 dclick book backpack waitforgump 1551740969 maxwaittimeinms if recallType = 2 gumpresponse 2 elseif recallType = 3 gumpresponse 92 endif @setvar! foundBook book break else @ignore book endif endwhile while foundBook = 0 and findtype "runetome" backpack as book if gumpexists 167090027 gumpclose 167090027 wait 250 endif if hue book = recallBookHue or recallBookHue = 0 dclick book backpack waitforgump 167090027 maxwaittimeinms if recallType = 2 gumpresponse 100 elseif recallType = 3 gumpresponse 125 endif @setvar! foundBook book break else @ignore book endif endwhile wait 250 clearignore while casting endwhile wait 250 if foundBook = 0 sysmsg "Recall book not found!" 34 sysmsg "Switching to type 0 using reagents" 55 elseif insysmsg "charges" sysmsg "No recall charges!" 34 sysmsg "Switching to type 0 using reagents" 55 elseif insysmsg "This book" sysmsg "Recall book cooldown!" 34 else if insysmsg "concentration" sysmsg "Interrupted!" 34 elseif insysmsg "location" sysmsg "Location blocked!" if recallType = 2 @setvar! recallType 3 sysmsg "Switching to type 3 last rune charge" 55 else @setvar! recallType 2 sysmsg "Switching to type 2 first rune charge" 55 endif else overhead "Successful" 65 sysmsg "Lumberjacking Completed!" 65 stop endif endif endwhile else overhead "No runebook or runetome found to use charge!" 34 endif else overhead "Variable 'recallType' value out of range" 34 endif endif #********** AUTO HEALING START **********# while diffhits >= activateAutoHealDiff or paralyzed or poisoned if dead stop endif if not findtype 3972 or not findtype 3962 or not findtype 3963 or not findtype 3980 or not findtype 3976 or not findtype 3973 or not findtype 3974 or not findtype 3981 @setvar! missingRegs 1 if timer noRegsMessageTimer > noRegsMessageCD overhead "* Missing Reagents *" 34 settimer noRegsMessageTimer 0 endif endif @setvar! castingInterrupted 0 if timer allGuardTimer > allGuardCD and followers > 0 sysmsg "heal loop: all guard" say 'ALL Guard ME' 88 settimer allGuardTimer 0 endif if timer autoHealMessageTimer > autoHealMessageCD overhead "* auto-healing *" 90 settimer autoHealMessageTimer 0 endif if not findbuff "food" if findtype "tray" backpack as fody dclick fody wait 200 else if timer foodMessageTimer > foodMessageCD overhead "No food found!" 34 settimer foodMessageTimer 0 endif endif endif #--- Drink str pot ---# if drinkStr = 1 and str < strengthLowerThan if not findbuff "Strength" if findtype "White Potion" self dclicktype "White Potion" wait 200 else if timer whiteMessageTimer > whiteMessageCD overhead "Out of str pots" 34 settimer whiteMessageTimer 0 endif endif endif endif #--- Drink agility pot ---# if drinkAgility = 1 if not findbuff "Agility" if findtype "Blue Potion" self dclicktype "Blue Potion" wait 200 else if timer blueMessageTimer > blueMessageCD overhead "Out of agility pots" 34 settimer blueMessageTimer 0 endif endif endif endif #--- Drink magic resist pot ---# if drinkMagicResist = 1 if not findbuff "Magic Resist" if findtype "Black Potion" self dclicktype "Black Potion" wait 200 else if timer blackMessageTimer > blackMessageCD overhead "Out of resist pots" 34 settimer blackMessageTimer 0 endif endif endif endif #--- Drink red pot ---# if diffstam > drinkWhenMissingStamina and 1 = drinkRefresh if findtype "Red Potion" self dclicktype "Red Potion" wait 200 else if timer redMessageTimer > redMessageCD overhead "Out of refresh pots" 34 settimer redMessageTimer 0 endif endif endif #--- Trapped ---# if paralyzed if findtype "pouch" backpack 38 yell "[pouch" wait 200 else if timer pouchMessageTimer > pouchMessageCD overhead "Out of Pouches!" 34 settimer pouchMessageTimer 0 endif endif endif #--- Self bandage ---# if diffhits >= 1 and not bandaging if skill 'healing' >= 50 or skill "veterinary" >= 50 if findtype 'clean bandage%s%' backpack if targetexists hotkey 'cancel current target' endif dclicktype 'clean bandage%s%' waitfortarget maxwaittimeinms target 'self' wait 200 else if timer aidsMessageTimer > aidsMessageCD overhead "Out of bandages" 34 settimer aidsMessageTimer 0 endif endif endif endif #--- Poisoned ---# if 1 = drinkCure or 1 = cureSpell while poisoned if findtype "Orange Potion" self dclicktype "Orange Potion" wait 200 else if timer orangeMessageTimer > orangeMessageCD overhead "Out of cure pots" 34 settimer orangeMessageTimer 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 1 = cureSpell and not casting cast 'cure' wait 50 while not casting if targetexists hotkey 'cancel current target' endif cast 'cure' wait 50 endwhile while not targetexists and casting endwhile waitfortarget maxwaittimeinms target 'self' wait 200 else break endif endif endwhile endif #--- Drink Heal Pot ---# if diffhits >= drinkHealPotDiff and 1 = drinkHeal if findtype "Yellow Potion" self as hPot getlabel hPot potLabel if "next" in potLabel #do nothing else @setvar! ch 0 if counttype 3852 self as c @setvar! ch c endif if insysmsg "potion satchel used" endif dclicktype 3852 getlabel backpack xxx wait 200 if ch != counttype 3852 self or insysmsg "potion satchel used" cooldown "Heal Pot" healingPotCD endif endif else if timer yellowMessageTimer > yellowMessageCD overhead "Out of heals pots" 34 settimer yellowMessageTimer 0 endif endif endif #--- Cast heals ---# if skill 'magery' >= 40 and diffhits >= startCastMiniHealDiff and diffhits < endCastMiniHealDiff and mana >= 4 and miniHeal = 1 and not casting if insysmsg "Your concentration is disturbed" endif sysmsg 'mini heal' 11 cast 'heal' while not casting if targetexists hotkey 'cancel current target' endif cast 'heal' endwhile while not targetexists if insysmsg "Your concentration is disturbed" interrupt @setvar! castingInterrupted 1 break endif endwhile if 0 = castingInterrupted target 'self' endif elseif skill 'magery' >= 40 and diffhits >= castEmergencyMiniHealDiff and mana >= 4 and miniHeal = 1 and not casting if insysmsg "Your concentration is disturbed" endif sysmsg "mini heal" 11 cast 'heal' while not casting if targetexists hotkey 'cancel current target' endif cast 'heal' endwhile while not targetexists if insysmsg "Your concentration is disturbed" interrupt @setvar! castingInterrupted 1 break endif endwhile if 0 = castingInterrupted target 'self' endif elseif skill 'magery' >= 60 and diffhits >= startCastGreaterHealDiff and diffhits < endCastGreaterHealDiff and mana >= 11 and greaterHeal = 1 and not casting if insysmsg "Your concentration is disturbed" endif sysmsg "greater heal" 11 cast 'greater heal' while not casting if targetexists hotkey 'cancel current target' endif cast 'greater heal' endwhile @settimer! spellTimer 0 @setvar! spellCD 800 while not targetexists if insysmsg "Your concentration is disturbed" interrupt @setvar! castingInterrupted 1 break endif if timer spellTimer < spellCD #--- Poisoned ---# if 1 = drinkCure while poisoned and casting and not targetexists if findtype "Orange Potion" self dclicktype "Orange Potion" wait 200 else if timer orangeMessageTimer > orangeMessageCD overhead "Out of cure pots" 34 settimer orangeMessageTimer 0 endif break endif endwhile endif #--- Drink Heal Pot ---# if diffhits >= drinkHealPotDiff and 1 = drinkHeal and casting and not targetexists if findtype "Yellow Potion" self as hPot getlabel hPot potLabel if "next" in potLabel #do nothing else @setvar! ch 0 if counttype 3852 self as c @setvar! ch c endif if insysmsg "potion satchel used" endif dclicktype 3852 getlabel backpack xxx wait 200 if ch != counttype 3852 self or insysmsg "potion satchel used" cooldown "Heal Pot" healingPotCD if diffhits < activateAutoHealDiff interrupt if targetexists hotkey 'cancel current target' endif endif endif endif else if timer yellowMessageTimer > yellowMessageCD overhead "Out of heals pots" 34 settimer yellowMessageTimer 0 endif endif endif endif endwhile if 0 = castingInterrupted target 'self' endif endif endwhile #********** AUTO-MAGERY BUFFS IF NEEDED ********** @setvar! castingInterrupted 0 if magicReflect = 1 and skill 'magery' >= 70 and not findbuff "Magic Reflection" and mana >= miniumManaToBuff and diffhits < activateAutoHealDiff and timer magicReflectTimer > magicReflectCD and findtype 3972 self and findtype 3974 self and findtype 3981 self if insysmsg "that spell will not" endif if insysmsg "that spell is already" endif sysmsg "magic reflect" 11 cast 'Magic Reflection' while not casting getlabel backpack xxx wait 200 if insysmsg "that spell will not" or insysmsg "that spell is already" settimer magicReflectTimer 0 break endif if targetexists hotkey 'cancel current target' endif cast 'Magic Reflection' endwhile while casting if diffhits >= interruptCastingDiff interrupt @setvar! castingInterrupted 1 break endif #--- Poisoned ---# if 1 = drinkCure while poisoned and casting and not targetexists if findtype "Orange Potion" self sysmsg "pot cure - reflect" 11 dclicktype "Orange Potion" wait 200 else if timer orangeMessageTimer > orangeMessageCD overhead "Out of cure pots" 34 settimer orangeMessageTimer 0 endif break endif endwhile endif #--- Drink Heal Pot ---# if diffhits >= drinkHealPotDiff and 1 = drinkHeal and casting and not targetexists if findtype "Yellow Potion" self as hPot getlabel hPot potLabel if "next" in potLabel #do nothing else @setvar! ch 0 if counttype 3852 self as c @setvar! ch c endif if insysmsg "potion satchel used" endif sysmsg "pot heal - reflect" 11 dclicktype 3852 getlabel backpack xxx wait 200 if ch != counttype 3852 self or insysmsg "potion satchel used" cooldown "Heal Pot" healingPotCD endif endif else if timer yellowMessageTimer > yellowMessageCD overhead "Out of heals pots" 34 settimer yellowMessageTimer 0 endif endif endif endwhile wait 200 endif if armorReflect = 1 and skill 'magery' >= 30 and not findbuff "Reactive Armor" and mana >= miniumManaToBuff and diffhits < activateAutoHealDiff and timer armorReflectTimer > armorReflectCD and findtype 3980 self and findtype 3972 self and findtype 3981 self if insysmsg "that spell will not" endif if insysmsg "that spell is already" endif sysmsg "reflect armor" 11 cast 'Reactive Armor' while not casting getlabel backpack xxx wait 200 if insysmsg "that spell will not" or insysmsg "that spell is already" settimer armorReflectTimer 0 break endif if targetexists hotkey 'cancel current target' endif cast 'Reactive Armor' endwhile while casting endwhile getlabel backpack xxx wait 200 endif if protectionSpell = 1 and skill 'magery' >= 40 and not findbuff "Protection" and mana >= miniumManaToBuff and diffhits < activateAutoHealDiff and findtype 3980 self and findtype 3972 self and findtype 3973 self sysmsg "protect" 11 cast 'Protection' while not casting if targetexists hotkey 'cancel current target' endif cast 'Protection' endwhile while casting endwhile wait 200 endif if blessSpell = 1 and skill 'magery' >= 50 and not findbuff "Cunning" and mana >= miniumManaToBuff and diffhits < activateAutoHealDiff and findtype 3972 self and findtype 3974 self sysmsg "bless" 11 cast 'Bless' while not casting if targetexists hotkey 'cancel current target' endif cast 'Bless' wait 50 endwhile while not targetexists and casting endwhile waitfortarget maxwaittimeinms target 'self' wait 200 endif #********** CHECK FOR WOODEN BOX & CAST SUMMONS ********** if not findtype "wooden box" backpack or not findtype "copper key" backpack overhead "Need 1 wooden box and 1 copper key to begin!" 33 wait maxwaittimeinms elseif counttype 2474 backpack > 1 or counttype 4110 backpack > 1 overhead "You have more than 2 wooden boxes or more than 2 copper keys" 33 wait maxwaittimeinms elseif findtype "wooden box" backpack as chest and findtype "copper key" backpack as key getlabel chest chestLabel if "items" in chestLabel dclick key waitfortarget maxwaittimeinms target chest wait maxwaittimeinms overhead "[chest locked]" 55 endif #Check if we want to cast if enemyFound = 0 or autoRecall = 0 #********** START AUTO SUMMONING **********# while followers < maxFollowers and diffhits < activateAutoHealDiff #--- Eat Food ---# if not findbuff "food" if findtype "tray" backpack as fody dclick fody wait 200 else if timer foodMessageTimer > foodMessageCD overhead "No food found!" 34 settimer foodMessageTimer 0 endif endif endif #--- Drink str pot ---# if drinkStr = 1 and str < strengthLowerThan if not findbuff "Strength" if findtype "White Potion" self dclicktype "White Potion" wait 200 else if timer whiteMessageTimer > whiteMessageCD overhead "Out of str pots" 34 settimer whiteMessageTimer 0 endif endif endif endif #--- Drink agility pot ---# if drinkAgility = 1 if not findbuff "Agility" if findtype "Blue Potion" self dclicktype "Blue Potion" wait 200 else if timer blueMessageTimer > blueMessageCD overhead "Out of agility pots" 34 settimer blueMessageTimer 0 endif endif endif endif #--- Drink magic resist pot ---# if drinkMagicResist = 1 if not findbuff "Magic Resist" if findtype "Black Potion" self dclicktype "Black Potion" wait 200 else if timer blackMessageTimer > blackMessageCD overhead "Out of resist pots" 34 settimer blackMessageTimer 0 endif endif endif endif #--- Drink red pot ---# if diffstam > drinkWhenMissingStamina and 1 = drinkRefresh if findtype "Red Potion" self dclicktype "Red Potion" wait 200 else if timer redMessageTimer > redMessageCD overhead "Out of refresh pots" 34 settimer redMessageTimer 0 endif endif endif #--- Create mushroom ---# if insysmsg "You create" endif while counttype 29012 backpack < mushroomCount and findtype 3963 self and findtype 3976 self and mana > 3 cast 'create food' while not casting cast 'create food' endwhile while casting endwhile wait 200 getlabel backpack xxx if insysmsg! "you create" if insysmsg "you create a magic" else sysmsg "Wizard's Grimoire `create food` not found" 34 @setvar! mushroomCount 0 break endif endif endwhile #--- Eat Mushroom ---# if mana < eatMushWhenManaLowerThan and mushroomCount > 0 and timer mushroomTimer > mushroomTimerCD if counttype 29012 backpack if insysmsg "You consume a magic mushroom" endif sysmsg "Eating mush." 44 dclicktype 29012 backpack getlabel backpack xxx wait 200 if insysmsg "You consume a magic mushroom" settimer mushroomTimer 0 endif else overhead "No mushrooms found!" 34 endif endif #--- Use Meditation ---# if 0 = useMeditationSkill and mana < 50 break elseif 1 = useMeditationSkill and mana < 50 and not findbuff "meditating" and timer meditationTimer > meditationCD if insysmsg "you are at peace" endif if insysmsg "you enter a meditative trance" endif if insysmsg "You must wait a few moments to use another skill." endif skill 'meditation' getlabel backpack xxx wait 200 if not findbuff 'meditating' settimer meditationTimer 7500 elseif findbuff 'meditating' warmode on warmode off settimer meditationTimer 0 while mana < 50 and diffhits < activateAutoHealDiff if not findbuff 'meditating' break endif if timer meditationMessageTimer > meditationMessageCD overhead "* actively meditating *" 11 settimer meditationMessageTimer 0 endif endwhile endif endif #--- Check for new elementals ---# if 1 = castingEarth and followers > 1 sysmsg "fixing earth" 44 while findtype 158|14 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != earthFirsty and ele != earthSecondly hotkey 'cancel current target' if earthFirsty = 0 @setvar! earthFirsty ele sysmsg "add earth 1" 11 overhead "Earth 1" 634 ele else @setvar! earthSecondly ele sysmsg "add earth 2" 11 overhead "Earth 2" 634 ele endif break endif endif @ignore ele endwhile @clearignore @setvar! castingEarth 0 elseif 1 = castingWater and followers > 1 sysmsg "fixing water" 44 while findtype 740|16 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != waterFirsty and ele != waterSecondly hotkey 'cancel current target' if waterFirsty = 0 @setvar! waterFirsty ele sysmsg "add water 1" 11 overhead "Water 1" 399 ele else @setvar! waterSecondly ele sysmsg "add water 2" 11 overhead "Water 2" 399 ele endif break endif endif @ignore ele endwhile @clearignore @setvar! castingWater 0 elseif 1 = castingAir and followers > 1 sysmsg "fixing air" 44 while findtype 306|13 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != airFirsty and ele != airSecondly hotkey 'cancel current target' if airFirsty = 0 @setvar! airFirsty ele sysmsg "add air 1" 11 overhead "Air 1" 933 ele else @setvar! airSecondly ele sysmsg "add air 2" 11 overhead "Air 2" 933 ele endif break endif endif @ignore ele endwhile @clearignore @setvar! castingAir 0 elseif 1 = castingFire and followers > 1 sysmsg "fixing fire" 44 while findtype 24|15 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != fireFirsty and ele != fireSecondly hotkey 'cancel current target' if fireFirsty = 0 @setvar! fireFirsty ele sysmsg "add fire 1" 11 overhead "Fire 1" 353 ele else @setvar! fireSecondly ele sysmsg "add fire 2" 11 overhead "Fire 2" 353 ele endif break endif endif @ignore ele endwhile @clearignore @setvar! castingFire 0 elseif 1 = castingDaemon and followers > 1 sysmsg "fixing daemon" 44 while findtype 9|722 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != daemonFirsty and ele != daemonSecondly hotkey 'cancel current target' if daemonFirsty = 0 @setvar! daemonFirsty ele sysmsg "add daemon 1" 11 overhead "Daemon 1" 11 ele else @setvar! daemonSecondly ele sysmsg "add daemon 2" 235 overhead "Daemon 2" 235 ele endif break endif endif @ignore ele endwhile @clearignore @setvar! castingDaemon 0 elseif 1 = castingCreature and followers > 0 sysmsg "fixing creature" 44 while findtype 215|211|302|317|225|212|202|213|716|729|51|74|214|206|776|737|718|739|718|29|776|317|302|39|56|26|3|57|50|382|717|736|270 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != creatureFirsty and ele != creatureSecondly and ele != creatureThirdy and ele != creatureFourthy and ele != creatureFithy hotkey 'cancel current target' wait 50 menu ele 3 if creatureFirsty = 0 @setvar! creatureFirsty ele sysmsg "Creature 1" 11 overhead "Creature 1" 11 ele elseif creatureSecondly = 0 @setvar! creatureSecondly ele sysmsg "add creature 2" 11 overhead "Creature 2" 11 ele elseif creatureThirdy = 0 @setvar! creatureThirdy ele sysmsg "add creature 3" 11 overhead "Creature 3" 11 ele elseif creatureFourthy = 0 @setvar! creatureFourthy ele sysmsg "add creature 4" 11 overhead "Creature 4" 11 ele elseif creatureFithy = 0 @setvar! creatureFithy ele sysmsg "add creature 5" 11 overhead "Creature 5" 11 ele endif break endif endif @ignore ele endwhile @clearignore @setvar! castingCreature 0 endif #--- Check for dead elementals ---# if earthFirsty != 0 and dead earthFirsty if list earthListy != 0 poplist earthListy 'front' sysmsg "pop earth 1" endif @setvar! earthFirsty 0 endif if earthSecondly != 0 and dead earthSecondly if list earthListy != 0 poplist earthListy 'front' sysmsg "pop earth 2" endif @setvar! earthSecondly 0 endif if waterFirsty != 0 and dead waterFirsty if list waterListy != 0 poplist waterListy 'front' sysmsg "pop water 1" endif @setvar! waterFirsty 0 endif if waterSecondly != 0 and dead waterSecondly if list waterListy != 0 poplist waterListy 'front' sysmsg "pop water 2" endif @setvar! waterSecondly 0 endif if airFirsty != 0 and dead airFirsty if list airListy != 0 poplist airListy 'front' endif @setvar! airFirsty 0 endif if airSecondly != 0 and dead airSecondly if list airListy != 0 poplist airListy 'front' endif @setvar! airSecondly 0 endif if fireFirsty != 0 and dead fireFirsty if list fireListy != 0 poplist fireListy 'front' endif @setvar! fireFirsty 0 endif if fireSecondly != 0 and dead fireSecondly if list fireListy != 0 poplist fireListy 'front' endif @setvar! fireSecondly 0 endif if daemonFirsty != 0 and dead daemonFirsty if list daemonListy != 0 poplist daemonListy 'front' endif @setvar! daemonFirsty 0 endif if daemonSecondly != 0 and dead daemonSecondly if list daemonListy != 0 poplist daemonListy 'front' endif @setvar! daemonSecondly 0 endif if creatureFirsty != 0 and dead creatureFirsty if list creatureListy != 0 poplist creatureListy 'front' sysmsg "pop creature 1" endif @setvar! creatureFirsty 0 endif if creatureSecondly != 0 and dead creatureSecondly if list creatureListy != 0 poplist creatureListy 'front' sysmsg "pop creature 2" endif @setvar! creatureSecondly 0 endif if creatureThirdy != 0 and dead creatureThirdy if list creatureListy != 0 poplist creatureListy 'front' sysmsg "pop creature 3" endif @setvar! creatureThirdy 0 endif if creatureFourthy != 0 and dead creatureFourthy if list creatureListy != 0 poplist creatureListy 'front' sysmsg "pop creature 4" endif @setvar! creatureFourthy 0 endif if creatureFithy != 0 and dead creatureFithy if list creatureListy != 0 poplist creatureListy 'front' sysmsg "pop creature 5" endif @setvar! creatureFithy 0 endif @clearsysmsg @setvar! wasInterrupted 0 if list earthListy = 0 #sysmsg "Earth List = 0" elseif list earthListy = 1 #sysmsg "Earth List = 1" elseif list earthListy = 2 #sysmsg "Earth List = 2" endif if list waterListy = 0 #sysmsg "Water List = 0" elseif list waterListy = 1 #sysmsg "Water List = 1" elseif list waterListy = 2 #sysmsg "Water List = 2" endif if list creatureListy = 0 #sysmsg "Creature List = 0" elseif list creatureListy = 1 #sysmsg "Creature List = 1" elseif list creatureListy = 2 #sysmsg "Creature List = 2" elseif list creatureListy = 2 #sysmsg "Creature List = 2" elseif list creatureListy = 2 #sysmsg "Creature List = 2" endif @setvar! missingSummonRegs 0 @setvar! summoningSucessful 0 if not findtype 3963 self or not findtype 3974 self or not findtype 3981 self @setvar! missingSummonRegs 1 if timer noRegsMessageTimer > noRegsMessageCD overhead 'No regs to summon!' 34 sysmsg 'No regs to summon!' 34 settimer noRegsMessageTimer 0 endif wait noRegsMessageCD elseif not findtype 3980 self if fireElementals != 0 or summonDaemons != 0 @setvar! missingSummonRegs 1 if timer noRegsMessageTimer > noRegsMessageCD overhead 'No regs to summon!' 34 sysmsg 'No regs to summon!' 34 settimer noRegsMessageTimer 0 endif wait noRegsMessageCD endif elseif mana < 50 if timer noRegsMessageTimer > noRegsMessageCD overhead "* low mana to summon *" 34 settimer noRegsMessageTimer 0 endif endif #********** CAST EARTH ELEMENTAL **********# if earthElementals != 0 and list earthListy < earthElementals and followers < 4 and diffhits < activateAutoHealDiff and not casting and missingSummonRegs = 0 and mana > 49 if insysmsg "world is saving" endif @setvar! isWorldSaving 0 cast 'Earth Elemental' @setvar! castingEarth 1 while not casting cast 'Earth Elemental' if targetexists hotkey 'cancel current target' endif endwhile while not dead if insysmsg "world is saving" interrupt @setvar! isWorldSaving 1 @setvar! wasInterrupted 1 break endif if diffhits >= interruptCastingDiff @setvar! wasInterrupted 1 sysmsg "interrupted low health" 33 interrupt break endif if not casting getlabel backpack xxx wait 200 if insysmsg "Your concentration" @setvar! wasInterrupted 1 sysmsg "interrupted concentration" 33 else sysmsg "casting finished" 11 endif break endif if timer summonMsgTimer > summonMsgCD overhead "* summoning earth... *" 634 sysmsg "* summoning earth... *" 634 settimer summonMsgTimer 0 endif endwhile if 0 = wasInterrupted @setvar! summoningSucessful 1 sysmsg "Summon Earth Successful" pushlist earthListy 'x' 'front' while not dead if findtype 158|14 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != earthFirsty and ele != earthSecondly hotkey 'cancel current target' wait 50 menu ele 3 if earthFirsty = 0 @setvar! earthFirsty ele sysmsg "add earth 1" 11 overhead "Earth 1" 634 ele else @setvar! earthSecondly ele sysmsg "add earth 2" 11 overhead "Earth 2" 634 ele endif break endif endif @ignore ele endif endwhile clearignore @setvar! castingEarth 0 endif #********** CAST WATER ELEMENTAL **********# elseif waterElementals != 0 and list waterListy < waterElementals and followers < 4 and diffhits < activateAutoHealDiff and not casting and missingSummonRegs = 0 and mana > 49 if insysmsg "world is saving" endif @setvar! isWorldSaving 0 cast 'Water Elemental' @setvar! castingWater 1 while not casting cast 'Water Elemental' if targetexists hotkey 'cancel current target' endif endwhile while not dead if insysmsg "world is saving" interrupt @setvar! isWorldSaving 1 @setvar! wasInterrupted 1 break endif if diffhits >= interruptCastingDiff @setvar! wasInterrupted 1 sysmsg "interrupted low health" 33 interrupt break endif if not casting getlabel backpack xxx wait 200 if insysmsg "Your concentration" @setvar! wasInterrupted 1 sysmsg "interrupted concentration" 33 else sysmsg "casting finished" 11 endif break endif if timer summonMsgTimer > summonMsgCD overhead "* summoning water... *" 399 sysmsg "* summoning water... *" 399 settimer summonMsgTimer 0 endif endwhile if 0 = wasInterrupted @setvar! summoningSucessful 1 sysmsg "Summon Water Successful" pushlist waterListy 'x' 'front' while not dead if findtype 740|16 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != waterFirsty and ele != waterSecondly hotkey 'cancel current target' wait 50 menu ele 3 if waterFirsty = 0 @setvar! waterFirsty ele sysmsg "add water 1" 11 overhead "Water 1" 399 ele else @setvar! waterSecondly ele sysmsg "add water 2" 11 overhead "Water 2" 399 ele endif break endif endif @ignore ele endif endwhile clearignore @setvar! castingWater 0 endif #********** CAST AIR ELEMENTAL **********# elseif airElementals != 0 and list airListy < airElementals and followers < 4 and diffhits < activateAutoHealDiff and not casting and missingSummonRegs = 0 and mana > 49 if insysmsg "world is saving" endif @setvar! isWorldSaving 0 cast 'Air Elemental' @setvar! castingAir 1 while not casting cast 'Air Elemental' if targetexists hotkey 'cancel current target' endif endwhile while not dead if insysmsg "world is saving" interrupt @setvar! isWorldSaving 1 @setvar! wasInterrupted 1 break endif if diffhits >= interruptCastingDiff @setvar! wasInterrupted 1 sysmsg "interrupted low health" 33 interrupt break endif if not casting getlabel backpack xxx wait 200 if insysmsg "Your concentration" @setvar! wasInterrupted 1 sysmsg "interrupted concentration" 33 else sysmsg "casting finished" 11 endif break endif if timer summonMsgTimer > summonMsgCD overhead "* summoning air... *" 933 sysmsg "* summoning air... *" 933 settimer summonMsgTimer 0 endif endwhile if 0 = wasInterrupted @setvar! summoningSucessful 1 sysmsg "Summon Air Successful" pushlist airListy 'x' 'front' while not dead if findtype 306|13 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != airFirsty and ele != airSecondly hotkey 'cancel current target' wait 50 menu ele 3 if airFirsty = 0 @setvar! airFirsty ele sysmsg "add air 1" 11 overhead "Air 1" 933 ele else @setvar! airSecondly ele sysmsg "add air 2" 11 overhead "Air 2" 933 ele endif break endif endif @ignore ele endif endwhile clearignore @setvar! castingAir 0 endif #********** CAST FIRE ELEMENTAL **********# elseif fireElementals != 0 and list fireListy < fireElementals and followers < 4 and diffhits < activateAutoHealDiff and not casting and missingSummonRegs = 0 and mana > 49 if insysmsg "world is saving" endif @setvar! isWorldSaving 0 cast 'Fire Elemental' @setvar! castingFire 1 while not casting cast 'Fire Elemental' if targetexists hotkey 'cancel current target' endif endwhile while not dead if insysmsg "world is saving" interrupt @setvar! isWorldSaving 1 @setvar! wasInterrupted 1 break endif if diffhits >= interruptCastingDiff @setvar! wasInterrupted 1 sysmsg "interrupted low health" 33 interrupt break endif if not casting getlabel backpack xxx wait 200 if insysmsg "Your concentration" @setvar! wasInterrupted 1 sysmsg "interrupted concentration" 33 else sysmsg "casting finished" 11 endif break endif if timer summonMsgTimer > summonMsgCD overhead "* summoning fire... *" 353 sysmsg "* summoning fire... *" 353 settimer summonMsgTimer 0 endif endwhile if 0 = wasInterrupted @setvar! summoningSucessful 1 sysmsg "Summon Fire Successful" pushlist fireListy 'x' 'front' while not dead if findtype 24|15 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != fireFirsty and ele != fireSecondly hotkey 'cancel current target' wait 50 menu ele 3 if fireFirsty = 0 @setvar! fireFirsty ele sysmsg "add fire 1" 11 overhead "Fire 1" 353 ele else @setvar! fireSecondly ele sysmsg "add fire 2" 11 overhead "Fire 2" 353 ele endif break endif endif @ignore ele endif endwhile clearignore @setvar! castingFire 0 endif #********** CAST DAEMON **********# elseif summonDaemons != 0 and list daemonListy < summonDaemons and followers < 4 and diffhits < activateAutoHealDiff and not casting and missingSummonRegs = 0 and mana > 49 if insysmsg "world is saving" endif @setvar! isWorldSaving 0 cast 'Summon Daemon' @setvar! castingDaemon 1 while not casting cast 'Summon Daemon' if targetexists hotkey 'cancel current target' endif endwhile while not dead if insysmsg "world is saving" interrupt @setvar! isWorldSaving 1 @setvar! wasInterrupted 1 break endif if diffhits >= interruptCastingDiff @setvar! wasInterrupted 1 sysmsg "interrupted low health" 33 interrupt break endif if not casting getlabel backpack xxx wait 200 if insysmsg "Your concentration" @setvar! wasInterrupted 1 sysmsg "interrupted concentration" 33 else sysmsg "casting finished" 11 endif break endif if timer summonMsgTimer > summonMsgCD overhead "* summoning daemon... *" 235 sysmsg "* summoning daemon... *" 235 settimer summonMsgTimer 0 endif endwhile if 0 = wasInterrupted @setvar! summoningSucessful 1 sysmsg "Summon Daemon Successful" pushlist daemonListy 'x' 'front' while not dead if findtype 9|722 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != daemonFirsty and ele != daemonSecondly hotkey 'cancel current target' wait 50 menu ele 3 if daemonFirsty = 0 @setvar! daemonFirsty ele sysmsg "add daemon 1" 11 overhead "Daemon 1" 11 ele else @setvar! daemonSecondly ele sysmsg "add daemon 2" 235 overhead "Daemon 2" 235 ele endif break endif endif @ignore ele endif endwhile clearignore @setvar! castingDaemon 0 endif #********** CAST SUMMON CREATURE **********# elseif summonCreature != 0 and list creatureListy < summonCreature and followers < 5 and diffhits < activateAutoHealDiff and not casting and missingSummonRegs = 0 and mana > 13 if insysmsg "world is saving" endif @setvar! isWorldSaving 0 cast 'Summ. Creature' @setvar! castingCreature 1 while not casting cast 'Summ. Creature' if targetexists hotkey 'cancel current target' endif endwhile while not dead if insysmsg "world is saving" interrupt @setvar! isWorldSaving 1 @setvar! wasInterrupted 1 break endif if diffhits >= interruptCastingDiff @setvar! wasInterrupted 1 sysmsg "interrupted low health" 33 interrupt break endif if not casting getlabel backpack xxx wait 200 if insysmsg "Your concentration" @setvar! wasInterrupted 1 sysmsg "interrupted concentration" 33 else sysmsg "casting finished" 11 endif break endif if timer summonMsgTimer > summonMsgCD overhead "* summon creature... *" 881 sysmsg "* summon creature... *" 881 settimer summonMsgTimer 0 endif endwhile if 0 = wasInterrupted @setvar! summoningSucessful 1 sysmsg "Summon Creature Successful" pushlist creatureListy 'x' 'front' while not dead if findtype 215|211|302|317|225|212|202|213|716|729|51|74|214|206|776|737|718|739|718|29|776|317|302|39|56|26|3|57|50|382|717|736|270 ground -1 -1 12 as ele menu ele 1 waitfortarget maxwaittimeinms if targetexists if ele != creatureFirsty and ele != creatureSecondly and ele != creatureThirdy and ele != creatureFourthy and ele != creatureFithy hotkey 'cancel current target' wait 50 menu ele 3 if creatureFirsty = 0 @setvar! creatureFirsty ele sysmsg "add creature 1" 11 overhead "Creature 1" 11 ele elseif creatureSecondly = 0 @setvar! creatureSecondly ele sysmsg "add creature 2" 11 overhead "Creature 2" 11 ele elseif creatureThirdy = 0 @setvar! creatureThirdy ele sysmsg "add creature 3" 11 overhead "Creature 3" 11 ele elseif creatureFourthy = 0 @setvar! creatureFourthy ele sysmsg "add creature 4" 11 overhead "Creature 4" 11 ele elseif creatureFithy = 0 @setvar! creatureFithy ele sysmsg "add creature 5" 11 overhead "Creature 5" 11 ele endif break endif endif @ignore ele endif endwhile clearignore @setvar! castingCreature 0 endif endif if 1 = summoningSucessful and followers != maxFollowers hotkey 'target closest grey monster' attack lasttarget endif endwhile endif #********** BEGING HARVESTING ********** if diffweight <= myWeightDiff overhead '[Overveight Reached]' 44 wait maxwaittimeinms elseif 1 = autoRecall and 1 = enemyFound or cooldown 'Danger' > 0 sysmsg "Enemy Found: skip harvesting" else while lhandempty and rhandempty if not findtype myHarvestingTool backpack overhead "Out of hatchets!" 36 wait maxwaittimeinms elseif not casting dclicktype myHarvestingTool wait 200 endif endwhile while not targetexists hotkey 'Use Item In Hand' waitfortarget maxwaittimeinms endwhile target 'self' settimer beginChopTimer 0 while not insysmsg! "harvesting is not allowed" and not insysmsg "you chop" and not insysmsg "you hack" and not insysmsg! "you do not see" and not insysmsg! "you have recently" and diffhits < activateAutoHealDiff if enemyFound = 0 if insysmsg! "Now tracking" or insysmsg! "Distance to" @setvar! enemyFound 1 endif endif if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0 break endif if timer beginChopTimer > 650 and timer beginChopTimer < 10000 overhead "* chopping tree *" 11 settimer beginChopTimer 10000 endif endwhile if insysmsg "you do not see any" overhead "* move to other tree *" 44 wait 500 elseif insysmsg "you have recently" overhead "* travel cooldown *" 901 wait 500 elseif insysmsg "harvesting is not allowed" overhead "* Harvest NOT allowed! *" 33 wait 500 else #overhead "* tree chopped *" 11 endif #********** CUT LOGS INTO BOARDS AND SECURE BOARDS INSIDE LOCKED WOODEN BOX ********** if timer storeTimer > storeTimerCD or counttype 7133 backpack > 120 or counttype 7133 backpack 2207 > 15 or counttype 7133 backpack 2219 > 10 or counttype 7133 backpack 1763 > 5 settimer storeTimer 0 if targetexists hotkey 'cancel current target' endif while findtype "log%s" backpack any any 1 as myLogs and diffhits < activateAutoHealDiff if enemyFound = 0 if insysmsg! "Now tracking" or insysmsg! "Distance to" @setvar! enemyFound 1 endif endif if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0 break endif overhead "* refining logs *" 88 hotkey 'Use Item In Hand' waitfortarget maxwaittimeinms target myLogs wait maxwaittimeinms endwhile while findtype "board%s" backpack any any 1 as boardz and diffhits < activateAutoHealDiff if enemyFound = 0 if insysmsg! "Now tracking" or insysmsg! "Distance to" @setvar! enemyFound 1 endif endif if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0 break endif overhead "* securing boards *" 88 wait 100 lift boardz 9999 drop chest -1 -1 0 wait maxwaittimeinms if insysmsg "it appears" overhead "[unlocking chest]" 74 dclick key waitfortarget maxwaittimeinms target chest wait maxwaittimeinms endif endwhile endif endif getlabel chest chestLabel if "items" in chestLabel dclick key waitfortarget maxwaittimeinms target chest wait maxwaittimeinms overhead "[chest locked]" 55 endif endif #sysmsg "Loop cycle elapsed : {{cycleTimer}}" endwhile