Ultimate Dungeon Chest Crawler (T) by Jaseowns
# 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
if not varexist isStealthing
@setvar! isStealthing 0
endif
@setvar! globalTimeout 650
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 dead
overhead "RIP" 34
wait 5000
loop
endif
if not hidden or findbuff "Invisibility"
@setvar! isStealthing 0
useskill 'hiding'
wait 200
if hidden
overhead "Successfully hidden" 88
settimer useSkillTimer 0
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 1 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
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