Back to "anti-theft" tags

SUPER Auto-mining by dennozz

1#SUPER Auto-mining ver.4.70
2
3#********** INFORMATION **********# 
4
5#Made by @dennozz on discord. 
6#Inspired/learned by other scrips in https://outlands.uorazorscripts.com/
7
8#IMPORTANT: You will need 1 wooden box and 1 copper key that opens the wooden box (this is for anti-theft)
9#           You can craft wooden boxes with 50 carpentry and 50 tinkering
10    
11#IMPORTANT: You will need to create an in-game options cooldown named `Danger`. 
12#Options -> Cooldowns -> New Entry -> Name: `Danger` -> Cooldown Type -> `PvP Timer` -> Done
13
14#My Gathering template (Anti PK):
15#Lumber - 120
16#Mining - 120
17#Magery - 100
18#Healing - 80
19#Resist - 80
20#Tracking -80
21#Wrestling - 80
22#Spirit - 40
23#Alchemy - 20
24
25#********** SET YOUR SETTINGS **********# 
26
27#--- Set max followers ---#
28# 0 - none
29# 2 - one water elemental (recommended)
30# 4 - two water elemental
31
32@setvar! maxFollowers 2
33
34#--- Set auto recall ---#
35# 0 - will auto recall when PKs are 40 steps or closer (medioum risk)
36# 1 - will auto recall when detect PKs at any distance (low risk)
37
38@setvar! autoRecall 0
39
40#-- Set recall type --#
41# 0 - using regs
42# 1 - using scroll
43# 2 - using charge recall from first rune in book
44# 3 - using charge recall from last rune in book
45
46@setvar! recallType 0
47
48#--- Set recall object ---#
49# 0 - carry one runebook | carry one rune | if multiple runes name the one you recall `home`
50# 1234 - if you carry multiple runebooks or runetomes set the hue of the book you wish to recall (type `>info` to get hue info)
51
52@setvar! recallBookHue 0
53
54#--- If regs are low auto recall ---#
55# 0 - you dont carry regs
56# 123 - if below this number will recall
57
58@setvar! minRegs 5
59
60#--- Auto split regs ---#
61# 0 - you dont want to split regs into different groups 
62# 1 - will auto split regs in different groups (anti-theft)
63
64@setvar! autoSplitRegs 1
65
66# 0 - will let you target the bag you wish to split your regs into
67# 1 - will automatically select the bag in your backpack on this order : satchel > pouch > backpack bag > round bag > char backpack
68    
69@setvar! autoSelectBag 1
70
71#--- Set potions ---#
72
73@setvar! drinkStr 1
74@setvar! drinkAgility 0
75@setvar! drinkMagicResist 1
76@setvar! drinkHeal 1
77@setvar! drinkCure 1
78@setvar! drinkRefresh 1
79
80@setvar! strengthLowerThan 100
81@setvar! staminaLowerThan 10
82
83#--- Set Mage auto heals ---#
84
85@setvar! miniHeal 1
86@setvar! greaterHeal 1
87@setvar! cureSpell 1
88
89#--- Set Mage Buffs ---#
90
91@setvar! magicReflect 1
92@setvar! bless 0
93@setvar! armorReflect 1
94@setvar! protectionSpell 1
95@setvar! miniumManaToBuff 50
96
97@setvar! useMeditationSkill 0
98@setvar! meditateWhenManaBelow 40
99@setvar! meditateUntilManaReach 70
100
101#--- Set Cooldowns ---#
102
103#Set value at `575` if have 60-80 ping ms. Adjust depending on ping
104
105@setvar! mineTimerCD 575
106
107
108#********** DO NOT EDIT FROM HERE UNLESS YOU KNOW HOW TO SCRIPT **********
109
110
111@setvar! isRecalling 0
112@setvar! isOverweight 0
113@setvar! myHarvestingTool 3718
114@setvar! maxwaittimeinms 650
115@setvar! foundBook 0
116@setvar! myPack 0
117@setvar! smeltingOre 0
118
119#--- Auto healing hp diffs ---#
120
121@setvar! lowDiff 20 
122@setvar! medDiff 30
123@setvar! highDiff 50
124@setvar! extremeDiff 60
125@setvar! criticalDiff 75
126
127#** Weight trigger **
128
129@setvar! myWeightDiff 41
130
131#** Recall triggers **
132
133@setvar! enemyFound 0
134
135#** Cut & Store timers **
136
137@setvar! storeTimerCD 45000
138settimer storeTimer storeTimerCD
139
140#** Magery buffs timers **
141
142@setvar! magicReflectCD 15000
143settimer magicReflectTimer 15000
144
145@setvar! armorReflectCD 15000
146settimer armorReflectTimer 15000
147
148@setvar! protectionCD 15000
149settimer protectionTimer 15000
150
151#** Script msgs timers **
152
153@setvar! healingMessageCD 4500
154settimer healingMessageTimer 0
155
156@setvar! guardMessageCD 5500
157settimer guardMessageTimer guardMessageCD
158
159@setvar! summonCD 2500
160settimer summonTimer summonCD
161
162@setvar! beingAttackedCD 5000
163settimer beingAttackedTimer 5000
164
165@setvar! overweightCD 2000
166settimer overweightTimer overweightCD
167
168#** Items in backpack timers **
169
170@setvar! pouchMessageCD 5000
171settimer pouchMessageTimer pouchMessageCD
172
173@setvar! aidsMessageCD 4000
174settimer aidsMessageTimer aidsMessageCD
175
176@setvar! whiteMessageCD 3000
177settimer whiteMessageTimer whiteMessageCD
178
179@setvar! blackMessageCD 2500
180settimer blackMessageTimer blackMessageCD
181
182@setvar! orangeMessageCD 2000
183settimer orangeMessageTimer orangeMessageCD
184
185@setvar! yellowMessageCD 1500
186settimer yellowMessageTimer yellowMessageCD
187
188@setvar! redMessageCD 1000
189settimer redMessageTimer redMessageCD
190
191@setvar! healingPotCD 11000
192
193#********** PRE-SCRIPT FOOD BUFF AND TRACKING ON **********
194
195if not findbuff "food" and findtype "tray" backpack as fody    
196    dclick fody
197    wait 200
198endif
199
200if not findbuff "tracking"
201    
202    while not gumpexists 4267467659
203        skill "tracking"
204        wait maxwaittimeinms
205    endwhile
206
207    while not insysmsg "You will now hunt all hostile players"
208        gumpresponse 8
209        wait 500
210        waitforgump 4267467659 maxwaittimeinms
211    endwhile
212    
213    if ingump "Begin Hunting" 4267467659
214        gumpresponse 6
215        wait maxwaittimeinms
216        waitforgump 4267467659 maxwaittimeinms
217        wait maxwaittimeinms
218        gumpclose 4267467659 
219        wait 100
220    endif
221
222    sysmsg "* tracking ON *" 66
223endif
224
225#********** AUTO SPLIT REAGENTS **********# 
226
227if autoSplitRegs = 1 
228
229    clearignore 
230
231    @setvar! amount 0
232    @setvar! myBag 0
233    @setvar! maxwaittimeinms 650
234
235    if autoSelectBag = 1
236        if findtype 30765 self as b
237            @setvar! myBag b
238        elseif findtype 3705 self as b
239            @setvar! myBag b
240        elseif findtype 3701 self as b
241            @setvar! myBag b
242        elseif findtype 3702 self as b
243            @setvar! myBag b
244        else 
245            @setvar! myBag backpack
246        endif
247    else 
248        clearsysmsg
249        overhead "Select bag:" 68
250        @setvar! myBag
251        getlabel backpack xxx
252        wait 200
253        while not targetexists and not insysmsg "Select"
254            @setvar! myBag    
255        endwhile
256        
257        if find myBag self
258            getlabel myBag bagLabel
259            
260            if "wizard" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel
261                sysmsg "new bag set" 55
262            else 
263                @setvar! myBag 0
264                overhead "That is not a bag" 34
265                sysmsg "That is not a bag" 34
266                stop
267            endif
268        else 
269            overhead "No bag found!" 34
270            stop    
271        endif
272    endif
273
274    overhead "Splitter Begin.." 55
275
276    #***** SPIDER SILK 3981 *****
277
278    @setvar! regsID 3981
279    @setvar! myCounter 0
280
281    while findtype regsID self as r 
282        @setvar! myCounter index
283        @ignore r
284    endwhile
285    @clearignore
286
287    if counttype regsID self <= 10
288        @setvar! amount 2
289    elseif counttype regsID self <= 20
290        @setvar! amount 4       
291    elseif counttype regsID self <= 50
292        @setvar! amount 10    
293    elseif counttype regsID self <= 100
294        @setvar! amount 20    
295    elseif counttype regsID self <= 150
296        @setvar! amount 30
297    elseif counttype regsID self <= 200
298        @setvar! amount 40
299    else 
300        @setvar! amount 50
301    endif
302
303    while findtype regsID self as regs
304        @setvar! moveRegs 0 
305        
306        if myCounter = 0
307            @setvar! moveRegs 1
308        elseif myCounter != 0 and not find regs myBag
309            @setvar! moveRegs 1
310        endif
311        
312        if moveRegs = 1    
313            overhead "splitting silks.." 0
314            if index = 0
315                lift regs amount
316                drop myBag 44 65 0      
317            elseif index = 1
318                lift regs amount
319                drop myBag 68 65 0           
320            elseif index = 2
321                lift regs amount
322                drop myBag 96 65 0             
323            elseif index = 3
324                lift regs amount
325                drop myBag 121 65 0            
326            else
327                lift regs amount
328                drop myBag 142 65 0         
329            endif
330        endif
331        
332        @ignore regs 
333        
334        if moveRegs = 1
335            wait maxwaittimeinms
336        endif
337
338    endwhile
339
340    #***** BLACK PEARL 3962 *****
341
342    @setvar! regsID 3962
343    @setvar! myCounter 0
344
345    while findtype regsID self as r 
346        @setvar! myCounter index
347        @ignore r
348    endwhile
349    @clearignore
350
351    if counttype regsID self <= 10
352        @setvar! amount 2
353    elseif counttype regsID self <= 20
354        @setvar! amount 4       
355    elseif counttype regsID self <= 50
356        @setvar! amount 10    
357    elseif counttype regsID self <= 100
358        @setvar! amount 20    
359    elseif counttype regsID self <= 150
360        @setvar! amount 30
361    elseif counttype regsID self <= 200
362        @setvar! amount 40
363    else 
364        @setvar! amount 50
365    endif
366
367    while findtype regsID self as regs
368        @setvar! moveRegs 0 
369        
370        if myCounter = 0
371            @setvar! moveRegs 1
372        elseif myCounter != 0 and not find regs myBag
373            @setvar! moveRegs 1
374        endif
375        
376        if moveRegs = 1    
377            overhead "splitting pearls.." 11
378            if index = 0
379                lift regs amount
380                drop myBag 44 65 0      
381            elseif index = 1
382                lift regs amount
383                drop myBag 68 65 0           
384            elseif index = 2
385                lift regs amount
386                drop myBag 96 65 0             
387            elseif index = 3
388                lift regs amount
389                drop myBag 121 65 0            
390            else
391                lift regs amount
392                drop myBag 142 65 0         
393            endif
394        endif
395        
396        @ignore regs 
397        
398        if moveRegs = 1
399            wait maxwaittimeinms
400        endif
401
402    endwhile
403
404
405    #***** NIGHTSHADE 3976 *****
406
407    @setvar! regsID 3976
408    @setvar! myCounter 0
409
410    while findtype regsID self as r 
411        @setvar! myCounter index
412        @ignore r
413    endwhile
414    @clearignore
415
416    if counttype regsID self <= 10
417        @setvar! amount 2
418    elseif counttype regsID self <= 20
419        @setvar! amount 4       
420    elseif counttype regsID self <= 50
421        @setvar! amount 10    
422    elseif counttype regsID self <= 100
423        @setvar! amount 20    
424    elseif counttype regsID self <= 150
425        @setvar! amount 30
426    elseif counttype regsID self <= 200
427        @setvar! amount 40
428    else 
429        @setvar! amount 50
430    endif
431
432    while findtype regsID self as regs
433        @setvar! moveRegs 0 
434        
435        if myCounter = 0
436            @setvar! moveRegs 1
437        elseif myCounter != 0 and not find regs myBag
438            @setvar! moveRegs 1
439        endif
440        
441        if moveRegs = 1    
442            overhead "splitting shades.." 66
443            if index = 0
444                lift regs amount
445                drop myBag 44 88 0      
446            elseif index = 1
447                lift regs amount
448                drop myBag 68 88 0           
449            elseif index = 2
450                lift regs amount
451                drop myBag 96 88 0             
452            elseif index = 3
453                lift regs amount
454                drop myBag 121 88 0            
455            else
456                lift regs amount
457                drop myBag 142 88 0         
458            endif
459        endif
460        
461        @ignore regs 
462        
463        if moveRegs = 1
464            wait maxwaittimeinms
465        endif
466
467    endwhile
468
469    #***** MANDRAKE ROOT 3974 *****
470
471    @setvar! regsID 3974
472    @setvar! myCounter 0
473
474    while findtype regsID self as r 
475        @setvar! myCounter index
476        @ignore r
477    endwhile
478    @clearignore
479
480    if counttype regsID self <= 10
481        @setvar! amount 2
482    elseif counttype regsID self <= 20
483        @setvar! amount 4       
484    elseif counttype regsID self <= 50
485        @setvar! amount 10    
486    elseif counttype regsID self <= 100
487        @setvar! amount 20    
488    elseif counttype regsID self <= 150
489        @setvar! amount 30
490    elseif counttype regsID self <= 200
491        @setvar! amount 40
492    else 
493        @setvar! amount 50
494    endif
495
496    while findtype regsID self as regs
497        @setvar! moveRegs 0 
498        
499        if myCounter = 0
500            @setvar! moveRegs 1
501        elseif myCounter != 0 and not find regs myBag
502            @setvar! moveRegs 1
503        endif
504        
505        if moveRegs = 1    
506            overhead "splitting roots.." 439
507            if index = 0
508                lift regs amount
509                drop myBag 44 88 0      
510            elseif index = 1
511                lift regs amount
512                drop myBag 68 88 0           
513            elseif index = 2
514                lift regs amount
515                drop myBag 96 88 0             
516            elseif index = 3
517                lift regs amount
518                drop myBag 121 88 0            
519            else
520                lift regs amount
521                drop myBag 142 88 0         
522            endif
523        endif
524        
525        @ignore regs 
526        
527        if moveRegs = 1
528            wait maxwaittimeinms
529        endif
530
531    endwhile
532
533    #***** SULFUROUS ASH 3980 *****
534
535    @setvar! regsID 3980
536    @setvar! myCounter 0
537
538    while findtype regsID self as r 
539        @setvar! myCounter index
540        @ignore r
541    endwhile
542    @clearignore
543
544    if counttype regsID self <= 10
545        @setvar! amount 2
546    elseif counttype regsID self <= 20
547        @setvar! amount 4       
548    elseif counttype regsID self <= 50
549        @setvar! amount 10    
550    elseif counttype regsID self <= 100
551        @setvar! amount 20    
552    elseif counttype regsID self <= 150
553        @setvar! amount 30
554    elseif counttype regsID self <= 200
555        @setvar! amount 40
556    else 
557        @setvar! amount 50
558    endif
559
560    while findtype regsID self as regs
561        @setvar! moveRegs 0 
562        
563        if myCounter = 0
564            @setvar! moveRegs 1
565        elseif myCounter != 0 and not find regs myBag
566            @setvar! moveRegs 1
567        endif
568        
569        if moveRegs = 1    
570            overhead "splitting ashes.." 56
571            if index = 0
572                lift regs amount
573                drop myBag 44 112 0      
574            elseif index = 1
575                lift regs amount
576                drop myBag 68 112 0           
577            elseif index = 2
578                lift regs amount
579                drop myBag 96 112 0             
580            elseif index = 3
581                lift regs amount
582                drop myBag 121 112 0            
583            else
584                lift regs amount
585                drop myBag 142 112 0         
586            endif
587        endif
588        
589        @ignore regs 
590        
591        if moveRegs = 1
592            wait maxwaittimeinms
593        endif
594
595    endwhile
596
597    #***** GINSENG 3973 *****
598
599    @setvar! regsID 3973
600    @setvar! myCounter 0
601
602    while findtype regsID self as r 
603        @setvar! myCounter index
604        @ignore r
605    endwhile
606    @clearignore
607
608    if counttype regsID self <= 10
609        @setvar! amount 2
610    elseif counttype regsID self <= 20
611        @setvar! amount 4       
612    elseif counttype regsID self <= 50
613        @setvar! amount 10    
614    elseif counttype regsID self <= 100
615        @setvar! amount 20    
616    elseif counttype regsID self <= 150
617        @setvar! amount 30
618    elseif counttype regsID self <= 200
619        @setvar! amount 40
620    else 
621        @setvar! amount 50
622    endif
623
624    while findtype regsID self as regs
625        @setvar! moveRegs 0 
626        
627        if myCounter = 0
628            @setvar! moveRegs 1
629        elseif myCounter != 0 and not find regs myBag
630            @setvar! moveRegs 1
631        endif
632        
633        if moveRegs = 1    
634            overhead "splitting gings.." 149
635            if index = 0
636                lift regs amount
637                drop myBag 44 112 0      
638            elseif index = 1
639                lift regs amount
640                drop myBag 68 112 0           
641            elseif index = 2
642                lift regs amount
643                drop myBag 96 112 0             
644            elseif index = 3
645                lift regs amount
646                drop myBag 121 112 0            
647            else
648                lift regs amount
649                drop myBag 142 112 0         
650            endif
651        endif
652        
653        @ignore regs 
654        
655        if moveRegs = 1
656            wait maxwaittimeinms
657        endif
658
659    endwhile
660
661    #***** BLOSSMOSS 3963 *****
662
663    @setvar! regsID 3963
664    @setvar! myCounter 0
665
666    while findtype regsID self as r 
667        @setvar! myCounter index
668        @ignore r
669    endwhile
670    @clearignore
671
672    if counttype regsID self <= 10
673        @setvar! amount 2
674    elseif counttype regsID self <= 20
675        @setvar! amount 4       
676    elseif counttype regsID self <= 50
677        @setvar! amount 10    
678    elseif counttype regsID self <= 100
679        @setvar! amount 20    
680    elseif counttype regsID self <= 150
681        @setvar! amount 30
682    elseif counttype regsID self <= 200
683        @setvar! amount 40
684    else 
685        @setvar! amount 50
686    endif
687
688    while findtype regsID self as regs
689        @setvar! moveRegs 0 
690        
691        if myCounter = 0
692            @setvar! moveRegs 1
693        elseif myCounter != 0 and not find regs myBag
694            @setvar! moveRegs 1
695        endif
696        
697        if moveRegs = 1    
698            overhead "splitting bloods.." 35
699            if index = 0
700                lift regs amount
701                drop myBag 44 130 0      
702            elseif index = 1
703                lift regs amount
704                drop myBag 68 130 0           
705            elseif index = 2
706                lift regs amount
707                drop myBag 96 130 0             
708            elseif index = 3
709                lift regs amount
710                drop myBag 121 130 0            
711            else
712                lift regs amount
713                drop myBag 142 130 0         
714            endif
715        endif
716        
717        @ignore regs 
718        
719        if moveRegs = 1
720            wait maxwaittimeinms
721        endif
722
723    endwhile
724
725    #***** GARILIC 3972 *****
726
727    @setvar! regsID 3972
728    @setvar! myCounter 0
729
730    while findtype regsID self as r 
731        @setvar! myCounter index
732        @ignore r
733    endwhile
734    @clearignore
735
736    if counttype regsID self <= 10
737        @setvar! amount 2
738    elseif counttype regsID self <= 20
739        @setvar! amount 4       
740    elseif counttype regsID self <= 50
741        @setvar! amount 10    
742    elseif counttype regsID self <= 100
743        @setvar! amount 20    
744    elseif counttype regsID self <= 150
745        @setvar! amount 30
746    elseif counttype regsID self <= 200
747        @setvar! amount 40
748    else 
749        @setvar! amount 50
750    endif
751
752    while findtype regsID self as regs
753        @setvar! moveRegs 0 
754        
755        if myCounter = 0
756            @setvar! moveRegs 1
757        elseif myCounter != 0 and not find regs myBag
758            @setvar! moveRegs 1
759        endif
760        
761        if moveRegs = 1    
762            overhead "splitting garlics.." 910
763            if index = 0
764                lift regs amount
765                drop myBag 44 130 0      
766            elseif index = 1
767                lift regs amount
768                drop myBag 68 130 0           
769            elseif index = 2
770                lift regs amount
771                drop myBag 96 130 0             
772            elseif index = 3
773                lift regs amount
774                drop myBag 121 130 0            
775            else
776                lift regs amount
777                drop myBag 142 130 0         
778            endif
779        endif
780        @ignore regs 
781        
782        if moveRegs = 1
783            wait maxwaittimeinms
784        endif
785
786    endwhile
787
788    #***** RECALL SCROLL 8012 *****
789
790    @setvar! regsID 8012
791    @setvar! myCounter 0
792
793    while findtype regsID self as r 
794        @setvar! myCounter index
795        @ignore r
796    endwhile
797    @clearignore
798
799    if counttype regsID self <= 5
800        @setvar! amount 1
801    elseif counttype regsID self <= 10
802        @setvar! amount 2       
803    elseif counttype regsID self <= 20
804        @setvar! amount 4    
805    elseif counttype regsID self <= 40
806        @setvar! amount 8    
807    else 
808        @setvar! amount 15
809    endif
810
811    while findtype regsID self as regs
812        @setvar! moveRegs 0 
813        
814        if myCounter = 0
815            @setvar! moveRegs 1
816        elseif myCounter != 0 and not find regs myBag
817            @setvar! moveRegs 1
818        endif
819        if moveRegs = 1    
820            overhead "splitting scrolls.." 0
821            if index = 0
822                lift regs amount
823                drop myBag 44 88 0      
824            elseif index = 1
825                lift regs amount
826                drop myBag 68 88 0           
827            elseif index = 2
828                lift regs amount
829                drop myBag 96 88 0             
830            elseif index = 3
831                lift regs amount
832                drop myBag 121 88 0            
833            else
834                lift regs amount
835                drop myBag 142 88 0         
836            endif
837        endif
838        
839        @ignore regs 
840        
841        if moveRegs = 1
842            wait maxwaittimeinms
843        endif
844    endwhile
845
846    overhead "Splitter completed" 44
847
848endif
849
850sysmsg "* auto-mining activated *" 66
851overhead "* auto-mining activated *" 66
852
853clearsysmsg
854clearhands both
855
856
857while not dead 
858    settimer cycleTimer 0
859    
860    if targetexists
861        hotkey 'cancel current target'  
862    endif
863    
864    if enemyFound = 0
865        if insysmsg! "Now tracking" or insysmsg! "Distance to"
866            @setvar! enemyFound 1
867        endif
868    endif
869
870#********** TRIGGER AUTO-RECALL IF BEING ATTACKED / OUT OF REGS / ENEMY TOO CLOSE **********
871    
872    if cooldown "Danger" > 0 
873        if timer beingAttackedTimer > beingAttackedCD
874            sysmsg "* being attacked *" 34
875            settimer beingAttackedTimer 0
876        endif
877        @setvar! autoRecall 1
878        @setvar! enemyFound 1
879    endif  
880    
881    if minRegs != 0
882        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
883            overhead "* low reagents *" 34
884            sysmsg " *low reagents recalling out *" 34
885            
886            @setvar! autoRecall 1
887            @setvar! enemyFound 1
888        endif
889    endif
890    
891    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"
892        sysmsg "* recalling enemy very close [d 0-9] *" 33
893        @setvar! autoRecall 1
894        @setvar! enemyFound 1
895    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"
896        sysmsg "* recalling enemy very close [d 10-17] *" 33
897        @setvar! autoRecall 1
898        @setvar! enemyFound 1
899    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"
900        sysmsg "* recalling enemy very close [d 18-25] *" 33
901        @setvar! autoRecall 1
902        @setvar! enemyFound 1
903    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"
904        sysmsg "* recalling enemy very close [d 26-33] *" 33
905        @setvar! autoRecall 1
906        @setvar! enemyFound 1
907    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"
908        sysmsg "* recalling enemy very close [d 34-40] *" 33
909        @setvar! autoRecall 1
910        @setvar! enemyFound 1
911    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"
912        sysmsg "* recalling enemy very close [n 0-9] *" 33
913        @setvar! autoRecall 1
914        @setvar! enemyFound 1
915    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"
916        sysmsg "* recalling enemy very close [n 10-17] *" 33
917        @setvar! autoRecall 1
918        @setvar! enemyFound 1
919    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"
920        sysmsg "* recalling enemy very close [n 18-25] *" 33
921        @setvar! autoRecall 1
922        @setvar! enemyFound 1
923    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"
924        sysmsg "* recalling enemy very close [n 26-33] *" 33
925        @setvar! autoRecall 1
926        @setvar! enemyFound 1
927    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"
928        sysmsg "* recalling enemy very close [n 34-40] *" 33
929        @setvar! autoRecall 1
930        @setvar! enemyFound 1
931    endif
932    
933#********** AUTO-RECALL OUT IF NECESSARY **********
934    
935    if enemyFound = 1 and autoRecall = 1
936        sysmsg "recalling..." 66
937        interrupt
938        clearignore
939        if targetexists
940            hotkey 'cancel current target'  
941        endif
942        wait 200
943        
944        if mana <= 10
945            overhead "* low mana to recall *" 44
946        else
947        
948#********** USING REAGENTS OR RECALL SCROLL ********** 
949
950            if recallType = 0 or recallType = 1
951            
952                while diffhits < medDiff and not targetexists
953                    
954                    if recallType = 0
955                        cast 'recall'
956                        sysmsg "recalling using regs" 11
957                    else 
958                        dclicktype "recall" self
959                        sysmsg "recalling using scroll" 11
960                    endif
961                    
962                    while not casting   
963                        if recallType = 0
964                            cast 'recall'  
965                        else 
966                            dclicktype "recall" self
967                        endif    
968                    endwhile  
969                    
970                    while not targetexists and casting
971                        if insysmsg "your concentration"
972                            break;
973                        endif
974                    endwhile
975                    
976                    waitfortarget maxwaittimeinms
977                    
978                endwhile     
979                
980                if targetexists and findtype "runebook|runetome" backpack as obj
981                    
982                    while findtype "runebook|runetome" backpack as book 
983                        if hue book = recallBookHue or recallBookHue = 0                           
984                            target book
985                            break
986                        endif                              
987                        @ignore book                           
988                    endwhile
989                    
990                    @clearignore
991                    getlabel backpack xxx
992                    wait 200
993                    
994                    if insysmsg "marked"
995                        overhead "Runebook is not marked! Mark the book NOW!" 34
996                    elseif targetexists
997                        overhead "Recall Book not found. Switching hue type to 0" 34
998                        @setvar! recallBookHue 0
999                    else 
1000                        overhead "Finished!" 65
1001                        stop  
1002                    endif                    
1003                    
1004                elseif targetexists and findtype "recall rune" backpack as obj
1005                    @setvar! tempRune 0  
1006
1007                    while findtype "recall rune" backpack as obj
1008                        getlabel obj runeLabel  
1009                        if "blank" in runeLabel
1010                        else 
1011                            if "home" in runeLabel
1012                                target obj
1013                                @setvar! tempRune obj  
1014                                break
1015                            endif
1016                            @setvar! tempRune obj    
1017                        endif
1018                        @ignore obj
1019                    endwhile
1020                    
1021                    @clearignore
1022                    getlabel backpack xxx
1023                    wait 200
1024                        
1025                    if targetexists and tempRune != 0
1026                        target tempRune
1027                        overhead "Finished!"
1028                    elseif tempRune = 0
1029                        overhead "No recalleable rune found" 34
1030                        hotkey "cancel current target"
1031                    elseif insysmsg "blocked" 
1032                        overhead "Location blocked" 34
1033                    else
1034                        overhead "Finished!"     
1035                    endif                                     
1036                    stop
1037                                                         
1038                elseif targetexists
1039                    overhead "No recall book or rune found" 34
1040                endif
1041
1042            elseif recallType = 2 or recallType = 3
1043            
1044#********** USING RECALL BOOK CHARGE **********   
1045                
1046                if findtype "runebook|runetome" backpack
1047                
1048                    if diffhits < medDiff
1049                        @setvar! foundBook 0
1050                        
1051                        while findtype "runebook" backpack as book
1052                            if hue book = recallBookHue or recallBookHue = 0
1053                                dclick book backpack
1054                                waitforgump 1551740969 maxwaittimeinms
1055                                
1056                                if recallType = 2
1057                                    gumpresponse 2 
1058                                elseif recallType = 3
1059                                    gumpresponse 92
1060                                endif
1061                                
1062                                @setvar! foundBook book
1063                                break
1064                            else 
1065                                @ignore book
1066                            endif
1067                        endwhile
1068                        
1069                        while foundBook = 0 and findtype "runetome" backpack as book
1070                            if hue book = recallBookHue or recallBookHue = 0
1071                                dclick book backpack
1072                                waitforgump 167090027 maxwaittimeinms
1073                                
1074                                if recallType = 2
1075                                    gumpresponse 100 
1076                                elseif recallType = 3 
1077                                    gumpresponse 125
1078                                endif
1079                                
1080                                @setvar! foundBook book
1081                                break
1082                            else 
1083                                @ignore book
1084                            endif
1085                        endwhile
1086                        
1087                        getlabel backpack xxx
1088                        wait 200
1089                        
1090                        if foundBook = 0 
1091                            overhead "Recall book not found!" 34    
1092                        elseif insysmsg "charges"
1093                                overhead "Recall book out of charges!" 34
1094                        elseif insysmsg "This book"
1095                                overhead "Recall book cooldown!" 34
1096                        elseif casting
1097                            while casting
1098                            endwhile 
1099                            
1100                            getlabel backpack xxx
1101                            wait 200
1102                                
1103                            if insysmsg "concentration"
1104                                overhead "Interrupted!" 34
1105                            elseif insysmsg "location"
1106                                overhead "Location blocked!" 
1107                            else
1108                                overhead "Successful" 65 
1109                                sysmsg "Mining Completed!" 65
1110                                stop
1111                            endif
1112                        else 
1113                            if insysmsg "concentration"
1114                                overhead "Interrupted!" 34
1115                            else 
1116                                if recallType = 2 
1117                                    overhead "First rune not found" 34    
1118                                else
1119                                    overhead "Last rune not found" 34
1120                                    overhead "Changing to first rune.." 34
1121                                    @setvar! recallType 2
1122                                endif                                
1123                            endif
1124                        endif
1125                    endif
1126                else 
1127                    overhead "No runebook or runetome found to use charge!" 34
1128                endif
1129            else 
1130                overhead "Variable 'recallType' value out of range" 34
1131            endif                     
1132        endif
1133    endif
1134    
1135#********** AUTO-HEALING IF NEEDED **********      
1136
1137    while diffhits >= lowDiff or paralyzed or poisoned
1138        sysmsg "auto-healing activated" 11      
1139        #--- Trapped ---#
1140        
1141        if paralyzed 
1142            if findtype "pouch" backpack 38 
1143                yell "[pouch"            
1144                wait 200
1145            else
1146                if timer pouchMessageTimer > pouchMessageCD
1147                    overhead "Out of Pouches!" 34
1148                    settimer pouchMessageTimer 0
1149                endif
1150            endif
1151        endif
1152            
1153        #--- Self bandage ---#
1154        
1155        if diffhits >= 1 and not bandaging
1156            if skill 'healing' >= 50 or skill "veterinary" >= 50
1157                if findtype 'clean bandage%s%' backpack
1158                
1159                    if targetexists
1160                        hotkey 'cancel current target'  
1161                    endif
1162                    dclicktype 'clean bandage%s%'
1163                    waitfortarget maxwaittimeinms
1164                    target 'self'
1165                    wait 200            
1166                else
1167                    if timer aidsMessageTimer > aidsMessageCD
1168                        overhead "Out of bandages" 34
1169                        settimer aidsMessageTimer 0
1170                    endif
1171                endif
1172            endif
1173        endif
1174        
1175        #--- Drink str pot ---#
1176        
1177        if drinkStr = 1 and str < strengthLowerThan
1178            if not findbuff "Strength" 
1179                if findtype "White Potion" self
1180                    dclicktype "White Potion"
1181                    wait 200
1182                else
1183                    if timer whiteMessageTimer > whiteMessageCD
1184                        overhead "Out of str pots" 34
1185                        settimer whiteMessageTimer 0 
1186                    endif
1187                endif
1188            endif
1189        endif
1190        
1191        #--- Drink agility pot ---#
1192        
1193        if drinkAgility = 1
1194            if not findbuff "Agility" 
1195                if findtype "Blue Potion" self
1196                    dclicktype "Blue Potion"
1197                    wait 200
1198                else
1199                    if timer blueMessageTimer > blueMessageCD
1200                        overhead "Out of agility pots" 34
1201                        settimer blueMessageTimer 0 
1202                    endif
1203                endif
1204            endif
1205        endif
1206            
1207        #--- Drink magic resist pot ---#
1208    
1209        if drinkMagicResist = 1
1210            if not findbuff "Magic Resist" 
1211                if findtype "Black Potion" self
1212                    dclicktype "Black Potion"
1213                    wait 200
1214                else
1215                    if timer blackMessageTimer > blackMessageCD
1216                        overhead "Out of resist pots" 34
1217                        settimer blackMessageTimer 0
1218                    endif
1219                endif
1220            endif
1221        endif
1222            
1223        #--- Poisoned ---#
1224        
1225        if 1 = drinkCure or 1 = cureSpell
1226            while poisoned
1227                if findtype "Orange Potion" self
1228                    dclicktype "Orange Potion"
1229                    wait 200
1230                else
1231                    if timer orangeMessageTimer > orangeMessageCD
1232                        overhead "Out of cure pots" 34
1233                        settimer orangeMessageTimer 0
1234                    endif
1235                    
1236                    if diffhits > highDiff or not findtype 3972 self or not findtype 3973 self
1237                        break
1238                    endif
1239                    
1240                    if skill 'magery' >= 40 and mana >= 6 and 1 = cureSpell and not casting
1241                        cast 'cure'
1242                        wait 50
1243                        while not casting                   
1244                            if targetexists
1245                                hotkey 'cancel current target'
1246                            endif
1247                            cast 'cure'  
1248                            wait 50
1249                        endwhile  
1250                        while not targetexists and casting
1251                        endwhile
1252                        waitfortarget maxwaittimeinms
1253                        target 'self' 
1254                        wait 200
1255                    else 
1256                        break
1257                    endif
1258                endif
1259                
1260            endwhile
1261        endif
1262            
1263        #--- Drink Heal Pot ---#
1264        
1265        if diffhits >= highDiff and 1 = drinkHeal
1266            if findtype "Yellow Potion" self as hPot
1267                getlabel hPot potLabel
1268                if "next" in potLabel
1269                    #do nothing
1270                else
1271                    @setvar! ch 0
1272                    
1273                    if counttype 3852 self as c
1274                        @setvar! ch c
1275                    endif
1276                    clearsysmsg  
1277                    
1278                    dclicktype 3852
1279                    getlabel backpack xxx
1280                    wait 200
1281                                
1282                    if ch != counttype 3852 self or insysmsg "potion satchel used"
1283                        cooldown "Heal Pot" healingPotCD
1284                    endif
1285                endif
1286            else
1287                if timer yellowMessageTimer > yellowMessageCD
1288                    overhead "Out of heals pots" 34
1289                    settimer yellowMessageTimer 0
1290                endif
1291            endif
1292        endif
1293                
1294        #--- Drink red pot ---#
1295        
1296        if stam < staminaLowerThan and 1 = drinkRefresh
1297            if findtype "Red Potion" self
1298                dclicktype "Red Potion"
1299                wait 200
1300            else
1301                if timer redMessageTimer > redMessageCD
1302                    overhead "Out of refresh pots" 34
1303                    settimer redMessageTimer 0 
1304                endif
1305            endif
1306        endif
1307            
1308        #--- Cast heals ---#
1309        
1310        if skill 'magery' >= 40 and diffhits >= lowDiff and diffhits < medDiff and mana >= 4 and miniHeal = 1 and not casting
1311            cast 'heal'
1312            while not casting                   
1313                if targetexists
1314                    hotkey 'cancel current target'
1315                endif
1316                cast 'heal'
1317            endwhile  
1318            
1319            while not targetexists and casting
1320            endwhile
1321            
1322            waitfortarget maxwaittimeinms
1323            target 'self' 
1324            wait 200  
1325            
1326        elseif skill 'magery' >= 60 and diffhits >= medDiff and diffhits <= highDiff mana >= 11 and greaterHeal = 1 and not casting
1327            cast 'greater heal'         
1328            while not casting                   
1329                if targetexists
1330                    hotkey 'cancel current target'
1331                endif
1332                cast 'greater heal'
1333            endwhile  
1334            
1335            while not targetexists and casting
1336                
1337                #--- Poisoned ---#
1338                
1339                if 1 = drinkCure
1340                    while poisoned
1341                        if findtype "Orange Potion" self
1342                            dclicktype "Orange Potion"
1343                            wait 200
1344                        else
1345                            if timer orangeMessageTimer > orangeMessageCD
1346                                overhead "Out of cure pots" 34
1347                                settimer orangeMessageTimer 0
1348                                break
1349                            endif
1350            
1351                        endif
1352                    endwhile
1353                endif            
1354            
1355                #--- Drink Heal Pot ---#
1356                
1357                if diffhits >= highDiff and 1 = drinkHeal
1358                    if findtype "Yellow Potion" self as hPot
1359                        getlabel hPot potLabel
1360                        if "next" in potLabel
1361                            #do nothing
1362                        else
1363                            @setvar! ch 0
1364                            
1365                            if counttype 3852 self as c
1366                                @setvar! ch c
1367                            endif
1368                            clearsysmsg  
1369                            
1370                            dclicktype 3852
1371                            getlabel backpack xxx
1372                            wait 200
1373                                        
1374                            if ch != counttype 3852 self or insysmsg "potion satchel used"
1375                                cooldown "Heal Pot" healingPotCD
1376                            endif
1377                        endif
1378                    else
1379                        if timer yellowMessageTimer > yellowMessageCD
1380                            overhead "Out of heals pots" 34
1381                            settimer yellowMessageTimer 0
1382                        endif
1383                    endif
1384                endif
1385        
1386            endwhile
1387            
1388            waitfortarget maxwaittimeinms
1389            target 'self' 
1390            wait 200 
1391            
1392        elseif skill 'magery' >= 40 and diffhits > highDiff and mana >= 4 and miniHeal = 1 and not casting
1393            cast 'heal'     
1394            while not casting                   
1395                if targetexists
1396                    hotkey 'cancel current target'
1397                endif
1398                cast 'heal' 
1399            endwhile  
1400            
1401            while not targetexists and casting
1402            endwhile
1403            
1404            waitfortarget maxwaittimeinms
1405            target 'self' 
1406            wait 200  
1407        
1408        endif 
1409    
1410    endwhile
1411    
1412#********** AUTO-MAGERY BUFFS IF NEEDED ********** 
1413
1414    if enemyFound = 0 or autoRecall = 0
1415        if magicReflect = 1 and skill 'magery' >= 70 and not findbuff "Magic Reflection" and mana >= miniumManaToBuff and diffhits < lowDiff
1416            if timer magicReflectTimer > magicReflectCD
1417                cast 'Magic Reflection'
1418                while not casting and diffhits < lowDiff    
1419                    getlabel backpack xxx
1420                    wait 200
1421                    if insysmsg "that spell will not" or insysmsg "that spell is already"
1422                        settimer magicReflectTimer 0
1423                        break  
1424                    endif
1425                    if targetexists
1426                        hotkey 'cancel current target'
1427                    endif
1428                    cast 'Magic Reflection'
1429                endwhile 
1430                
1431                while casting and diffhits < highDiff   
1432                
1433                    #--- Poisoned ---#
1434                    
1435                    if 1 = drinkCure
1436                        while poisoned
1437                            if findtype "Orange Potion" self
1438                                dclicktype "Orange Potion"
1439                                wait 200
1440                            else
1441                                if timer orangeMessageTimer > orangeMessageCD
1442                                    overhead "Out of cure pots" 34
1443                                    settimer orangeMessageTimer 0
1444                                    break
1445                                endif
1446                
1447                            endif
1448                        endwhile
1449                    endif            
1450                
1451                    #--- Drink Heal Pot ---#
1452                    
1453                    if diffhits >= highDiff and 1 = drinkHeal
1454                        if findtype "Yellow Potion" self as hPot
1455                            getlabel hPot potLabel
1456                            if "next" in potLabel
1457                                #do nothing
1458                            else
1459                                @setvar! ch 0
1460                                
1461                                if counttype 3852 self as c
1462                                    @setvar! ch c
1463                                endif
1464                                clearsysmsg  
1465                                
1466                                dclicktype 3852
1467                                getlabel backpack xxx
1468                                wait 200
1469                                            
1470                                if ch != counttype 3852 self or insysmsg "potion satchel used"
1471                                    cooldown "Heal Pot" healingPotCD
1472                                endif
1473                            endif
1474                        else
1475                            if timer yellowMessageTimer > yellowMessageCD
1476                                overhead "Out of heals pots" 34
1477                                settimer yellowMessageTimer 0
1478                            endif
1479                        endif
1480                    endif
1481                    
1482                endwhile
1483                wait 200  
1484            endif    
1485        endif
1486        
1487        if armorReflect = 1 and skill 'magery' >= 30 and not findbuff "Reactive Armor" and mana >= miniumManaToBuff and diffhits < lowDiff
1488            if timer magicReflectTimer > magicReflectCD
1489                cast 'Reactive Armor'
1490                while not casting and diffhits < highDiff       
1491                    getlabel backpack xxx
1492                    wait 200
1493                    if insysmsg "that spell will not" or insysmsg "that spell is already"
1494                        settimer armorReflectTimer 0
1495                        break  
1496                    endif
1497                    if targetexists
1498                        hotkey 'cancel current target'
1499                    endif
1500                    cast 'Reactive Armor'
1501                endwhile  
1502                
1503                while casting and diffhits < lowDiff   
1504                endwhile
1505                wait 200  
1506            endif    
1507        endif     
1508        
1509        if protectionSpell = 1 and skill 'magery' >= 40 and not findbuff "Protection" and mana >= miniumManaToBuff and diffhits < lowDiff
1510            cast 'Protection'
1511            while not casting and diffhits < highDiff 
1512                if targetexists
1513                    hotkey 'cancel current target'
1514                endif
1515                cast 'Protection'
1516            endwhile  
1517            while casting and diffhits < lowDiff   
1518            endwhile
1519            wait 200  
1520        endif 
1521        
1522        if bless = 1 and skill 'magery' >= 50 and not findbuff "Cunning" and mana >= miniumManaToBuff and diffhits < lowDiff
1523            sysmsg 'blessing..'
1524            cast 'Bless'         
1525            while not casting and diffhits < highDiff                   
1526                if targetexists
1527                    hotkey 'cancel current target'
1528                endif
1529                cast 'Bless'
1530                wait 50
1531            endwhile  
1532            
1533            while not targetexists and casting
1534            endwhile
1535            
1536            waitfortarget maxwaittimeinms
1537            target 'self' 
1538            wait 200  
1539        endif 
1540    endif
1541    
1542#********** CHECK FOR WOODEN BOX & CAST SUMMONS ********** 
1543
1544    if not findtype "wooden box" backpack or not findtype "copper key" backpack
1545        overhead "Need 1 wooden box and 1 copper key to begin!" 33
1546        wait maxwaittimeinms       
1547    elseif counttype 2474 backpack > 1 or counttype 4110 backpack > 1 
1548         overhead "You have more than 2 wooden boxes or more than 2 copper keys" 33
1549         wait maxwaittimeinms       
1550    elseif findtype "wooden box" backpack as chest and findtype "copper key" backpack as key and 0 = isRecalling
1551        getlabel chest chestLabel
1552        if "items" in chestLabel
1553            dclick key
1554            waitfortarget maxwaittimeinms
1555            target chest
1556            wait maxwaittimeinms
1557            overhead "[chest locked]" 55
1558        endif
1559    
1560        #Check if we want to cast
1561        if enemyFound = 0 or autoRecall = 0
1562            #Summon elemental if counters goes below min followers
1563            
1564            if followers < 4 and followers < maxFollowers and skill 'magery' >= 80 and diffhits < lowDiff and 0 = isRecalling
1565                
1566                if mana <= 49 
1567                    overhead "low mana to summon" 89
1568                else 
1569                    cast 'Water Elemental'
1570                    
1571                    getlabel backpack XXX
1572                    wait 200
1573                    
1574                    while casting
1575                        if enemyFound = 0
1576                            if insysmsg! "Now tracking" or insysmsg! "Distance to"
1577                                @setvar! enemyFound 1
1578                            endif
1579                        endif
1580                        
1581                        if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0
1582                            @setvar! isRecalling 1
1583                            interrupt
1584                            break
1585                        endif
1586                        
1587                        if diffhits >= lowDiff
1588                            interrupt
1589                            break
1590                        endif
1591                        
1592                        if timer summonTimer > summonCD
1593                            overhead "* summoning... *"
1594                            settimer summonTimer 0
1595                        endif
1596                    endwhile
1597                    wait 1000
1598                    say 'all guard me' 901
1599                endif
1600            endif
1601        endif
1602        
1603  #********** IF OVERWEIGHT AUTO-DETECT PACK HORSE/LLAMA AND MOVE ORE TO PACK **********  
1604        
1605        if findtype 291|292 ground -1 -1 12 as pack
1606            if myPack = 0 and noto pack = "friend"
1607                @setvar! myPack pack
1608            endif            
1609        endif
1610        
1611        if diffweight <= myWeightDiff or weight > maxweight
1612            @setvar! isOverweight 1
1613            if timer overweightTimer > overweightCD
1614                overhead '[Overweight Reached]' 44   
1615                settimer overweightTimer 0
1616            endif
1617        else 
1618            @setvar! isOverweight 0
1619        endif
1620            
1621        if find myPack ground -1 -1 12 and 1 = isOverweight
1622            
1623            while findtype "iron ore" backpack any any 1 as ore and diffhits < lowDiff and 0 = isRecalling   
1624            
1625                if enemyFound = 0
1626                    if insysmsg! "Now tracking" or insysmsg! "Distance to"
1627                        @setvar! enemyFound 1
1628                    endif
1629                endif
1630                
1631                if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0
1632                    @setvar! isRecalling 1
1633                    break
1634                endif  
1635                
1636                if find myPack ground -1 -1 2
1637                    dclick myPack
1638                    wait 200
1639                    if counttype "iron ore" myPack >= 975
1640                        overhead "* packy is full *" 34
1641                        sysmsg  "* auto recalling packy is full *" 34
1642                        @setvar! enemyFound 1
1643                        @setvar! autoRecall 1  
1644                    elseif counttype "iron ore" myPack >= 900 
1645                        lift ore 25
1646                        drop myPack 
1647                        getlabel myPack testyL
1648                        sysmsg '{{testyL}}'
1649                        overhead "* dropping ore in pack *" 54
1650                        wait 650       
1651                    else 
1652                        lift ore 50
1653                        drop myPack 
1654                        getlabel myPack testyL
1655                        sysmsg '{{testyL}}'
1656                        overhead "* dropping ore in pack *" 54
1657                        wait 650  
1658                    endif 
1659                else 
1660                    overhead "* move closer to pack *" 44
1661                    wait 650  
1662                endif
1663                   
1664            endwhile  
1665            
1666            getlabel myPack packLabel
1667            
1668            overhead "{{packLabel}}" 88 myPack
1669            sysmsg "{{packLabel}}" 88 myPack
1670            
1671        endif
1672   
1673
1674#********** BEGIN HARVESTING **********  
1675        
1676        while lhandempty and rhandempty and 0 = isRecalling
1677
1678            if enemyFound = 0
1679                if insysmsg! "Now tracking" or insysmsg! "Distance to"
1680                    @setvar! enemyFound 1
1681                endif
1682            endif
1683            
1684            if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0
1685                @setvar! isRecalling 1
1686                break
1687            endif  
1688  
1689            if not findtype myHarvestingTool backpack
1690                overhead "Out of pickaxes!" 36
1691                wait maxwaittimeinms
1692            elseif not casting               
1693                dclicktype myHarvestingTool
1694                wait maxwaittimeinms
1695            endif
1696        endwhile
1697
1698        if 0 = isOverweight and 0 = isRecalling
1699            hotkey 'Use Item In Hand'
1700        
1701            settimer mineTimer 0
1702            
1703            while timer mineTimer < mineTimerCD and diffhits < lowDiff
1704                if enemyFound = 0
1705                    if insysmsg! "Now tracking" or insysmsg! "Distance to"
1706                        @setvar! enemyFound 1
1707                    endif
1708                endif
1709                
1710                if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0
1711                    @setvar! isRecalling 1
1712                    break
1713                endif                         
1714            endwhile
1715            
1716            getlabel backpack xxx
1717            wait 200  
1718            
1719            if insysmsg "you do not see any"
1720                overhead "* no more ore to mine*" 44 
1721            elseif insysmsg "you have recently traveled"
1722                overhead "* travel cooldown *" 901
1723            else
1724                overhead "* mining ore *" 11  
1725            endif 
1726        endif
1727
1728#********** SECURING INGOTS in LOCKED WOODEN BOX IF FOUND IN BACKPACK **********   
1729
1730        while findtype 7154 backpack any any 1 as ingotz and diffhits < lowDiff and 0 = isRecalling
1731            
1732            if enemyFound = 0
1733                if insysmsg! "Now tracking" or insysmsg! "Distance to"
1734                    @setvar! enemyFound 1
1735                endif
1736            endif
1737            
1738            if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0
1739                @setvar! isRecalling 1
1740                break
1741            endif    
1742
1743            overhead "* securing ingots *" 11
1744            clearsysmsg 
1745            wait 200
1746            lift ingotz 9999
1747            drop chest -1 -1 0
1748            
1749            getlabel backpack xxx
1750            wait 650
1751            
1752            if insysmsg "it appears"
1753                overhead "[unlocking chest]" 44
1754                dclick key
1755                waitfortarget 1000
1756                target chest
1757                wait 650
1758            endif
1759        endwhile
1760        
1761        getlabel chest chestLabel
1762        if "items" in chestLabel
1763            dclick key
1764            waitfortarget 1000
1765            target chest
1766            overhead "[chest closed]" 54
1767        endif
1768        
1769#********** AUTO-DETECT NEARBY FORGES AND AUTO SMELT ORE FROM BACKPACK AND PACK HORSE/LLAMA **********               
1770        
1771        if findtype "forge" ground -1 -1 3 as forgy and 0 = isRecalling
1772            overhead " * FORGE NEAR HERE *" 88 forgy 
1773            while find forgy ground -1 -1 3 and findtype "iron ore" backpack as ore
1774            
1775                if enemyFound = 0
1776                    if insysmsg! "Now tracking" or insysmsg! "Distance to"
1777                        @setvar! enemyFound 1
1778                    endif
1779                endif
1780                
1781                if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0
1782                    @setvar! isRecalling 1
1783                    break
1784                endif  
1785                
1786                dclick ore
1787                getlabel backpack xxx
1788                wait 650
1789                if insysmsg "you smelt"
1790                    overhead "* backpack ore smelted *" 88
1791                elseif insysmsg "You do not see any nearby forges"
1792                    overhead "* forge too far away *" 44
1793                endif                
1794            endwhile
1795            
1796            if find myPack ground -1 -1 2
1797                getlabel myPack packLabel
1798                
1799                if "[0/2000" in packLabel
1800                    #pack is empty
1801                else    
1802                    dclick myPack
1803                    wait 650
1804                    
1805                    while find forgy ground -1 -1 3 and findtype "iron ore" myPack as ore
1806                        if enemyFound = 0
1807                            if insysmsg! "Now tracking" or insysmsg! "Distance to"
1808                                @setvar! enemyFound 1
1809                            endif
1810                        endif
1811                        
1812                        if autoRecall = 1 and enemyFound = 1 or cooldown 'Danger' > 0
1813                            @setvar! isRecalling 1
1814                            interrupt
1815                            break
1816                        endif
1817                        
1818                        dclick ore
1819                        getlabel backpack xxx
1820                        wait 650
1821                        if insysmsg "you smelt"
1822                            overhead "* pack ore smelted *" 88
1823                            getlabel myPack packLabel
1824                            overhead "{{packLabel}}" 11
1825                            sysmsg "{{packLabel}}" 11
1826                        elseif insysmsg "you do not see" 
1827                            overhead "* pack too far smelt *" 44 myPack
1828                        endif                  
1829                    endwhile
1830                    
1831                endif
1832            endif
1833            
1834        elseif findtype "forge" ground -1 -1 4 as forgy
1835            overhead " * FORGE HERE *" 88 forgy 
1836        elseif findtype "forge" ground -1 -1 6 as forgy
1837            overhead " * FORGE HERE *" 88 forgy 
1838        elseif findtype "forge" ground -1 -1 8 as forgy
1839            overhead " * FORGE HERE *" 88 forgy  
1840        elseif findtype "forge" ground -1 -1 10 as forgy
1841            overhead " * FORGE HERE *" 88 forgy  
1842        elseif findtype "forge" ground -1 -1 12 as forgy
1843            overhead " * FORGE HERE *" 88 forgy  
1844        endif
1845
1846    endif
1847    
1848    #sysmsg "Loop cycle elapsed : {{cycleTimer}}"
1849endwhile