Skip to content
Outlands Hub

Razor script

SUPER Auto-mining

by dennozz · 1855 lines
Download

ver.4.70

GatheringMining
SUPER Auto-mining.razor
1# This is an automated backup - check out https://outlands.uorazorscripts.com/script/217dc70b-317d-4cba-8d95-220e8767ae1b for latest2# Automation by Jaseowns3## Script: SUPER Auto-mining4## Created by: dennozz#05#############################################6 7#SUPER Auto-mining ver.4.708 9#********** INFORMATION **********# 10 11#Made by @dennozz on discord. 12#Inspired/learned by other scrips in https://outlands.uorazorscripts.com/13 14#IMPORTANT: You will need 1 wooden box and 1 copper key that opens the wooden box (this is for anti-theft)15#           You can craft wooden boxes with 50 carpentry and 50 tinkering16    17#IMPORTANT: You will need to create an in-game options cooldown named `Danger`. 18#Options -> Cooldowns -> New Entry -> Name: `Danger` -> Cooldown Type -> `PvP Timer` -> Done19 20#My Gathering template (Anti PK):21#Lumber - 12022#Mining - 12023#Magery - 10024#Healing - 8025#Resist - 8026#Tracking -8027#Wrestling - 8028#Spirit - 4029#Alchemy - 2030 31#********** SET YOUR SETTINGS **********# 32 33#--- Set max followers ---#34# 0 - none35# 2 - one water elemental (recommended)36# 4 - two water elemental37 38@setvar! maxFollowers 239 40#--- Set auto recall ---#41# 0 - will auto recall when PKs are 40 steps or closer (medioum risk)42# 1 - will auto recall when detect PKs at any distance (low risk)43 44@setvar! autoRecall 045 46#-- Set recall type --#47# 0 - using regs48# 1 - using scroll49# 2 - using charge recall from first rune in book50# 3 - using charge recall from last rune in book51 52@setvar! recallType 053 54#--- Set recall object ---#55# 0 - carry one runebook | carry one rune | if multiple runes name the one you recall `home`56# 1234 - if you carry multiple runebooks or runetomes set the hue of the book you wish to recall (type `>info` to get hue info)57 58@setvar! recallBookHue 059 60#--- If regs are low auto recall ---#61# 0 - you dont carry regs62# 123 - if below this number will recall63 64@setvar! minRegs 565 66#--- Auto split regs ---#67# 0 - you dont want to split regs into different groups 68# 1 - will auto split regs in different groups (anti-theft)69 70@setvar! autoSplitRegs 171 72# 0 - will let you target the bag you wish to split your regs into73# 1 - will automatically select the bag in your backpack on this order : satchel > pouch > backpack bag > round bag > char backpack74    75@setvar! autoSelectBag 176 77#--- Set potions ---#78 79@setvar! drinkStr 180@setvar! drinkAgility 081@setvar! drinkMagicResist 182@setvar! drinkHeal 183@setvar! drinkCure 184@setvar! drinkRefresh 185 86@setvar! strengthLowerThan 10087@setvar! staminaLowerThan 1088 89#--- Set Mage auto heals ---#90 91@setvar! miniHeal 192@setvar! greaterHeal 193@setvar! cureSpell 194 95#--- Set Mage Buffs ---#96 97@setvar! magicReflect 198@setvar! bless 099@setvar! armorReflect 1100@setvar! protectionSpell 1101@setvar! miniumManaToBuff 50102 103@setvar! useMeditationSkill 0104@setvar! meditateWhenManaBelow 40105@setvar! meditateUntilManaReach 70106 107#--- Set Cooldowns ---#108 109#Set value at `575` if have 60-80 ping ms. Adjust depending on ping110 111@setvar! mineTimerCD 575112 113 114#********** DO NOT EDIT FROM HERE UNLESS YOU KNOW HOW TO SCRIPT **********115 116 117@setvar! isRecalling 0118@setvar! isOverweight 0119@setvar! myHarvestingTool 3718120@setvar! maxwaittimeinms 650121@setvar! foundBook 0122@setvar! myPack 0123@setvar! smeltingOre 0124 125#--- Auto healing hp diffs ---#126 127@setvar! lowDiff 20 128@setvar! medDiff 30129@setvar! highDiff 50130@setvar! extremeDiff 60131@setvar! criticalDiff 75132 133#** Weight trigger **134 135@setvar! myWeightDiff 41136 137#** Recall triggers **138 139@setvar! enemyFound 0140 141#** Cut & Store timers **142 143@setvar! storeTimerCD 45000144settimer storeTimer storeTimerCD145 146#** Magery buffs timers **147 148@setvar! magicReflectCD 15000149settimer magicReflectTimer 15000150 151@setvar! armorReflectCD 15000152settimer armorReflectTimer 15000153 154@setvar! protectionCD 15000155settimer protectionTimer 15000156 157#** Script msgs timers **158 159@setvar! healingMessageCD 4500160settimer healingMessageTimer 0161 162@setvar! guardMessageCD 5500163settimer guardMessageTimer guardMessageCD164 165@setvar! summonCD 2500166settimer summonTimer summonCD167 168@setvar! beingAttackedCD 5000169settimer beingAttackedTimer 5000170 171@setvar! overweightCD 2000172settimer overweightTimer overweightCD173 174#** Items in backpack timers **175 176@setvar! pouchMessageCD 5000177settimer pouchMessageTimer pouchMessageCD178 179@setvar! aidsMessageCD 4000180settimer aidsMessageTimer aidsMessageCD181 182@setvar! whiteMessageCD 3000183settimer whiteMessageTimer whiteMessageCD184 185@setvar! blackMessageCD 2500186settimer blackMessageTimer blackMessageCD187 188@setvar! orangeMessageCD 2000189settimer orangeMessageTimer orangeMessageCD190 191@setvar! yellowMessageCD 1500192settimer yellowMessageTimer yellowMessageCD193 194@setvar! redMessageCD 1000195settimer redMessageTimer redMessageCD196 197@setvar! healingPotCD 11000198 199#********** PRE-SCRIPT FOOD BUFF AND TRACKING ON **********200 201if not findbuff "food" and findtype "tray" backpack as fody    202    dclick fody203    wait 200204endif205 206if not findbuff "tracking"207    208    while not gumpexists 4267467659209        skill "tracking"210        wait maxwaittimeinms211    endwhile212 213    while not insysmsg "You will now hunt all hostile players"214        gumpresponse 8215        wait 500216        waitforgump 4267467659 maxwaittimeinms217    endwhile218    219    if ingump "Begin Hunting" 4267467659220        gumpresponse 6221        wait maxwaittimeinms222        waitforgump 4267467659 maxwaittimeinms223        wait maxwaittimeinms224        gumpclose 4267467659 225        wait 100226    endif227 228    sysmsg "* tracking ON *" 66229endif230 231#********** AUTO SPLIT REAGENTS **********# 232 233if autoSplitRegs = 1 234 235    clearignore 236 237    @setvar! amount 0238    @setvar! myBag 0239    @setvar! maxwaittimeinms 650240 241    if autoSelectBag = 1242        if findtype 30765 self as b243            @setvar! myBag b244        elseif findtype 3705 self as b245            @setvar! myBag b246        elseif findtype 3701 self as b247            @setvar! myBag b248        elseif findtype 3702 self as b249            @setvar! myBag b250        else 251            @setvar! myBag backpack252        endif253    else 254        clearsysmsg255        overhead "Select bag:" 68256        @setvar! myBag257        getlabel backpack xxx258        wait 200259        while not targetexists and not insysmsg "Select"260            @setvar! myBag    261        endwhile262        263        if find myBag self264            getlabel myBag bagLabel265            266            if "wizard" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel267                sysmsg "new bag set" 55268            else 269                @setvar! myBag 0270                overhead "That is not a bag" 34271                sysmsg "That is not a bag" 34272                stop273            endif274        else 275            overhead "No bag found!" 34276            stop    277        endif278    endif279 280    overhead "Splitter Begin.." 55281 282    #***** SPIDER SILK 3981 *****283 284    @setvar! regsID 3981285    @setvar! myCounter 0286 287    while findtype regsID self as r 288        @setvar! myCounter index289        @ignore r290    endwhile291    @clearignore292 293    if counttype regsID self <= 10294        @setvar! amount 2295    elseif counttype regsID self <= 20296        @setvar! amount 4       297    elseif counttype regsID self <= 50298        @setvar! amount 10    299    elseif counttype regsID self <= 100300        @setvar! amount 20    301    elseif counttype regsID self <= 150302        @setvar! amount 30303    elseif counttype regsID self <= 200304        @setvar! amount 40305    else 306        @setvar! amount 50307    endif308 309    while findtype regsID self as regs310        @setvar! moveRegs 0 311        312        if myCounter = 0313            @setvar! moveRegs 1314        elseif myCounter != 0 and not find regs myBag315            @setvar! moveRegs 1316        endif317        318        if moveRegs = 1    319            overhead "splitting silks.." 0320            if index = 0321                lift regs amount322                drop myBag 44 65 0      323            elseif index = 1324                lift regs amount325                drop myBag 68 65 0           326            elseif index = 2327                lift regs amount328                drop myBag 96 65 0             329            elseif index = 3330                lift regs amount331                drop myBag 121 65 0            332            else333                lift regs amount334                drop myBag 142 65 0         335            endif336        endif337        338        @ignore regs 339        340        if moveRegs = 1341            wait maxwaittimeinms342        endif343 344    endwhile345 346    #***** BLACK PEARL 3962 *****347 348    @setvar! regsID 3962349    @setvar! myCounter 0350 351    while findtype regsID self as r 352        @setvar! myCounter index353        @ignore r354    endwhile355    @clearignore356 357    if counttype regsID self <= 10358        @setvar! amount 2359    elseif counttype regsID self <= 20360        @setvar! amount 4       361    elseif counttype regsID self <= 50362        @setvar! amount 10    363    elseif counttype regsID self <= 100364        @setvar! amount 20    365    elseif counttype regsID self <= 150366        @setvar! amount 30367    elseif counttype regsID self <= 200368        @setvar! amount 40369    else 370        @setvar! amount 50371    endif372 373    while findtype regsID self as regs374        @setvar! moveRegs 0 375        376        if myCounter = 0377            @setvar! moveRegs 1378        elseif myCounter != 0 and not find regs myBag379            @setvar! moveRegs 1380        endif381        382        if moveRegs = 1    383            overhead "splitting pearls.." 11384            if index = 0385                lift regs amount386                drop myBag 44 65 0      387            elseif index = 1388                lift regs amount389                drop myBag 68 65 0           390            elseif index = 2391                lift regs amount392                drop myBag 96 65 0             393            elseif index = 3394                lift regs amount395                drop myBag 121 65 0            396            else397                lift regs amount398                drop myBag 142 65 0         399            endif400        endif401        402        @ignore regs 403        404        if moveRegs = 1405            wait maxwaittimeinms406        endif407 408    endwhile409 410 411    #***** NIGHTSHADE 3976 *****412 413    @setvar! regsID 3976414    @setvar! myCounter 0415 416    while findtype regsID self as r 417        @setvar! myCounter index418        @ignore r419    endwhile420    @clearignore421 422    if counttype regsID self <= 10423        @setvar! amount 2424    elseif counttype regsID self <= 20425        @setvar! amount 4       426    elseif counttype regsID self <= 50427        @setvar! amount 10    428    elseif counttype regsID self <= 100429        @setvar! amount 20    430    elseif counttype regsID self <= 150431        @setvar! amount 30432    elseif counttype regsID self <= 200433        @setvar! amount 40434    else 435        @setvar! amount 50436    endif437 438    while findtype regsID self as regs439        @setvar! moveRegs 0 440        441        if myCounter = 0442            @setvar! moveRegs 1443        elseif myCounter != 0 and not find regs myBag444            @setvar! moveRegs 1445        endif446        447        if moveRegs = 1    448            overhead "splitting shades.." 66449            if index = 0450                lift regs amount451                drop myBag 44 88 0      452            elseif index = 1453                lift regs amount454                drop myBag 68 88 0           455            elseif index = 2456                lift regs amount457                drop myBag 96 88 0             458            elseif index = 3459                lift regs amount460                drop myBag 121 88 0            461            else462                lift regs amount463                drop myBag 142 88 0         464            endif465        endif466        467        @ignore regs 468        469        if moveRegs = 1470            wait maxwaittimeinms471        endif472 473    endwhile474 475    #***** MANDRAKE ROOT 3974 *****476 477    @setvar! regsID 3974478    @setvar! myCounter 0479 480    while findtype regsID self as r 481        @setvar! myCounter index482        @ignore r483    endwhile484    @clearignore485 486    if counttype regsID self <= 10487        @setvar! amount 2488    elseif counttype regsID self <= 20489        @setvar! amount 4       490    elseif counttype regsID self <= 50491        @setvar! amount 10    492    elseif counttype regsID self <= 100493        @setvar! amount 20    494    elseif counttype regsID self <= 150495        @setvar! amount 30496    elseif counttype regsID self <= 200497        @setvar! amount 40498    else 499        @setvar! amount 50500    endif501 502    while findtype regsID self as regs503        @setvar! moveRegs 0 504        505        if myCounter = 0506            @setvar! moveRegs 1507        elseif myCounter != 0 and not find regs myBag508            @setvar! moveRegs 1509        endif510        511        if moveRegs = 1    512            overhead "splitting roots.." 439513            if index = 0514                lift regs amount515                drop myBag 44 88 0      516            elseif index = 1517                lift regs amount518                drop myBag 68 88 0           519            elseif index = 2520                lift regs amount521                drop myBag 96 88 0             522            elseif index = 3523                lift regs amount524                drop myBag 121 88 0            525            else526                lift regs amount527                drop myBag 142 88 0         528            endif529        endif530        531        @ignore regs 532        533        if moveRegs = 1534            wait maxwaittimeinms535        endif536 537    endwhile538 539    #***** SULFUROUS ASH 3980 *****540 541    @setvar! regsID 3980542    @setvar! myCounter 0543 544    while findtype regsID self as r 545        @setvar! myCounter index546        @ignore r547    endwhile548    @clearignore549 550    if counttype regsID self <= 10551        @setvar! amount 2552    elseif counttype regsID self <= 20553        @setvar! amount 4       554    elseif counttype regsID self <= 50555        @setvar! amount 10    556    elseif counttype regsID self <= 100557        @setvar! amount 20    558    elseif counttype regsID self <= 150559        @setvar! amount 30560    elseif counttype regsID self <= 200561        @setvar! amount 40562    else 563        @setvar! amount 50564    endif565 566    while findtype regsID self as regs567        @setvar! moveRegs 0 568        569        if myCounter = 0570            @setvar! moveRegs 1571        elseif myCounter != 0 and not find regs myBag572            @setvar! moveRegs 1573        endif574        575        if moveRegs = 1    576            overhead "splitting ashes.." 56577            if index = 0578                lift regs amount579                drop myBag 44 112 0      580            elseif index = 1581                lift regs amount582                drop myBag 68 112 0           583            elseif index = 2584                lift regs amount585                drop myBag 96 112 0             586            elseif index = 3587                lift regs amount588                drop myBag 121 112 0            589            else590                lift regs amount591                drop myBag 142 112 0         592            endif593        endif594        595        @ignore regs 596        597        if moveRegs = 1598            wait maxwaittimeinms599        endif600 601    endwhile602 603    #***** GINSENG 3973 *****604 605    @setvar! regsID 3973606    @setvar! myCounter 0607 608    while findtype regsID self as r 609        @setvar! myCounter index610        @ignore r611    endwhile612    @clearignore613 614    if counttype regsID self <= 10615        @setvar! amount 2616    elseif counttype regsID self <= 20617        @setvar! amount 4       618    elseif counttype regsID self <= 50619        @setvar! amount 10    620    elseif counttype regsID self <= 100621        @setvar! amount 20    622    elseif counttype regsID self <= 150623        @setvar! amount 30624    elseif counttype regsID self <= 200625        @setvar! amount 40626    else 627        @setvar! amount 50628    endif629 630    while findtype regsID self as regs631        @setvar! moveRegs 0 632        633        if myCounter = 0634            @setvar! moveRegs 1635        elseif myCounter != 0 and not find regs myBag636            @setvar! moveRegs 1637        endif638        639        if moveRegs = 1    640            overhead "splitting gings.." 149641            if index = 0642                lift regs amount643                drop myBag 44 112 0      644            elseif index = 1645                lift regs amount646                drop myBag 68 112 0           647            elseif index = 2648                lift regs amount649                drop myBag 96 112 0             650            elseif index = 3651                lift regs amount652                drop myBag 121 112 0            653            else654                lift regs amount655                drop myBag 142 112 0         656            endif657        endif658        659        @ignore regs 660        661        if moveRegs = 1662            wait maxwaittimeinms663        endif664 665    endwhile666 667    #***** BLOSSMOSS 3963 *****668 669    @setvar! regsID 3963670    @setvar! myCounter 0671 672    while findtype regsID self as r 673        @setvar! myCounter index674        @ignore r675    endwhile676    @clearignore677 678    if counttype regsID self <= 10679        @setvar! amount 2680    elseif counttype regsID self <= 20681        @setvar! amount 4       682    elseif counttype regsID self <= 50683        @setvar! amount 10    684    elseif counttype regsID self <= 100685        @setvar! amount 20    686    elseif counttype regsID self <= 150687        @setvar! amount 30688    elseif counttype regsID self <= 200689        @setvar! amount 40690    else 691        @setvar! amount 50692    endif693 694    while findtype regsID self as regs695        @setvar! moveRegs 0 696        697        if myCounter = 0698            @setvar! moveRegs 1699        elseif myCounter != 0 and not find regs myBag700            @setvar! moveRegs 1701        endif702        703        if moveRegs = 1    704            overhead "splitting bloods.." 35705            if index = 0706                lift regs amount707                drop myBag 44 130 0      708            elseif index = 1709                lift regs amount710                drop myBag 68 130 0           711            elseif index = 2712                lift regs amount713                drop myBag 96 130 0             714            elseif index = 3715                lift regs amount716                drop myBag 121 130 0            717            else718                lift regs amount719                drop myBag 142 130 0         720            endif721        endif722        723        @ignore regs 724        725        if moveRegs = 1726            wait maxwaittimeinms727        endif728 729    endwhile730 731    #***** GARILIC 3972 *****732 733    @setvar! regsID 3972734    @setvar! myCounter 0735 736    while findtype regsID self as r 737        @setvar! myCounter index738        @ignore r739    endwhile740    @clearignore741 742    if counttype regsID self <= 10743        @setvar! amount 2744    elseif counttype regsID self <= 20745        @setvar! amount 4       746    elseif counttype regsID self <= 50747        @setvar! amount 10    748    elseif counttype regsID self <= 100749        @setvar! amount 20    750    elseif counttype regsID self <= 150751        @setvar! amount 30752    elseif counttype regsID self <= 200753        @setvar! amount 40754    else 755        @setvar! amount 50756    endif757 758    while findtype regsID self as regs759        @setvar! moveRegs 0 760        761        if myCounter = 0762            @setvar! moveRegs 1763        elseif myCounter != 0 and not find regs myBag764            @setvar! moveRegs 1765        endif766        767        if moveRegs = 1    768            overhead "splitting garlics.." 910769            if index = 0770                lift regs amount771                drop myBag 44 130 0      772            elseif index = 1773                lift regs amount774                drop myBag 68 130 0           775            elseif index = 2776                lift regs amount777                drop myBag 96 130 0             778            elseif index = 3779                lift regs amount780                drop myBag 121 130 0            781            else782                lift regs amount783                drop myBag 142 130 0         784            endif785        endif786        @ignore regs 787        788        if moveRegs = 1789            wait maxwaittimeinms790        endif791 792    endwhile793 794    #***** RECALL SCROLL 8012 *****795 796    @setvar! regsID 8012797    @setvar! myCounter 0798 799    while findtype regsID self as r 800        @setvar! myCounter index801        @ignore r802    endwhile803    @clearignore804 805    if counttype regsID self <= 5806        @setvar! amount 1807    elseif counttype regsID self <= 10808        @setvar! amount 2       809    elseif counttype regsID self <= 20810        @setvar! amount 4    811    elseif counttype regsID self <= 40812        @setvar! amount 8    813    else 814        @setvar! amount 15815    endif816 817    while findtype regsID self as regs818        @setvar! moveRegs 0 819        820        if myCounter = 0821            @setvar! moveRegs 1822        elseif myCounter != 0 and not find regs myBag823            @setvar! moveRegs 1824        endif825        if moveRegs = 1    826            overhead "splitting scrolls.." 0827            if index = 0828                lift regs amount829                drop myBag 44 88 0      830            elseif index = 1831                lift regs amount832                drop myBag 68 88 0           833            elseif index = 2834                lift regs amount835                drop myBag 96 88 0             836            elseif index = 3837                lift regs amount838                drop myBag 121 88 0            839            else840                lift regs amount841                drop myBag 142 88 0         842            endif843        endif844        845        @ignore regs 846        847        if moveRegs = 1848            wait maxwaittimeinms849        endif850    endwhile851 852    overhead "Splitter completed" 44853 854endif855 856sysmsg "* auto-mining activated *" 66857overhead "* auto-mining activated *" 66858 859clearsysmsg860clearhands both861 862 863while not dead 864    settimer cycleTimer 0865    866    if targetexists867        hotkey 'cancel current target'  868    endif869    870    if enemyFound = 0871        if insysmsg! "Now tracking" or insysmsg! "Distance to"872            @setvar! enemyFound 1873        endif874    endif875 876#********** TRIGGER AUTO-RECALL IF BEING ATTACKED / OUT OF REGS / ENEMY TOO CLOSE **********877    878    if cooldown "Danger" > 0 879        if timer beingAttackedTimer > beingAttackedCD880            sysmsg "* being attacked *" 34881            settimer beingAttackedTimer 0882        endif883        @setvar! autoRecall 1884        @setvar! enemyFound 1885    endif  886    887    if minRegs != 0888        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 <= minRegs889            overhead "* low reagents *" 34890            sysmsg " *low reagents recalling out *" 34891            892            @setvar! autoRecall 1893            @setvar! enemyFound 1894        endif895    endif896    897    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"898        sysmsg "* recalling enemy very close [d 0-9] *" 33899        @setvar! autoRecall 1900        @setvar! enemyFound 1901    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"902        sysmsg "* recalling enemy very close [d 10-17] *" 33903        @setvar! autoRecall 1904        @setvar! enemyFound 1905    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"906        sysmsg "* recalling enemy very close [d 18-25] *" 33907        @setvar! autoRecall 1908        @setvar! enemyFound 1909    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"910        sysmsg "* recalling enemy very close [d 26-33] *" 33911        @setvar! autoRecall 1912        @setvar! enemyFound 1913    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"914        sysmsg "* recalling enemy very close [d 34-40] *" 33915        @setvar! autoRecall 1916        @setvar! enemyFound 1917    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"918        sysmsg "* recalling enemy very close [n 0-9] *" 33919        @setvar! autoRecall 1920        @setvar! enemyFound 1921    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"922        sysmsg "* recalling enemy very close [n 10-17] *" 33923        @setvar! autoRecall 1924        @setvar! enemyFound 1925    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"926        sysmsg "* recalling enemy very close [n 18-25] *" 33927        @setvar! autoRecall 1928        @setvar! enemyFound 1929    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"930        sysmsg "* recalling enemy very close [n 26-33] *" 33931        @setvar! autoRecall 1932        @setvar! enemyFound 1933    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"934        sysmsg "* recalling enemy very close [n 34-40] *" 33935        @setvar! autoRecall 1936        @setvar! enemyFound 1937    endif938    939#********** AUTO-RECALL OUT IF NECESSARY **********940    941    if enemyFound = 1 and autoRecall = 1942        sysmsg "recalling..." 66943        interrupt944        clearignore945        if targetexists946            hotkey 'cancel current target'  947        endif948        wait 200949        950        if mana <= 10951            overhead "* low mana to recall *" 44952        else953        954#********** USING REAGENTS OR RECALL SCROLL ********** 955 956            if recallType = 0 or recallType = 1957            958                while diffhits < medDiff and not targetexists959                    960                    if recallType = 0961                        cast 'recall'962                        sysmsg "recalling using regs" 11963                    else 964                        dclicktype "recall" self965                        sysmsg "recalling using scroll" 11966                    endif967                    968                    while not casting   969                        if recallType = 0970                            cast 'recall'  971                        else 972                            dclicktype "recall" self973                        endif    974                    endwhile  975                    976                    while not targetexists and casting977                        if insysmsg "your concentration"978                            break;979                        endif980                    endwhile981                    982                    waitfortarget maxwaittimeinms983                    984                endwhile     985                986                if targetexists and findtype "runebook|runetome" backpack as obj987                    988                    while findtype "runebook|runetome" backpack as book 989                        if hue book = recallBookHue or recallBookHue = 0                           990                            target book991                            break992                        endif                              993                        @ignore book                           994                    endwhile995                    996                    @clearignore997                    getlabel backpack xxx998                    wait 200999                    1000                    if insysmsg "marked"1001                        overhead "Runebook is not marked! Mark the book NOW!" 341002                    elseif targetexists1003                        overhead "Recall Book not found. Switching hue type to 0" 341004                        @setvar! recallBookHue 01005                    else 1006                        overhead "Finished!" 651007                        stop  1008                    endif                    1009                    1010                elseif targetexists and findtype "recall rune" backpack as obj1011                    @setvar! tempRune 0  1012 1013                    while findtype "recall rune" backpack as obj1014                        getlabel obj runeLabel  1015                        if "blank" in runeLabel1016                        else 1017                            if "home" in runeLabel1018                                target obj1019                                @setvar! tempRune obj  1020                                break1021                            endif1022                            @setvar! tempRune obj    1023                        endif1024                        @ignore obj1025                    endwhile1026                    1027                    @clearignore1028                    getlabel backpack xxx1029                    wait 2001030                        1031                    if targetexists and tempRune != 01032                        target tempRune1033                        overhead "Finished!"1034                    elseif tempRune = 01035                        overhead "No recalleable rune found" 341036                        hotkey "cancel current target"1037                    elseif insysmsg "blocked" 1038                        overhead "Location blocked" 341039                    else1040                        overhead "Finished!"     1041                    endif                                     1042                    stop1043                                                         1044                elseif targetexists1045                    overhead "No recall book or rune found" 341046                endif1047 1048            elseif recallType = 2 or recallType = 31049            1050#********** USING RECALL BOOK CHARGE **********   1051                1052                if findtype "runebook|runetome" backpack1053                1054                    if diffhits < medDiff1055                        @setvar! foundBook 01056                        1057                        while findtype "runebook" backpack as book1058                            if hue book = recallBookHue or recallBookHue = 01059                                dclick book backpack1060                                waitforgump 1551740969 maxwaittimeinms1061                                1062                                if recallType = 21063                                    gumpresponse 2 1064                                elseif recallType = 31065                                    gumpresponse 921066                                endif1067                                1068                                @setvar! foundBook book1069                                break1070                            else 1071                                @ignore book1072                            endif1073                        endwhile1074                        1075                        while foundBook = 0 and findtype "runetome" backpack as book1076                            if hue book = recallBookHue or recallBookHue = 01077                                dclick book backpack1078                                waitforgump 167090027 maxwaittimeinms1079                                1080                                if recallType = 21081                                    gumpresponse 100 1082                                elseif recallType = 3 1083                                    gumpresponse 1251084                                endif1085                                1086                                @setvar! foundBook book1087                                break1088                            else 1089                                @ignore book1090                            endif1091                        endwhile1092                        1093                        getlabel backpack xxx1094                        wait 2001095                        1096                        if foundBook = 0 1097                            overhead "Recall book not found!" 34    1098                        elseif insysmsg "charges"1099                                overhead "Recall book out of charges!" 341100                        elseif insysmsg "This book"1101                                overhead "Recall book cooldown!" 341102                        elseif casting1103                            while casting1104                            endwhile 1105                            1106                            getlabel backpack xxx1107                            wait 2001108                                1109                            if insysmsg "concentration"1110                                overhead "Interrupted!" 341111                            elseif insysmsg "location"1112                                overhead "Location blocked!" 1113                            else1114                                overhead "Successful" 65 1115                                sysmsg "Mining Completed!" 651116                                stop1117                            endif1118                        else 1119                            if insysmsg "concentration"1120                                overhead "Interrupted!" 341121                            else 1122                                if recallType = 2 1123                                    overhead "First rune not found" 34    1124                                else1125                                    overhead "Last rune not found" 341126                                    overhead "Changing to first rune.." 341127                                    @setvar! recallType 21128                                endif                                1129                            endif1130                        endif1131                    endif1132                else 1133                    overhead "No runebook or runetome found to use charge!" 341134                endif1135            else 1136                overhead "Variable 'recallType' value out of range" 341137            endif                     1138        endif1139    endif1140    1141#********** AUTO-HEALING IF NEEDED **********      1142 1143    while diffhits >= lowDiff or paralyzed or poisoned1144        sysmsg "auto-healing activated" 11      1145        #--- Trapped ---#1146        1147        if paralyzed 1148            if findtype "pouch" backpack 38 1149                yell "[pouch"            1150                wait 2001151            else1152                if timer pouchMessageTimer > pouchMessageCD1153                    overhead "Out of Pouches!" 341154                    settimer pouchMessageTimer 01155                endif1156            endif1157        endif1158            1159        #--- Self bandage ---#1160        1161        if diffhits >= 1 and not bandaging1162            if skill 'healing' >= 50 or skill "veterinary" >= 501163                if findtype 'clean bandage%s%' backpack1164                1165                    if targetexists1166                        hotkey 'cancel current target'  1167                    endif1168                    dclicktype 'clean bandage%s%'1169                    waitfortarget maxwaittimeinms1170                    target 'self'1171                    wait 200            1172                else1173                    if timer aidsMessageTimer > aidsMessageCD1174                        overhead "Out of bandages" 341175                        settimer aidsMessageTimer 01176                    endif1177                endif1178            endif1179        endif1180        1181        #--- Drink str pot ---#1182        1183        if drinkStr = 1 and str < strengthLowerThan1184            if not findbuff "Strength" 1185                if findtype "White Potion" self1186                    dclicktype "White Potion"1187                    wait 2001188                else1189                    if timer whiteMessageTimer > whiteMessageCD1190                        overhead "Out of str pots" 341191                        settimer whiteMessageTimer 0 1192                    endif1193                endif1194            endif1195        endif1196        1197        #--- Drink agility pot ---#1198        1199        if drinkAgility = 11200            if not findbuff "Agility" 1201                if findtype "Blue Potion" self1202                    dclicktype "Blue Potion"1203                    wait 2001204                else1205                    if timer blueMessageTimer > blueMessageCD1206                        overhead "Out of agility pots" 341207                        settimer blueMessageTimer 0 1208                    endif1209                endif1210            endif1211        endif1212            1213        #--- Drink magic resist pot ---#1214    1215        if drinkMagicResist = 11216            if not findbuff "Magic Resist" 1217                if findtype "Black Potion" self1218                    dclicktype "Black Potion"1219                    wait 2001220                else1221                    if timer blackMessageTimer > blackMessageCD1222                        overhead "Out of resist pots" 341223                        settimer blackMessageTimer 01224                    endif1225                endif1226            endif1227        endif1228            1229        #--- Poisoned ---#1230        1231        if 1 = drinkCure or 1 = cureSpell1232            while poisoned1233                if findtype "Orange Potion" self1234                    dclicktype "Orange Potion"1235                    wait 2001236                else1237                    if timer orangeMessageTimer > orangeMessageCD1238                        overhead "Out of cure pots" 341239                        settimer orangeMessageTimer 01240                    endif1241                    1242                    if diffhits > highDiff or not findtype 3972 self or not findtype 3973 self1243                        break1244                    endif1245                    1246                    if skill 'magery' >= 40 and mana >= 6 and 1 = cureSpell and not casting1247                        cast 'cure'1248                        wait 501249                        while not casting                   1250                            if targetexists1251                                hotkey 'cancel current target'1252                            endif1253                            cast 'cure'  1254                            wait 501255                        endwhile  1256                        while not targetexists and casting1257                        endwhile1258                        waitfortarget maxwaittimeinms1259                        target 'self' 1260                        wait 2001261                    else 1262                        break1263                    endif1264                endif1265                1266            endwhile1267        endif1268            1269        #--- Drink Heal Pot ---#1270        1271        if diffhits >= highDiff and 1 = drinkHeal1272            if findtype "Yellow Potion" self as hPot1273                getlabel hPot potLabel1274                if "next" in potLabel1275                    #do nothing1276                else1277                    @setvar! ch 01278                    1279                    if counttype 3852 self as c1280                        @setvar! ch c1281                    endif1282                    clearsysmsg  1283                    1284                    dclicktype 38521285                    getlabel backpack xxx1286                    wait 2001287                                1288                    if ch != counttype 3852 self or insysmsg "potion satchel used"1289                        cooldown "Heal Pot" healingPotCD1290                    endif1291                endif1292            else1293                if timer yellowMessageTimer > yellowMessageCD1294                    overhead "Out of heals pots" 341295                    settimer yellowMessageTimer 01296                endif1297            endif1298        endif1299                1300        #--- Drink red pot ---#1301        1302        if stam < staminaLowerThan and 1 = drinkRefresh1303            if findtype "Red Potion" self1304                dclicktype "Red Potion"1305                wait 2001306            else1307                if timer redMessageTimer > redMessageCD1308                    overhead "Out of refresh pots" 341309                    settimer redMessageTimer 0 1310                endif1311            endif1312        endif1313            1314        #--- Cast heals ---#1315        1316        if skill 'magery' >= 40 and diffhits >= lowDiff and diffhits < medDiff and mana >= 4 and miniHeal = 1 and not casting1317            cast 'heal'1318            while not casting                   1319                if targetexists1320                    hotkey 'cancel current target'1321                endif1322                cast 'heal'1323            endwhile  1324            1325            while not targetexists and casting1326            endwhile1327            1328            waitfortarget maxwaittimeinms1329            target 'self' 1330            wait 200  1331            1332        elseif skill 'magery' >= 60 and diffhits >= medDiff and diffhits <= highDiff mana >= 11 and greaterHeal = 1 and not casting1333            cast 'greater heal'         1334            while not casting                   1335                if targetexists1336                    hotkey 'cancel current target'1337                endif1338                cast 'greater heal'1339            endwhile  1340            1341            while not targetexists and casting1342                1343                #--- Poisoned ---#1344                1345                if 1 = drinkCure1346                    while poisoned1347                        if findtype "Orange Potion" self1348                            dclicktype "Orange Potion"1349                            wait 2001350                        else1351                            if timer orangeMessageTimer > orangeMessageCD1352                                overhead "Out of cure pots" 341353                                settimer orangeMessageTimer 01354                                break1355                            endif1356            1357                        endif1358                    endwhile1359                endif            1360            1361                #--- Drink Heal Pot ---#1362                1363                if diffhits >= highDiff and 1 = drinkHeal1364                    if findtype "Yellow Potion" self as hPot1365                        getlabel hPot potLabel1366                        if "next" in potLabel1367                            #do nothing1368                        else1369                            @setvar! ch 01370                            1371                            if counttype 3852 self as c1372                                @setvar! ch c1373                            endif1374                            clearsysmsg  1375                            1376                            dclicktype 38521377                            getlabel backpack xxx1378                            wait 2001379                                        1380                            if ch != counttype 3852 self or insysmsg "potion satchel used"1381                                cooldown "Heal Pot" healingPotCD1382                            endif1383                        endif1384                    else1385                        if timer yellowMessageTimer > yellowMessageCD1386                            overhead "Out of heals pots" 341387                            settimer yellowMessageTimer 01388                        endif1389                    endif1390                endif1391        1392            endwhile1393            1394            waitfortarget maxwaittimeinms1395            target 'self' 1396            wait 200 1397            1398        elseif skill 'magery' >= 40 and diffhits > highDiff and mana >= 4 and miniHeal = 1 and not casting1399            cast 'heal'     1400            while not casting                   1401                if targetexists1402                    hotkey 'cancel current target'1403                endif1404                cast 'heal' 1405            endwhile  1406            1407            while not targetexists and casting1408            endwhile1409            1410            waitfortarget maxwaittimeinms1411            target 'self' 1412            wait 200  1413        1414        endif 1415    1416    endwhile1417    1418#********** AUTO-MAGERY BUFFS IF NEEDED ********** 1419 1420    if enemyFound = 0 or autoRecall = 01421        if magicReflect = 1 and skill 'magery' >= 70 and not findbuff "Magic Reflection" and mana >= miniumManaToBuff and diffhits < lowDiff1422            if timer magicReflectTimer > magicReflectCD1423                cast 'Magic Reflection'1424                while not casting and diffhits < lowDiff    1425                    getlabel backpack xxx1426                    wait 2001427                    if insysmsg "that spell will not" or insysmsg "that spell is already"1428                        settimer magicReflectTimer 01429                        break  1430                    endif1431                    if targetexists1432                        hotkey 'cancel current target'1433                    endif1434                    cast 'Magic Reflection'1435                endwhile 1436                1437                while casting and diffhits < highDiff   1438                1439                    #--- Poisoned ---#1440                    1441                    if 1 = drinkCure1442                        while poisoned1443                            if findtype "Orange Potion" self1444                                dclicktype "Orange Potion"1445                                wait 2001446                            else1447                                if timer orangeMessageTimer > orangeMessageCD1448                                    overhead "Out of cure pots" 341449                                    settimer orangeMessageTimer 01450                                    break1451                                endif1452                1453                            endif1454                        endwhile1455                    endif            1456                1457                    #--- Drink Heal Pot ---#1458                    1459                    if diffhits >= highDiff and 1 = drinkHeal1460                        if findtype "Yellow Potion" self as hPot1461                            getlabel hPot potLabel1462                            if "next" in potLabel1463                                #do nothing1464                            else1465                                @setvar! ch 01466                                1467                                if counttype 3852 self as c1468                                    @setvar! ch c1469                                endif1470                                clearsysmsg  1471                                1472                                dclicktype 38521473                                getlabel backpack xxx1474                                wait 2001475                                            1476                                if ch != counttype 3852 self or insysmsg "potion satchel used"1477                                    cooldown "Heal Pot" healingPotCD1478                                endif1479                            endif1480                        else1481                            if timer yellowMessageTimer > yellowMessageCD1482                                overhead "Out of heals pots" 341483                                settimer yellowMessageTimer 01484                            endif1485                        endif1486                    endif1487                    1488                endwhile1489                wait 200  1490            endif    1491        endif1492        1493        if armorReflect = 1 and skill 'magery' >= 30 and not findbuff "Reactive Armor" and mana >= miniumManaToBuff and diffhits < lowDiff1494            if timer magicReflectTimer > magicReflectCD1495                cast 'Reactive Armor'1496                while not casting and diffhits < highDiff       1497                    getlabel backpack xxx1498                    wait 2001499                    if insysmsg "that spell will not" or insysmsg "that spell is already"1500                        settimer armorReflectTimer 01501                        break  1502                    endif1503                    if targetexists1504                        hotkey 'cancel current target'1505                    endif1506                    cast 'Reactive Armor'1507                endwhile  1508                1509                while casting and diffhits < lowDiff   1510                endwhile1511                wait 200  1512            endif    1513        endif     1514        1515        if protectionSpell = 1 and skill 'magery' >= 40 and not findbuff "Protection" and mana >= miniumManaToBuff and diffhits < lowDiff1516            cast 'Protection'1517            while not casting and diffhits < highDiff 1518                if targetexists1519                    hotkey 'cancel current target'1520                endif1521                cast 'Protection'1522            endwhile  1523            while casting and diffhits < lowDiff   1524            endwhile1525            wait 200  1526        endif 1527        1528        if bless = 1 and skill 'magery' >= 50 and not findbuff "Cunning" and mana >= miniumManaToBuff and diffhits < lowDiff1529            sysmsg 'blessing..'1530            cast 'Bless'         1531            while not casting and diffhits < highDiff                   1532                if targetexists1533                    hotkey 'cancel current target'1534                endif1535                cast 'Bless'1536                wait 501537            endwhile  1538            1539            while not targetexists and casting1540            endwhile1541            1542            waitfortarget maxwaittimeinms1543            target 'self' 1544            wait 200  1545        endif 1546    endif1547    1548#********** CHECK FOR WOODEN BOX & CAST SUMMONS ********** 1549 1550    if not findtype "wooden box" backpack or not findtype "copper key" backpack1551        overhead "Need 1 wooden box and 1 copper key to begin!" 331552        wait maxwaittimeinms       1553    elseif counttype 2474 backpack > 1 or counttype 4110 backpack > 1 1554         overhead "You have more than 2 wooden boxes or more than 2 copper keys" 331555         wait maxwaittimeinms       1556    elseif findtype "wooden box" backpack as chest and findtype "copper key" backpack as key and 0 = isRecalling1557        getlabel chest chestLabel1558        if "items" in chestLabel1559            dclick key1560            waitfortarget maxwaittimeinms1561            target chest1562            wait maxwaittimeinms1563            overhead "[chest locked]" 551564        endif1565    1566        #Check if we want to cast1567        if enemyFound = 0 or autoRecall = 01568            #Summon elemental if counters goes below min followers1569            1570            if followers < 4 and followers < maxFollowers and skill 'magery' >= 80 and diffhits < lowDiff and 0 = isRecalling1571                1572                if mana <= 49 1573                    overhead "low mana to summon" 891574                else 1575                    cast 'Water Elemental'1576                    1577                    getlabel backpack XXX1578                    wait 2001579                    1580                    while casting1581                        if enemyFound = 01582                            if insysmsg! "Now tracking" or insysmsg! "Distance to"1583                                @setvar! enemyFound 11584                            endif1585                        endif1586                        1587                        if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 01588                            @setvar! isRecalling 11589                            interrupt1590                            break1591                        endif1592                        1593                        if diffhits >= lowDiff1594                            interrupt1595                            break1596                        endif1597                        1598                        if timer summonTimer > summonCD1599                            overhead "* summoning... *"1600                            settimer summonTimer 01601                        endif1602                    endwhile1603                    wait 10001604                    say 'all guard me' 9011605                endif1606            endif1607        endif1608        1609  #********** IF OVERWEIGHT AUTO-DETECT PACK HORSE/LLAMA AND MOVE ORE TO PACK **********  1610        1611        if findtype 291|292 ground -1 -1 12 as pack1612            if myPack = 0 and noto pack = "friend"1613                @setvar! myPack pack1614            endif            1615        endif1616        1617        if diffweight <= myWeightDiff or weight > maxweight1618            @setvar! isOverweight 11619            if timer overweightTimer > overweightCD1620                overhead '[Overweight Reached]' 44   1621                settimer overweightTimer 01622            endif1623        else 1624            @setvar! isOverweight 01625        endif1626            1627        if find myPack ground -1 -1 12 and 1 = isOverweight1628            1629            while findtype "iron ore" backpack any any 1 as ore and diffhits < lowDiff and 0 = isRecalling   1630            1631                if enemyFound = 01632                    if insysmsg! "Now tracking" or insysmsg! "Distance to"1633                        @setvar! enemyFound 11634                    endif1635                endif1636                1637                if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 01638                    @setvar! isRecalling 11639                    break1640                endif  1641                1642                if find myPack ground -1 -1 21643                    dclick myPack1644                    wait 2001645                    if counttype "iron ore" myPack >= 9751646                        overhead "* packy is full *" 341647                        sysmsg  "* auto recalling packy is full *" 341648                        @setvar! enemyFound 11649                        @setvar! autoRecall 1  1650                    elseif counttype "iron ore" myPack >= 900 1651                        lift ore 251652                        drop myPack 1653                        getlabel myPack testyL1654                        sysmsg '{{testyL}}'1655                        overhead "* dropping ore in pack *" 541656                        wait 650       1657                    else 1658                        lift ore 501659                        drop myPack 1660                        getlabel myPack testyL1661                        sysmsg '{{testyL}}'1662                        overhead "* dropping ore in pack *" 541663                        wait 650  1664                    endif 1665                else 1666                    overhead "* move closer to pack *" 441667                    wait 650  1668                endif1669                   1670            endwhile  1671            1672            getlabel myPack packLabel1673            1674            overhead "{{packLabel}}" 88 myPack1675            sysmsg "{{packLabel}}" 88 myPack1676            1677        endif1678   1679 1680#********** BEGIN HARVESTING **********  1681        1682        while lhandempty and rhandempty and 0 = isRecalling1683 1684            if enemyFound = 01685                if insysmsg! "Now tracking" or insysmsg! "Distance to"1686                    @setvar! enemyFound 11687                endif1688            endif1689            1690            if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 01691                @setvar! isRecalling 11692                break1693            endif  1694  1695            if not findtype myHarvestingTool backpack1696                overhead "Out of pickaxes!" 361697                wait maxwaittimeinms1698            elseif not casting               1699                dclicktype myHarvestingTool1700                wait maxwaittimeinms1701            endif1702        endwhile1703 1704        if 0 = isOverweight and 0 = isRecalling1705            hotkey 'Use Item In Hand'1706        1707            settimer mineTimer 01708            1709            while timer mineTimer < mineTimerCD and diffhits < lowDiff1710                if enemyFound = 01711                    if insysmsg! "Now tracking" or insysmsg! "Distance to"1712                        @setvar! enemyFound 11713                    endif1714                endif1715                1716                if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 01717                    @setvar! isRecalling 11718                    break1719                endif                         1720            endwhile1721            1722            getlabel backpack xxx1723            wait 200  1724            1725            if insysmsg "you do not see any"1726                overhead "* no more ore to mine*" 44 1727            elseif insysmsg "you have recently traveled"1728                overhead "* travel cooldown *" 9011729            else1730                overhead "* mining ore *" 11  1731            endif 1732        endif1733 1734#********** SECURING INGOTS in LOCKED WOODEN BOX IF FOUND IN BACKPACK **********   1735 1736        while findtype 7154 backpack any any 1 as ingotz and diffhits < lowDiff and 0 = isRecalling1737            1738            if enemyFound = 01739                if insysmsg! "Now tracking" or insysmsg! "Distance to"1740                    @setvar! enemyFound 11741                endif1742            endif1743            1744            if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 01745                @setvar! isRecalling 11746                break1747            endif    1748 1749            overhead "* securing ingots *" 111750            clearsysmsg 1751            wait 2001752            lift ingotz 99991753            drop chest -1 -1 01754            1755            getlabel backpack xxx1756            wait 6501757            1758            if insysmsg "it appears"1759                overhead "[unlocking chest]" 441760                dclick key1761                waitfortarget 10001762                target chest1763                wait 6501764            endif1765        endwhile1766        1767        getlabel chest chestLabel1768        if "items" in chestLabel1769            dclick key1770            waitfortarget 10001771            target chest1772            overhead "[chest closed]" 541773        endif1774        1775#********** AUTO-DETECT NEARBY FORGES AND AUTO SMELT ORE FROM BACKPACK AND PACK HORSE/LLAMA **********               1776        1777        if findtype "forge" ground -1 -1 3 as forgy and 0 = isRecalling1778            overhead " * FORGE NEAR HERE *" 88 forgy 1779            while find forgy ground -1 -1 3 and findtype "iron ore" backpack as ore1780            1781                if enemyFound = 01782                    if insysmsg! "Now tracking" or insysmsg! "Distance to"1783                        @setvar! enemyFound 11784                    endif1785                endif1786                1787                if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 01788                    @setvar! isRecalling 11789                    break1790                endif  1791                1792                dclick ore1793                getlabel backpack xxx1794                wait 6501795                if insysmsg "you smelt"1796                    overhead "* backpack ore smelted *" 881797                elseif insysmsg "You do not see any nearby forges"1798                    overhead "* forge too far away *" 441799                endif                1800            endwhile1801            1802            if find myPack ground -1 -1 21803                getlabel myPack packLabel1804                1805                if "[0/2000" in packLabel1806                    #pack is empty1807                else    1808                    dclick myPack1809                    wait 6501810                    1811                    while find forgy ground -1 -1 3 and findtype "iron ore" myPack as ore1812                        if enemyFound = 01813                            if insysmsg! "Now tracking" or insysmsg! "Distance to"1814                                @setvar! enemyFound 11815                            endif1816                        endif1817                        1818                        if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 01819                            @setvar! isRecalling 11820                            interrupt1821                            break1822                        endif1823                        1824                        dclick ore1825                        getlabel backpack xxx1826                        wait 6501827                        if insysmsg "you smelt"1828                            overhead "* pack ore smelted *" 881829                            getlabel myPack packLabel1830                            overhead "{{packLabel}}" 111831                            sysmsg "{{packLabel}}" 111832                        elseif insysmsg "you do not see" 1833                            overhead "* pack too far smelt *" 44 myPack1834                        endif                  1835                    endwhile1836                    1837                endif1838            endif1839            1840        elseif findtype "forge" ground -1 -1 4 as forgy1841            overhead " * FORGE HERE *" 88 forgy 1842        elseif findtype "forge" ground -1 -1 6 as forgy1843            overhead " * FORGE HERE *" 88 forgy 1844        elseif findtype "forge" ground -1 -1 8 as forgy1845            overhead " * FORGE HERE *" 88 forgy  1846        elseif findtype "forge" ground -1 -1 10 as forgy1847            overhead " * FORGE HERE *" 88 forgy  1848        elseif findtype "forge" ground -1 -1 12 as forgy1849            overhead " * FORGE HERE *" 88 forgy  1850        endif1851 1852    endif1853    1854    #sysmsg "Loop cycle elapsed : {{cycleTimer}}"1855endwhile