Animal Taming Script by daklue
# Animal Taming Script by DaKlue
# Modified: Shelter Dungeon Animal Taming by Jaseowns
# UO Outlands
// Set Time For Taming
@setvar! tamingTimerCd 11500
// Healing Pet Timer
@setvar! vetTimerCd 8000
// Healing Controllers
@setvar! hpCheckToTriggerGreaterHealSpell 30
@setvar! hpCheckToTriggerMiniEmergencyHealSpell 60
@setvar! hpCheckToTriggerHealPotion 45
// Buffs
@setvar! castMagicShield 0
@setvar! castReactiveArmor 0
@setvar! manaReserve 50
// Tankpet setup
if followers = 0
overhead 'We need to tame a tank pet.'
wait 2000
overhead 'Rerun script when you have a tank pet.'
break
elseif followers > 0
if not varexist tankpet
overhead 'Please select your tanking pet' 88
@setvar! tankpet
wft 500
endif
endif
// Vet Bandage timer
if not timerexists 'vetTimer'
settimer vetTimer vetTimerCd
endif
if not timerexists tamingTimer
settimer tamingTimer tamingTimerCd
endif
if not timerexists sayTimer
settimer sayTimer 0
endif
// Bandage tankpet every 8 seconds
if timer 'vetTimer' > 8000
if not bandaging and findtype "clean bandage%s%" backpack as item
dclick item
wft 500
target tankpet
wait 200
hotkey 'Cancel current target'
endif
if insysmsg 'not damaged'
settimer 'vetTimer' 4000
else
settimer 'vetTimer' 0
endif
endif
if followers = 0
@setvar! myFollowers 0
settimer sayTimer 0
elseif followers = 1
@setvar! myFollowers 1
elseif followers = 2
@setvar! myFollowers 2
elseif followers = 3
@setvar! myFollowers 3
elseif followers = 4
@setvar! myFollowers 4
elseif followers = 5
@setvar! myFollowers 5
overhead "Too many followers - release some!" 88
wait 2000
replay
endif
@clearignore
@setvar! tameThisThing 0
if skill "Animal Taming" < 60
while findtype "a mongbat|a giant rat|a guar|a wolf|a familiar|a giant frog|a primordial whelp|a colossal frog|a giant bat|a monitor hatchling" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 70
while findtype "a primordial|a cave bear|a corpse eater|a familiar|a guar|a wolf|a giant frog|a primordial whelp|a colossal frog|a giant bat|a monitor hatchling" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 80
while findtype "a corpse eater|a primordial|a cave bear|a drake whelp|a chameleon" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 85
while findtype "a deep crawler" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 90
while findtype "a drake|a dragon whelp|a sabeartooth" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 95
while findtype "a husk crab" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 100
while findtype "a dragon|a molten mongbat" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 105
while findtype "a snowdrift|a wisp" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 110
while findtype "a earth drake|a acarid" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 115
while findtype "a sphix|a aegis minion" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
elseif skill "Animal Taming" < 120
while findtype "a earth dragon|a eldritch dragon|a colossal sandroach" ground -1 -1 3 as janimal
getlabel janimal desc
if "released" in desc
// ignore them
@ignore janimal
elseif "tame" in desc or "bonded" in desc
// ignore them
@ignore janimal
else
@setvar! tameThisThing janimal
break
endif
endwhile
endif
if diffhits >= hpCheckToTriggerGreaterHealSpell
if targetexists
hotkey 'Cancel Current Target'
endif
while not targetexists 'beneficial'
if diffhits >= hpCheckToTriggerMiniEmergencyHealSpell
cast 'Heal'
else
cast 'Greater Heal'
endif
wait 50
if hp = maxhp
hotkey '> Interrupt'
break
endif
endwhile
if targetexists 'beneficial'
hotkey "Target Self"
endif
replay
endif
if diffhits >= hpCheckToTriggerHealPotion
if findtype "Yellow Potion" backpack as pot
getlabel pot desc
if "next usable" in desc
// do nothing
else
dclick pot
wait 500
endif
endif
endif
if castMagicShield = 1 and not findbuff "Magic Reflection"
if mana >= manaReserve
cast "Magic Reflection"
wait 1000
endif
endif
if findbuff "Magic Reflection"
settimer magicShieldTimer 0
endif
if castReactiveArmor = 1 and not findbuff "Reactive Armor"
if mana >= manaReserve
cast "Reactive Armor"
wait 200
endif
endif
if findbuff "Reactive Armor"
settimer reactiveArmorTimer 0
endif
if tameThisThing != 0
clearsysmsg
settimer tamingTimer 0
settimer sayTimer 0
if followers > 0
say "all kill"
wft 500
target tameThisThing
settimer sayTimer 0
wait 200
while timer sayTimer < 750
endwhile
say "all follow me"
warmode off
endif
while followers = myFollowers
useskill "taming"
wft 500
target tameThisThing
if timer tamingTimer >= tamingTimerCd
replay
elseif insysmsg "cannot be seen"
replay
elseif dead tameThisThing or not find tameThisThing ground -1 -1 4
replay
endif
endwhile
if followers > 3
if skill "herding" > 0
while not gumpexists 2426193729
menu tameThisThing 10
wait 50
endwhile
else
while not gumpexists 2426193729
menu tameThisThing 9
wait 50
endwhile
endif
while gumpexists 2426193729
gumpresponse 1 2426193729
wait 50
endwhile
endif
endif
wait 100
replay