Vendor Cataloguing Script (updated, fixed for NPCs that interrupt the cataloguing) by .divined
Description from the author:
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
loopReplace the ID on line 36 with your rune tome's ID