Back to "animal taming" tags

Auto taming training by dennozz

1#Auto-taming 1.07
2
3#********** INFORMATION **********# 
4
5#Made by @dennozz on discord. 
6#Inspired/learned by other scrips in https://outlands.uorazorscripts.com/
7
8#AUTO Taming with auto healing tank and self. Also Auto release and kill (optional)
9
10#********** SET YOUR SETTINGS **********#  
11
12#--- Taming ---#
13
14#- Type >info and input your tank body ID here
15@setvar! myTankBody 169
16
17# 0 - Keep the pet 
18# 1 - Release and kill
19@setvar! releaseAndKillTarget 0
20
21#--- Set Mage auto heals ---#
22
23@setvar! miniHeal 1
24@setvar! greaterHeal 1
25@setvar! cureSpell 1
26
27#--- Set Mage Buffs ---#
28
29@setvar! magicReflect 1
30@setvar! bless 0
31@setvar! armorReflect 1
32@setvar! protectionSpell 0
33@setvar! miniumManaToBuff 50
34
35#--- Set Chivarly auto heals ---#
36
37@setvar! nobleSacrifice 1
38@setvar! holyLight 1
39
40#--- Set potions ---#
41
42@setvar! drinkStr 1
43@setvar! drinkAgility 0
44@setvar! drinkMagicResist 0
45@setvar! drinkHeal 1
46@setvar! drinkCure 1
47@setvar! drinkRefresh 1
48
49@setvar! strengthLowerThan 100
50@setvar! staminaLowerThan 80
51
52# Optional: Set healing pot cooldown
53@setvar! healingPotCD 11000
54
55#--- Auto healing hp diffs ---#
56
57@setvar! lowDiff 20 
58@setvar! medDiff 30
59@setvar! highDiff 50
60@setvar! extremeDiff 60
61@setvar! criticalDiff 75
62
63#********** DO NOT EDIT FROM HERE UNLESS YOU KNOW HOW TO SCRIPT **********# 
64
65@setvar! myTamingTarget 0
66@setvar! targetReleased 0
67
68@setvar! holyPoints 0
69
70@setvar nobleCD 5000
71settimer nobleTimer nobleCD
72
73@setvar! maxwaittimeinms 650
74
75#--- Script msgs timers ---#
76
77@setvar! autoHealMessageCD 4500
78settimer autoHealMessageTimer 0
79
80@setvar! guardMessageCD 5500
81settimer guardMessageTimer guardMessageCD
82
83#--- Resources timers ---#
84
85@setvar! pouchMessageCD 5000
86settimer pouchMessageTimer pouchMessageCD
87
88@setvar! aidsMessageCD 4000
89settimer aidsMessageTimer aidsMessageCD
90
91@setvar! whiteMessageCD 3000
92settimer whiteMessageTimer whiteMessageCD
93
94@setvar! blueMessageCD 3000
95settimer blueMessageTimer blueMessageCD
96
97@setvar! blackMessageCD 2500
98settimer blackMessageTimer blackMessageCD
99
100@setvar! orangeMessageCD 2000
101settimer orangeMessageTimer orangeMessageCD
102
103@setvar! yellowMessageCD 1500
104settimer yellowMessageTimer yellowMessageCD
105
106@setvar! redMessageCD 1000
107settimer redMessageTimer redMessageCD
108
109#--- Magery buffs timers ---#
110
111@setvar! magicReflectCD 15000
112settimer magicReflectTimer 15000
113
114@setvar! armorReflectCD 15000
115settimer armorReflectTimer 15000
116
117@setvar! protectionCD 15000
118settimer protectionTimer 15000
119
120if nobleSacrifice = 1 or holyLight = 1
121    if findtype 'paladin spellbook' backpack
122        yell '[chivalryhotbar'
123        while not gumpexists 1387930325
124            yell '[chivalryhotbar'
125            waitforgump 1387930325 maxwaittimeinms
126        endwhile
127    endif
128endif
129
130hotkey 'set last target'
131
132while targetexists
133endwhile    
134
135if not find lasttarget ground -1 -1 12
136    overhead 'No target nearby!' 34
137else 
138    @setvar! myTamingTarget lasttarget 
139    
140    if findtype myTankBody ground -1 -1 12 as tanky
141        @setvar! myTankBody tanky
142        
143        say 'all kill'
144        waitfortarget 1000
145        target myTamingTarget
146        
147        warmode on 
148        warmode off 
149        
150        wait 3333
151        say 'all follow me'
152    else 
153        sysmsg "No tank found!" 34
154        stop
155    endif
156    
157    while not dead 
158        
159        if findtype 'clean bandage%s%' backpack
160            if not bandaging 
161                dclicktype 3617
162                waitfortarget 1000
163                target myTankBody
164                wait 200
165            endif
166        else 
167            if timer aidsMessageTimer > aidsMessageCD
168                overhead "Out of bandages" 34
169                settimer aidsMessageTimer 0
170            endif        
171        endif
172        
173        if not dead myTamingTarget and find myTamingTarget ground -1 -1 12 and 0 = targetReleased
174            skill 'taming'
175            waitfortarget 1000
176            target myTamingTarget
177        else 
178            overhead "Taming Finished!" 88  
179            stop
180        endif
181        
182        if noto myTamingTarget = "friend"
183            if 1 = releaseAndKillTarget
184                menu myTamingTarget 9
185                waitforgump 2426193729
186                gumpresponse 1
187                say 'all kill'
188                waitfortarget 1000
189                target myTamingTarget
190                wait 200
191                attack myTamingTarget
192                @setvar! targetReleased 1
193            else 
194                overhead "Taming Finished!" 88
195                stop
196            endif
197        endif
198    
199    #********** AUTO-HEALING IF NEEDED **********   
200    
201        while diffhits >= lowDiff or paralyzed or poisoned
202            if timer autoHealMessageTimer > autoHealMessageCD
203                overhead "* auto-healing *" 11
204                settimer autoHealMessageTimer 0
205            endif    
206            #--- Trapped ---#
207            
208            if paralyzed 
209                if findtype "pouch" backpack 38 
210                    yell "[pouch"            
211                    wait 200
212                else
213                    if timer pouchMessageTimer > pouchMessageCD
214                        overhead "Out of Pouches!" 34
215                        settimer pouchMessageTimer 0
216                    endif
217                endif
218            endif
219                
220            #--- Self bandage ---#
221            
222            if diffhits >= 1 and not bandaging
223                if skill 'healing' >= 50 or skill "veterinary" >= 50
224                
225                    if findtype 'veterinary supplies' backpack
226                        dclicktype 25750
227                        wait 200
228                    elseif findtype 'clean bandage%s%' backpack
229                    
230                        if targetexists
231                            hotkey 'cancel current target'  
232                        endif
233                        dclicktype 'clean bandage%s%'
234                        waitfortarget maxwaittimeinms
235                        target 'self'
236                        wait 200            
237                    else
238                        if timer aidsMessageTimer > aidsMessageCD
239                            overhead "Out of bandages" 34
240                            settimer aidsMessageTimer 0
241                        endif
242                    endif
243                endif
244            endif
245            
246            #--- Drink str pot ---#
247            
248            if drinkStr = 1 and str < strengthLowerThan
249                if not findbuff "Strength" 
250                    if findtype "White Potion" self
251                        dclicktype "White Potion"
252                        wait 200
253                    else
254                        if timer whiteMessageTimer > whiteMessageCD
255                            overhead "Out of str pots" 34
256                            settimer whiteMessageTimer 0 
257                        endif
258                    endif
259                endif
260            endif
261            
262            #--- Drink agility pot ---#
263            
264            if drinkAgility = 1
265                if not findbuff "Agility" 
266                    if findtype "Blue Potion" self
267                        dclicktype "Blue Potion"
268                        wait 200
269                    else
270                        if timer blueMessageTimer > blueMessageCD
271                            overhead "Out of agility pots" 34
272                            settimer blueMessageTimer 0 
273                        endif
274                    endif
275                endif
276            endif
277                
278            #--- Drink magic resist pot ---#
279        
280            if drinkMagicResist = 1
281                if not findbuff "Magic Resist" 
282                    if findtype "Black Potion" self
283                        dclicktype "Black Potion"
284                        wait 200
285                    else
286                        if timer blackMessageTimer > blackMessageCD
287                            overhead "Out of resist pots" 34
288                            settimer blackMessageTimer 0
289                        endif
290                    endif
291                endif
292            endif
293                
294            #--- Poisoned ---#
295            
296            if 1 = drinkCure or 1 = cureSpell
297                while poisoned
298                    if findtype "Orange Potion" self
299                        dclicktype "Orange Potion"
300                        wait 200
301                    else
302                        if timer orangeMessageTimer > orangeMessageCD
303                            overhead "Out of cure pots" 34
304                            settimer orangeMessageTimer 0
305                        endif
306                        
307                        if diffhits > highDiff or not findtype 3972 self or not findtype 3973 self
308                            break
309                        endif
310                        
311                        if skill 'magery' >= 40 and mana >= 6 and 1 = cureSpell and not casting
312                            cast 'cure'
313                            wait 50
314                            while not casting                   
315                                if targetexists
316                                    hotkey 'cancel current target'
317                                endif
318                                cast 'cure'  
319                                wait 50
320                            endwhile  
321                            while not targetexists and casting
322                            endwhile
323                            waitfortarget maxwaittimeinms
324                            target 'self' 
325                            wait 200
326                        else 
327                            break
328                        endif
329                    endif
330                    
331                endwhile
332            endif
333                
334            #--- Drink Heal Pot ---#
335            
336            if diffhits >= highDiff and 1 = drinkHeal
337                if findtype "Yellow Potion" self as hPot
338                    getlabel hPot potLabel
339                    if "next" in potLabel
340                        #do nothing
341                    else
342                        @setvar! ch 0
343                        
344                        if counttype 3852 self as c
345                            @setvar! ch c
346                        endif
347                        clearsysmsg  
348                        
349                        dclicktype 3852
350                        getlabel backpack xxx
351                        wait 200
352                                    
353                        if ch != counttype 3852 self or insysmsg "potion satchel used"
354                            cooldown "Heal Pot" healingPotCD
355                        endif
356                    endif
357                else
358                    if timer yellowMessageTimer > yellowMessageCD
359                        overhead "Out of heals pots" 34
360                        settimer yellowMessageTimer 0
361                    endif
362                endif
363            endif
364                    
365            #--- Drink red pot ---#
366            
367            if stam < staminaLowerThan and 1 = drinkRefresh
368                if findtype "Red Potion" self
369                    dclicktype "Red Potion"
370                    wait 200
371                else
372                    if timer redMessageTimer > redMessageCD
373                        overhead "Out of refresh pots" 34
374                        settimer redMessageTimer 0 
375                    endif
376                endif
377            endif
378            
379            #--- Cast Chivarly ---#
380            
381            if ingump "20/" 1387930325
382                @setvar! holyPoints 20
383            elseif ingump "19/" 1387930325
384                @setvar! holyPoints 19
385            elseif ingump "18/" 1387930325
386                @setvar! holyPoints 18
387            elseif ingump "17/" 1387930325
388                @setvar! holyPoints 17
389            elseif ingump "16/" 1387930325
390                @setvar! holyPoints 16
391            elseif ingump "15/" 1387930325
392                @setvar! holyPoints 15
393            elseif ingump "14/" 1387930325
394                @setvar! holyPoints 14
395            elseif ingump "13/" 1387930325
396                @setvar! holyPoints 13
397            elseif ingump "12/" 1387930325
398                @setvar! holyPoints 12
399            elseif ingump "11/" 1387930325
400                @setvar! holyPoints 11
401            elseif ingump "10/" 1387930325
402                @setvar! holyPoints 10
403            elseif ingump "9/" 1387930325
404                @setvar! holyPoints 9
405            elseif ingump "8/" 1387930325
406                @setvar! holyPoints 8
407            elseif ingump "7/" 1387930325
408                @setvar! holyPoints 7
409            elseif ingump "6/" 1387930325
410                @setvar! holyPoints 6
411            elseif ingump "5/" 1387930325
412                @setvar! holyPoints 5
413            elseif ingump "4/" 1387930325
414                @setvar! holyPoints 4
415            elseif ingump "3/" 1387930325
416                @setvar! holyPoints 3
417            elseif ingump "2/" 1387930325
418                @setvar! holyPoints 2
419            elseif ingump "1/" 1387930325
420                @setvar! holyPoints 1
421            else 
422                @setvar holyPoints 0
423            endif    
424            
425            if skill 'chivalry' >= 95 and diffhits >= extremeDiff and 1 = holyLight and 4 < holyPoints and timer nobleTimer > nobleCD 
426                if targetexists
427                    hotkey 'cancel current target'  
428                endif
429                clearsysmsg
430                yell '[holylight'  
431                wait 200
432                if insysmsg "Holy symbols"
433                    overhead "[> Holy Light <]" 55
434                    #Activate timer
435                endif
436            endif
437    
438            if ingump "20/" 1387930325
439                @setvar! holyPoints 20
440            elseif ingump "19/" 1387930325
441                @setvar! holyPoints 19
442            elseif ingump "18/" 1387930325
443                @setvar! holyPoints 18
444            elseif ingump "17/" 1387930325
445                @setvar! holyPoints 17
446            elseif ingump "16/" 1387930325
447                @setvar! holyPoints 16
448            elseif ingump "15/" 1387930325
449                @setvar! holyPoints 15
450            elseif ingump "14/" 1387930325
451                @setvar! holyPoints 14
452            elseif ingump "13/" 1387930325
453                @setvar! holyPoints 13
454            elseif ingump "12/" 1387930325
455                @setvar! holyPoints 12
456            elseif ingump "11/" 1387930325
457                @setvar! holyPoints 11
458            elseif ingump "10/" 1387930325
459                @setvar! holyPoints 10
460            elseif ingump "9/" 1387930325
461                @setvar! holyPoints 9
462            elseif ingump "8/" 1387930325
463                @setvar! holyPoints 8
464            elseif ingump "7/" 1387930325
465                @setvar! holyPoints 7
466            elseif ingump "6/" 1387930325
467                @setvar! holyPoints 6
468            elseif ingump "5/" 1387930325
469                @setvar! holyPoints 5
470            elseif ingump "4/" 1387930325
471                @setvar! holyPoints 4
472            elseif ingump "3/" 1387930325
473                @setvar! holyPoints 3
474            elseif ingump "2/" 1387930325
475                @setvar! holyPoints 2
476            elseif ingump "1/" 1387930325
477                @setvar! holyPoints 1
478            else 
479                @setvar holyPoints 0
480            endif    
481            
482            if skill 'chivalry' >= 80 and diffhits >= criticalDiff and 1 = nobleSacrifice and 3 < holyPoints
483                if targetexists
484                    hotkey 'cancel current target'  
485                endif
486                clearsysmsg
487                yell '[noblesacrifice'  
488                wait 200  
489                if targetexists
490                    waitfortarget maxwaittimeinms
491                    target 'self' 
492                    wait 200 
493                    
494                    if insysmsg "Holy symbols"
495                        overhead "[> Noble Sacrifice <]" 55
496                        settimer nobleTimer 0
497                    endif
498                endif
499            endif
500                
501            #--- Cast heals ---#
502            
503            if skill 'magery' >= 40 and diffhits >= lowDiff and diffhits < medDiff and mana >= 4 and miniHeal = 1 and not casting
504                cast 'heal'
505                while not casting                   
506                    if targetexists
507                        hotkey 'cancel current target'
508                    endif
509                    cast 'heal'
510                endwhile  
511                
512                while not targetexists and casting
513                endwhile
514                
515                waitfortarget maxwaittimeinms
516                target 'self' 
517                wait 200  
518                
519            elseif skill 'magery' >= 60 and diffhits >= medDiff and diffhits <= highDiff mana >= 11 and greaterHeal = 1 and not casting
520                cast 'greater heal'         
521                while not casting                   
522                    if targetexists
523                        hotkey 'cancel current target'
524                    endif
525                    cast 'greater heal'
526                endwhile  
527                
528                while not targetexists and casting
529                    
530                    #--- Poisoned ---#
531                    
532                    if 1 = drinkCure
533                        while poisoned
534                            if findtype "Orange Potion" self
535                                dclicktype "Orange Potion"
536                                wait 200
537                            else
538                                if timer orangeMessageTimer > orangeMessageCD
539                                    overhead "Out of cure pots" 34
540                                    settimer orangeMessageTimer 0
541                                    break
542                                endif
543                
544                            endif
545                        endwhile
546                    endif            
547                
548                    #--- Drink Heal Pot ---#
549                    
550                    if diffhits >= highDiff and 1 = drinkHeal
551                        if findtype "Yellow Potion" self as hPot
552                            getlabel hPot potLabel
553                            if "next" in potLabel
554                                #do nothing
555                            else
556                                @setvar! ch 0
557                                
558                                if counttype 3852 self as c
559                                    @setvar! ch c
560                                endif
561                                clearsysmsg  
562                                
563                                dclicktype 3852
564                                getlabel backpack xxx
565                                wait 200
566                                            
567                                if ch != counttype 3852 self or insysmsg "potion satchel used"
568                                    cooldown "Heal Pot" healingPotCD
569                                endif
570                            endif
571                        else
572                            if timer yellowMessageTimer > yellowMessageCD
573                                overhead "Out of heals pots" 34
574                                settimer yellowMessageTimer 0
575                            endif
576                        endif
577                    endif
578            
579                endwhile
580                
581                waitfortarget maxwaittimeinms
582                target 'self' 
583                wait 200 
584                
585            elseif skill 'magery' >= 40 and diffhits > highDiff and mana >= 4 and miniHeal = 1 and not casting
586                cast 'heal'     
587                while not casting                   
588                    if targetexists
589                        hotkey 'cancel current target'
590                    endif
591                    cast 'heal' 
592                endwhile  
593                
594                while not targetexists and casting
595                endwhile
596                
597                waitfortarget maxwaittimeinms
598                target 'self' 
599                wait 200  
600            
601            endif 
602            
603        endwhile
604            
605    #********** AUTO-MAGERY BUFFS IF NEEDED **********          
606     
607        if magicReflect = 1 and skill 'magery' >= 70 and not findbuff "Magic Reflection" and mana >= miniumManaToBuff and diffhits < lowDiff
608            if timer magicReflectTimer > magicReflectCD
609                cast 'Magic Reflection'
610                while not casting and diffhits < lowDiff    
611                    getlabel backpack xxx
612                    wait 200
613                    if insysmsg "that spell will not" or insysmsg "that spell is already"
614                        settimer magicReflectTimer 0
615                        break  
616                    endif
617                    if targetexists
618                        hotkey 'cancel current target'
619                    endif
620                    cast 'Magic Reflection'
621                endwhile 
622                
623                while casting and diffhits < highDiff   
624                
625                    #--- Poisoned ---#
626                    
627                    if 1 = drinkCure
628                        while poisoned
629                            if findtype "Orange Potion" self
630                                dclicktype "Orange Potion"
631                                wait 200
632                            else
633                                if timer orangeMessageTimer > orangeMessageCD
634                                    overhead "Out of cure pots" 34
635                                    settimer orangeMessageTimer 0
636                                    break
637                                endif
638                
639                            endif
640                        endwhile
641                    endif            
642                
643                    #--- Drink Heal Pot ---#
644                    
645                    if diffhits >= highDiff and 1 = drinkHeal
646                        if findtype "Yellow Potion" self as hPot
647                            getlabel hPot potLabel
648                            if "next" in potLabel
649                                #do nothing
650                            else
651                                @setvar! ch 0
652                                
653                                if counttype 3852 self as c
654                                    @setvar! ch c
655                                endif
656                                clearsysmsg  
657                                
658                                dclicktype 3852
659                                getlabel backpack xxx
660                                wait 200
661                                            
662                                if ch != counttype 3852 self or insysmsg "potion satchel used"
663                                    cooldown "Heal Pot" healingPotCD
664                                endif
665                            endif
666                        else
667                            if timer yellowMessageTimer > yellowMessageCD
668                                overhead "Out of heals pots" 34
669                                settimer yellowMessageTimer 0
670                            endif
671                        endif
672                    endif
673                    
674                endwhile
675                wait 200  
676            endif    
677        endif
678        
679        if armorReflect = 1 and skill 'magery' >= 30 and not findbuff "Reactive Armor" and mana >= miniumManaToBuff and diffhits < lowDiff
680            if timer magicReflectTimer > magicReflectCD
681                cast 'Reactive Armor'
682                while not casting and diffhits < highDiff       
683                    getlabel backpack xxx
684                    wait 200
685                    if insysmsg "that spell will not" or insysmsg "that spell is already"
686                        settimer armorReflectTimer 0
687                        break  
688                    endif
689                    if targetexists
690                        hotkey 'cancel current target'
691                    endif
692                    cast 'Reactive Armor'
693                endwhile  
694                
695                while casting and diffhits < lowDiff   
696                endwhile
697                wait 200  
698            endif    
699        endif     
700        
701        if protectionSpell = 1 and skill 'magery' >= 40 and not findbuff "Protection" and mana >= miniumManaToBuff and diffhits < lowDiff
702            cast 'Protection'
703            while not casting and diffhits < highDiff 
704                if targetexists
705                    hotkey 'cancel current target'
706                endif
707                cast 'Protection'
708            endwhile  
709            while casting and diffhits < lowDiff   
710            endwhile
711            wait 200  
712        endif 
713        
714        if bless = 1 and skill 'magery' >= 50 and not findbuff "Cunning" and mana >= miniumManaToBuff and diffhits < lowDiff
715            sysmsg 'blessing..'
716            cast 'Bless'         
717            while not casting and diffhits < highDiff                   
718                if targetexists
719                    hotkey 'cancel current target'
720                endif
721                cast 'Bless'
722                wait 50
723            endwhile  
724            
725            while not targetexists and casting
726            endwhile
727            
728            waitfortarget maxwaittimeinms
729            target 'self' 
730            wait 200  
731        endif  
732                    
733       
734    endwhile
735endif