All Maps Decoded from ALL Tomes by Jaseowns
# Map decoder from ALL Tomes by Jaseowns
# UO Outlands
# Requirements:
# 50 or more cartography skill
# have multiple spyglass
# tmap tome on ground or in base level box
# if your tome is in a box, >info on that box and set it on line 15
# j_restock_undecoded_maps 0x411EDE22 <--- replace w/ your id
# UPDATED 2/17/2023: add ability to choose tome preference
if skill "Cartography" < 50
overhead "Not on the right character..." 34
stop
endif
@setvar! j_restock_undecoded_maps 0x411EDE22
if not varexist myTmapTome
@setvar! myTmapTome 0
endif
if not varexist tomeGumpReponseCheck
@setvar! tomeGumpReponseCheck 10
endif
##########
## Map Override - set as 0 if you want to skip
## If you change these, restart your client or uncomment
## line 29 and 30, run the script and then recomment those lines out
// unsetvar myTmapTome
// stop
#####
@setvar! searchForTreasureMaps 1
@setvar! searchForFishingMaps 1
@setvar! searchForSkinningMaps 1
@setvar! searchForOreMaps 1
@setvar! searchForLumberMaps 1
while not find myTmapTome ground and not find myTmapTome j_restock_undecoded_maps
overhead "checking tome.."
// treasure maps
if searchForTreasureMaps = 1 and findtype 29104 ground 2990 -1 2 as found
// found on ground
@setvar! myTmapTome found
elseif searchForTreasureMaps = 1 and findtype 29104 j_restock_undecoded_maps 2990 as found
// found somewhere else
@setvar! myTmapTome found
// lumber maps
elseif searchForLumberMaps = 1 and findtype 29104 ground 2799 -1 2 as found
// found on ground
@setvar! myTmapTome found
elseif searchForLumberMaps = 1 and findtype 29104 j_restock_undecoded_maps 2799 as found
// found somewhere else
@setvar! myTmapTome found
// ore maps
elseif searchForOreMaps = 1 and findtype 29104 ground 2796 -1 2 as found
// found on ground
@setvar! myTmapTome found
elseif searchForOreMaps = 1 and findtype 29104 j_restock_undecoded_maps 2796 as found
// found somewhere else
@setvar! myTmapTome found
// skinning maps
elseif searchForSkinningMaps = 1 and findtype "book" ground 2651 -1 2 as found
// found on ground
@setvar! myTmapTome found
elseif searchForSkinningMaps = 1 and findtype "book" j_restock_undecoded_maps 2651 as found
// found somewhere else
@setvar! myTmapTome found
// Fishing maps
elseif searchForFishingMaps = 1 and findtype 29104 ground 2722 -1 2 as found
// found on ground
@setvar! myTmapTome found
elseif searchForFishingMaps = 1 and findtype 29104 j_restock_undecoded_maps 2722 as found
// found somewhere else
@setvar! myTmapTome found
else
@setvar! myTmapTome 1
break
endif
wait 200
endwhile
if not findtype "spyglass" backpack
overhead "Need spyglass" 34
wait 2500
replay
endif
if myTmapTome = 0
overhead "No tome found!" 34
overhead "Make sure to >info on your chest and set j_restock_undecoded_maps (line 14)" 88
wait 5000
replay
elseif myTmapTome = 1
@clearignore
overhead "No more tomes found..." 34
overhead "clearing cache and replaying in 5 seconds" 88
wait 5000
replay
endif
getlabel myTmapTome myTomeDesc
if "treasure" in myTomeDesc
@setvar! tomeGumpReponseId 1863945839
elseif "fishing" in myTomeDesc
@setvar! tomeGumpReponseId 3448468591
elseif "lumber" in myTomeDesc
@setvar! tomeGumpReponseId 3576069391
elseif "ore" in myTomeDesc
@setvar! tomeGumpReponseId 1667380559
elseif "skin" in myTomeDesc
@setvar! tomeGumpReponseId 4027121519
else
overhead "Unknown gump for tome.. check again?" 34
wait 5000
replay
endif
// Only pull a map if we do not have one
if not findtype "map" backpack
while not gumpexists tomeGumpReponseId
dclick myTmapTome
wait 200
endwhile
gumpresponse tomeGumpReponseCheck tomeGumpReponseId
wait 200
if findtype "map" backpack
if tomeGumpReponseCheck = 10
overhead "Grabbed level 1" 88
elseif tomeGumpReponseCheck = 11
overhead "Grabbed level 2" 88
elseif tomeGumpReponseCheck = 12
overhead "Grabbed level 3" 88
elseif tomeGumpReponseCheck = 13
overhead "Grabbed level 4" 88
elseif tomeGumpReponseCheck = 14
overhead "Grabbed level 5" 88
elseif tomeGumpReponseCheck = 15
overhead "Grabbed level 6" 88
elseif tomeGumpReponseCheck = 16
overhead "Grabbed level 7" 88
else
overhead "Grabbed a map!"
endif
endif
endif
// We found one
if findtype "map" backpack as my_map
# Close map gump
// ore
gumpclose 3367641484
// skinning
gumpclose 3473029237
// lumber
gumpclose 1332805401
// treasure
gumpclose 1520869851
// fishing
gumpclose 2589357942
getlabel my_map desc
wait 200
if findtype "spyglass" backpack as item
dclick item
wft 1500
target my_map
endif
@setvar! gumpIdToCheck 0
if "ore" in desc
@setvar! gumpIdToCheck 3367641484
elseif "skinning" in desc
@setvar! gumpIdToCheck 3473029237
elseif "lumber" in desc
@setvar! gumpIdToCheck 1332805401
elseif "treasure" in desc
@setvar! gumpIdToCheck 1520869851
elseif "fishing" in desc
@setvar! gumpIdToCheck 2589357942
else
overhead "Unknown gump!" 34
replay
endif
waitforgump gumpIdToCheck 1000
if "[100.0%" in desc or "(100.0%" in desc
menu myTmapTome 0
wait 650
else
overhead "Updating..."
clearsysmsg
while gumpexists gumpIdToCheck
gumpresponse 4 gumpIdToCheck
wait 2000
getlabel my_map desc2
wait 200
if "[100.0%" in desc2 or "(100.0%" in desc2
menu myTmapTome 0
gumpclose gumpIdToCheck
wait 650
replay
elseif insysmsg "maximum accuracy"
gumpclose gumpIdToCheck
replay
elseif not findtype "spyglass" backpack
overhead "spyglass broke!" 34
replay
endif
endwhile
endif
wait 200
replay
elseif tomeGumpReponseCheck = 10
overhead "No level 1 found" 34
@setvar! tomeGumpReponseCheck 11
replay
elseif tomeGumpReponseCheck = 11
overhead "No level 2 found" 34
@setvar! tomeGumpReponseCheck 12
replay
elseif tomeGumpReponseCheck = 12
overhead "No level 3 found" 34
@setvar! tomeGumpReponseCheck 13
replay
elseif tomeGumpReponseCheck = 13
overhead "No level 4 found" 34
@setvar! tomeGumpReponseCheck 14
replay
elseif tomeGumpReponseCheck = 14
overhead "No level 5 found" 34
@setvar! tomeGumpReponseCheck 15
replay
elseif tomeGumpReponseCheck = 15
overhead "No level 6 found" 34
@setvar! tomeGumpReponseCheck 16
replay
elseif tomeGumpReponseCheck = 16
overhead "No level 7 found" 34
@setvar! tomeGumpReponseCheck 17
replay
elseif tomeGumpReponseCheck = 17
overhead "No level 8 found" 34
@setvar! tomeGumpReponseCheck 18
replay
elseif tomeGumpReponseCheck = 18
@setvar! tomeGumpReponseCheck 10
gumpclose tomeGumpReponseId
@ignore myTmapTome
overhead "Ignoring this tome, moving on to the next" 88
replay
endif