SUPER Auto-Lumberjacking by dennozz
Description: Auto lumberjacking, cast summons, auto heal, auto store wood in locked box, auto recall on pks.
#SUPER Auto-lumber ver.5.42 #********** 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 #My Gathering template (Anti PK): #Lumber - 120 #Mining - 120 #Magery - 100 #Healing - 80 #Resist - 80 #Tracking -80 #Wrestling - 80 #Spirit - 40 #Alchemy - 20 #********** SET YOUR SETTINGS **********# #--- Set max followers ---# # 0 - none # 2 - one water elemental (recommended) # 4 - two water elemental @setvar! maxFollowers 2 #--- 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 1 #-- Set recall type --# # 0 - using regs # 1 - using scroll # 2 - using charge recall from first rune in book # 3 - using charge recall from last rune in book @setvar! recallType 0 #--- 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 0 #--- 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 potions ---# @setvar! drinkStr 1 @setvar! drinkMagicResist 1 @setvar! drinkHeal 1 @setvar! drinkCure 1 @setvar! drinkRefresh 1 #--- Set Mage auto heals ---# @setvar! miniHeal 1 @setvar! greaterHeal 1 @setvar! cureSpell 1 #--- Set Mage Buffs ---# @setvar! magicReflect 1 @setvar! armorReflect 1 @setvar! protectionSpell 1 @setvar! miniumManaToBuff 50 #--- Set Cooldowns ---# @setvar! storeTimerCD 100000 settimer storeTimer storeTimerCD #********** DO NOT EDIT FROM HERE UNLESS YOU KNOW HOW TO SCRIPT **********# @setvar! maxwaittimeinms 650 @setvar! foundBook 0 #** Auto healing hp diffs ** @setvar! lowDiff 1 @setvar! medDiff 25 @setvar! highDiff 40 #** Weight trigger ** @setvar! myWeightDiff 41 #** Recall triggers ** @setvar! enemyFound 0 @setvar! myHarvestingTool 3908 #** Magery buffs timers ** @setvar! magicReflectCD 15000 settimer magicReflectTimer 15000 @setvar! armorReflectCD 15000 settimer armorReflectTimer 15000 @setvar! protectionCD 15000 settimer protectionTimer 15000 #** Script msgs timers ** @setvar! scriptMessageCD 4500 settimer scriptMessageTimer 0 @setvar! guardMessageCD 5500 settimer guardMessageTimer guardMessageCD @setvar! summonCD 2500 settimer summonTimer summonCD @setvar! beingAttackedCD 5000 settimer beingAttackedTimer 5000 #** Items in backpack timers ** @setvar! pouchMessageCD 5000 settimer pouchMessageTimer pouchMessageCD @setvar! aidsMessageCD 4000 settimer aidsMessageTimer aidsMessageCD @setvar! whiteMessageCD 3000 settimer whiteMessageTimer whiteMessageCD @setvar! blackMessageCD 2500 settimer blackMessageTimer blackMessageCD @setvar! orangeMessageCD 2000 settimer orangeMessageTimer orangeMessageCD @setvar! yellowMessageCD 1500 settimer yellowMessageTimer yellowMessageCD @setvar! redMessageCD 1000 settimer redMessageTimer redMessageCD @setvar! healingPotCD 11000 #********** PRE-SCRIPT FOOD BUFF AND TRACKING ON ********** if not findbuff "food" and findtype "tray" backpack as fody dclick fody wait 200 endif if not findbuff "tracking" while not gumpexists 4267467659 skill "tracking" wait maxwaittimeinms endwhile while not insysmsg "You will now hunt all hostile players" 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 "* tracking ON *" 66 endif #********** AUTO SPLIT REAGENTS **********# if autoSplitRegs = 1 clearignore @setvar! amount 0 @setvar! myBag 0 @setvar! maxwaittimeinms 650 if autoSelectBag = 0 if findtype 30765 self as b @setvar! myBag b elseif findtype 3705 self as b @setvar! myBag b elseif findtype 3701 self as b @setvar! myBag b elseif findtype 3702 self as b @setvar! myBag b else @setvar! myBag backpack endif elseif autoSelectBag = 1 @setvar! myBag backpack else clearsysmsg overhead "Select bag:" 68 @setvar! myBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myBag endwhile if find myBag self getlabel myBag bagLabel if "wizard" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel sysmsg "new bag set" 55 else @setvar! myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting silks.." 0 if index = 0 lift regs amount drop myBag 44 65 0 elseif index = 1 lift regs amount drop myBag 68 65 0 elseif index = 2 lift regs amount drop myBag 96 65 0 elseif index = 3 lift regs amount drop myBag 121 65 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting pearls.." 11 if index = 0 lift regs amount drop myBag 44 65 0 elseif index = 1 lift regs amount drop myBag 68 65 0 elseif index = 2 lift regs amount drop myBag 96 65 0 elseif index = 3 lift regs amount drop myBag 121 65 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting shades.." 66 if index = 0 lift regs amount drop myBag 44 88 0 elseif index = 1 lift regs amount drop myBag 68 88 0 elseif index = 2 lift regs amount drop myBag 96 88 0 elseif index = 3 lift regs amount drop myBag 121 88 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting roots.." 439 if index = 0 lift regs amount drop myBag 44 88 0 elseif index = 1 lift regs amount drop myBag 68 88 0 elseif index = 2 lift regs amount drop myBag 96 88 0 elseif index = 3 lift regs amount drop myBag 121 88 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting ashes.." 56 if index = 0 lift regs amount drop myBag 44 112 0 elseif index = 1 lift regs amount drop myBag 68 112 0 elseif index = 2 lift regs amount drop myBag 96 112 0 elseif index = 3 lift regs amount drop myBag 121 112 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting gings.." 149 if index = 0 lift regs amount drop myBag 44 112 0 elseif index = 1 lift regs amount drop myBag 68 112 0 elseif index = 2 lift regs amount drop myBag 96 112 0 elseif index = 3 lift regs amount drop myBag 121 112 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting bloods.." 35 if index = 0 lift regs amount drop myBag 44 130 0 elseif index = 1 lift regs amount drop myBag 68 130 0 elseif index = 2 lift regs amount drop myBag 96 130 0 elseif index = 3 lift regs amount drop myBag 121 130 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting garlics.." 910 if index = 0 lift regs amount drop myBag 44 130 0 elseif index = 1 lift regs amount drop myBag 68 130 0 elseif index = 2 lift regs amount drop myBag 96 130 0 elseif index = 3 lift regs amount drop myBag 121 130 0 else lift regs amount drop myBag 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 myBag @setvar! moveRegs 1 endif if moveRegs = 1 overhead "splitting scrolls.." 0 if index = 0 lift regs amount drop myBag 44 88 0 elseif index = 1 lift regs amount drop myBag 68 88 0 elseif index = 2 lift regs amount drop myBag 96 88 0 elseif index = 3 lift regs amount drop myBag 121 88 0 else lift regs amount drop myBag 142 88 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile overhead "Splitter completed" 44 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' endif wait 200 while mana <= 10 and diffhits < medDiff overhead "* low mana to recall *" 44 wait maxwaittimeinms endwhile #********** USING REAGENTS OR RECALL SCROLL ********** if recallType = 0 or recallType = 1 while diffhits < medDiff and not targetexists if recallType = 0 cast 'recall' sysmsg "recalling using regs" 11 else dclicktype "recall" self sysmsg "recalling using scroll" 11 endif while not casting if recallType = 0 cast 'recall' else dclicktype "recall" self endif endwhile while not targetexists and casting if insysmsg "your concentration" break; endif endwhile waitfortarget maxwaittimeinms endwhile if targetexists and findtype "runebook|runetome" backpack as obj while findtype "runebook|runetome" backpack as book if hue book = recallBookHue or recallBookHue = 0 target book break endif @ignore book endwhile @clearignore wait 200 if insysmsg "marked" overhead "Runebook is not marked! Mark the book NOW!" 34 elseif targetexists overhead "Recall Book not found. Switching hue type to 0" 34 @setvar! recallBookHue 0 else overhead "Finished!" 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 200 if targetexists and tempRune != 0 target tempRune overhead "Finished!" elseif tempRune = 0 overhead "No recalleable rune found" 34 hotkey "cancel current target" elseif insysmsg "blocked" overhead "Location blocked" 34 else overhead "Finished!" endif stop elseif targetexists overhead "No recall book or rune found" 34 endif elseif recallType = 2 or recallType = 3 #********** USING RECALL BOOK CHARGE ********** if findtype "runebook|runetome" backpack while diffhits < medDiff @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 200 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 200 @clearignore if foundBook = 0 overhead "Recall book not found!" 34 elseif insysmsg "charges" overhead "No recall charges!" 34 elseif insysmsg "This book" overhead "Recall book cooldown!" 34 elseif casting while casting endwhile wait 200 if insysmsg "concentration" overhead "Interrupted!" 34 elseif insysmsg "location" overhead "Location blocked!" else overhead "Successful" 65 sysmsg "Lumberjacking Completed!" 65 stop endif else if insysmsg "concentration" overhead "Interrupted!" 34 else if recallType = 2 overhead "First rune not found" 34 else overhead "Last rune not found" 34 overhead "Changing to first rune.." 34 @setvar! recallType 2 endif endif endif wait maxwaittimeinms 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 IF NEEDED ********** while diffhits >= lowDiff or paralyzed or poisoned if enemyFound = 0 if insysmsg! "Now tracking" or insysmsg! "Distance to" @setvar! enemyFound 1 endif endif if timer scriptMessageTimer > scriptMessageCD overhead "* running auto-healing *" 66 settimer scriptMessageTimer 0 endif if followers > 0 if timer guardMessageTimer > guardMessageCD say 'all guard me' settimer guardMessageTimer 0 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 #** Drink str pot ** if drinkStr = 1 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 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 #** Poison ** 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 skill 'magery' >= 40 and mana >= 6 and 1 = cureSpell if not findtype 3972 self or not findtype 3973 self break endif if targetexists hotkey 'cancel current target' endif cast 'cure' while not casting cast 'cure' if targetexists hotkey 'cancel current target' endif endwhile while not targetexists and casting endwhile waitfortarget maxwaittimeinms target 'self' wait 200 else break endif endif if diffhits > highDiff break endif endwhile endif #** Heal Pot ** if diffhits >= highDiff and 1 = drinkHeal if findtype "Yellow Potion" self @setvar! ch 0 if counttype 3852 self as c @setvar! ch c endif clearsysmsg dclicktype 3852 wait 200 if ch != counttype 3852 self or insysmsg "potion satchel used" cooldown "Heal Pot" healingPotCD endif else if timer yellowMessageTimer > yellowMessageCD overhead "Out of heals pots" 34 settimer yellowMessageTimer 200 endif endif endif #** Drink red pot ** if stam <= 1 and 1 = drinkRefresh if findtype "Red Potion" self dclicktype "Red Potion" wait 200 else if tiemr redMessageTimer > redMessageCD overhead "Out of refresh pots" 34 settimer redMessageTimer 0 endif endif endif #** Cast heals ** if skill 'magery' >= 40 and diffhits >= lowDiff and diffhits <= medDiff and mana >= 4 and miniHeal = 1 if targetexists hotkey 'cancel current target' endif cast 'heal' while not casting cast 'heal' if targetexists hotkey 'cancel current target' endif endwhile while not targetexists and casting endwhile waitfortarget maxwaittimeinms target 'self' wait 200 elseif skill 'magery' >= 60 and diffhits >= medDiff and diffhits <= highDiff mana >= 11 and greaterHeal = 1 if targetexists hotkey 'cancel current target' endif cast 'greater heal' while not casting cast 'greater heal' if targetexists hotkey 'cancel current target' endif endwhile while not targetexists and casting endwhile waitfortarget maxwaittimeinms target 'self' wait 200 elseif skill 'magery' >= 40 and diffhits >= medDiff and mana >= 4 and miniHeal = 1 if targetexists hotkey 'cancel current target' endif cast 'heal' while not casting cast 'heal' if targetexists hotkey 'cancel current target' endif endwhile while not targetexists and casting endwhile waitfortarget maxwaittimeinms target 'self' wait 200 endif endwhile #********** AUTO-MAGERY BUFFS IF NEEDED ********** if enemyFound = 0 or autoRecall = 0 if magicReflect = 1 and skill 'magery' >= 70 and not findbuff "Magic Reflection" and mana >= miniumManaToBuff and diffhits < lowDiff if timer magicReflectTimer > magicReflectCD if targetexists hotkey 'cancel current target' endif cast 'Magic Reflection' while not casting and diffhits < lowDiff if insysmsg "that spell will not" settimer magicReflectTimer 0 break endif cast 'Magic Reflection' if targetexists hotkey 'cancel current target' endif endwhile while casting if diffhits >= lowDiff interrupt break endif endwhile wait 200 endif endif if armorReflect = 1 and skill 'magery' >= 30 and not findbuff "Reactive Armor" and mana >= miniumManaToBuff and diffhits < lowDiff if timer magicReflectTimer > magicReflectCD if targetexists hotkey 'cancel current target' endif cast 'Reactive Armor' while not casting and diffhits < lowDiff if insysmsg "that spell will not" settimer armorReflectTimer 0 break endif cast 'Reactive Armor' if targetexists hotkey 'cancel current target' endif endwhile while casting if diffhits >= lowDiff interrupt break endif endwhile wait 200 endif endif if protectionSpell = 1 and skill 'magery' >= 40 and not findbuff "Protection" and mana >= miniumManaToBuff and diffhits < lowDiff if targetexists hotkey 'cancel current target' endif cast 'Protection' while not casting and diffhits < lowDiff cast 'Protection' if targetexists hotkey 'cancel current target' endif endwhile while casting if diffhits >= lowDiff interrupt break endif endwhile wait 200 endif 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 #Summon elemental if counters goes below min followers if followers < 4 and followers < maxFollowers and skill 'magery' >= 80 and diffhits < lowDiff if mana <= 49 overhead "low mana to summon" 89 else cast 'Water Elemental' wait 200 while casting 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 sysmsg "Summon Interrupted: enemy found" interrupt break endif if diffhits >= lowDiff sysmsg "Summon Interrupted: low health" interrupt break endif if timer summonTimer > summonCD overhead "* summoning... *" settimer summonTimer 0 endif endwhile wait 1000 say 'all guard me' 901 endif endif 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 "you chop" and not insysmsg "you hack" and not insysmsg! "you do not see" and not insysmsg! "you have recently" and diffhits < lowDiff 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 elseif insysmsg "you have recently" overhead "* travel cooldown *" 901 wait 800 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 < lowDiff 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 < lowDiff 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