Script to decode research materials & store lore pages for UO Outlands - No mandatory setup, an optional setup section can be found below
Housing
Decode research materials and store lore pages.razor
1# This is an automated backup - check out https://outlands.uorazorscripts.com/script/b29af1f5-7037-4a05-a5b9-a3888430e2d9 for latest2# Automation by Jaseowns3## Script: Decode research materials and store lore pages4## Created by: nev0r#05#############################################6 7//////////////////////////////////////////8// 9// Script to decode research materials & store lore pages 10// for UO Outlands11// 12// - No mandatory setup, an optional setup section can be found below13//14//////////////////////////////////////////15 16######## MANUAL SETUP ########17 18# AutoDecodeLorePages: automatically decode research materials?19 # 0 ... No20 # 1 ... Yes21 setvar! AutoDecodeLorePages 122 23# AutoStoreLorePages: automatically store lore pages?24 # 0 ... No25 # 1 ... Yes26 setvar! AutoStoreLorePages 127 28###### END MANUAL SETUP ######29 30//Script variables31setvar! loreTomeHue 291032setvar! decodeOverheadCD 300033setvar! researchGumpID 70945575634setvar! lorePageGumpID 252034522335 36//Global variables37setvar! globalWaitForServerResponse 50038setvar! globalWaitForObjectDelay 60039if not timerexists globalObjectDelayTimer40 settimer globalObjectDelayTimer globalWaitForObjectDelay41endif42 43//Colors44setvar! cSuccess 6845setvar! cWarning 5546setvar! cError 3347 48@clearignore49//Skill level check50if 1 = AutoDecodeLorePages and skill "Cartography" < 120 and skill "Detecting Hidden" < 120 and skill "Item Identification" < 120 and not findtype 42516 backpack51 overhead "Need research guide to decode" cError52 setvar! AutoDecodeLorePages 053endif54 55while 1 = AutoDecodeLorePages56 57 //Collect research materials58 if not findtype "research materials" backpack59 60 setvar! targetContainer 0 61 if findtype "research materials" myResearchMaterialsSourceContainer62 setvar! targetContainer myResearchMaterialsSourceContainer63 elseif find myResearchMaterialsSourceContainer ground -1 -1 2 64 setvar! targetContainer myResearchMaterialsSourceContainer65 dclick targetContainer66 settimer globalObjectDelayTimer 067 wait globalWaitForServerResponse68 if not findtype "research materials" targetContainer69 setvar! targetContainer 070 endif71 endif 72 73 if 0 = targetContainer74 hotkey "Set Last Target"75 settimer decodeOverheadTimer decodeOverheadCD76 wft globalWaitForServerResponse77 while targetexists78 if timer decodeOverheadTimer > decodeOverheadCD79 overhead "Click container holding" cWarning80 overhead "your research materials" cWarning81 settimer decodeOverheadTimer 082 endif83 endwhile84 setvar! targetContainer lasttarget85 if not findtype "research materials" targetContainer86 dclick targetContainer87 settimer globalObjectDelayTimer 088 wait globalWaitForServerResponse89 endif90 endif91 92 if not findtype "research materials" targetContainer93 overhead "No research mats found" cError94 break95 endif96 97 setvar! decodeCounter 098 settimer decodeOverheadTimer decodeOverheadCD99 while timer globalObjectDelayTimer < globalWaitForObjectDelay100 endwhile 101 while findtype "research materials" targetContainer as localResearchMats102 if timer decodeOverheadTimer > decodeOverheadCD103 overhead "Collecting research mats" cSuccess104 overhead " � " cSuccess targetContainer105 settimer decodeOverheadTimer 0106 endif107 overhead " � " cSuccess localResearchMats108 @drop backpack -1 -1 -1109 lift localResearchMats 60000110 @drop backpack -1 -1 -1 111 wait globalWaitForObjectDelay112 if counttype "research materials" backpack > decodeCounter and counttype "research materials" backpack as newCount113 setvar! decodeCounter newCount114 else115 break116 endif117 endwhile118 unsetvar decodeCounter119 120 if not findtype "research materials" backpack121 overhead "Could not collect research mats" cError122 unsetvar myResearchMaterialsSourceContainer123 break124 else125 @setvar myResearchMaterialsSourceContainer targetContainer126 endif127 128 endif129 130 //Decode research materials131 gumpclose researchGumpID132 while timer globalObjectDelayTimer < globalWaitForObjectDelay133 endwhile134 135 settimer decodeOverheadTimer decodeOverheadCD136 while findtype "research materials" backpack as localResearchMats137 if timer decodeOverheadTimer > decodeOverheadCD138 overhead "Decoding" cSuccess139 settimer decodeOverheadTimer 0140 endif 141 overhead " � " cSuccess localResearchMats142 dclick localResearchMats143 settimer globalObjectDelayTimer 0144 waitforgump researchGumpID globalWaitForServerResponse145 if skill "Cartography" = 120146 gumpresponse 2 researchGumpID147 elseif skill "Detecting Hidden" = 120148 gumpresponse 3 researchGumpID149 elseif skill "Item Identification" = 120 or findtype 42516 backpack150 gumpresponse 4 researchGumpID151 endif152 waitforgump researchGumpID globalWaitForServerResponse153 while timer globalObjectDelayTimer < globalWaitForObjectDelay154 endwhile155 if findtype "research materials" backpack and skill "Cartography" < 120 and skill "Detecting Hidden" < 120 and skill "Item Identification" < 120 and not findtype 42516 backpack156 overhead "Out of research guides" cWarning157 break158 endif159 endwhile160 161 break162endwhile163 164//Store lore pages165while 1 = AutoStoreLorePages and findtype 27612 backpack166 167 if insysmsg "No lore pages found in backpack." or insysmsg "lore pages added to tome."168 endif169 170 if varexist myLoreTomeContainer171 setvar! targetContainer myLoreTomeContainer172 menu targetContainer 0173 getlabel backpack waitForPing174 if insysmsg! "lore pages added to tome." or insysmsg! "No lore pages found in backpack."175 break176 else177 if not findtype 29104 targetContainer loreTomeHue178 while timer globalObjectDelayTimer < globalWaitForObjectDelay179 endwhile180 dclick targetContainer181 settimer globalObjectDelayTimer 0182 wait globalWaitForServerResponse183 endif184 if not findtype 29104 targetContainer loreTomeHue185 unsetvar myLoreTomeContainer186 setvar! targetContainer 0187 endif188 endif189 else190 setvar! targetContainer 0191 endif192 193 if findtype 29104 targetContainer loreTomeHue as localLoreTome194 setvar! loreTomeSerial localLoreTome195 elseif findtype 29104 backpack loreTomeHue as localLoreTome 196 setvar! loreTomeSerial localLoreTome197 elseif findtype 29104 ground loreTomeHue -1 2 as localLoreTome 198 setvar! loreTomeSerial localLoreTome 199 else 200 setvar! loreTomeSerial 0201 endif202 203 if 0 != loreTomeSerial204 menu loreTomeSerial 0205 getlabel backpack waitForPing206 if insysmsg! "lore pages added to tome." or insysmsg! "No lore pages found in backpack."207 break208 else209 unsetvar myLoreTomeContainer210 continue211 endif212 else213 hotkey "Set Last Target"214 settimer decodeOverheadTimer decodeOverheadCD215 wft globalWaitForServerResponse216 while targetexists217 if timer decodeOverheadTimer > decodeOverheadCD218 overhead "Click container to move pages" cWarning219 overhead "or container holding a lore tome" cWarning220 settimer decodeOverheadTimer 0221 endif222 endwhile223 setvar! targetContainer lasttarget224 getlabel targetContainer targetContainerLabel225 if "a lore page tome" in targetContainerLabel226 menu targetContainer 0227 @setvar myLoreTomeContainer targetContainer228 getlabel backpack waitForPing229 elseif "items, " in targetContainerLabel and findtype 29104 targetContainer loreTomeHue as localLoreTome230 menu localLoreTome 0231 @setvar myLoreTomeContainer targetContainer232 getlabel backpack waitForPing233 elseif "items, " in targetContainerLabel234 while timer globalObjectDelayTimer < globalWaitForObjectDelay235 endwhile236 dclick targetContainer237 wait globalWaitForObjectDelay238 if findtype 29104 targetContainer loreTomeHue as localLoreTome239 menu localLoreTome 0240 @setvar myLoreTomeContainer targetContainer241 getlabel backpack waitForPing242 else243 @clearignore244 while findtype 27612 backpack as localLorePage245 @drop backpack -1 -1 -1246 lift localLorePage247 @drop targetContainer -1 -1 -1248 wait globalWaitForObjectDelay249 @ignore localLorePage250 endwhile251 @clearignore252 if not findtype 27612 backpack253 overhead "Lore pages stored" cSuccess254 endif255 endif256 else257 overhead "Unknown container" cError258 endif259 endif260 261 break262endwhile263 264if insysmsg "lore pages added to tome."265 overhead "Lore pages stored" cSuccess 266 overhead "Lore pages stored" cSuccess targetContainer267 overhead " � " cSuccess targetContainer268elseif insysmsg "No lore pages found in backpack."269 overhead "No lore pages found" cWarning270endif271 272@clearignore273gumpclose researchGumpID274gumpclose lorePageGumpID