Ultimate Auto Dexxer Hotkey (1) by Jaseowns
# Dexxer Bot by Jaseowns
# UO Outlands
#######
# Working on this during the live streams: Monday / Wednesday / Friday
# https://youtube.com/jaseowns/live
#######
#####
## Verison 4.5.1
## 9/29/2024
## - fixed missing timer
##
## 9/25/2024
## - add kegs
##
## 8/23/2024
## - adding explosion potions
##
## 8/16/2024
## - fix potion check for satchel equipped or not
##
## 7/22/2024
## - updated the codex bar to be an option
##
## 7/1/2024
## - add weapon abilities + fixed timer (after stream)
## 5/28/2024
## - add preference for taunt jaseowns_AutoTaunting and skinning default off
###
#### Notes for next time:
## Cooldown check for pvp timer to avoid chiv abiltiies
## add a check for warmode to still drink pots if you lose health
# Basic Heal and Chivalry abilties to heal by Jaseowns
# UO Outlands
@setvar! showTargetOverheadMessages 1
@setvar! cdPreventOverheadSpam 2000
################################
###### Random abilities
################
@setvar! automaticallySkinCorpses 0
@setvar! automaticallyPoisonWeaponThatIsEquipped 1
###
## Alchemy Throw Pot (will disable automatically if less than 80 alchemy)
###
@setvar! jaseowns_AutoExplodePot 1
###
## Auto Taunt
###
@setvar! jaseowns_AutoTaunting 0
################################
###### Potion Controllers
################
@setvar! automaticallyDrinkStrPot 1
@setvar! automaticallyDrinkAgiPot 1
@setvar! automaticallyDrinkMagicPot 1
@setvar! automaticallyDrinkHealPot 1
@setvar! automaticallyDrinkCurePot 1
@setvar! automaticallyDrinkRefreshPot 1
@setvar! hpCheckToTriggerHealPotion 45
@setvar! hpCheckToTriggerCurePotion 45
@setvar! stamDiffCheckToTriggerRedPotion 10
@setvar! drinkPotionsEvenIfInWarModeAndYouLoseHealth 1
# This will be used to grab from keg if you have one
@setvar! jaseowns_HealthPotCountInBackpack 2
@setvar! jaseowns_CurePotCountInBackpack 2
@setvar! jaseowns_ExplosionPotCountInBackpack 2
@setvar! jaseowns_StrengthPotCountInBackpack 2
@setvar! jaseowns_MagicResistPotCountInBackpack 2
@setvar! jaseowns_RefreshPotCountInBackpack 2
@setvar! jaseowns_AgilityPotCountInBackpack 2
# Overhead counts (helps to know when low)
@setvar! jaseowns_OverheadAlertsAboutPotionsTimerCD 5000
@setvar! jaseowns_NoEmptyBottlesAlert 1
@setvar! jaseowns_HealPotOverheadAlert 1
@setvar! jaseowns_CurePotOverheadAlert 1
@setvar! jaseowns_ExplosionPotOverheadAlert 0
@setvar! jaseowns_StrengthPotOverheadAlert 1
@setvar! jaseowns_MagicResistPotOverheadAlert 0
@setvar! jaseowns_RefreshPotOverheadAlert 0
@setvar! jaseowns_AgilityPotOverheadAlert 0
################################
###### Chiv abilities
################
@setvar! useCleanseByFireAutomatically 1
@setvar! useCloseWoundsAutomatically 1
@setvar! useHolyLightAutomatically 1
@setvar! useDivineFuryAutomatically 1
@setvar! hpTriggerForHolyLight 35
@setvar! lowHealthTriggerForNobleSacrifice 40
################################
###### Weapon abilities
################
@setvar! jaseowns_LoadFullCodexBar 0
@setvar! jaseowns_LoadWeaponAbilityBar 1
@setvar! jaseowns_UseAbilityTimerCD 5000
@setvar! jaseowns_UseAbility1 1
@setvar! jaseowns_UseAbility2 0
@setvar! jaseowns_UseAbility3 0
@setvar! myRangeCheckForTarget 1
# Herding
if skill "Herding" > 0 and findtype 3713 self as firstJrook
@setvar! isHerdingActive 0
while isHerdingActive = 0
if counttype 3713 self > 1
@clearignore
while findtype 3713 self as jrook
getlabel jrook multiDesc
if 'activated' in multiDesc
@setvar! isHerdingActive 1
break
endif
@ignore jrook
endwhile
@clearignore
if isHerdingActive = 0
dclick firstJrook
endif
endif
if isHerdingActive = 0
getlabel firstJrook desc
if 'activated' in desc
@setvar! isHerdingActive 1
else
dclick firstJrook
getlabel firstJrook desc
@setvar! isHerdingActive 1
endif
endif
endwhile
endif
if skill "Archery" > 50 or skill "Fishing" > 50
@setvar! myRangeCheckForTarget 8
endif
if skill "Animal Taming" > 100
@setvar! hpTriggerForHolyLight 80
if not varexist myJaseHelperText
overhead "Make sure to set totalPets to your pet count: default is 2" 88
@setvar! myJaseHelperText 1
endif
@setvar! totalPets 2
# Pets
if not varexist myDexxerTankPet
@setvar! myDexxerTankPet 0
endif
if not find myDexxerTankPet ground -1 -1 20
overhead "Select your main tank" 88
@setvar! myDexxerTankPet
wait 200
endif
if totalPets = 2 or totalPets = 3 or totalPets = 4 or totalPets = 5
if not varexist myOtherPet1
@setvar! myOtherPet1 0
endif
if not find myOtherPet1 ground -1 -1 20
overhead "Select your non tank pet 1" 88
@setvar! myOtherPet1
wait 200
endif
else
@setvar! myOtherPet1 0
endif
if totalPets = 3 or totalPets = 4 or totalPets = 5
if not varexist myOtherPet2
@setvar! myOtherPet2 0
endif
if not find myOtherPet2 ground -1 -1 20
overhead "Select your non tank pet 2" 88
@setvar! myOtherPet2
wait 200
endif
else
@setvar! myOtherPet2 0
endif
if totalPets = 4 or totalPets = 5
if not varexist myOtherPet3
@setvar! myOtherPet3 0
endif
if not find myOtherPet3 ground -1 -1 20
overhead "Select your non tank pet 3" 88
@setvar! myOtherPet3
wait 200
endif
else
@setvar! myOtherPet3 0
endif
if totalPets = 5
if not varexist myOtherPet4
@setvar! myOtherPet4 0
endif
if not find myOtherPet4 ground -1 -1 20
overhead "Select your non tank pet 4" 88
@setvar! myOtherPet4
wait 200
endif
else
@setvar! myOtherPet4 0
endif
endif
@setvar! cdCleanseByFire 31000
@setvar! cdCloseWounds 31000
@setvar! cdHolyLight 31000
@setvar! cdDivineFury 31000
@setvar! cdNobleSacrifice 31000
################################
###### Chiv abilities overheads
################
@setvar! showChivUsageAsOverhead 1
@setvar! showChivUsageAsSystemMessage 1
@setvar! showChivUsageAsOverheadColor 88
@setvar! showChivUsageAsSystemMessageColor 88
################################
###### Bard abilities overheads
################
@setvar! showDiscordDebuffAsOverhead 1
@setvar! showDiscordDebuffAsOverheadColor 55
@setvar! showPeaceDebuffAsOverhead 1
@setvar! showPeaceDebuffAsOverheadColor 77
################################
###### Codex Stance Switch
################
@setvar! lowHealthSwitchToWarding 60
@setvar! switchShieldCodexAutomatically 1
@setvar! switchToWardingStanceDuringBleed 1
@setvar! switchToWardingStanceDuringDisease 1
@setvar! switchToWardingStanceDuringPoison 1
@setvar! switchToShieldBash 0
@setvar! switchToBulwark 1
@setvar! cdSwitchStance 10000
###########
# If shit is not working right, adjust this number to ping
#####
@setvar! minimumWaitForPing 200
@setvar! minimumWaitForPingUnequipping 650
@setvar! cdPreventChivAbilitySpam 750
@setvar! cdSkinningCheck 3000
# This only checks for my specific character and changes stuff for me
if name = "Jase Rents"
@setvar! jaseowns_AutoTaunting 1
@setvar! switchShieldCodexAutomatically 0
@setvar! switchToShieldBash 1
@setvar! switchToBulwark 0
endif
##############################################
########### DO NOT EDIT BELOW THIS
#######
@setvar! jaseowns_AutoExplodePotTimerCD 15000
if not timerexists jaseowns_AutoExplodePotTimer
settimer jaseowns_AutoExplodePotTimer jaseowns_AutoExplodePotTimerCD
endif
if skill "Alchemy" < 80
@setvar! jaseowns_AutoExplodePot 0
endif
@setvar! jaseowns_TauntingTimerCD 15000
if not timerexists jaseowns_TauntingTimer
settimer jaseowns_TauntingTimer jaseowns_TauntingTimerCD
endif
if not timerexists jaseowns_UseAbility1Timer
settimer jaseowns_UseAbility1Timer 30000
endif
if not timerexists jaseowns_UseAbility2Timer
settimer jaseowns_UseAbility2Timer 30000
endif
if not timerexists jaseowns_UseAbility3Timer
settimer jaseowns_UseAbility3Timer 30000
endif
if not timerexists jaseowns_OverheadAlertsAboutPotionsTimer
settimer jaseowns_OverheadAlertsAboutPotionsTimer jaseowns_OverheadAlertsAboutPotionsTimerCD
endif
# This will be used to grab from keg if you have one
if not varexist jaseowns_HealthPotCountInBackpack
@setvar! jaseowns_HealthPotCountInBackpack 2
endif
if not varexist jaseowns_CurePotCountInBackpack
@setvar! jaseowns_CurePotCountInBackpack 2
endif
if not varexist jaseowns_ExplosionPotCountInBackpack
@setvar! jaseowns_ExplosionPotCountInBackpack 2
endif
if not varexist jaseowns_StrengthPotCountInBackpack
@setvar! jaseowns_StrengthPotCountInBackpack 2
endif
if not varexist jaseowns_MagicResistPotCountInBackpack
@setvar! jaseowns_MagicResistPotCountInBackpack 2
endif
if not varexist jaseowns_RefreshPotCountInBackpack
@setvar! jaseowns_RefreshPotCountInBackpack 2
endif
if not varexist jaseowns_AgilityPotCountInBackpack
@setvar! jaseowns_AgilityPotCountInBackpack 2
endif
@setvar! jaseowns_UseItemTimerCD 500
settimer jaseowns_UseItemTimer jaseowns_UseItemTimerCD
@setvar! cdWorldSaveOver 15000
while not dead
## KEG CHECK (need empty bottles)
if findtype 3854 self 0
@setvar! jaseowns_TempOverheadHelper 0
if timer jaseowns_UseItemTimer >= jaseowns_UseItemTimerCD and findtype 3854 self 0 and counttype 3852 self 0 < jaseowns_HealthPotCountInBackpack
if findtype 6464 self 253 as jaseowns_Keg
settimer jaseowns_UseItemTimer 0
dclick jaseowns_Keg
wait 200
endif
if jaseowns_HealPotOverheadAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD
@setvar! jaseowns_TempOverheadHelper 1
if counttype 3852 self 0 as jaseowns_PotCount
overhead "Heal potions: {{jaseowns_PotCount}} / {{jaseowns_HealthPotCountInBackpack}}" 253
else
overhead "Heal potions: 0 / {{jaseowns_HealthPotCountInBackpack}}" 253
endif
endif
endif
if timer jaseowns_UseItemTimer >= jaseowns_UseItemTimerCD and findtype 3854 self 0 and counttype 3847 self 0 < jaseowns_CurePotCountInBackpack
if findtype 6464 self 44 as jaseowns_Keg
settimer jaseowns_UseItemTimer 0
dclick jaseowns_Keg
wait 200
endif
if jaseowns_CurePotOverheadAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD
@setvar! jaseowns_TempOverheadHelper 1
if counttype 3847 self 0 as jaseowns_PotCount
overhead "Cure potions: {{jaseowns_PotCount}} / {{jaseowns_CurePotCountInBackpack}}" 44
else
overhead "Cure potions: 0 / {{jaseowns_CurePotCountInBackpack}}" 44
endif
endif
endif
if timer jaseowns_UseItemTimer >= jaseowns_UseItemTimerCD and findtype 3854 self 0 and counttype 3853 self 0 < jaseowns_ExplosionPotCountInBackpack
if findtype 6464 self 419 as jaseowns_Keg
settimer jaseowns_UseItemTimer 0
dclick jaseowns_Keg
wait 200
endif
if jaseowns_ExplosionPotOverheadAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD
if counttype 3853 self 0 as jaseowns_PotCount
@setvar! jaseowns_TempOverheadHelper 1
overhead "Explosion potions: {{jaseowns_PotCount}} / {{jaseowns_ExplosionPotCountInBackpack}}" 419
else
overhead "Explosion potions: 0 / {{jaseowns_ExplosionPotCountInBackpack}}" 419
endif
endif
endif
if timer jaseowns_UseItemTimer >= jaseowns_UseItemTimerCD and findtype 3854 self 0 and counttype 3849 self 0 < jaseowns_StrengthPotCountInBackpack
if findtype 6464 self 956 as jaseowns_Keg
settimer jaseowns_UseItemTimer 0
dclick jaseowns_Keg
wait 200
endif
if jaseowns_StrengthPotOverheadAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD
@setvar! jaseowns_TempOverheadHelper 1
if counttype 3849 self 0 as jaseowns_PotCount
overhead "Strength potions: {{jaseowns_PotCount}} / {{jaseowns_StrengthPotCountInBackpack}}" 956
else
overhead "Strength potions: 0 / {{jaseowns_StrengthPotCountInBackpack}}" 956
endif
endif
endif
if timer jaseowns_UseItemTimer >= jaseowns_UseItemTimerCD and findtype 3854 self 0 and counttype 3846 self 0 < jaseowns_MagicResistPotCountInBackpack
if findtype 6464 self 1109 as jaseowns_Keg
settimer jaseowns_UseItemTimer 0
dclick jaseowns_Keg
wait 200
endif
if jaseowns_MagicResistPotOverheadAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD
@setvar! jaseowns_TempOverheadHelper 1
if counttype 3846 self 0 as jaseowns_PotCount
overhead "Resist potions: {{jaseowns_PotCount}} / {{jaseowns_MagicResistPotCountInBackpack}}" 1109
else
overhead "Resist potions: 0 / {{jaseowns_MagicResistPotCountInBackpack}}" 1109
endif
endif
endif
if timer jaseowns_UseItemTimer >= jaseowns_UseItemTimerCD and findtype 3854 self 0 and counttype 3851 self 0 < jaseowns_RefreshPotCountInBackpack
if findtype 6464 self 37 as jaseowns_Keg
settimer jaseowns_UseItemTimer 0
dclick jaseowns_Keg
wait 200
endif
if jaseowns_RefreshPotOverheadAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD
@setvar! jaseowns_TempOverheadHelper 1
if counttype 3851 self 0 as jaseowns_PotCount
overhead "Refresh potions: {{jaseowns_PotCount}} / {{jaseowns_RefreshPotCountInBackpack}}" 37
else
overhead "Refresh potions: 0 / {{jaseowns_RefreshPotCountInBackpack}}" 37
endif
endif
endif
if timer jaseowns_UseItemTimer >= jaseowns_UseItemTimerCD and findtype 3854 self 0 and counttype 3848 self 0 < jaseowns_AgilityPotCountInBackpack
if findtype 6464 self 93 as jaseowns_Keg
settimer jaseowns_UseItemTimer 0
dclick jaseowns_Keg
wait 200
endif
if jaseowns_AgilityPotOverheadAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD
@setvar! jaseowns_TempOverheadHelper 1
if counttype 3848 self 0 as jaseowns_PotCount
overhead "Agility potions: {{jaseowns_PotCount}} / {{jaseowns_AgilityPotCountInBackpack}}" 93
else
overhead "Agility potions: 0 / {{jaseowns_AgilityPotCountInBackpack}}" 93
endif
endif
endif
if jaseowns_TempOverheadHelper = 1
settimer jaseowns_OverheadAlertsAboutPotionsTimer 0
endif
elseif jaseowns_NoEmptyBottlesAlert = 1 and timer jaseowns_OverheadAlertsAboutPotionsTimer >= jaseowns_OverheadAlertsAboutPotionsTimerCD and findtype "keg" self
overhead "No empty bottles, you might be missing potions" 34
settimer jaseowns_OverheadAlertsAboutPotionsTimer 0
endif
if not gumpexists 3954121934 and jaseowns_LoadWeaponAbilityBar = 1
say '[abilitieshotbar'
waitforgump 3954121934 5000
endif
if skill "Animal Taming" > 100
while dead myDexxerTankPet
if not bandaging and findtype "clean bandage%s%" backpack as item
dclick item
wft 500
target myDexxerTankPet
endif
if hp <= hpCheckToTriggerHealPotion or hp <= hpTriggerForHolyLight
break
endif
wait 100
endwhile
# want a timer to start healing pets
# if the timer passes certain time
# trigger a heal bandage
# we want to check system message to see
# if its working
@setvar! cdPetHeal 8000
if not timerexists petHealTimer
settimer petHealTimer cdPetHeal
endif
@setvar! cdPetGuard 8000
if not timerexists petGuardTimer
settimer petGuardTimer cdPetGuard
endif
if timer petGuardTimer >= cdPetGuard
menu myDexxerTankPet 3
if not dead myOtherPet1
wait 200
menu myOtherPet1 3
endif
settimer petGuardTimer 0
endif
if timer petHealTimer >= cdPetHeal
if findtype "veterinary supplies" backpack as item
if not bandaging
dclick item
wait 650
endif
else
if not bandaging and findtype "clean bandage%s%" backpack as item
dclick item
wft 500
target myDexxerTankPet
overhead "Heal Target" 77 myDexxerTankPet
wait 650
endif
if myOtherPet1 != 0 and not bandaging and findtype "clean bandage%s%" backpack as item
dclick item
wft 500
target myOtherPet1
overhead "Heal Target" 66 myOtherPet1
wait 650
endif
if myOtherPet2 != 0 and not bandaging and findtype "clean bandage%s%" backpack as item
dclick item
wft 500
target myOtherPet2
overhead "Heal Target" 55 myOtherPet2
wait 650
endif
if myOtherPet3 != 0 and not bandaging and findtype "clean bandage%s%" backpack as item
dclick item
wft 500
target myOtherPet3
overhead "Heal Target" 44 myOtherPet3
wait 650
endif
if myOtherPet4 != 0 and not bandaging and findtype "clean bandage%s%" backpack as item
dclick item
wft 500
target myOtherPet4
overhead "Heal Target" 33 myOtherPet4
wait 650
endif
endif
if not bandaging
settimer petHealTimer 0
endif
endif
endif
if not timerexists skinningCheckTimer
settimer skinningCheckTimer cdSkinningCheck
endif
if automaticallySkinCorpses = 1 and findtype "corpse" ground -1 -1 2 as jorpse
if findtype "Elven Spellblade" backpack and timer skinningCheckTimer >= cdSkinningCheck
while not targetexists
useskill 'forensicevaluation'
endwhile
if targetexists
hotkey "Target Self"
wait minimumWaitForPing
settimer skinningCheckTimer 0
@ignore jorpse
endif
endif
endif
// Trapped
if paralyzed
if findtype "pouch" backpack 38
yell "[pouch"
wait minimumWaitForPing
else
overhead "Out of Pouches!" 34
endif
endif
if findbuff "weaken" and weight > maxweight
if findtype "gold coin" backpack as item
lift item 2000
droprelloc 0 0
wait minimumWaitForPing
if insysmsg "cannot drop anything"
drop backpack -1 -1 -1
endif
wait minimumWaitForPingUnequipping
else
overhead "We are overweight and cannot drop anything" 34
endif
endif
#
# if not varexist jaseCrimHealCheck
# gumpclose 3587807212
# while not gumpexists 3587807212
# say '[commands'
# wait 200
# endwhile
# gumpresponse 11 3587807212
# waitforgump 3587807212 5000
# gumpresponse 3 3587807212
# waitforgump 3587807212 5000
# if ingump "[PreventCriminalHealing" 3587807212
# if ingump "Prevented"
# gumpclose 3587807212
# else
# gumpresponse 29 3587807212
# waitforgump 3587807212 5000
# gumpclose 3587807212
# endif
# endif
# @setvar! jaseCrimHealCheck 1
# endif
if not timerexists worldSaveTimer
settimer worldSaveTimer cdWorldSaveOver
endif
if insysmsg 'world will save'
overhead "World save coming soon.."
settimer worldSaveTimer 0
elseif insysmsg 'world is saving'
for 100
overhead 'Waiting for world save...'
wait 100
if insysmsg 'save complete'
settimer worldSaveTimer cdWorldSaveOver
overhead 'Save complete - continue on!' 88
break
endif
endfor
endif
if timer worldSaveTimer >= cdWorldSaveOver
if automaticallyPoisonWeaponThatIsEquipped = 1 and skill "Poisoning" > 0
if findlayer self righthand as found
@setvar! weapon_equipped found
elseif findlayer self lefthand as found
@setvar! weapon_equipped found
else
overhead "Unknown or no weapon equipped" 34
stop
endif
getlabel weapon_equipped desc
if "poison charges" in desc
// do nothing
else
if findtype "Green Potion" backpack
menu weapon_equipped 0
else
overhead "No poison pots" 34
endif
endif
endif
endif
if not findtype "White Potion" self
@setvar! automaticallyDrinkStrPot 0
endif
if not findtype "Blue Potion" self
@setvar! automaticallyDrinkAgiPot 0
endif
if not findtype "Black Potion" self
@setvar! automaticallyDrinkMagicPot 0
endif
@setvar! cdAids 15000
if dex >= 100
@setvar! cdAids 10000
endif
if not timerexists preventOverheadSpamTimer
createtimer preventOverheadSpamTimer
settimer preventOverheadSpamTimer cdPreventOverheadSpam
endif
if not timerexists preventChivAbilitySpamTimer
createtimer preventChivAbilitySpamTimer
settimer preventChivAbilitySpamTimer cdPreventChivAbilitySpam
endif
if not timerexists aidsTimer
createtimer aidsTimer
settimer aidsTimer cdAids
endif
@setvar! myKillTarget 0
@setvar! targetInRange 0
if not varexist myPreviousKillTarget
@setvar myPreviousKillTarget 0
endif
if warmode
// do nothing
else
@hotkey 'Target Closest Non-Friendly Monster'
wait minimumWaitForPing
if insysmsg "No one matching that was found"
if timer preventOverheadSpamTimer >= cdPreventOverheadSpam
overhead "found no one" 34
settimer preventOverheadSpamTimer 0
endif
else
@setvar! myKillTarget lasttarget
endif
if not varexist autoAttack
@setvar! autoAttack 1
endif
if myKillTarget != 0 and myPreviousKillTarget != myKillTarget
getlabel myKillTarget mobDesc
@setvar! myPreviousKillTarget myKillTarget
if "(summoned" in mobDesc or "(bonded" in mobDesc or "(tame" in mobDesc
overhead "▼ Player pet - IGNORE ▼" 77 lasttarget
@setvar! autoAttack 0
else
@setvar! autoAttack 1
endif
endif
if myKillTarget = 0
// do nothing
elseif not find lasttarget ground -1 -1 myRangeCheckForTarget
if showTargetOverheadMessages = 1 and timer preventOverheadSpamTimer >= cdPreventOverheadSpam
overhead "● ▼ OUT OF RANGE ▼ ●" 88 lasttarget
settimer preventOverheadSpamTimer 0
endif
if find lasttarget ground -1 -1 8 and autoAttack = 1
attack lasttarget
endif
elseif autoAttack = 1
@setvar! targetInRange 1
if showTargetOverheadMessages = 1 and timer preventOverheadSpamTimer >= cdPreventOverheadSpam
overhead "● ▼▼ HERE ▼▼ ●" 88 lasttarget
settimer preventOverheadSpamTimer 0
endif
attack lasttarget
# Purple Potion
if jaseowns_AutoExplodePot = 1 and timer jaseowns_AutoExplodePotTimer >= jaseowns_AutoExplodePotTimerCD and findtype 3853 self 0 as jaseowns_Pot
dclick jaseowns_Pot
if findtype 3853 self 0 as jaseowns_Pot2
getlabel jaseowns_Pot2 jaseowns_PotDesc
if "next" in jaseowns_PotDesc
if "12 seconds" in jaseowns_PotDesc
@setvar! jaseowns_AutoExplodePotTimerCD 12000
elseif "13 seconds" in jaseowns_PotDesc
@setvar! jaseowns_AutoExplodePotTimerCD 13000
elseif "14 seconds" in jaseowns_PotDesc
@setvar! jaseowns_AutoExplodePotTimerCD 14000
elseif "15 seconds" in jaseowns_PotDesc
@setvar! jaseowns_AutoExplodePotTimerCD 15000
endif
settimer jaseowns_AutoExplodePotTimer 0
cooldown "Purple Pot" jaseowns_AutoExplodePotTimerCD
endif
endif
wft 500
target lasttarget
endif
if jaseowns_UseAbility1 = 1 and timer jaseowns_UseAbility1Timer >= jaseowns_UseAbilityTimerCD
say "[WeaponAbility1"
getlabel backpack jaseowns_PingCheck
if insysmsg "You do cannot perform that ability yet."
settimer jaseowns_UseAbility1Timer 0
elseif insysmsg "You have not yet unlocked that weapon ability."
@setvar! jaseowns_UseAbility1 0
else
settimer jaseowns_UseAbility1Timer 0
endif
endif
if jaseowns_UseAbility2 = 1 and timer jaseowns_UseAbility2Timer >= jaseowns_UseAbilityTimerCD
say "[WeaponAbility2"
getlabel backpack jaseowns_PingCheck
if insysmsg "You do cannot perform that ability yet."
settimer jaseowns_UseAbility2Timer 0
elseif insysmsg "You have not yet unlocked that weapon ability."
@setvar! jaseowns_UseAbility2 0
else
settimer jaseowns_UseAbility2Timer 0
endif
endif
if jaseowns_UseAbility3 = 1 and timer jaseowns_UseAbility3Timer >= jaseowns_UseAbilityTimerCD
say "[WeaponAbility3"
getlabel backpack jaseowns_PingCheck
if insysmsg "You do cannot perform that ability yet."
settimer jaseowns_UseAbility3Timer 0
elseif insysmsg "You have not yet unlocked that weapon ability."
@setvar! jaseowns_UseAbility3 0
else
settimer jaseowns_UseAbility3Timer 0
endif
endif
endif
endif
# Eat food if we got it
if not findbuff "food" and findtype "tray" backpack as jood
dclick jood
wait minimumWaitForPing
endif
@setvar! needStrBuff 0
@setvar! needDexBuff 0
@setvar! needMagicBuff 0
@setvar! needHealPot 0
@setvar! needCurePot 0
@setvar! needRefreshPot 0
@setvar! drinkThosePots 0
if targetInRange = 1
@setvar! drinkThosePots 1
elseif warmode and drinkPotionsEvenIfInWarModeAndYouLoseHealth = 1 and hp < maxhp
@setvar! drinkThosePots 1
endif
if automaticallyDrinkStrPot = 1 and drinkThosePots = 1 and not findbuff "Strength"
@setvar! needStrBuff 1
endif
if automaticallyDrinkAgiPot = 1 and drinkThosePots = 1 and not findbuff "Agility"
@setvar! needDexBuff 1
endif
if automaticallyDrinkMagicPot = 1 and drinkThosePots = 1 and not findbuff "Magic Resist Potion"
@setvar! needMagicBuff 1
endif
if automaticallyDrinkHealPot = 1 and hp <= hpCheckToTriggerHealPotion
@setvar! needHealPot 1
endif
if automaticallyDrinkCurePot = 1 and poisoned and hp <= hpCheckToTriggerCurePotion
@setvar! needCurePot 1
endif
if automaticallyDrinkRefreshPot = 1 and diffstam >= stamDiffCheckToTriggerRedPotion
@setvar! needRefreshPot 1
endif
if needStrBuff = 1 and not findtype "White Potion" self
@setvar! needStrBuff 0
endif
if needDexBuff = 1 and not findtype "Blue Potion" self
@setvar! needDexBuff 0
endif
if needMagicBuff = 1 and not findtype "Black Potion" self
@setvar! needMagicBuff 0
endif
if needHealPot = 1 and not findtype "Yellow Potion" self
@setvar! needHealPot 0
elseif needHealPot = 1 and findtype "Yellow Potion" self as item
getlabel item healPotDesc
if "next usable" in healPotDesc
@setvar! needHealPot 0
else
@setvar! needHealPot 1
endif
endif
if needCurePot = 1 and not findtype "Orange Potion" self
@setvar! needCurePot 0
endif
if needRefreshPot = 1 and not findtype "Red Potion" self
@setvar! needRefreshPot 0
endif
if needStrBuff = 1 or needDexBuff = 1 or needMagicBuff = 1 or needHealPot = 1 or needCurePot = 1 or needRefreshPot = 1
if needHealPot = 1
if findtype "Yellow Potion" self as jotion
overhead "chug heal"
dclick jotion
wait minimumWaitForPing
cooldown "Yellow Potion" 10000
else
overhead "No Heal potion found!" 34
endif
endif
if needCurePot = 1
if findtype "Orange Potion" self as jotion
overhead "chug cure"
dclick jotion
wait minimumWaitForPing
else
overhead "No Cure potion found!" 34
endif
endif
if needDexBuff = 1
if findtype "Blue Potion" self as jotion
overhead "chug"
dclick jotion
wait minimumWaitForPing
else
overhead "No AGI potion found!" 34
endif
endif
if automaticallyDrinkRefreshPot = 1 and diffstam >= stamDiffCheckToTriggerRedPotion
@setvar! needRefreshPot 1
endif
if needRefreshPot = 1
if findtype "Red Potion" self as jotion
overhead "chug refresh"
dclick jotion
wait minimumWaitForPing
else
overhead "No Refresh potion found!" 34
endif
endif
if needStrBuff = 1
if findtype "White Potion" self as jotion
overhead "chug"
dclick jotion
wait minimumWaitForPing
else
overhead "No STR potion found!" 34
endif
endif
if needMagicBuff = 1
if findtype "Black Potion" self as jotion
overhead "chug"
dclick jotion
wait minimumWaitForPing
else
overhead "No MR potion found!" 34
endif
endif
endif
#############
### CODEX
#############
if timer worldSaveTimer >= cdWorldSaveOver and skill "Parrying" >= 80 and findtype "shield codex" backpack as item
if not timerexists jaseSwitchStanceTimer
settimer jaseSwitchStanceTimer cdSwitchStance
endif
if not varexist canUseShieldFinisher
@setvar! canUseShieldFinisher 1
endif
if not gumpexists 2016719803 and jaseowns_LoadFullCodexBar = 1
while not gumpexists 1066647553
overhead "Loading hotbar"
yell "[CodexHotBar"
getlabel backpack jaseowns_PingCheck
if gumpexists 2016719803
break
endif
endwhile
endif
if switchShieldCodexAutomatically = 1 and timer jaseSwitchStanceTimer >= cdSwitchStance
getlabel item codexDesc
// make sure we are in warding stance
@setvar! switchToWarding 0
if switchToWardingStanceDuringBleed = 1 and findbuff "bleed"
@setvar! switchToWarding 1
elseif switchToWardingStanceDuringDisease = 1 and findbuff "disease"
@setvar! switchToWarding 1
elseif switchToWardingStanceDuringPoison = 1 and poisoned
@setvar! switchToWarding 1
endif
if switchToWarding = 1 and hp < lowHealthSwitchToWarding
if "Warding" in codexDesc
// we good
else
yell [ShieldsStance2
settimer jaseSwitchStanceTimer 0
wait 200
endif
if "Barrier" in codexDesc
// we good
elseif canUseShieldFinisher = 1
yell [ShieldsFinisher2
wait 200
if insysmsg "You must first reach rank 5"
@setvar! canUseShieldFinisher 0
endif
endif
elseif switchToBulwark = 1
if "Bulwark" in codexDesc
// we good
else
yell [ShieldsStance5
settimer jaseSwitchStanceTimer 0
wait 200
endif
if "Last Stand" in codexDesc
// we good
elseif canUseShieldFinisher = 1
yell [ShieldsFinisher1
wait 200
if insysmsg "You must first reach rank 5"
@setvar! canUseShieldFinisher 0
endif
endif
elseif switchToShieldBash = 1
if "Shield Bash" in codexDesc
// we good
else
yell [ShieldsStance1
settimer jaseSwitchStanceTimer 0
wait 200
endif
if "Last Stand" in codexDesc
// we good
elseif canUseShieldFinisher = 1
yell [ShieldsFinisher1
wait 200
if insysmsg "You must first reach rank 5"
@setvar! canUseShieldFinisher 0
endif
endif
endif
endif
endif
if skill "Tracking" > 0
if not findbuff "tracking"
clearsysmsg
while not gumpexists 4267467659
useskill 'tracking'
wait minimumWaitForPing
endwhile
if gumpexists 4267467659
while not insysmsg "You will now hunt all hostile players."
gumpresponse 8 4267467659
waitforgump 4267467659 5000
endwhile
gumpresponse 6 4267467659
wait minimumWaitForPing
endif
gumpclose 4267467659
endif
endif
if skill "Chivalry" >= 50
@setvar! chivSymbols 0
@setvar! cdCleanseByFire 31000
@setvar! cdCloseWounds 31000
@setvar! cdHolyLight 31000
@setvar! cdDivineFury 31000
@setvar! cdNobleSacrifice 31000
if not timerexists nobleSacrificeTimer
createtimer nobleSacrificeTimer
settimer nobleSacrificeTimer cdCleanseByFire
endif
if not timerexists cleanseByFireTimer
createtimer cleanseByFireTimer
settimer cleanseByFireTimer cdCleanseByFire
endif
if not timerexists closeWoundsTimer
createtimer closeWoundsTimer
settimer closeWoundsTimer cdCloseWounds
endif
if not timerexists holyLightTimer
createtimer holyLightTimer
settimer holyLightTimer cdHolyLight
endif
if not timerexists divineFuryTimer
createtimer divineFuryTimer
settimer divineFuryTimer cdDivineFury
endif
while not gumpexists 1387930325
say "[ChivalryHotbar"
wait 200
endwhile
if gumpexists 1387930325
if ingump "12/" 1387930325
@setvar! chivSymbols 12
elseif ingump "13/" 1387930325
@setvar! chivSymbols 13
elseif ingump "14/" 1387930325
@setvar! chivSymbols 14
elseif ingump "15/" 1387930325
@setvar! chivSymbols 15
elseif ingump "16/" 1387930325
@setvar! chivSymbols 16
elseif ingump "17/" 1387930325
@setvar! chivSymbols 17
elseif ingump "18/" 1387930325
@setvar! chivSymbols 18
elseif ingump "19/" 1387930325
@setvar! chivSymbols 19
elseif ingump "20/" 1387930325
@setvar! chivSymbols 20
elseif ingump "21/" 1387930325
@setvar! chivSymbols 21
elseif ingump "11/" 1387930325
@setvar! chivSymbols 11
elseif ingump "10/" 1387930325
@setvar! chivSymbols 10
elseif ingump "9/" 1387930325
@setvar! chivSymbols 9
elseif ingump "8/" 1387930325
@setvar! chivSymbols 8
elseif ingump "7/" 1387930325
@setvar! chivSymbols 7
elseif ingump "6/" 1387930325
@setvar! chivSymbols 6
elseif ingump "5/" 1387930325
@setvar! chivSymbols 5
elseif ingump "4/" 1387930325
@setvar! chivSymbols 4
elseif ingump "3/" 1387930325
@setvar! chivSymbols 3
elseif ingump "2/" 1387930325
@setvar! chivSymbols 2
elseif ingump "1/" 1387930325
@setvar! chivSymbols 1
elseif ingump "0/" 1387930325
@setvar! chivSymbols 0
endif
endif
if hp <= lowHealthTriggerForNobleSacrifice and skill "Chivalry" >= 80
if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and timer nobleSacrificeTimer >= cdNobleSacrifice and 4 < chivSymbols
if skill "Healing" > 0
hotkey 'Bandage Self'
settimer aidsTimer 0
wait minimumWaitForPing
endif
if showChivUsageAsOverhead = 1
overhead "Noble Sacrifice" showChivUsageAsOverheadColor
endif
if showChivUsageAsSystemMessage = 1
sysmsg "Noble Sacrifice" showChivUsageAsSystemMessageColor
endif
yell "[NobleSacrifice"
wft 500
hotkey "Target Self"
wait 200
if insysmsg "Holy symbols remaining:"
settimer nobleSacrificeTimer 0
settimer preventChivAbilitySpamTimer 0
cooldown NobleSacrifice cdNobleSacrifice
endif
if gumpexists 1387930325
if ingump "12/" 1387930325
@setvar! chivSymbols 12
elseif ingump "13/" 1387930325
@setvar! chivSymbols 13
elseif ingump "14/" 1387930325
@setvar! chivSymbols 14
elseif ingump "15/" 1387930325
@setvar! chivSymbols 15
elseif ingump "16/" 1387930325
@setvar! chivSymbols 16
elseif ingump "17/" 1387930325
@setvar! chivSymbols 17
elseif ingump "18/" 1387930325
@setvar! chivSymbols 18
elseif ingump "19/" 1387930325
@setvar! chivSymbols 19
elseif ingump "20/" 1387930325
@setvar! chivSymbols 20
elseif ingump "21/" 1387930325
@setvar! chivSymbols 21
elseif ingump "11/" 1387930325
@setvar! chivSymbols 11
elseif ingump "10/" 1387930325
@setvar! chivSymbols 10
elseif ingump "9/" 1387930325
@setvar! chivSymbols 9
elseif ingump "8/" 1387930325
@setvar! chivSymbols 8
elseif ingump "7/" 1387930325
@setvar! chivSymbols 7
elseif ingump "6/" 1387930325
@setvar! chivSymbols 6
elseif ingump "5/" 1387930325
@setvar! chivSymbols 5
elseif ingump "4/" 1387930325
@setvar! chivSymbols 4
elseif ingump "3/" 1387930325
@setvar! chivSymbols 3
elseif ingump "2/" 1387930325
@setvar! chivSymbols 2
elseif ingump "1/" 1387930325
@setvar! chivSymbols 1
elseif ingump "0/" 1387930325
@setvar! chivSymbols 0
endif
endif
endif
endif
if poisoned and skill "Chivalry" >= 60
if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and useCleanseByFireAutomatically = 1 and timer cleanseByFireTimer >= cdCleanseByFire and 2 < chivSymbols
if showChivUsageAsOverhead = 1
overhead "Cleanse by fire" showChivUsageAsOverheadColor
endif
if showChivUsageAsSystemMessage = 1
sysmsg "Cleanse by fire" showChivUsageAsSystemMessageColor
endif
yell "[CleanseByFire"
wait 200
if insysmsg "Holy symbols remaining:"
settimer cleanseByFireTimer 0
settimer preventChivAbilitySpamTimer 0
cooldown CleanseByFire cdCleanseByFire
endif
endif
elseif findbuff "bleed" or findbuff "disease" and skill "Chivalry" >= 70
if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and useCloseWoundsAutomatically = 1 and timer closeWoundsTimer >= cdCleanseByFire and 3 < chivSymbols
if showChivUsageAsOverhead = 1
overhead "Close Wounds" showChivUsageAsOverheadColor
endif
if showChivUsageAsSystemMessage = 1
sysmsg "Close Wounds" showChivUsageAsSystemMessageColor
endif
yell "[CloseWounds"
wait 200
if insysmsg "Holy symbols remaining:"
settimer closeWoundsTimer 0
settimer preventChivAbilitySpamTimer 0
cooldown CloseWounds cdCloseWounds
endif
endif
endif
if gumpexists 1387930325
if ingump "12/" 1387930325
@setvar! chivSymbols 12
elseif ingump "13/" 1387930325
@setvar! chivSymbols 13
elseif ingump "14/" 1387930325
@setvar! chivSymbols 14
elseif ingump "15/" 1387930325
@setvar! chivSymbols 15
elseif ingump "16/" 1387930325
@setvar! chivSymbols 16
elseif ingump "17/" 1387930325
@setvar! chivSymbols 17
elseif ingump "18/" 1387930325
@setvar! chivSymbols 18
elseif ingump "19/" 1387930325
@setvar! chivSymbols 19
elseif ingump "20/" 1387930325
@setvar! chivSymbols 20
elseif ingump "21/" 1387930325
@setvar! chivSymbols 21
elseif ingump "11/" 1387930325
@setvar! chivSymbols 11
elseif ingump "10/" 1387930325
@setvar! chivSymbols 10
elseif ingump "9/" 1387930325
@setvar! chivSymbols 9
elseif ingump "8/" 1387930325
@setvar! chivSymbols 8
elseif ingump "7/" 1387930325
@setvar! chivSymbols 7
elseif ingump "6/" 1387930325
@setvar! chivSymbols 6
elseif ingump "5/" 1387930325
@setvar! chivSymbols 5
elseif ingump "4/" 1387930325
@setvar! chivSymbols 4
elseif ingump "3/" 1387930325
@setvar! chivSymbols 3
elseif ingump "2/" 1387930325
@setvar! chivSymbols 2
elseif ingump "1/" 1387930325
@setvar! chivSymbols 1
elseif ingump "0/" 1387930325
@setvar! chivSymbols 0
endif
endif
if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and useHolyLightAutomatically = 1 and hp <= hpTriggerForHolyLight and skill "Chivalry" >= 95
@setvar! doubleCheckHolyLight 1
if skill "Healing" > 0 and cdAids = 10000 and timer aidsTimer >= 9000
// skip holy light
overhead "Skipping Holy Light" 34
@setvar! doubleCheckHolyLight 0
// unless we gonna die
if hp <= 20 or poisoned
overhead "Just kidding, do not wanna die" 34
@setvar! doubleCheckHolyLight 1
endif
endif
if doubleCheckHolyLight = 1
if timer holyLightTimer >= cdHolyLight and 5 < chivSymbols
if showChivUsageAsOverhead = 1
overhead "Holy Light" showChivUsageAsOverheadColor
endif
if showChivUsageAsSystemMessage = 1
sysmsg "Holy Light" showChivUsageAsSystemMessageColor
endif
yell "[HolyLight"
wait 200
if insysmsg "Holy symbols remaining:"
settimer holyLightTimer 0
settimer preventChivAbilitySpamTimer 0
cooldown HolyLight cdHolyLight
endif
endif
endif
endif
if timer preventChivAbilitySpamTimer >= cdPreventChivAbilitySpam and targetInRange = 1 and useDivineFuryAutomatically = 1 and skill "Chivalry" >= 85
if timer divineFuryTimer >= cdDivineFury and 4 < chivSymbols
if showChivUsageAsOverhead = 1
overhead "Divine Fury" showChivUsageAsOverheadColor
endif
if showChivUsageAsSystemMessage = 1
sysmsg "Divine Fury" showChivUsageAsSystemMessageColor
endif
yell "[DivineFury"
wait 200
if insysmsg "Holy symbols remaining:"
settimer divineFuryTimer 0
settimer preventChivAbilitySpamTimer 0
cooldown DivineFury cdDivineFury
endif
endif
endif
endif
if not targetexists and skill "Healing" > 0
@setvar! cdAids 15000
if dex >= 100
@setvar! cdAids 10000
endif
if not timerexists aidsTimer
createtimer aidsTimer
settimer aidsTimer cdAids
endif
if findtype "clean bandage%s%" backpack
if not bandaging and hp < maxhp
hotkey 'Bandage Self'
settimer aidsTimer 0
elseif not bandaging and poisoned
hotkey 'Bandage Self'
settimer aidsTimer 0
elseif not bandaging and findbuff "bleed"
hotkey 'Bandage Self'
settimer aidsTimer 0
elseif not bandaging and findbuff "disease"
hotkey 'Bandage Self'
settimer aidsTimer 0
endif
else
overhead "No bandages" 34
endif
endif
if not timerexists sCheck
createtimer sCheck
settimer sCheck 11000
endif
if jaseowns_AutoTaunting = 1 and find myKillTarget ground -1 -1 2 and skill "Parry" >= 80
if not cooldown "Taunting" and timer jaseowns_TauntingTimer >= jaseowns_TauntingTimerCD
say "[Taunt"
wft 500
if targetexists
target myKillTarget
getlabel backpack jaseowns_PingCheck
if not targetexists
if insysmsg "Cannot be seen"
// do nothing
else
cooldown "Taunting" jaseowns_TauntingTimerCD
settimer jaseowns_TauntingTimer 0
endif
endif
endif
endif
endif
if find myKillTarget ground -1 -1 10 and skill "Discordance" > 0
getlabel myKillTarget descBard
if "discord" in descBard
if showDiscordDebuffAsOverhead = 1
overhead "Already discorded" showDiscordDebuffAsOverheadColor myKillTarget
endif
elseif timer sCheck >= 5000
useskill 'Discordance'
wft 500
if insysmsg "What instrument"
if findtype "bamboo flute" backpack as inny
target inny
elseif findtype "tambourine" backpack as inny
target inny
elseif findtype "drum" backpack as inny
target inny
elseif findtype "lute" backpack as inny
target inny
elseif findtype "lap harp" backpack as inny
target inny
else
overhead "I do not have an inny" 34
wait 2000
endif
wft 500
endif
if targetexists
target myKillTarget
wait 200
if insysmsg "you play success"
settimer sCheck 0
elseif insysmsg "t incite that!"
// bad target
elseif insysmsg "You fail to"
settimer sCheck 0
endif
endif
else
overhead "Waiting for skill cooldown..." 88
endif
endif
if find myKillTarget ground -1 -1 10 and skill "Peacemaking" > 0
getlabel myKillTarget descBard
if "pacified" in descBard
if showPeaceDebuffAsOverhead = 1
overhead "Already peaced" showPeaceDebuffAsOverheadColor myKillTarget
endif
elseif timer sCheck >= 5000
useskill 'Peacemaking'
wft 500
if insysmsg "What instrument"
if findtype "bamboo flute" backpack as inny
target inny
elseif findtype "tambourine" backpack as inny
target inny
elseif findtype "drum" backpack as inny
target inny
elseif findtype "lute" backpack as inny
target inny
elseif findtype "lap harp" backpack as inny
target inny
else
overhead "I do not have an inny" 34
wait 2000
endif
wft 500
endif
if targetexists
target myKillTarget
wait 200
if insysmsg "you play success"
settimer sCheck 0
elseif insysmsg "t incite that!"
// bad target
elseif insysmsg "You fail to"
settimer sCheck 0
endif
endif
else
overhead "Waiting for skill cooldown..." 88
endif
endif
if skill "Discordance" > 0
if not findbuff "song of discordance" and timer sCheck >= 11000
useskill 'Discordance'
wft 500
target backpack
settimer sCheck 0
endif
endif
if skill "Provocation" > 0
if not findbuff "song of provocation" and timer sCheck >= 11000
useskill 'Provocation'
wft 500
target backpack
settimer sCheck 0
endif
endif
if skill "Peacemaking" > 0
if not findbuff "song of peacemaking" and timer sCheck >= 11000
useskill 'Peacemaking'
wft 500
target backpack
settimer sCheck 0
endif
endif
wait 200
endwhile
while dead
overhead "Rip" 34
if gumpexists 2957810225
gumpresponse 1 2957810225
break
endif
wait 500
endwhile
replay