Back to "vendors" tags

Vendor Cataloguing Script (updated, fixed for NPCs that interrupt the cataloguing) by .divined

Description: Replace the ID on line 36 with your rune tome's ID

if not listexists "tomerunes" createlist "tomerunes" endif if list 'tomerunes' = 0 pushlist 'tomerunes' 200 pushlist 'tomerunes' 201 pushlist 'tomerunes' 202 pushlist 'tomerunes' 203 pushlist 'tomerunes' 204 pushlist 'tomerunes' 205 pushlist 'tomerunes' 206 pushlist 'tomerunes' 207 pushlist 'tomerunes' 208 pushlist 'tomerunes' 209 pushlist 'tomerunes' 210 pushlist 'tomerunes' 211 pushlist 'tomerunes' 212 pushlist 'tomerunes' 213 pushlist 'tomerunes' 214 pushlist 'tomerunes' 215 pushlist 'tomerunes' 216 pushlist 'tomerunes' 217 pushlist 'tomerunes' 218 pushlist 'tomerunes' 219 pushlist 'tomerunes' 220 pushlist 'tomerunes' 221 pushlist 'tomerunes' 222 pushlist 'tomerunes' 223 pushlist 'tomerunes' 224 pushlist 'tomerunes' 225 endif dclick 0x49D07AEE waitforgump 167090027 5000 foreach "recallHomeGumpResponse" in "tomerunes" 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 gumpresponse recallHomeGumpResponse 167090027 waitforgump 167090027 5000 gumpresponse secondaryGumpResponse 167090027 break endfor poplist "tomerunes" "front" clearignore clearsysmsg wait 5000 say '[coord' sysmsg "START CATALOGUE" clearignore while not dead if not hidden useskill 'Hiding' endif @hotkey 'Next Monster Target' wait 250 @setvar! 'lastserial' lasttarget getlabel lastserial vlabel if noto 'lastserial' = invulnerable if 'dockmaster' in vlabel overhead 'dockmaster found' elseif 'stablemaster' in vlabel overhead 'stablemaster found' elseif 'barkeeper' in vlabel overhead 'barkeeper found' elseif 'battle trainer' in vlabel overhead 'battle trainer found' elseif 'salvage foreman' in vlabel overhead 'salvage foreman' found elseif 'fisherman' in vlabel overhead 'fisherman found' else if findtype 3701 'lastserial' as foundBackpack sysmsg 'New Vendor' dclick 'foundBackpack' @ignore 'foundBackpack' wait 250 #Now we dig #List items in top layer #Search through list while findtype 'portrait painting|ph furniture|large painting|hieroglyph|cathedral tapestry|wall display|rune|tray|bottle|fulljars|deed|wallshelf|crate|robe|statue|figurine|2597|3530|3568|3657|3713|3718|3721|3736|3737|3738|3762|3827|3834|3836|3842|3843|3856|3859|3861|3862|3865|3873|3877|3878|3885|3897|3908|3911|3920|3985|5042|5049|5078|5117|5127|5187|5356|5359|5362|5363|5445|5901|5903|5981|6264|7107|7109|7127|8012|8029|8031|8032|8033|8034|8035|8037|8038|8039|8041|8042|8455|8786|8787|8788|8826|8901|11552|11761|11881|11882|11883|11884|11885|11886|11887|11888|11889|11890|11891|12215|12686|15178|16898|17087|17686|18283|19227|19232|19234|19235|19236|19239|20495|22187|22326|22336|23034|24434|27611|27612|28236|28879|28883|28885|28888|29025|29030|29036|29040|29048|29103|29348|29447|29773|29774|29863|39860|42519|42692|42694|43167|43206|45085|45285|45315|48407|49113|49711|51094|51100|52610|54006' "foundBackpack" as foundItem #found an item, display it to log @getlabel 'foundItem' foundItemLabel sysmsg foundItemLabel 33 @ignore foundItem endwhile wait 250 #Start container part while findtype 'ph chest|bone chest|armoire|chest|wooden chest|metal chest|trunk|wooden shelf|51998|3649|3648|29833|3705|2448|5402|2472|2473|2474|2475|2476|2477|2480|2481|2482|3701|3702|3704|3712|23034|18283|3644|11761|41449' foundBackpack as foundContainer @getlabel 'foundContainer' foundContainerLabel #output container label for bulk sells sysmsg foundContainerLabel 33 getlabel foundContainer desc if "Price: Not for sale" in desc dclick foundContainer wait 250 #container is open, now search it while findtype 'portrait painting|ph furniture|large painting|hieroglyph|cathedral tapestry|wall display|rune|tray|bottle|fulljars|deed|wallshelf|crate|robe|statue|figurine|2597|3530|3568|3657|3713|3718|3721|3736|3737|3738|3762|3827|3834|3836|3842|3843|3856|3859|3861|3862|3865|3873|3877|3878|3885|3897|3908|3911|3920|3985|5042|5049|5078|5117|5127|5187|5356|5359|5362|5363|5445|5901|5903|5981|6264|6464|7107|7109|7127|8012|8029|8031|8032|8033|8034|8035|8037|8038|8039|8041|8042|8455|8786|8787|8788|8826|8901|11552|11761|11881|11882|11883|11884|11885|11886|11887|11888|11889|11890|11891|12215|12686|15178|16898|17087|17686|18283|19227|19232|19234|19235|19236|19239|20495|22187|22326|22336|23034|24434|27611|27612|28236|28879|28883|28885|28888|29025|29030|29036|29040|29048|29103|29348|29447|29773|29774|29863|39860|42519|42692|42694|43167|43206|45085|45285|45315|48407|49113|49711|51094|51100|52610|54006' "foundContainer" as foundItem @getlabel 'foundItem' foundItemLabel sysmsg foundItemLabel 33 @ignore foundItem endwhile endif @ignore foundContainer endwhile else overhead 'DONE CATALOGUE' break endif endif endif endwhile if insysmsg 'saving' if not insysmsg 'save complete' settimer isSAVING 0 settimer isTICKING 0 while not insysmsg 'save complete' and timer isSAVING < 8000 if timer isTICKING > 500 overhead '[ ... ]' 56 settimer isTICKING 0 endif endwhile endif endif loop