Ougah Dexxer Bard Single target by Jephgag
Related: Musicianship dexxer;bard;chivalry
Description: This is a work in progress. This script is for my play style. Read the beginning of the script to make sure to setup the cooldowns properly.
Updated :
Added Peace/Disco Song buffs
Added Refresh Potions
Moved The clean up section outside of the main loop
1# Ougah Dexxer Bard
2# By [Myth]Ougah Ougah
3# This script is work in progress
4
5# The overhead targetting portion of the script is taken from Jasowns Autodexxer Script
6# The drinking potion part of the script is taken from Jasowns Autodexxer Script
7# The Chiv symbol counting is taken from Jasowns Autodexxer Script
8# https://outlands.uorazorscripts.com/ultimate-dexxer
9
10# This script is very specific to my style of play, but feel free to try it and modify it.
11
12# This script requires :
13# Chivalry
14# Discord and Peace making
15# A skinning knife if you want to autocarve the bodies of your target
16
17# The philosophy behind this script is that it can be used both in solo play and group play. The goal is to target a single monster.
18# If the player needs to retreat, then the script will stop by itself (you will see the message Target Lost)
19
20# The order of priority of this script
21# 1. Heal/Cure the player
22# 2. Peace the target first to reduce damage
23# 3. Then discord the target for easier kills
24# 5. Up the chivalry buffs (musicianships buff to come)
25# 4. Once the target is dead, skin the corpse (if enabled)
26
27# This script only use Heal potion and cure potion (for now)
28
29# There are a few user variable to setup below for what type of heal to use (Noble, Holy light, Hp pot) and which buff to use (EoO, Divine Fury)
30
31
32# The following Cooldowns must be setup in your UO Client (Options -> Cooldowns)
33# Be careful to write them as they are written below, case sensitive
34# Musicianship
35# Peacemaking
36# Pacified
37# Discordance
38# Discorded
39# Healing Potion
40# Cure Potion
41# Refresh Potion
42# Heal Preventend
43# Chivalry Ability CD
44# Noble Sacrifice
45# Divine Fury
46# Enemy Of One
47# Cleanse By Fire
48# Close Wounds
49# Holy Light
50# Song Buff Delay
51# Song Of Discordance
52# Song Of Peacemaking
53
54######################################################
55# Start of Script Setup
56######################################################
57
58#*****************************************************
59# User Variables
60#*****************************************************
61@setvar! PeacemakingReapply 30000
62@setvar! DiscordanceReapply 60000
63
64@setvar! AutoCarving 1
65@setvar! FindTargetRefresh 3000
66@setvar! StopWhenTargetCannotBeSeen 1
67
68@setvar! HpNobleSacrifice 65
69
70@setvar! HpHolyLight 40
71@setvar! HpHealPotion 55
72@setvar! HpCurePotion 95
73@setvar! StamRefreshPotion 90
74
75@setvar! EnableCleanseByFire 1
76@setvar! EnableCloseWounds 1
77@setvar! EnableNobleSacrifice 1
78@setvar! EnableHolyLight 1
79@setvar! EnableDivineFury 1
80@setvar! EnableEnemyOfOne 1
81
82@setvar! EnablePeacemakingBuff 1
83@setvar! EnableDiscordanceBuff 1
84
85@setvar! SongReapply 840000
86
87@setvar! EnableHealPotion 1
88@setvar! EnableCurePotion 1
89@setvar! EnableRefreshPotion 1
90
91@setvar! EnableParalyzePouch 1
92
93#variable reused from jasowns autodexxer script
94@setvar! minimumWaitForPing 300
95@setvar! minimumWaitForPingUnequipping 650
96
97#*****************************************************
98# End of User Variables
99#*****************************************************
100#*****************************************************
101# Script Variables
102#*****************************************************
103
104
105@setvar! StopTheLoop 0
106@setvar! UseHealPotion 0
107@setvar! UseCurePotion 0
108@setvar! ChivAbilityCd 31000
109@setvar! PotionCd 10000
110@setvar! TimeBetweenChivAbility 300
111@setvar! SongBuffDelay 11000
112
113
114#*****************************************************
115# End of Script Variables
116#*****************************************************
117
118
119
120######################################################
121# End of script Setup
122######################################################
123######################################################
124# Beginning of Main Loop
125######################################################
126
127
128#*****************************************************
129# Setup of Main Loop
130#*****************************************************
131hotkey 'Target Closest Non-Friendly Monster'
132
133if insysmsg "No one matching that was found on your screen"
134 @setvar CurrentTarget 0
135 overhead "[*** NO CREATURE ***]" 88
136else
137
138 @setvar LastTarget CurrentTarget
139 @setvar CurrentTarget lasttarget
140
141 clearsysmsg
142
143 #clean the cooldowns
144
145 if LastTarget != CurrentTarget
146 cooldown "Pacified" 0
147 cooldown "Discorded" 0
148 endif
149#*****************************************************
150# end of Setup of Main Loop
151#*****************************************************
152#*****************************************************
153# Main Loop
154#*****************************************************
155
156 while not dead CurrentTarget and StopTheLoop = 0
157
158
159 if not timerexists "FindTarget"
160 createtimer "FindTarget"
161 settimer "FindTarget" FindTargetRefresh
162 endif
163
164 if timer "FindTarget" >= FindTargetRefresh
165 attack CurrentTarget
166 overhead "● ▼▼ HERE ▼▼ ●" 88 CurrentTarget
167 attack CurrentTarget
168 settimer "FindTarget" 0
169 endif
170
171 getlabel CurrentTarget descTarget
172
173#*****************************************************
174# Start of Survival Loop
175#*****************************************************
176
177 if paralyzed and EnableParalyzePouch = 1
178 if findtype "pouch" backpack 38
179 yell "[pouch"
180 wait minimumWaitForPing
181 endif
182 endif
183
184 if EnableNobleSacrifice = 1
185
186 if hits <= HpNobleSacrifice and skill "Chivalry" >= 80 and not cooldown "Noble Sacrifice" and not cooldown "Heal Prevented" and not cooldown "Chivalry Ability CD"
187 yell "[NobleSacrifice"
188
189 if not insysmsg "You do not have enough holy symbols for that ability"
190 waitfortarget 500
191 target 'self'
192 wait minimumWaitForPing
193 cooldown "Heal Prevented" 5000
194 cooldown "Noble Sacrifice" ChivAbilityCd
195 cooldown "Chivalry Ability CD" TimeBetweenChivAbility
196 endif
197
198 endif
199 endif
200
201 if EnableHolyLight = 1
202 if hits <= HpHolyLight and skill "Chivalry" >= 95 and not cooldown "Holy Light" and not cooldown "Heal Prevented" and not cooldown "Chivalry Ability CD"
203 yell "[HolyLight"
204 wait minimumWaitForPing
205 cooldown "Holy Light" ChivAbilityCd
206 cooldown "Chivalry Ability CD" TimeBetweenChivAbility
207 endif
208 endif
209
210
211 #check for both cure and heal potion to not remove the weapons 2 times.
212 if EnableHealPotion = 1
213 if hits <= HpHealPotion and not cooldown "Heal Prevented" and not cooldown "Healing Potion"
214 @setvar! UseHealPotion 1
215 else
216 @setvar! UseCurePotion 0
217 endif
218 endif
219
220 if EnableCurePotion = 1
221 if hits <= HpCurePotion and not cooldown "Cure Potion" and poisoned
222 @setvar! UseCurePotion 1
223 else
224 @setvar! UseCurePotion 0
225 endif
226 endif
227
228 if EnableRefreshPotion = 1
229 if stam <= StamRefreshPotion and not cooldown "Refresh Potion"
230 @setvar! UseRefreshPotion 1
231 else
232 @setvar! UseRefreshPotion 0
233 endif
234 endif
235
236 #stole this part from the AutoDexxer Jasowns script
237 #https://outlands.uorazorscripts.com/ultimate-dexxer
238
239 if UseCurePotion = 1 or UseHealPotion = 1 or UseRefreshPotion = 1
240 if skill "Alchemy" >= 80
241 @setvar! jaseCanDrinkPotion 1
242 else
243 if not findlayer self lefthand and not findlayer self righthand
244 @setvar! jaseCanDrinkPotion 1
245 else
246 if findlayer self lefthand as myLefthand
247 @setvar! jaseLeftHand myLefthand
248 endif
249 if findlayer self righthand as myRightHand
250 @setvar! jaseRightHand myRightHand
251 endif
252 if not lhandempty
253 if not rhandempty
254 @setvar! jaseCanDrinkPotion 0
255 else
256 // handle two handed weapons
257 getlabel jaseLeftHand desc
258 if skill "Swordsmanship" > 0
259 if "axe" in desc or "bardiche" in desc or "halberd" in desc
260 @setvar! jaseCanDrinkPotion 0
261 @setvar! needTwoHandSwap 1
262 else
263 @setvar! jaseCanDrinkPotion 1
264 endif
265 elseif skill "Mace Fighting" > 0
266 if "staff" in desc or "crook" in desc or "war hammer" in desc
267 @setvar! jaseCanDrinkPotion 0
268 @setvar! needTwoHandSwap 1
269 else
270 @setvar! jaseCanDrinkPotion 1
271 endif
272 elseif skill "Fencing" > 0
273 if "spear" in desc or "pitchfork" in desc
274 @setvar! jaseCanDrinkPotion 0
275 @setvar! needTwoHandSwap 1
276 else
277 @setvar! jaseCanDrinkPotion 1
278 endif
279 elseif skill "Archery" > 0
280 if "bow" in desc or "heavy crossbow" in desc
281 @setvar! jaseCanDrinkPotion 0
282 @setvar! needTwoHandSwap 1
283 else
284 @setvar! jaseCanDrinkPotion 1
285 endif
286 elseif skill "Wrestling" > 0
287 @setvar! jaseCanDrinkPotion 1
288 endif
289 endif
290 endif
291 if not rhandempty
292 if lhandempty
293 @setvar! jaseCanDrinkPotion 1
294 else
295 @setvar! needShieldSwap 1
296 endif
297 endif
298 endif
299 endif
300 endif
301
302 if jaseCanDrinkPotion = 1
303 // do nothing
304 else
305 if needTwoHandSwap = 1
306 if skill "Swordsmanship" > 0 and findtype "cutlass|broadsword|scimitar|viking sword|longsword|katana" backpack as item
307 dclick item
308 wait minimumWaitForPing
309 elseif skill "Mace Fighting" > 0 and findtype "maul|war axe|war mace|mace|hammer pick|club" backpack as item
310 dclick item
311 wait minimumWaitForPing
312 elseif skill "Fencing" > 0 and findtype "kryss|war fork" backpack as item
313 dclick item
314 wait minimumWaitForPing
315 elseif skill "Archery" > 0 and findtype "crossbow" backpack as item
316 dclick item
317 wait minimumWaitForPing
318 else
319 hotkey 'Arm/Disarm Left Hand'
320 wait minimumWaitForPing
321 endif
322 @setvar! jaseCanDrinkPotion 1
323 elseif needShieldSwap = 1
324 overhead "we should be disarming left hand"
325 while not lhandempty
326 hotkey 'Arm/Disarm Left Hand'
327 wait minimumWaitForPingUnequipping
328 while queued
329 wait 100
330 endwhile
331 endwhile
332 setvar! jaseCanDrinkPotion 1
333 endif
334 endif
335
336 if jaseCanDrinkPotion = 1
337 if UseHealPotion = 1
338 if findtype "Yellow Potion" backpack as jotion
339 overhead "[Drinking Heal Potion]" 34
340 dclick jotion
341 wait minimumWaitForPing
342 cooldown "Healing Potion" PotionCd
343 else
344 overhead "No Heal potion found!" 34
345 endif
346 @setvar! UseHealPotion 0
347 endif
348
349 if UseCurePotion = 1
350 if findtype "Orange Potion" backpack as jotion
351 overhead "[Drinking Cure Potion]" 34
352 dclick jotion
353 wait minimumWaitForPing
354 cooldown "Cure Potion" PotionCd
355 else
356 overhead "No Cure potion found!" 34
357 endif
358 @setvar! UseCurePotion 0
359 endif
360
361 if UseRefreshPotion = 1
362 if findtype "Red Potion" backpack as jotion
363 overhead "[Drinking Refresh Potion]" 34
364 dclick jotion
365 wait minimumWaitForPing
366 cooldown "Refresh Potion" PotionCd
367 endif
368 @setvar! UseRefreshPotion 0
369 endif
370
371 if needTwoHandSwap = 1
372 dclick jaseLeftHand
373 wait minimumWaitForPing
374 elseif needShieldSwap = 1
375 hotkey 'Arm/Disarm Left Hand'
376 wait minimumWaitForPingUnequipping
377 endif
378 endif
379
380
381 if EnableCleanseByFire = 1
382
383 if poisoned and not cooldown "Cleanse By Fire" and not cooldown "Chivalry Ability CD"
384 yell "[CleanseByFire"
385 wait minimumWaitForPing
386
387 if not insysmsg "You do not have enough holy symbols for that ability"
388 cooldown "Cleanse By Fire" ChivAbilityCd
389 endif
390 endif
391 endif
392
393 if EnableCloseWounds = 1
394
395 if findbuff "bleed" or findbuff "disease"
396 if skill "chivalry" >= 70 and not cooldown "Close Wounds" and not cooldown "Chivalry Ability CD"
397 yell "[CloseWounds"
398 wait minimumWaitForPing
399
400 if not insysmsg "You do not have enough holy symbols for that ability"
401 cooldown "Close Wounds" ChivAbilityCd
402 cooldown "Chivalry Ability CD" TimeBetweenChivAbility
403 endif
404 endif
405 endif
406 endif
407
408
409#*****************************************************
410# End of Survival Loop
411#*****************************************************
412
413
414#*****************************************************
415# Start of PeaceMaking
416#*****************************************************
417 if not cooldown "Peacemaking" and not cooldown "Musicianship" and not cooldown "Pacified"
418
419 if "pacified" in descTarget and cooldown "Pacified"
420 #do nothing
421 else
422 skill "Peacemaking"
423 waitfortarget 500
424 if insysmsg "What instrument shall you play?"
425 if findtype "bamboo flute" backpack as inny
426 target inny
427 elseif findtype "tambourine" backpack as inny
428 target inny
429 elseif findtype "drum" backpack as inny
430 target inny
431 elseif findtype "lute" backpack as inny
432 target inny
433 elseif findtype "lap harp" backpack as inny
434 target inny
435 else
436 #Cause an error message
437 target CurrentTarget
438 overhead "No instrument in backpack"
439
440 endif
441 endif
442
443 if not insysmsg "This is not a musical instrument"
444 waitfortarget 500
445 target CurrentTarget
446 wait minimumWaitForPing
447 endif
448
449 if insysmsg "Target cannot be seen." and StopWhenTargetCannotBeSeen = 1
450 #stop the script
451 @setvar! StopTheLoop 1
452 break
453
454 endif
455 if insysmsg "You play successfully, pacifying your target"
456 cooldown "Pacified" PeacemakingReapply
457 cooldown "Musicianship" 5000
458 cooldown "Peacemaking" 11000
459 endif
460
461 if insysmsg "you fail to pacify your opponent"
462 cooldown "Musicianship" 5000
463 endif
464
465 endif
466 endif
467#*****************************************************
468# End of Peacemaking
469#*****************************************************
470#*****************************************************
471# Start Discordance
472#*****************************************************
473
474 if not cooldown "Discordance" and not cooldown "Musicianship" and not cooldown "Discorded"
475
476 if "discord" in descTarget and cooldown "Discorded"
477 #do nothing
478 else
479
480 skill "Discordance"
481 waitfortarget 500
482 if insysmsg "What instrument shall you play?"
483 if findtype "bamboo flute" backpack as inny
484 target inny
485 elseif findtype "tambourine" backpack as inny
486 target inny
487 elseif findtype "drum" backpack as inny
488 target inny
489 elseif findtype "lute" backpack as inny
490 target inny
491 elseif findtype "lap harp" backpack as inny
492 target inny
493 else
494 #Cause an error message
495 target CurrentTarget
496 overhead "No instrument in backpack"
497
498 endif
499 endif
500
501 if not insysmsg "This is not a musical instrument"
502 waitfortarget 500
503 target CurrentTarget
504 wait minimumWaitForPing
505 endif
506
507 if insysmsg "Target cannot be seen." and StopWhenTargetCannotBeSeen = 1
508 #stop the script
509 @setvar! StopTheLoop 1
510 endif
511
512 if insysmsg "You play successfully, disrupting your opponent"
513 cooldown "Discorded" DiscordanceReapply
514 cooldown "Musicianship" 5000
515 cooldown "Discordance" 11000
516 endif
517
518 if insysmsg "You fail to discord your opponent"
519 cooldown "Musicianship" 5000
520 endif
521 endif
522 endif
523#*****************************************************
524# End of Discordance
525#*****************************************************
526
527#*****************************************************
528# Chiv Abilities
529#*****************************************************
530
531
532 if EnableDivineFury = 1
533 if not cooldown "Divine Fury" and not cooldown "Chivalry Ability CD"
534 yell "[DivineFury"
535 wait minimumWaitForPing
536
537 if not insysmsg "You do not have enough holy symbols for that ability" and not insysmsg "You must wait a moment before attempting to use another Chivalry ability."
538 cooldown "Divine Fury" ChivAbilityCd
539 cooldown "Chivalry Ability CD" 500
540 endif
541 endif
542 endif
543
544 if EnableEnemyOfOne = 1
545 if not cooldown "Enemy Of One" and not cooldown "Chivalry Ability CD"
546 yell "[EnemyOfOne"
547 wait minimumWaitForPing
548
549 if not insysmsg "You do not have enough holy symbols for that ability" and not insysmsg "You must wait a moment before attempting to use another Chivalry ability."
550 cooldown "Enemy Of One" ChivAbilityCd
551 cooldown "Chivalry Ability CD" 500
552 endif
553 endif
554 endif
555#*****************************************************
556# end of Chiv Abilities
557#*****************************************************
558
559#*****************************************************
560# End of Musicianship Buff
561#*****************************************************
562
563 if EnablePeacemakingBuff = 1 and not cooldown "Song Of Peacemaking" and not cooldown "Musicianship" and not cooldown "Peacemaking" and not cooldown "Song Buff Delay"
564 skill "Peacemaking"
565 waitfortarget 500
566 if insysmsg "What instrument shall you play?"
567 if findtype "bamboo flute" backpack as inny
568 target inny
569 elseif findtype "tambourine" backpack as inny
570 target inny
571 elseif findtype "drum" backpack as inny
572 target inny
573 elseif findtype "lute" backpack as inny
574 target inny
575 elseif findtype "lap harp" backpack as inny
576 target inny
577 else
578 #Cause an error message
579 target CurrentTarget
580 overhead "No instrument in backpack"
581
582 endif
583 endif
584
585 if not insysmsg "This is not a musical instrument"
586 waitfortarget 500
587 target backpack
588 wait minimumWaitForPing
589 cooldown "Song Of Peacemaking" SongReapply
590 cooldown "Song Buff Delay" SongBuffDelay
591 #no need to refresh the musicianship cooldown.
592 endif
593 endif
594
595 if EnableDiscordanceBuff = 1 and not cooldown "Song Of Discordance" and not cooldown "Musicianship" and not cooldown "Discordance" and not cooldown "Song Buff Delay"
596 skill "Discordance"
597 waitfortarget 500
598 if insysmsg "What instrument shall you play?"
599 if findtype "bamboo flute" backpack as inny
600 target inny
601 elseif findtype "tambourine" backpack as inny
602 target inny
603 elseif findtype "drum" backpack as inny
604 target inny
605 elseif findtype "lute" backpack as inny
606 target inny
607 elseif findtype "lap harp" backpack as inny
608 target inny
609 else
610 #Cause an error message
611 target CurrentTarget
612 overhead "No instrument in backpack"
613 endif
614 endif
615
616 if not insysmsg "This is not a musical instrument"
617 waitfortarget 500
618 target backpack
619 wait minimumWaitForPing
620 cooldown "Song Of Discordance" SongReapply
621 cooldown "Song Buff Delay" SongBuffDelay
622 #no need to refresh the musicianship cooldown.
623 endif
624 endif
625#*****************************************************
626# End of Musicianship Buff
627#*****************************************************
628
629#*****************************************************
630# World Save
631#*****************************************************
632
633 if insysmsg "world is saving"
634 if not timerexists "WorldSaveTimer"
635 createtimer "WorldSaveTimer"
636 endif
637
638 settimer "WorldSaveTimer" 0
639
640 #Wait a maximum of 5 seconds in this loop, or when the save complete message pops
641 while timer "WorldSaveTimer" < 5000
642 if insysmsg "save complete"
643 break
644 endif
645 endwhile
646
647 overhead "Resuming Script..." 88
648 endif
649
650#*****************************************************
651# end of WorldSave
652#*****************************************************
653
654 endwhile
655
656#*****************************************************
657# End of Main Loop
658#*****************************************************
659 overhead "[*** TARGET LOST ***]"
660######################################################
661# End of Main Loop
662######################################################
663endif
664
665######################################################
666# Beginning of Clean Up
667######################################################
668
669
670#Clean-up
671
672#clean the cooldowns
673cooldown "Pacified" 0
674cooldown "Discorded" 0
675
676
677#carve your kill
678
679wait 500
680if AutoCarving = 1
681
682 if findtype 'Elven SpellBlade' backpack
683 if findtype "corpse" ground -1 -1 2 as rip
684 overhead "[Skinning]"
685 dclicktype "Elven Spellblade"
686 waitfortarget 1500
687 target 'self'
688
689 @ignore rip
690 endif
691 else
692 overhead "[No Skinning Knife]" 88
693 endif
694
695endif
696
697######################################################
698# End of Cleanup
699######################################################
700
701
702
703
704