Compatibility unverified
This community Razor script has not been tested in game by the Hub. Read its setup and client requirements before use.
UO Outlands By: SCGuy Minor Edits by DaKlue Most Scripts copied and modified from uorazorscritpts.com
DistillationMap-bot 3000.razor
1# This is an automated backup - check out https://outlands.uorazorscripts.com/script/522a39ec-6e01-40d9-8754-0dbf3e77f32a for latest2# Automation by Jaseowns3## Script: Distillation/Map-bot 30004## Created by: daklue#05#############################################6 7/////////////////////////////////////////////////////////// 8# Distillation/Map-bot 30009# UO Outlands10# By: SCGuy11# Minor Edits by DaKlue 12# Most Scripts copied and modified from uorazorscritpts.com13///////////////////////////////////////////////////////////14 15# select the drop bag where people will place extracts16if not varexist chestToLookIn17 overhead 'Select the bag to watch for all items in.'18 @setvar! chestToLookIn19 dclick chestToLookIn20endif21 22if not varexist chestToDropIn23 overhead 'Select the bag to drop all items after bot has finished with it.'24 @setvar! chestToDropIn25 dclick chestToDropIn26endif27 28@setvar! alchGumpID 94909510129@setvar! aspectPageID 10830@setvar! nextPageResponse 1131 32if not timerexists "botTimer"33 createtimer "botTimer"34 settimer "botTimer" 035endif36if timer botTimer >= 6000037 wait 100038 say "Distillation/Map-bot 3000 ONLINE!" 8839 wait 50040 settimer "botTimer" 041endif42 43if not findtype "bottle" backpack44 dclick chestToLookIn45 wait 20046 overhead "Restock Extract" 8847 if findtype "bottle" chestToLookIn as bottle48 lift bottle49 drop backpack -1 -1 -150 wait 65051 endif52endif53 54if findtype 'bottle' self as extract55 overhead "Found a extract. Give us a moment as we turn it into a distilation." 8856 # pickup bottles on the floor57 if counttype 'empty bottle%s%' self = 058 @setvar bottleID 059 if findtype 'empty bottle%s%' ground -1 -1 2 as bottles60 @setvar bottleID bottles 61 elseif findtype 'empty bottle%s%' as bottles62 @setvar bottleID bottles 63 endif64 65 if bottleID > 066 lift bottleID 6000067 drop backpack -1 -1 -168 say 'Thank you for the bottles!'69 wait 100070 endif71 endif72 73 # pickup mortal and pestle on the floor74 if counttype 'mortar and pestle' self = 0 75 @setvar! toolID 076 if findtype 'mortar and pestle' ground -1 -1 2 as tool77 @setvar! toolID tool78 elseif findtype 'mortar and pestle' chestToLookIn as tool79 @setvar! toolID tool80 endif81 82 if toolID > 083 lift toolID 6000084 drop backpack -1 -1 -185 say 'Thank you for the tools!'86 wait 100087 endif88 endif89 90 # check for an extract in the drop bag91 @setvar! foundExtract 092 @setvar! shouldSpeak 193 while findtype 'bottle' chestToLookIn as extract94 @setvar! foundExtract 195 overhead 'Found an extract! Creating a new distill...'96 getlabel extract extractName97 98 if shouldSpeak = 199 @setvar! shouldSpeak 0100 say 'Ah, an extract. Let me distill that for you...'101 wait 250102 endif103 104 # check for empty bottles105 if not findtype 'empty bottle%s%' self106 overhead 'Need more empty bottles!' 38107 say "I am out of empty bottles! Please drop some on the floor for me."108 wait 3000109 loop110 endif111 112 # open the alch gump, and go to page 2113 # of the aspect section where distills begin114 if findtype 'mortar and pestle' self as tool115 gumpclose alchGumpID116 dclick tool117 waitforgump alchGumpID118 119 # goto 'Aspect Items'120 gumpresponse aspectPageID121 waitforgump alchGumpID122 wait 650123 124 # goto page 3125 gumpresponse nextPageResponse126 waitforgump alchGumpID127 wait 650128 gumpresponse nextPageResponse129 waitforgump alchGumpID130 wait 650131 else132 overhead 'Need more mortal and pestles!' 38133 say "I am out of mortar and pestles! Please drop some on the floor for me."134 wait 3000135 loop136 endif137 138 # move the extract once we know we can make a distill139 lift extract 1140 drop backpack -1 -1 -1141 wait 650142 143 # go to the page for this extract,144 # then create it145 // page 3146 if 'Air' in extractName147 overhead 'Air' 1001148 gumpresponse 200 alchGumpID149 150 elseif 'Artisan' in extractName151 overhead 'Artisan' 544152 gumpresponse 201 alchGumpID153 154 elseif 'Blood' in extractName155 overhead 'Blood' 38 156 gumpresponse 202 alchGumpID157 158 elseif 'Command' in extractName159 overhead 'Command' 68160 gumpresponse 203 alchGumpID161 162 elseif 'Death' in extractName163 overhead 'Death' 923164 gumpresponse 204 alchGumpID165 166 elseif 'Discipline' in extractName167 overhead 'Discipline' 442168 gumpresponse 205 alchGumpID169 170 elseif 'Earth' in extractName171 overhead 'Earth' 544172 gumpresponse 206 alchGumpID173 174 elseif 'Eldritch' in extractName175 overhead 'Eldritch' 24176 gumpresponse 207 alchGumpID177 178 elseif 'Fire' in extractName179 overhead 'Fire' 38180 gumpresponse 208 alchGumpID181 182 elseif 'Fortune' in extractName183 overhead 'Fortune' 53184 gumpresponse 209 alchGumpID185 186 // page 4187 elseif 'Gadget' in extractName188 overhead 'Gadget' 53189 gumpresponse nextPageResponse alchGumpID190 waitforgump alchGumpID191 gumpresponse 200 alchGumpID192 193 elseif 'Harvest' in extractName194 overhead 'Harvest' 53195 gumpresponse nextPageResponse alchGumpID196 waitforgump alchGumpID197 gumpresponse 201 alchGumpID198 199 elseif 'Holy' in extractName200 overhead 'Holy' 53201 gumpresponse nextPageResponse alchGumpID202 waitforgump alchGumpID203 gumpresponse 202 alchGumpID204 205 elseif 'Lyric' in extractName206 overhead 'Lyric' 38207 gumpresponse nextPageResponse alchGumpID208 waitforgump alchGumpID209 gumpresponse 203 alchGumpID210 211 elseif 'Poison' in extractName212 overhead 'Poison' 68213 gumpresponse nextPageResponse alchGumpID214 waitforgump alchGumpID215 gumpresponse 204 alchGumpID216 217 elseif 'Shadow' in extractName218 overhead 'Shadow' 923219 gumpresponse nextPageResponse220 waitforgump alchGumpID221 gumpresponse 205 alchGumpID222 223 elseif 'Void' in extractName224 overhead 'Void' 14225 gumpresponse nextPageResponse alchGumpID226 waitforgump alchGumpID227 gumpresponse 206 alchGumpID228 229 elseif 'War' in extractName230 overhead 'War' 44231 gumpresponse nextPageResponse alchGumpID232 waitforgump alchGumpID233 gumpresponse 207 alchGumpID234 235 elseif 'Water' in extractName236 overhead 'Water' 8237 gumpresponse nextPageResponse alchGumpID238 waitforgump alchGumpID239 gumpresponse 208 alchGumpID240 241 else 242 overhead 'Unknown extract type! {{extractName}}' 38243 say 'DISTILLO-BOT FATAL ERROR! CANNOT COMPUTE! CANNOT COMPUTE!'244 endif245 246 waitforgump alchGumpID 1000247 gumpclose alchGumpID248 wait 3000249 endwhile250else 251 overhead "Out of Extracts!" 34252 wait 650253endif254 255# move the new distillations back into the drop bag256while findtype 'flask' self as distillation257 lift distillation 99258 drop chestToDropIn -1 -1 -1259 wait 1500260endwhile261 262if foundExtract == 1263 say 'There you go! Thank you for using Distillo-bot 3000 and have a nice day.'264endif265 266 267 268 269@setvar! globalTimeout 650270 271 272#################################273##### Item Id274###########################275 276if skill "Item Identification" >= 120277 278 if not find chestToLookIn ground -1 -1 2279 unsetvar chestToLookIn280 replay281 endif282 283 if not timerexists "itemIdTimer"284 createtimer "itemIdTimer"285 settimer "itemIdTimer" 20000286 endif287 288 if not timerexists "detectHidingPlayersTimer"289 createtimer "detectHidingPlayersTimer"290 settimer "detectHidingPlayersTimer" 11000291 endif292 293 getlabel chestToLookIn descItemId294 295 if "0 items, 0 stones" in descItemId296 // do nothing297 elseif timer "detectHidingPlayersTimer" >= 11000 and timer "itemIdTimer" >= 20000298 useskill 'itemidentification'299 wft 500300 target chestToLookIn301 settimer "detectHidingPlayersTimer" 9000302 settimer "itemIdTimer" 0303 endif304endif305 306 307 308 309if skill "Lockpicking" >= 50310 311 if not timerexists "unlockChestTimer"312 createtimer "unlockChestTimer"313 settimer "unlockChestTimer" 2000314 endif315 316 if not varexist haveParagonToOpen317 @setvar! haveParagonToOpen 0318 endif319 320 if findtype "lockpicks" backpack and findtype "drill" backpack321 @clearignore322 if not varexist chestToLookIn323 overhead "Select a chest to look in" 88324 @setvar! chestToLookIn325 endif326 327 if not find chestToLookIn ground -1 -1 2328 unsetvar chestToLookIn329 replay330 endif331 332 if haveParagonToOpen = 0333 while findtype 2473|3644|3645|3646|3647|3710|3701|3702|29832|29833|2472|2475|3648|3649|3708|29078|41449|41450|3705|3712|2474|3709|3650|3651|29077 chestToLookIn as container334 getlabel container desc335 if "sealed" in desc336 overhead "paragon found"337 lift container338 drop backpack -1 -1 -1339 wait globalTimeout340 endif341 342 if find container backpack343 @setvar! haveParagonToOpen container344 else345 @ignore! container346 endif347 endwhile348 elseif timer unlockChestTimer >= 3500349 if gumpexists 736038070350 if ingump "Cleared of Traps" 736038070351 gumpresponse 4 736038070352 else353 overhead "Remove Trap"354 gumpresponse 7 736038070 355 endif356 settimer unlockChestTimer 0357 else358 getlabel haveParagonToOpen sealedDesc359 if "sealed" in sealedDesc360 dclick haveParagonToOpen361 else362 overhead "we done"363 lift haveParagonToOpen364 drop chestToLookIn -1 -1 -1365 wait globalTimeout366 if not find haveParagonToOpen backpack367 @setvar! haveParagonToOpen 0368 endif369 endif370 endif371 endif372 else373 overhead "No more lockpicks or drills bro" 34374 endif375 376endif377 378# All types of map decoder by Jaseowns379if skill 'cartography' >= 50380 if not findtype "spyglass" backpack381 if findtype "spyglass" chestToLookIn as item382 overhead "Grabbing spyglass" 34383 lift item384 drop backpack -1 -1 -1385 wait 650386 else387 overhead "Need spyglass" 34388 wait 5000 389 endif390 replay391 endif392 393 if not findtype "map" backpack394 dclick chestToLookIn395 wait 200396 overhead "Restock Map" 88397 if findtype "map" chestToLookIn as map398 lift map399 drop backpack -1 -1 -1400 wait 650401 endif402 endif403 404 # Close map gump405 // ore406 gumpclose 3367641484407 // skinning408 gumpclose 3473029237409 // lumber410 gumpclose 1332805401411 // treasure412 gumpclose 1520869851413 // fishing414 gumpclose 2589357942415 416 417 if findtype "map" backpack as my_map418 getlabel my_map desc419 overhead desc 420 dclicktype "spyglass" backpack421 wft 1500422 target my_map423 424 @setvar! gumpIdToCheck 0425 426 if "ore" in desc427 @setvar! gumpIdToCheck 3367641484428 elseif "skinning" in desc429 @setvar! gumpIdToCheck 3473029237430 elseif "lumber" in desc431 @setvar! gumpIdToCheck 1332805401432 elseif "treasure" in desc433 @setvar! gumpIdToCheck 1520869851434 elseif "fishing" in desc435 @setvar! gumpIdToCheck 2589357942436 else437 overhead "Unknown gump!" 34438 endif439 440 waitforgump gumpIdToCheck 1000441 442 if "[100.0%" in desc or "(100.0%" in desc443 dclick chestToDropIn444 wait 200445 overhead "Moving map..." 88446 lift my_map447 drop chestToDropIn -1 -1 -1448 wait 650449 else450 overhead "Updating..."451 clearsysmsg 452 while gumpexists gumpIdToCheck453 gumpresponse 4 gumpIdToCheck454 wait 500455 if insysmsg "maximum accuracy"456 gumpclose gumpIdToCheck457 lift my_map458 drop chestToDropIn -1 -1 -1459 wait 650460 endif461 endwhile462 endif 463 wait 200464 replay465 else466 overhead "Out of maps!" 34467 wait 5000468 replay469 endif470endif471if not listexists "friendsofthehouse"472 createlist "friendsofthehouse"473endif474 475if not timerexists "detectHidingPlayersTimer"476 createtimer "detectHidingPlayersTimer"477 settimer "detectHidingPlayersTimer" 11000478endif479 480if not timerexists "sayBanTimer"481 createtimer "sayBanTimer"482 settimer "sayBanTimer" 2000483endif484 485if timer "detectHidingPlayersTimer" >= 11000486 useskill 'detectinghidden'487 wft 500488 target 'self'489 settimer "detectHidingPlayersTimer" 0490endif491 492hotkey 'Next non-friendly player target'493wait 200494if insysmsg "no one matching"495 // do nothing496else 497 @setvar! removeTarget lasttarget498 if inlist "friendsofthehouse" removeTarget 499 // do nothing500 elseif timer sayBanTimer >= 2000501 say "I ban thee" 502 wft 1000503 target removeTarget 504 wait 200505 if insysmsg "You cannot eject a friend of the house!"506 pushlist "friendsofthehouse" removeTarget 507 endif 508 settimer "sayBanTimer" 0509 endif510endif511 512wait 50513loop