Back to "b" tags

SUPER Auto-Lumberjacking by dennozz

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

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