Modified Ultimate Dungeon Chest Crawler V0.7 by DaKlue
Description from the author:
#Modified Ultimate Dungeon Chest Crawler by DaKlue
#Added some features to Jaseowns script.
#Now uses band-aids while not hidden, Will use pots when not hidden, Will cast Invisibility If skill magery is greater than or equal to 80 when not hidden and hiding is still on cool down.
#Original script by
# Ultimate Dungeon Chest Crawler by Jaseowns
# UO Outlands
# WIP - livestream https://youtu.be/hrIUbaB0SDk
// Go to dungeon and find a chest
// see if it loot
// see if it needs be opened
// move next
// handle hiding and healing
///ADJUSTABLE VARIABLES///
@setvar! automaticallyCastIvis 0
@setvar! automaticallyHealSelf 1
@setvar! globalTimeout 650
///ADJUSTABLE VARIABLES///
if not varexist isStealthing
@setvar! isStealthing 0
endif
if not varexist chestWeWannaWork
@setvar! chestWeWannaWork 0
endif
if not timerexists chestOpenTimer
createtimer chestOpenTimer
settimer chestOpenTimer 3500
endif
if not timerexists secondsTimer
createtimer secondsTimer
settimer secondsTimer 3500
endif
if not timerexists useSkillTimer
createtimer useSkillTimer
settimer useSkillTimer 11000
endif
if not timerexists messageHelperTimer
createtimer messageHelperTimer
settimer messageHelperTimer 11000
endif
if insysmsg 'world is saving'
for 60
overhead 'Waiting for world save...'
wait 100
if insysmsg 'save complete'
overhead 'Save complete - continue on!' 88
break
endif
endfor
endif
if dead
overhead "RIP" 34
wait 5000
loop
endif
if automaticallyHealSelf = 1 and hp < 50 and not hidden or findbuff "Invisibility"
//Healing with aids
if hp < maxhp and not bandaging
hotkey 'Bandage Self'
endif
// Trapped
if paralyzed
if findtype "pouch" backpack 38
yell "[pouch"
wait globalTimeout
else
overhead "Out of Pouches!" 34
endif
endif
// Drink Cure pot
if poisoned
if findtype "Orange Potion" backpack as jPot
dclick jPot
wait globalTimeout
else
overhead "Out of cure pots" 34
endif
endif
// Drink Red pot
if diffstam >= 5
overhead "drink a red pot"
if findtype "Red Potion" backpack as jPot
dclick jPot
wait globalTimeout
else
overhead "Out of refresh pots" 34
endif
endif
// Drink Str pot
if str < 100
if not findbuff "Strength"
if findtype "White Potion" backpack as jPot
dclick jPot
wait globalTimeout
else
overhead "Out of str pots" 34
endif
endif
endif
// Max Weight
if weight > maxweight or findbuff "Strength"
if findtype "gold coin" backpack as item
lift item 2000
droprelloc 0 0
wait 200
if insysmsg "cannot drop anything"
drop backpack -1 -1 -1
endif
wait globalTimeout
replay
else
overhead "We are overweight and cannot drop anything" 34
endif
endif
// Heal Pot
if hp < 50
if findtype "Yellow Potion" backpack as jPot
dclick jPot
wait globalTimeout
else
overhead "Out of heals pots" 34
endif
endif
if diffhits >= 60 and mana >= 12
while not targetexists
if diffhits >= 60
cast 'Heal'
endif
wait 50
if hp = maxhp
hotkey '> Interrupt'
break
endif
endwhile
if targetexists
target self
endif
elseif diffhits >= 15 and mana >= 12
while not targetexists
cast 'Heal'
wait 50
if hp = maxhp
hotkey '> Interrupt'
break
endif
endwhile
if targetexists
target self
endif
endif
if poisoned
while not targetexists
cast 'Cure'
wait 50
if not poisoned
hotkey '> Interrupt'
break
endif
endwhile
if targetexists
target self
endif
endif
endif
if not hidden or findbuff "Invisibility"
if hp < maxhp and not bandaging
hotkey 'Bandage Self'
endif
@setvar! isStealthing 0
useskill 'hiding'
wait 200
if hidden
overhead "Successfully hidden" 88
settimer useSkillTimer 0
endif
endif
if automaticallyCastIvis = 1
if not hidden or findbuff "Invisibility"
@setvar! isStealthing 0
useskill 'hiding'
wait 200
if hidden
overhead "Successfully hidden" 88
settimer useSkillTimer 0
elseif not hidden or findbuff "Invisibility"
if skill "Magery" >= 80
overhead "Casting Invisability" 34
cast 'Invisibility'
wait 500
if targetexists
target self
@setvar! isStealthing 0
wait 200
if findbuff "Invisibility" or hidden
overhead "Successfully used Invisability" 34
settimer useSkillTimer 0
endif
endif
endif
endif
endif
endif
if timer messageHelperTimer >= 5000
if findtype 3651|3649|3648|3650|3708|2475 ground -1 -1 16 as chest
//gumpclose 736038070
getlabel chest desc
if "lock" in desc
overhead "desc" 88
settimer messageHelperTimer 0
endif
endif
endif
if timer useSkillTimer >= 11000 and isStealthing = 0
@setvar! chestWeWannaWork 0
overhead "Using Stealth"
useskill 'Stealth'
wait 200
if insysmsg "You begin to move quietly"
@setvar! isStealthing 1
settimer useSkillTimer 0
elseif insysmsg "You must wait a few moments to use another skill"
overhead "Please wait.." 34
elseif not hidden or insysmsg "You must hide first"
if timer useSkillTimer >= 11000
overhead "Need to hide first..."
useskill 'hiding'
wait 200
if hidden
settimer useSkillTimer 0
endif
endif
endif
elseif findtype 3651|3649|3648|3650|3708|2475 ground -1 -1 2 as chest
if chestWeWannaWork = chest
// do nothing
else
dclick chest
wait 200
@setvar! chestWeWannaWork chest
endif
if gumpexists 736038070
sysmsg "Working chest..." 88
if timer chestOpenTimer >= 3500
if ingump "Cleared of Traps" 736038070
if findtype "lockpicks" backpack as picky
gumpresponse 4 736038070
//dclick picky
//wft 500
//target chest
else
overhead "No lockpicks left!" 34
endif
else
if findtype "drill" backpack as drilly
gumpresponse 7 736038070
wait 200
if insysmsg "You do not have any trap tools of that material on hand."
gumpresponse 5 736038070
endif
else
overhead "No trap tools left!" 34
endif
endif
settimer chestOpenTimer 0
endif
wait 200
else
// Gold
while find chest ground -1 -1 2 and findtype 24434|43206|29363|43166|22336|29348|17087|3985|8826|3827|29030|3836|5981|4248|5359|3839|3838|3843|2597|29036|48407|3834|3865|3859|3885|3856|3878|3877|3873|3861|3862|576|5123|7177|7027|3920|5131|5179|5075|3980|5060|5076|5042|10245|3938|3913|7169|3909|5063|5089|3981|7170|7033|3976|3762|5040|5103|5117|7181|7029|3568|6264|3742|5139|6263|7026|5125|3740|5121|3973|3974|5204|5105|5185|5078|5115|7175|5059|7034|3713|3915|5112|5070|5049|5119|5205|5046|3962|3934|7035|3911|7179|5106|5143|3573|3719|5177|7610|5181|3917|5132|3963|7031|5207|5056|5085|3763|5129|5187|3721|3972|5138|3570|5101|5061|5074|5142|5182|5146|6265|5090|5203|5044|5144|3932|5201|5127|3572|7173|5135|3937|3571|22326|27611|9917|3821|5356|8455|5362|45315|8454|22187|5901|7163|3617|3903|12686 chest as item
getlabel item lootDesc
overhead lootDesc
wait 50
hotkey 'Grab Item'
target item
while queued
wait 50
endwhile
endwhile
// Scrolls
//while find chest ground -1 -1 2 and findtype 7981|7982|7983|7984|7985|7986|7987|7988|7989|7990|7991|7992|7993|7994|7995|7996|7997|7998|7999|8000|8001|8002|8003|8004|8005|8006|8007|8008|8009|8010|8011|8012|8013|8014|8015|8016|8017|8018|8019|8020|8021|8022|8023|8024|8025|8026|8027|8028|8029|8030|8031|8032|8033|8034|8035|8036|8037|8038|8039|8040|8041|8042|8033|8044 chest as item
//getlabel item lootDesc
//overhead lootDesc
//wait 50
//hotkey 'Grab Item'
//target item
//while queued
//wait 50
//endwhile
//endwhile
// Satchel
if findtype "reagent satchel" self as satchel
menu satchel 0
wait 200
endif
// quiver
if findtype 12215 self as satchel
menu satchel 0
wait 200
endif
endif
elseif timer useSkillTimer < 11500
if not hidden
@setvar! isStealthing 0
endif
// overhead "{{useSkillTimer}}"
// we need to wait
if timer useSkillTimer >= 10000 and timer secondsTimer >= 1000
overhead "1 second remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 9000 and timer secondsTimer >= 1000
overhead "2 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 8000 and timer secondsTimer >= 1000
overhead "3 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 7000 and timer secondsTimer >= 1000
overhead "4 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 6000 and timer secondsTimer >= 1000
overhead "5 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 5000 and timer secondsTimer >= 1000
overhead "6 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 4000 and timer secondsTimer >= 1000
overhead "7 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 3000 and timer secondsTimer >= 1000
overhead "8 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 2000 and timer secondsTimer >= 1000
overhead "9 seconds remaining" 0
settimer secondsTimer 0
elseif timer useSkillTimer >= 1000 and timer secondsTimer >= 1000
overhead "10 seconds remaining" 0
settimer secondsTimer 0
endif
else
if insysmsg! "You have 1 stealth steps remaining"
overhead "JBot: Using Stealth" 1
useskill 'Stealth'
if insysmsg "You begin to move quietly"
@setvar! isStealthing 1
settimer useSkillTimer 0
clearsysmsg
elseif insysmsg "You must wait a few moments to use another skill"
overhead "Please wait.." 34
// replay
elseif not hidden or insysmsg "You must hide first"
@setvar! isStealthing 0
if timer useSkillTimer >= 11000
useskill 'hiding'
wait 200
if hidden
clearsysmsg
settimer useSkillTimer 0
endif
endif
endif
endif
endif
wait 200
loop#Added some features to Jaseowns script.
#Now uses band-aids while not hidden, Will use pots when not hidden. Took out casting invisibility. It seems to be getting me into more trouble than its helping. Still testing.