Back to "taming" tags

Dexxer tamer bot (pretty good) (1) by Jaseowns

Description: 6/7/2024 updated to remove free hand potion drinking check.

We fixed focus aggression by removing it. Use all guard me in game.

Use https://outlands.uorazorscripts.com/script/eeddf9ef-078c-400a-b136-39499bfc1709 to set your pet

1# Dexxer tamer bot WIP by Jaseowns
2# UO Outlands
3########################################
4# V 3.2.0  - Last Updated: 06/07/2024 ##
5########################################
6# Lots to do still... youtube.com/jaseowns/live
7# set pet variable: https://outlands.uorazorscripts.com/script/eeddf9ef-078c-400a-b136-39499bfc1709
8####
9##  Skills / Situations this script handles
10#####
11##  Targeting (Warmode)
12##  Healing (vet supplies)
13##  Herding (no longer needed - 1/13/20245)
14##  Chiv
15##  Vet
16##  Fencing
17##  Stay alive, keep pets alive )
18##
19#### PETS
20# DO YOU WANT ME TO CHOOSE YOUR PET?
21# or do you just >info and set your value
22# FOR now: we will skip the pet selection
23    
24## Assumptions
25# we are running 5 1 slot pets
26
27@setvar! requireWarModeToHealPets 1
28@setvar! ohCrapDrinkAHealthPotHpCheck 50
29@setvar! bandageCheckTimerCd 5000
30
31
32@setvar! automaticallySkinCorpses 1
33
34################################
35###### Potion Controllers
36################
37@setvar! automaticallyDrinkStrPot 0
38@setvar! automaticallyDrinkAgiPot 1
39@setvar! automaticallyDrinkMagicPot 1
40@setvar! automaticallyDrinkHealPot 1
41@setvar! automaticallyDrinkCurePot 1
42@setvar! automaticallyDrinkRefreshPot 1
43
44@setvar! hpCheckToTriggerHealPotion 45
45@setvar! hpCheckToTriggerCurePotion 45
46@setvar! stamDiffCheckToTriggerRedPotion 10
47
48@setvar! drinkPotionsEvenIfInWarModeAndYouLoseHealth 1
49
50
51################################
52###### Chiv abilities
53################
54@setvar! useCleanseByFireAutomatically 1
55@setvar! useCloseWoundsAutomatically 1
56@setvar! useHolyLightAutomatically 1
57@setvar! useDivineFuryAutomatically 1
58@setvar! hpTriggerForHolyLight 35
59@setvar! lowHealthTriggerForNobleSacrifice 40
60
61################################
62###### Chiv cooldowns
63################
64@setvar! cdCleanseByFire 31000
65@setvar! cdCloseWounds 31000
66@setvar! cdHolyLight 31000
67@setvar! cdDivineFury 31000
68@setvar! cdNobleSacrifice 31000
69
70################################
71###### Chiv abilities overheads
72################
73@setvar! showChivUsageAsOverhead 1
74@setvar! showChivUsageAsSystemMessage 1
75@setvar! showChivUsageAsOverheadColor 88
76@setvar! showChivUsageAsSystemMessageColor 88
77
78###########
79# If shit is not working right, adjust this number to ping
80#####
81@setvar! minimumWaitForPing 200
82@setvar! minimumWaitForPingUnequipping 650
83@setvar! cdPreventChivAbilitySpam 750
84@setvar! cdSkinningCheck 3000
85@setvar! cdPreventOverheadSpam 2000
86
87settimer bandageCheckTimer bandageCheckTimerCd
88settimer preventOverheadSpamTimer cdPreventOverheadSpam
89settimer preventChivAbilitySpamTimer cdPreventChivAbilitySpam
90settimer sCheck 12000
91
92@setvar! myRangeCheckForTarget 2
93@setvar! myPreviousKillTarget 0
94@setvar! jaseowns_OutputHerdingActiveOverheadHelper 0
95
96
97
98########
99### If this variable is 1 - you will only use vet kits if you get hurt yourself
100### You also want to make sure jaseowns_PetOne is set
101######
102@setvar! singleHealPetWithBandaids 0
103
104
105#####
106##  Skill Check Timer
107####
108@setvar! jaseowns_SkillTimerCD 11500
109settimer jaseowns_SkillTimerCheck jaseowns_SkillTimerCD
110
111#####
112##  System Message Check Timer
113####
114@setvar! jaseowns_SystemMsgCheckCD 1000
115settimer jaseowns_SystemMsgCheck jaseowns_SystemMsgCheckCD
116
117#####
118##  Kill Target Check Timer
119####
120@setvar! jaseowns_KillTimerCD 1000
121settimer jaseowns_KillTimer jaseowns_KillTimerCD
122
123#####
124##  Herd Again Check Timer
125####
126@setvar! jaseowns_HerdAgainTimerCD 8000
127settimer jaseowns_HerdAgainTimer jaseowns_HerdAgainTimerCD
128
129#####
130##  Targeting Variables
131####
132@setvar! jaseowns_CurrentTargetFocus 0
133@setvar! jaseowns_LastFocusAggressionTarget 0
134@setvar! jaseowns_KillTarget 0
135
136if not varexist jaseowns_PetOne
137    @setvar jaseowns_PetOne 0
138endif
139
140if varexist jase_righthand
141    if not findlayer self righthand and jase_righthand != 0
142        dclick jase_righthand
143        wait 650
144    endif
145endif
146
147clearsysmsg 
148
149
150@setvar! attemptDiscord 0
151if skill "Discordance" >= 50 and findtype "bamboo flute|tambourine|drum|lute|lap harp" backpack as inny
152    @setvar! attemptDiscord 1
153endif
154
155
156@setvar! jase_myHandCheckTimerCD 2000
157settimer jase_myHandCheckTimer jase_myHandCheckTimerCD
158
159if varexist jase_lefthand
160    if not findlayer self lefthand and jase_lefthand != 0 and find jase_lefthand backpack
161        if timer jase_myHandCheckTimer >= jase_myHandCheckTimerCD
162            dclick jase_lefthand
163            settimer jase_myHandCheckTimerCD 0
164            wait 650
165        endif
166    endif
167endif
168
169# Herding
170@setvar! isHerdingActive 0
171if findtype 3713 self as firstJrook
172    while isHerdingActive = 0
173        if counttype 3713 self > 1
174            @clearignore 
175            while findtype 3713 self as jrook
176                getlabel jrook multiDesc
177                if 'activated' in multiDesc
178                    @setvar! isHerdingActive 1
179                    if jaseowns_OutputHerdingActiveOverheadHelper = 1
180                        overhead 'Herding Active' 88
181                        overhead '{{multiDesc}}'
182                    endif
183                    break
184                endif
185                @ignore jrook
186            endwhile
187            @clearignore 
188            if isHerdingActive = 0
189                dclick firstJrook
190            endif
191        endif
192        
193        if isHerdingActive = 0
194            getlabel firstJrook desc
195            if 'activated' in desc
196                @setvar! isHerdingActive 1
197                if jaseowns_OutputHerdingActiveOverheadHelper = 1
198                    overhead 'Herding Active' 88
199                    overhead '{{desc}}'
200                endif
201            else
202                dclick firstJrook
203                getlabel firstJrook desc
204                @setvar! isHerdingActive 1
205                if jaseowns_OutputHerdingActiveOverheadHelper = 1
206                    overhead 'Herding Active' 88
207                    overhead '{{desc}}'
208                endif
209            endif 
210        endif
211    endwhile
212endif
213
214clearsysmsg 
215while not dead 
216        
217    if varexist jase_righthand
218        if not findlayer self righthand and jase_righthand != 0 and find jase_righthand backpack
219            if timer jase_myHandCheckTimer >= jase_myHandCheckTimerCD
220                dclick jase_righthand
221                settimer jase_myHandCheckTimerCD 0
222                wait 650
223            endif
224        endif
225    endif
226
227
228    
229    
230    if not cooldown "MyDragon" and findtype "broken crystals" ground -1 -1 6 
231        cooldown "MyDragon" 12500
232    endif
233    
234    
235
236
237    if insysmsg "The world will save in"
238        say "Jaseowns says the world is ending soon..." 88
239    elseif insysmsg "The world is saving"
240        settimer jaseowns_WorldSaveTimer 0
241        while not insysmsg "World save complete"
242            sysmsg "The world is saving..." 88
243            // wait
244            if timer jaseowns_WorldSaveTimer >= 10000
245                break
246            endif
247        endwhile
248        removetimer jaseowns_WorldSaveTimer
249        say "The world has been saved!" 88
250    endif
251
252    ###############
253    ### Skinning
254    #############
255    if automaticallySkinCorpses = 1 and findtype "corpse" ground -1 -1 2 as jorpse
256        if not timerexists skinningCheckTimer
257            settimer skinningCheckTimer cdSkinningCheck
258        endif
259        if findtype "Elven Spellblade" backpack and timer skinningCheckTimer >= cdSkinningCheck 
260            while not targetexists 
261                useskill 'forensicevaluation'
262            endwhile
263            if targetexists 
264                hotkey "Target Self"
265                wait minimumWaitForPing
266                settimer skinningCheckTimer 0
267                @ignore jorpse
268            endif
269        endif
270    endif
271
272    ###############
273    ### Pet Healing
274    #############
275    @setvar! canUseKit 1
276    if requireWarModeToHealPets = 1 and not warmode 
277        @setvar! canUseKit 0
278    endif
279    
280    if not bandaging 
281        if canUseKit = 1 and timer bandageCheckTimer > bandageCheckTimerCd
282        
283            if singleHealPetWithBandaids = 1 and find jaseowns_PetOne ground -1 -1 2 and findtype "clean bandage%s%" backpack as item
284                if targetexists 'harmful'
285                    hotkey "Cancel Current Target"
286                    wait 200
287                endif
288                if not targetexists 
289                    dclick item
290                    wft 500
291                endif
292                if targetexists 
293                    target jaseowns_PetOne
294                endif
295            elseif singleHealPetWithBandaids = 0 and findtype "veterinary supplies" backpack as item
296                dclick item
297                wait 650
298            endif
299            settimer bandageCheckTimer 0
300        endif
301    else
302        settimer bandageCheckTimer 0
303    endif
304
305        
306    ###############
307    ### Potions
308    #############
309    if not findtype "White Potion" backpack
310        @setvar! automaticallyDrinkStrPot 0
311    endif
312
313    if not findtype "Blue Potion" backpack
314        @setvar! automaticallyDrinkAgiPot 0
315    endif
316
317    if not findtype "Black Potion" backpack
318        @setvar! automaticallyDrinkMagicPot 0
319    endif
320
321    # Eat food if we got it
322    if not findbuff "food" and findtype "tray" backpack as jood
323        dclick jood
324        wait minimumWaitForPing
325    endif
326
327    @setvar! needStrBuff 0
328    @setvar! needDexBuff 0
329    @setvar! needMagicBuff 0
330    @setvar! needHealPot 0
331    @setvar! needCurePot 0
332    @setvar! needRefreshPot 0
333
334    @setvar! drinkThosePots 0
335
336    if targetInRange = 1 
337       @setvar! drinkThosePots 1   
338    elseif warmode and drinkPotionsEvenIfInWarModeAndYouLoseHealth = 1 and hp < maxhp
339        @setvar! drinkThosePots 1   
340    endif
341
342    if automaticallyDrinkStrPot = 1 and drinkThosePots = 1 and not findbuff "Strength"
343        @setvar! needStrBuff 1
344    endif
345
346    if automaticallyDrinkAgiPot = 1 and drinkThosePots = 1 and not findbuff "Agility"
347        @setvar! needDexBuff 1 
348    endif
349
350    if automaticallyDrinkMagicPot = 1 and drinkThosePots = 1 and not findbuff "Magic Resist Potion"
351        @setvar! needMagicBuff 1 
352    endif
353
354    if automaticallyDrinkHealPot = 1 and hp <= hpCheckToTriggerHealPotion
355        @setvar! needHealPot 1 
356    endif
357
358    if automaticallyDrinkCurePot = 1 and poisoned and hp <= hpCheckToTriggerCurePotion
359        @setvar! needCurePot 1 
360    endif
361
362    if automaticallyDrinkRefreshPot = 1 and diffstam >= stamDiffCheckToTriggerRedPotion
363        @setvar! needRefreshPot 1 
364    endif
365
366    if needStrBuff = 1 and not findtype "White Potion" backpack
367        @setvar! needStrBuff 0
368    endif
369
370    if needDexBuff = 1 and not findtype "Blue Potion" backpack
371        @setvar! needDexBuff 0
372    endif
373
374    if needMagicBuff = 1 and not findtype "Black Potion" backpack
375        @setvar! needMagicBuff 0
376    endif
377
378    if needHealPot = 1 and not findtype "Yellow Potion" backpack
379        @setvar! needHealPot 0
380    elseif needHealPot = 1 and findtype "Yellow Potion" backpack as item
381        getlabel item healPotDesc
382        if "next usable" in healPotDesc
383            @setvar! needHealPot 0
384        else
385            @setvar! needHealPot 1
386        endif
387    endif
388
389    if needCurePot = 1 and not findtype "Orange Potion" backpack
390        @setvar! needCurePot 0
391    endif
392
393    if needRefreshPot = 1 and not findtype "Red Potion" backpack
394        @setvar! needRefreshPot 0
395    endif
396
397   
398    if needHealPot = 1
399        if findtype "Yellow Potion" backpack as jotion
400            overhead "chug heal"
401            dclick jotion
402            wait minimumWaitForPing
403            cooldown "Yellow Potion" 10000
404        else
405            overhead "No Heal potion found!" 34
406        endif
407    endif
408    
409    if needCurePot = 1
410        if findtype "Orange Potion" backpack as jotion
411            overhead "chug cure"
412            dclick jotion
413            wait minimumWaitForPing
414        else
415            overhead "No Cure potion found!" 34
416        endif
417    endif
418    
419                
420    if needDexBuff = 1
421        if findtype "Blue Potion" backpack as jotion
422            overhead "chug"
423            dclick jotion
424            wait minimumWaitForPing
425        else
426            overhead "No AGI potion found!" 34
427        endif
428    endif
429    
430    if automaticallyDrinkRefreshPot = 1 and diffstam >= stamDiffCheckToTriggerRedPotion
431        @setvar! needRefreshPot 1 
432    endif
433
434    if needRefreshPot = 1
435        if findtype "Red Potion" backpack as jotion
436            overhead "chug refresh"
437            dclick jotion
438            wait minimumWaitForPing
439        else
440            overhead "No Refresh potion found!" 34
441        endif
442    endif
443
444    if needStrBuff = 1
445        if findtype "White Potion" backpack as jotion
446            overhead "chug"
447            dclick jotion
448            wait minimumWaitForPing
449        else
450            overhead "No STR potion found!" 34
451        endif
452    endif
453    
454    if needMagicBuff = 1
455        if findtype "Black Potion" backpack as jotion
456            overhead "chug"
457            dclick jotion
458            wait minimumWaitForPing
459        else
460            overhead "No MR potion found!" 34
461        endif
462    endif
463    
464    
465    ###############
466    ### Self Healing
467    #############
468    if hp < maxhp
469        // we need to heal
470        if findtype "veterinary supplies" backpack as item
471            dclick item
472            wait 650
473        endif
474        
475        if diffhits >= ohCrapDrinkAHealthPotHpCheck
476            if findtype "Yellow Potion" backpack as pot
477                dclick pot
478                wait 650
479            endif
480        endif
481    endif
482    
483    
484    ###############
485    ### Targeting (based on warmode on)
486    #############
487    if timer jaseowns_KillTimer < jaseowns_KillTimerCD
488        overhead "Waiting for you to loot bro" 88
489    endif
490    
491    if warmode and timer jaseowns_KillTimer >= jaseowns_KillTimerCD
492        
493        if myKillTarget != 0 and dead myKillTarget and myKillTargetInRangeToLoot = 1
494            overhead "Waiting for you to loot"
495            settimer jaseowns_KillTimer 0
496        elseif not dead myKillTarget and find myKillTarget ground -1 -1 2
497            @setvar! myKillTargetInRangeToLoot 1
498        else
499            @setvar! myKillTargetInRangeToLoot 0
500        endif
501    
502        @setvar! myKillTarget 0
503        @hotkey 'Target Closest Non-Friendly Monster'
504        wait minimumWaitForPing
505        if insysmsg "No one matching that was found"
506            if timer preventOverheadSpamTimer >= cdPreventOverheadSpam
507                overhead "No targets found" 34
508                settimer preventOverheadSpamTimer 0
509            endif
510        else
511            @setvar! myKillTarget lasttarget 
512        endif    
513        
514        if not varexist autoAttack
515            @setvar! autoAttack 1
516        endif
517        
518        if myKillTarget != 0 and myPreviousKillTarget != myKillTarget
519            getlabel myKillTarget mobDesc
520            @setvar! myPreviousKillTarget myKillTarget
521            if "(summoned" in mobDesc or "(bonded" in mobDesc or "(tame" in mobDesc
522                overhead "▼ Player pet - IGNORE ▼" 77 lasttarget
523                @setvar! autoAttack 0
524                @setvar! myKillTarget 0
525            else  
526                @setvar! autoAttack 1
527            endif    
528        endif
529        
530        if myKillTarget = 0
531            // do nothing
532        elseif not find myKillTarget ground -1 -1 myRangeCheckForTarget
533            if showTargetOverheadMessages = 1 and timer preventOverheadSpamTimer >= cdPreventOverheadSpam
534                overhead "● ▼ OUT OF RANGE ▼ ●" 88 lasttarget
535                settimer preventOverheadSpamTimer 0
536            endif
537            if find myKillTarget ground -1 -1 8 and autoAttack = 1
538                attack myKillTarget 
539            endif
540        elseif autoAttack = 1
541            @setvar! targetInRange 1
542            if showTargetOverheadMessages = 1 and timer preventOverheadSpamTimer >= cdPreventOverheadSpam
543                overhead "● ▼▼ HERE ▼▼ ●" 88 myKillTarget    
544                settimer preventOverheadSpamTimer 0
545            endif
546            attack myKillTarget 
547        endif
548    endif
549    
550    ###############
551    ### Herding
552    #############
553    if myKillTarget != 0 and find myKillTarget ground -1 -1 12
554        @setvar jaseowns_KillTarget myKillTarget
555        if jaseowns_KillTarget != jaseowns_LastFocusAggressionTarget
556
557            if find jaseowns_PetOne
558                overhead "� Guarding �" 88 jaseowns_PetOne
559                menu jaseowns_PetOne 3
560            endif
561
562            if timer jaseowns_SkillTimerCheck >= jaseowns_SkillTimerCD and findtype 3713 self as jrook
563                settimer jaseowns_SystemMsgCheck 0
564                while timer jaseowns_SystemMsgCheck <= jaseowns_SystemMsgCheckCD
565                    if targetexists 'beneficial'
566                        hotkey "Cancel Current Target"
567                    elseif not targetexists 'neutral'
568                        overhead "� � Attempting Herd � �" 88 jaseowns_KillTarget
569                        useskill "ArmsLore"
570                        wft 500
571                    else
572                        break
573                    endif
574                endwhile
575                if targetexists 'neutral'
576                    target jaseowns_KillTarget
577                    settimer jaseowns_SystemMsgCheck 0
578                    while timer jaseowns_SystemMsgCheck <= jaseowns_SystemMsgCheckCD
579                        if insysmsg "You cannot inspect that."
580                            while not targetexists "harmful"
581                                say "ALL KILL" 88
582                                wft 500
583                            endwhile
584                            if targetexists "harmful"
585                                target jaseowns_KillTarget
586                                @setvar! jaseowns_LastFocusAggressionTarget jaseowns_KillTarget
587                                settimer jaseowns_HerdAgainTimer 0
588                                @setvar! jaseowns_DiscordThisTarget jaseowns_KillTarget
589                                break
590                            endif
591                        elseif insysmsg "Target cannot be seen"
592
593                        endif
594                    endwhile
595                endif
596            endif
597        endif
598    else
599        @setvar! jaseowns_DiscordThisTarget 0
600        cooldown "Discord Jarget" 0
601        @setvar! jaseowns_LastFocusAggressionTarget 0
602    endif
603
604    if timer jaseowns_HerdAgainTimer >= jaseowns_HerdAgainTimerCD
605        @setvar! jaseowns_LastFocusAggressionTarget 0
606    endif
607    
608    ###############
609    ### Discord Check
610    #############
611    if attemptDiscord = 1 
612        if find jaseowns_DiscordThisTarget ground -1 -1 10
613            getlabel myKillTarget jaseowns_DiscordDesc
614            if "discord" in jaseowns_DiscordDesc
615                // do nothing
616                // potentially update the cooldown
617            elseif not cooldown "Discord Jarget" and findtype "bamboo flute|tambourine|drum|lute|lap harp" backpack as inny
618                if not targetexists "harmful"
619                    useskill "Discordance"
620                    wft 500
621                endif
622                if insysmsg "What instrument" and targetexists "neutral"
623                    @setvar jase_MyInny inny
624                    target inny
625                    wft 500
626                endif
627                if targetexists "harmful"
628                    target myKillTarget
629                endif
630            endif
631            elseif not find jaseowns_DiscordThisTarget ground -1 -1 10
632            cooldown "Discord Jarget" 0
633        endif
634        
635        if not findbuff "song of discordance"
636            if not targetexists "harmful"
637                useskill "Discordance"
638                wft 500
639            endif
640            if insysmsg "What instrument" and targetexists "neutral"
641                @setvar jase_MyInny inny
642                target inny
643                wft 500
644            endif
645            if targetexists "harmful"
646                target backpack
647            endif
648        endif
649    endif
650    
651
652    
653    ###############
654    ### Chivalry
655    #############
656    if skill "Chivalry" >= 50
657
658        @setvar! chivSymbols 0
659        @setvar! cdCleanseByFire 31000
660        @setvar! cdCloseWounds 31000
661        @setvar! cdHolyLight 31000
662        @setvar! cdDivineFury 31000
663        @setvar! cdNobleSacrifice 31000
664
665        if not timerexists nobleSacrificeTimer
666            createtimer nobleSacrificeTimer
667            settimer nobleSacrificeTimer cdCleanseByFire
668        endif
669
670        if not timerexists cleanseByFireTimer
671            createtimer cleanseByFireTimer
672            settimer cleanseByFireTimer cdCleanseByFire
673        endif
674
675        if not timerexists closeWoundsTimer
676            createtimer closeWoundsTimer
677            settimer closeWoundsTimer cdCloseWounds
678        endif
679        
680        if not timerexists holyLightTimer
681            createtimer holyLightTimer
682            settimer holyLightTimer cdHolyLight
683        endif
684        
685        if not timerexists divineFuryTimer
686            createtimer divineFuryTimer
687            settimer divineFuryTimer cdDivineFury
688        endif
689        
690        while not gumpexists 1387930325
691            say "[ChivalryHotbar"
692            wait 200
693        endwhile
694        
695        if gumpexists 1387930325
696            if ingump "12/" 1387930325
697                @setvar! chivSymbols 12
698            elseif ingump "13/" 1387930325
699                @setvar! chivSymbols 13
700            elseif ingump "14/" 1387930325
701                @setvar! chivSymbols 14
702            elseif ingump "15/" 1387930325
703                @setvar! chivSymbols 15
704            elseif ingump "16/" 1387930325
705                @setvar! chivSymbols 16
706            elseif ingump "17/" 1387930325
707                @setvar! chivSymbols 17
708            elseif ingump "18/" 1387930325
709                @setvar! chivSymbols 18
710            elseif ingump "19/" 1387930325
711                @setvar! chivSymbols 19
712            elseif ingump "20/" 1387930325
713                @setvar! chivSymbols 20
714            elseif ingump "21/" 1387930325
715                @setvar! chivSymbols 21
716            elseif ingump "11/" 1387930325
717                @setvar! chivSymbols 11
718            elseif ingump "10/" 1387930325
719                @setvar! chivSymbols 10
720            elseif ingump "9/" 1387930325
721                @setvar! chivSymbols 9
722            elseif ingump "8/" 1387930325
723                @setvar! chivSymbols 8
724            elseif ingump "7/" 1387930325
725                @setvar! chivSymbols 7
726            elseif ingump "6/" 1387930325
727                @setvar! chivSymbols 6
728            elseif ingump "5/" 1387930325
729                @setvar! chivSymbols 5
730            elseif ingump "4/" 1387930325
731                @setvar! chivSymbols 4
732            elseif ingump "3/" 1387930325
733                @setvar! chivSymbols 3
734            elseif ingump "2/" 1387930325
735                @setvar! chivSymbols 2
736            elseif ingump "1/" 1387930325
737                @setvar! chivSymbols 1
738            elseif ingump "0/" 1387930325
739                @setvar! chivSymbols 0
740            endif
741        endif
742        
743        if hp <= lowHealthTriggerForNobleSacrifice and skill "Chivalry" >= 80
744            if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and timer nobleSacrificeTimer >= cdNobleSacrifice and 4 < chivSymbols
745                if skill "Healing" > 0
746                    hotkey 'Bandage Self'
747                    settimer aidsTimer 0
748                    wait minimumWaitForPing
749                endif
750                if showChivUsageAsOverhead = 1
751                    overhead "Noble Sacrifice" showChivUsageAsOverheadColor
752                endif
753                if showChivUsageAsSystemMessage = 1
754                    sysmsg "Noble Sacrifice" showChivUsageAsSystemMessageColor
755                endif
756                yell "[NobleSacrifice"
757                wft 500
758                hotkey "Target Self"
759                wait 200
760                if insysmsg "Holy symbols remaining:"
761                    settimer nobleSacrificeTimer 0
762                    settimer preventChivAbilitySpamTimer 0
763                    cooldown NobleSacrifice cdNobleSacrifice
764                endif
765                if gumpexists 1387930325
766                    if ingump "12/" 1387930325
767                        @setvar! chivSymbols 12
768                    elseif ingump "13/" 1387930325
769                        @setvar! chivSymbols 13
770                    elseif ingump "14/" 1387930325
771                        @setvar! chivSymbols 14
772                    elseif ingump "15/" 1387930325
773                        @setvar! chivSymbols 15
774                    elseif ingump "16/" 1387930325
775                        @setvar! chivSymbols 16
776                    elseif ingump "17/" 1387930325
777                        @setvar! chivSymbols 17
778                    elseif ingump "18/" 1387930325
779                        @setvar! chivSymbols 18
780                    elseif ingump "19/" 1387930325
781                        @setvar! chivSymbols 19
782                    elseif ingump "20/" 1387930325
783                        @setvar! chivSymbols 20
784                    elseif ingump "21/" 1387930325
785                        @setvar! chivSymbols 21
786                    elseif ingump "11/" 1387930325
787                        @setvar! chivSymbols 11
788                    elseif ingump "10/" 1387930325
789                        @setvar! chivSymbols 10
790                    elseif ingump "9/" 1387930325
791                        @setvar! chivSymbols 9
792                    elseif ingump "8/" 1387930325
793                        @setvar! chivSymbols 8
794                    elseif ingump "7/" 1387930325
795                        @setvar! chivSymbols 7
796                    elseif ingump "6/" 1387930325
797                        @setvar! chivSymbols 6
798                    elseif ingump "5/" 1387930325
799                        @setvar! chivSymbols 5
800                    elseif ingump "4/" 1387930325
801                        @setvar! chivSymbols 4
802                    elseif ingump "3/" 1387930325
803                        @setvar! chivSymbols 3
804                    elseif ingump "2/" 1387930325
805                        @setvar! chivSymbols 2
806                    elseif ingump "1/" 1387930325
807                        @setvar! chivSymbols 1
808                    elseif ingump "0/" 1387930325
809                        @setvar! chivSymbols 0
810                    endif
811                endif
812            endif
813        endif
814        
815        if poisoned and skill "Chivalry" >= 60
816            if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and useCleanseByFireAutomatically = 1 and timer cleanseByFireTimer >= cdCleanseByFire and 2 < chivSymbols
817                if showChivUsageAsOverhead = 1
818                    overhead "Cleanse by fire" showChivUsageAsOverheadColor
819                endif
820                if showChivUsageAsSystemMessage = 1
821                    sysmsg "Cleanse by fire" showChivUsageAsSystemMessageColor
822                endif
823                yell "[CleanseByFire"
824                wait 200
825                if insysmsg "Holy symbols remaining:"
826                    settimer cleanseByFireTimer 0
827                    settimer preventChivAbilitySpamTimer 0
828                    cooldown CleanseByFire cdCleanseByFire
829                endif
830            endif
831        elseif findbuff "bleed" or findbuff "disease" and skill "Chivalry" >= 70
832            if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and useCloseWoundsAutomatically = 1 and timer closeWoundsTimer >= cdCleanseByFire and 3 < chivSymbols
833                if showChivUsageAsOverhead = 1
834                    overhead "Close Wounds" showChivUsageAsOverheadColor
835                endif
836                if showChivUsageAsSystemMessage = 1
837                    sysmsg "Close Wounds" showChivUsageAsSystemMessageColor
838                endif
839                yell "[CloseWounds"
840                wait 200
841                if insysmsg "Holy symbols remaining:"
842                    settimer closeWoundsTimer 0
843                    settimer preventChivAbilitySpamTimer 0
844                    cooldown CloseWounds cdCloseWounds
845                endif
846            endif
847        endif
848        
849        if gumpexists 1387930325
850            if ingump "12/" 1387930325
851                @setvar! chivSymbols 12
852            elseif ingump "13/" 1387930325
853                @setvar! chivSymbols 13
854            elseif ingump "14/" 1387930325
855                @setvar! chivSymbols 14
856            elseif ingump "15/" 1387930325
857                @setvar! chivSymbols 15
858            elseif ingump "16/" 1387930325
859                @setvar! chivSymbols 16
860            elseif ingump "17/" 1387930325
861                @setvar! chivSymbols 17
862            elseif ingump "18/" 1387930325
863                @setvar! chivSymbols 18
864            elseif ingump "19/" 1387930325
865                @setvar! chivSymbols 19
866            elseif ingump "20/" 1387930325
867                @setvar! chivSymbols 20
868            elseif ingump "21/" 1387930325
869                @setvar! chivSymbols 21
870            elseif ingump "11/" 1387930325
871                @setvar! chivSymbols 11
872            elseif ingump "10/" 1387930325
873                @setvar! chivSymbols 10
874            elseif ingump "9/" 1387930325
875                @setvar! chivSymbols 9
876            elseif ingump "8/" 1387930325
877                @setvar! chivSymbols 8
878            elseif ingump "7/" 1387930325
879                @setvar! chivSymbols 7
880            elseif ingump "6/" 1387930325
881                @setvar! chivSymbols 6
882            elseif ingump "5/" 1387930325
883                @setvar! chivSymbols 5
884            elseif ingump "4/" 1387930325
885                @setvar! chivSymbols 4
886            elseif ingump "3/" 1387930325
887                @setvar! chivSymbols 3
888            elseif ingump "2/" 1387930325
889                @setvar! chivSymbols 2
890            elseif ingump "1/" 1387930325
891                @setvar! chivSymbols 1
892            elseif ingump "0/" 1387930325
893                @setvar! chivSymbols 0
894            endif
895        endif
896        
897        if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and useHolyLightAutomatically = 1 and hp <= hpTriggerForHolyLight and skill "Chivalry" >= 95
898            
899            @setvar! doubleCheckHolyLight 1
900        
901            if skill "Healing" > 0 and cdAids = 10000 and timer aidsTimer >= 9000
902                // skip holy light
903                overhead "Skipping Holy Light" 34
904                @setvar! doubleCheckHolyLight 0
905                // unless we gonna die
906                if hp <= 20 or poisoned
907                    overhead "Just kidding, do not wanna die" 34
908                    @setvar! doubleCheckHolyLight 1
909                endif
910            endif
911            
912            if doubleCheckHolyLight = 1
913                if timer holyLightTimer >= cdHolyLight and 5 < chivSymbols
914                    if showChivUsageAsOverhead = 1
915                        overhead "Holy Light" showChivUsageAsOverheadColor
916                    endif
917                    if showChivUsageAsSystemMessage = 1
918                        sysmsg "Holy Light" showChivUsageAsSystemMessageColor
919                    endif
920                    yell "[HolyLight"
921                    wait 200
922                    if insysmsg "Holy symbols remaining:"
923                        settimer holyLightTimer 0
924                        settimer preventChivAbilitySpamTimer 0
925                        cooldown HolyLight cdHolyLight
926                    endif
927                endif
928            endif
929        endif
930        
931        if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and targetInRange = 1 and useDivineFuryAutomatically = 1 and skill "Chivalry" >= 85
932            if timer divineFuryTimer >= cdDivineFury and 4 < chivSymbols
933                if showChivUsageAsOverhead = 1
934                    overhead "Divine Fury" showChivUsageAsOverheadColor
935                endif
936                if showChivUsageAsSystemMessage = 1
937                    sysmsg "Divine Fury" showChivUsageAsSystemMessageColor
938                endif
939                yell "[DivineFury"
940                wait 200
941                if insysmsg "Holy symbols remaining:"
942                    settimer divineFuryTimer 0
943                    settimer preventChivAbilitySpamTimer 0
944                    cooldown DivineFury cdDivineFury
945                endif
946            endif
947        endif
948    endif
949
950endwhile    
951
952while dead 
953    overhead "Rip" 34
954    if gumpexists 2957810225
955        gumpresponse 1 2957810225
956        break
957    endif        
958    wait 500
959endwhile
960
961replay