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