Ultimate Recall using Tome or Book as Escape (ALT-M) by Jaseowns
# Ultimate Recall using Tome or Book by Jaseowns
# UO Outlands
# Livestream: https://youtu.be/JtWgeyr85uQ
# The follow up: https://youtu.be/Oa-Am2tJ96k?t=5209
# The only thing you should ever want to edit is line 6
@setvar! recallHomeRunePosition 1
if name = "Jase Owns"
@setvar! recallHomeRunePosition 22
elseif name = "Jaseowns"
@setvar! recallHomeRunePosition 14
elseif name = "of Time"
@setvar! recallHomeRunePosition 26
endif
if not findtype "runebook" backpack and not findtype "runetome" backpack
overhead "We do not have a runebook or runetome" 34
stop
endif
if findlayer self righthand as item
@setvar! jase_recall_right_hand item
endif
if findlayer self lefthand as item
@setvar! jase_recall_left_hand item
endif
if not varexist myEscapePlan
if counttype "runebook" backpack = 1 and counttype "runetome" backpack = 0 and findtype "runebook" backpack as myBook
overhead "Automatically selected your one runebook" 88
@setvar myEscapePlan myBook
elseif counttype "runebook" backpack = 0 and counttype "runetome" backpack = 1 and findtype "runetome" backpack as myBook
overhead "Automatically selected your one runetome" 88
@setvar myEscapePlan myBook
else
overhead "Select your escape plan (runebook or runetome)" 88
@setvar myEscapePlan
endif
endif
if myEscapePlan = 0 or not find myEscapePlan backpack
unsetvar myEscapePlan
replay
endif
if mana < 12
overhead "Need more mana... trying again" 34
wait 500
replay
endif
@setvar! escapePlanUseMagery 0
if skill "Magery" >= 60
if counttype "Black Pearl%s%" self >= 1 and counttype "Blood Moss" self >= 1 and counttype "Mandrake Root%s%" self >= 1
@setvar! escapePlanUseMagery 1
else
if findtype "reagent satchel" self as satchel
if counttype "Black Pearl%s%" satchel >= 1 and counttype "Blood Moss" satchel >= 1 and counttype "Mandrake Root%s%" satchel >= 1
@setvar! escapePlanUseMagery 1
endif
endif
if escapePlanUseMagery = 0
overhead "No regs, using scroll instead" 34
endif
endif
endif
getlabel myEscapePlan desc
@setvar! escapePlanGumpId 1551740969
@setvar! secondaryGumpResponse 0
if "rune tome" in desc
if escapePlanUseMagery = 1
if recallHomeRunePosition = 1
@setvar! recallHomeGumpResponse 200
elseif recallHomeRunePosition = 2
@setvar! recallHomeGumpResponse 201
elseif recallHomeRunePosition = 3
@setvar! recallHomeGumpResponse 202
elseif recallHomeRunePosition = 4
@setvar! recallHomeGumpResponse 203
elseif recallHomeRunePosition = 5
@setvar! recallHomeGumpResponse 204
elseif recallHomeRunePosition = 6
@setvar! recallHomeGumpResponse 205
elseif recallHomeRunePosition = 7
@setvar! recallHomeGumpResponse 206
elseif recallHomeRunePosition = 8
@setvar! recallHomeGumpResponse 207
elseif recallHomeRunePosition = 9
@setvar! recallHomeGumpResponse 208
elseif recallHomeRunePosition = 10
@setvar! recallHomeGumpResponse 209
elseif recallHomeRunePosition = 11
@setvar! recallHomeGumpResponse 210
elseif recallHomeRunePosition = 12
@setvar! recallHomeGumpResponse 211
elseif recallHomeRunePosition = 13
@setvar! recallHomeGumpResponse 212
elseif recallHomeRunePosition = 14
@setvar! recallHomeGumpResponse 213
elseif recallHomeRunePosition = 15
@setvar! recallHomeGumpResponse 214
elseif recallHomeRunePosition = 16
@setvar! recallHomeGumpResponse 215
elseif recallHomeRunePosition = 16
@setvar! recallHomeGumpResponse 215
elseif recallHomeRunePosition = 17
@setvar! recallHomeGumpResponse 216
elseif recallHomeRunePosition = 18
@setvar! recallHomeGumpResponse 217
elseif recallHomeRunePosition = 19
@setvar! recallHomeGumpResponse 218
elseif recallHomeRunePosition = 20
@setvar! recallHomeGumpResponse 219
elseif recallHomeRunePosition = 21
@setvar! recallHomeGumpResponse 220
elseif recallHomeRunePosition = 22
@setvar! recallHomeGumpResponse 221
elseif recallHomeRunePosition = 23
@setvar! recallHomeGumpResponse 222
elseif recallHomeRunePosition = 24
@setvar! recallHomeGumpResponse 223
elseif recallHomeRunePosition = 25
@setvar! recallHomeGumpResponse 224
elseif recallHomeRunePosition = 26
@setvar! recallHomeGumpResponse 225
else
overhead "Update recallHomeRunePosition to 1 through 26" 34
wait 1000
replay
endif
if recallHomeGumpResponse = 201 or recallHomeGumpResponse = 203 or recallHomeGumpResponse = 205 or recallHomeGumpResponse = 207 or recallHomeGumpResponse = 209 or recallHomeGumpResponse = 211 or recallHomeGumpResponse = 213 or recallHomeGumpResponse = 215 or recallHomeGumpResponse = 217 or recallHomeGumpResponse = 219 or recallHomeGumpResponse = 221 or recallHomeGumpResponse = 223 or recallHomeGumpResponse = 223 or recallHomeGumpResponse = 225
@setvar! secondaryGumpResponse 20
else
@setvar! secondaryGumpResponse 10
endif
else
if recallHomeRunePosition = 1
@setvar! recallHomeGumpResponse 100
elseif recallHomeRunePosition = 2
@setvar! recallHomeGumpResponse 101
elseif recallHomeRunePosition = 3
@setvar! recallHomeGumpResponse 102
elseif recallHomeRunePosition = 4
@setvar! recallHomeGumpResponse 103
elseif recallHomeRunePosition = 5
@setvar! recallHomeGumpResponse 104
elseif recallHomeRunePosition = 6
@setvar! recallHomeGumpResponse 105
elseif recallHomeRunePosition = 7
@setvar! recallHomeGumpResponse 106
elseif recallHomeRunePosition = 8
@setvar! recallHomeGumpResponse 107
elseif recallHomeRunePosition = 9
@setvar! recallHomeGumpResponse 108
elseif recallHomeRunePosition = 10
@setvar! recallHomeGumpResponse 109
elseif recallHomeRunePosition = 11
@setvar! recallHomeGumpResponse 110
elseif recallHomeRunePosition = 12
@setvar! recallHomeGumpResponse 111
elseif recallHomeRunePosition = 13
@setvar! recallHomeGumpResponse 112
elseif recallHomeRunePosition = 14
@setvar! recallHomeGumpResponse 113
elseif recallHomeRunePosition = 15
@setvar! recallHomeGumpResponse 114
elseif recallHomeRunePosition = 16
@setvar! recallHomeGumpResponse 115
elseif recallHomeRunePosition = 16
@setvar! recallHomeGumpResponse 115
elseif recallHomeRunePosition = 17
@setvar! recallHomeGumpResponse 116
elseif recallHomeRunePosition = 18
@setvar! recallHomeGumpResponse 117
elseif recallHomeRunePosition = 19
@setvar! recallHomeGumpResponse 118
elseif recallHomeRunePosition = 20
@setvar! recallHomeGumpResponse 119
elseif recallHomeRunePosition = 21
@setvar! recallHomeGumpResponse 120
elseif recallHomeRunePosition = 22
@setvar! recallHomeGumpResponse 121
elseif recallHomeRunePosition = 23
@setvar! recallHomeGumpResponse 122
elseif recallHomeRunePosition = 24
@setvar! recallHomeGumpResponse 123
elseif recallHomeRunePosition = 25
@setvar! recallHomeGumpResponse 124
elseif recallHomeRunePosition = 26
@setvar! recallHomeGumpResponse 125
else
overhead "Update recallHomeRunePosition to 1 through 26" 34
wait 1000
replay
endif
endif
@setvar! escapePlanGumpId 167090027
elseif "runebook" in desc
if escapePlanUseMagery = 1
if recallHomeRunePosition = 1
@setvar! recallHomeGumpResponse 5
elseif recallHomeRunePosition = 2
@setvar! recallHomeGumpResponse 11
elseif recallHomeRunePosition = 3
@setvar! recallHomeGumpResponse 17
elseif recallHomeRunePosition = 4
@setvar! recallHomeGumpResponse 23
elseif recallHomeRunePosition = 5
@setvar! recallHomeGumpResponse 29
elseif recallHomeRunePosition = 6
@setvar! recallHomeGumpResponse 35
elseif recallHomeRunePosition = 7
@setvar! recallHomeGumpResponse 41
elseif recallHomeRunePosition = 8
@setvar! recallHomeGumpResponse 47
elseif recallHomeRunePosition = 9
@setvar! recallHomeGumpResponse 53
elseif recallHomeRunePosition = 10
@setvar! recallHomeGumpResponse 59
elseif recallHomeRunePosition = 11
@setvar! recallHomeGumpResponse 65
elseif recallHomeRunePosition = 12
@setvar! recallHomeGumpResponse 71
elseif recallHomeRunePosition = 13
@setvar! recallHomeGumpResponse 77
elseif recallHomeRunePosition = 14
@setvar! recallHomeGumpResponse 83
elseif recallHomeRunePosition = 15
@setvar! recallHomeGumpResponse 89
elseif recallHomeRunePosition = 16
@setvar! recallHomeGumpResponse 95
else
overhead "Update recallHomeRunePosition to 1 through 16" 34
wait 1000
replay
endif
else
if recallHomeRunePosition = 1
@setvar! recallHomeGumpResponse 2
elseif recallHomeRunePosition = 2
@setvar! recallHomeGumpResponse 8
elseif recallHomeRunePosition = 3
@setvar! recallHomeGumpResponse 14
elseif recallHomeRunePosition = 4
@setvar! recallHomeGumpResponse 20
elseif recallHomeRunePosition = 5
@setvar! recallHomeGumpResponse 26
elseif recallHomeRunePosition = 6
@setvar! recallHomeGumpResponse 32
elseif recallHomeRunePosition = 7
@setvar! recallHomeGumpResponse 38
elseif recallHomeRunePosition = 8
@setvar! recallHomeGumpResponse 44
elseif recallHomeRunePosition = 9
@setvar! recallHomeGumpResponse 50
elseif recallHomeRunePosition = 10
@setvar! recallHomeGumpResponse 56
elseif recallHomeRunePosition = 11
@setvar! recallHomeGumpResponse 62
elseif recallHomeRunePosition = 12
@setvar! recallHomeGumpResponse 68
elseif recallHomeRunePosition = 13
@setvar! recallHomeGumpResponse 74
elseif recallHomeRunePosition = 14
@setvar! recallHomeGumpResponse 80
elseif recallHomeRunePosition = 15
@setvar! recallHomeGumpResponse 86
elseif recallHomeRunePosition = 16
@setvar! recallHomeGumpResponse 92
else
overhead "Update recallHomeRunePosition to 1 through 16" 34
wait 1000
replay
endif
endif
else
overhead "Unknown escape plan" 34
unsetvar myEscapePlan
replay
endif
hotkey '> Interrupt'
while targetexists
hotkey 'Cancel Current Target'
wait 200
endwhile
while not gumpexists escapePlanGumpId
dclick myEscapePlan
wait 200
endwhile
gumpresponse recallHomeGumpResponse escapePlanGumpId
if secondaryGumpResponse > 0
waitforgump escapePlanGumpId 5000
gumpresponse secondaryGumpResponse escapePlanGumpId
endif
wait 200
gumpclose escapePlanGumpId
if insysmsg "There are no charges left on that item."
overhead "Oh no! Out of charges!" 34
endif
if varexist jase_recall_right_hand and not findlayer self righthand and jase_recall_right_hand != 0
overhead "will requip hands in 2 seconds" 88
wait 2200
elseif varexist jase_recall_left_hand and not findlayer self lefthand and jase_recall_left_hand != 0
overhead "will requip hands in 2 seconds" 88
wait 2200
endif
if varexist jase_recall_right_hand
if not findlayer self righthand and jase_recall_right_hand != 0
dclick jase_recall_right_hand
wait 650
endif
endif
if varexist jase_recall_left_hand
if not findlayer self lefthand and jase_recall_left_hand != 0
dclick jase_recall_left_hand
wait 650
endif
endif
if name = "of Time"
hotkey "Play Script: Utility\InnRoom\index"
endif