Trader Shop Inventory Logger (script)

From Elanthipedia
Revision as of 15:56, 4 November 2012 by ISHARON (talk | contribs) (→‎Shop2)
Jump to navigation Jump to search
Trader Shop Inventory Logger (script)
Category information
Front-end Genie
Author Isharon


Description

These scripts and triggers will run through every Trader-owned shop in the market plazas and log inventory, making it easier to find what you want and compare prices. The data is stored in Shoplog.txt. The columns of data are separated by tabs so that you can copy and paste it to Excel for easy sorting.

Instructions

Syntax

Once installed, the triggers will do most of the work automatically. You simply need to start the appropriate script in the same room as the listings board. It will go from room to room, shopping at all of the shops and logging the results.

Making a Spreadsheet in Excel

[www.elanthia.org/TraderShops/TraderShopInventory-Blank.xls Template]: Here is a template that you can use to make your own spreadsheet.

  1. Open Shoplog.txt
  2. Delete the underscores ( _ ) from the price column.
  3. Delete the periods ( . ) from the price column.
  4. Copy and paste the data from Shoplog.txt to the spreadsheet.
  5. To convert prices to plats, divide column E by 10000.
  6. To convert the prices from Lirums to Kronars, multiply column E by 1.25.
  7. To convert the prices from Dokoras to Kronars, multiply column E by 1.385.


If you need help using these features in Excel, see How to Use Microsoft Excel.

Triggers

#trigger {^(Behind|In|On|Under) the (.+), you see:$} {#var shop2 $2} {shop}
#trigger {^\s+(a|an|some|the) (.+) for (\d+) bronze (Kronars|Lirums|Dokoras)$} {#log >Shoplog.txt $date	$time	$2	$roomname	$3_0	$shop2		$shopcity} {shop}
#trigger {^\s+(a|an|some|the) (.+) for (\d+) copper (Kronars|Lirums|Dokoras)$} {#log >Shoplog.txt $date	$time	$2	$roomname	$3	$shop2		$shopcity} {shop}
#trigger {^\s+(a|an|some|the) (.+) for (\d+) gold (Kronars|Lirums|Dokoras)$} {#log >Shoplog.txt $date	$time	$2	$roomname	$3_000	$shop2		$shopcity} {shop}
#trigger {^\s+(a|an|some|the) (.+) for (\d+) platinum (Kronars|Lirums|Dokoras)$} {#log >Shoplog.txt $date	$time	$2	$roomname	$3_0000	$shop2		$shopcity} {shop}
#trigger {^\s+(a|an|some|the) (.+) for (\d+) silver (Kronars|Lirums|Dokoras)$} {#log >Shoplog.txt $date	$time	$2	$roomname	$3_00	$shop2		$shopcity} {shop}
#trigger {^\s+(a|an|some|the) (.+) for (\d+)k platinum (Kronars|Lirums|Dokoras)$} {#log >Shoplog.txt $date	$time	$2	$roomname	$3_000_0000	$shop2		$shopcity} {shop}
#trigger {^\s+(a|an|some|the) (.+) for (\d+\.\d+)k platinum (Kronars|Lirums|Dokoras)$} {#log >Shoplog.txt $date	$time	$2	$roomname	$3_000_000	$shop2		$shopcity} {shop}

Scripts

Shop2

This is the script that actually shops each surface. It must be named shop2.cmd to work. (The other scripts run shop2 when needed.)

action goto end when ^There is nothing to buy here

setvar altar 0
setvar armoir 0
setvar barn 0
setvar barrel 0
setvar basket 0
setvar bedroll 0
setvar bench 0
setvar bin 0
setvar board 0
setvar bookcase 0
setvar box 0
setvar breakfront 0
setvar bucket 0
setvar buffet 0
setvar bull 0
setvar bureau 0
setvar cabinet 0
setvar carpet 0
setvar cart 0
setvar carton 0
setvar case 0
setvar catalog 0
setvar chair 0
setvar chest 0
setvar closet 0
setvar coffer 0
setvar cord 0
setvar corral 0
setvar cot 0
setvar counter 0
setvar countertop 0
setvar cradle 0
setvar crate 0
setvar desk 0
setvar display 0
setvar drawer 0
setvar dresser 0
setvar dummy 0
setvar endtable 0
setvar footrest 0
setvar fountain 0
setvar framework 0
setvar garderobe 0
setvar hanger 0
setvar hatstand 0
setvar head 0
setvar highboy 0
setvar hole 0
setvar hook 0
setvar horse 0
setvar jar 0
setvar lattice 0
setvar locker 0
setvar mannequin 0
setvar mantle 0
setvar net 0
setvar pail 0
setvar pedestal 0
setvar peg 0
setvar pipe 0
setvar plank 0
setvar planter 0
setvar platter 0
setvar plinth 0
setvar pole 0
setvar quilt 0
setvar rack 0
setvar rope 0
setvar rug 0
setvar sawhorse 0
setvar shelf 0
setvar shell 0
setvar shelves 0
setvar showcase 0
setvar sideboard 0
setvar skeleton 0
setvar skippet 0
setvar spittoon 0
setvar stable 0
setvar stand 0
setvar stool 0
setvar table 0
setvar tomb 0
setvar tray 0
setvar tree 0
setvar trestle 0
setvar trunk 0
setvar turtle 0
setvar urn 0
setvar valet 0
setvar vanity 0
setvar wall 0
setvar wardrobe 0
setvar waterwheel 0
setvar web 0
setvar workbench 0
setvar worktable 0

ACTION setvar altar 1 WHEN altar
ACTION setvar armoir 1 WHEN armoir
ACTION setvar barn 1 WHEN \bbarns?\b
ACTION setvar barrel 1 WHEN barrel
ACTION setvar basket 1 WHEN basket
ACTION setvar bedroll 1 WHEN bedroll
ACTION setvar bench 1 WHEN bench
ACTION setvar bin 1 WHEN \bbins?\b
ACTION setvar board 1 WHEN board
ACTION setvar bookcase 1 WHEN bookcase
ACTION setvar box 1 WHEN \bboxe?s?\b
ACTION setvar breakfront 1 WHEN breakfront
ACTION setvar bucket 1 WHEN bucket
ACTION setvar buffet 1 WHEN buffet
ACTION setvar bull 1 WHEN \bbulls?\b
ACTION setvar bureau 1 WHEN bureau
ACTION setvar cabinet 1 WHEN cabinet
ACTION setvar carpet 1 WHEN carpet
ACTION setvar cart 1 WHEN \bcarts?\b
ACTION setvar carton 1 WHEN carton
ACTION setvar case 1 WHEN \bcases?\b
ACTION setvar catalog 1 WHEN catalog
ACTION setvar chair 1 WHEN chair
ACTION setvar chest 1 WHEN chest
ACTION setvar closet 1 WHEN closet
ACTION setvar coffer 1 WHEN coffer
ACTION setvar cord 1 WHEN \bcord\b
ACTION setvar corral 1 WHEN corral
ACTION setvar cot 1 WHEN \bcots?\b
ACTION setvar counter 1 WHEN counter
ACTION setvar cradle 1 WHEN cradle
ACTION setvar crate 1 WHEN \bcrates?\b
ACTION setvar desk 1 WHEN \bdesks?\b
ACTION setvar display 1 WHEN display
ACTION setvar drawer 1 WHEN drawer
ACTION setvar dresser 1 WHEN dresser
ACTION setvar dummy 1 WHEN dummy
ACTION setvar endtable 1 WHEN endtable
ACTION setvar footrest 1 WHEN footrest
ACTION setvar fountain 1 WHEN fountain
ACTION setvar framework 1 WHEN framework
ACTION setvar garderobe 1 WHEN garderobe
ACTION setvar hanger 1 WHEN hanger
ACTION setvar hatstand 1 WHEN hatstand
ACTION setvar head 1 WHEN \bheads?\b
ACTION setvar highboy 1 WHEN highboy
ACTION setvar hole 1 WHEN \bholes?\b
ACTION setvar hook 1 WHEN \bhooks?\b
ACTION setvar horse 1 WHEN \bhorses?\b
ACTION setvar jar 1 WHEN \bjars?\b
ACTION setvar lattice 1 WHEN lattice
ACTION setvar locker 1 WHEN locker
ACTION setvar mannequin 1 WHEN mannequin
ACTION setvar mantle 1 WHEN mantle
ACTION setvar net 1 WHEN \bnets?\b
ACTION setvar pail 1 WHEN \bpail\b
ACTION setvar pedestal 1 WHEN pedestal
ACTION setvar peg 1 WHEN \bpeg\b
ACTION setvar pipe 1 WHEN \bpipes?\b
ACTION setvar plank 1 WHEN plank
ACTION setvar planter 1 WHEN planter
ACTION setvar platter 1 WHEN platter
ACTION setvar plinth 1 WHEN plinth
ACTION setvar pole 1 WHEN \bpoles?\b
ACTION setvar quilt 1 WHEN \bquilts?\b
ACTION setvar rack 1 WHEN \bracks?\b
ACTION setvar rope 1 WHEN \brope\b
ACTION setvar rug 1 WHEN \brugs?\b
ACTION setvar sawhorse 1 WHEN sawhorse
ACTION setvar shelf 1 WHEN shelf
ACTION setvar shell 1 WHEN shell
ACTION setvar shelves 1 WHEN shelves
ACTION setvar showcase 1 WHEN showcase
ACTION setvar sideboard 1 WHEN sideboard
ACTION setvar skeleton 1 WHEN skeleton
ACTION setvar skippet 1 WHEN skippet
ACTION setvar spittoon 1 WHEN spittoon
ACTION setvar stable 1 WHEN stable
ACTION setvar stand 1 WHEN stand
ACTION setvar stool 1 WHEN stool
ACTION setvar table 1 WHEN \btables?\b
ACTION setvar tomb 1 WHEN \btombs?\b
ACTION setvar tray 1 WHEN \btray?\b
ACTION setvar tree 1 WHEN \btrees?\b
ACTION setvar trestle 1 WHEN trestle
ACTION setvar trunk 1 WHEN trunk
ACTION setvar turtle 1 WHEN turtle
ACTION setvar urn 1 WHEN \burns?\b
ACTION setvar valet 1 WHEN valet
ACTION setvar vanity 1 WHEN vanity
ACTION setvar wall 1 WHEN \bwalls?\b
ACTION setvar wardrobe 1 WHEN wardrobe
ACTION setvar waterwheel 1 WHEN waterwheel
ACTION setvar web 1 WHEN \bwebs?\b
ACTION setvar workbench 1 WHEN workbench
ACTION setvar worktable 1 WHEN worktable

send shop
waitforre ^The following items contain goods for sale:

startshop:

if %altar = 1 then gosub shopvar altar
if %armoir = 1 then gosub shopvar armoir
if %barn = 1 then gosub shopvar barn
if %barrel = 1 then gosub shopvar barrel
if %basket = 1 then gosub shopvar basket
if %bedroll = 1 then gosub shopvar bedroll
if %bench = 1 then gosub shopvar bench
if %bin = 1 then gosub shopvar bin
if %board = 1 then gosub shopvar board
if %bookcase = 1 then gosub shopvar bookcase
if %box = 1 then gosub shopvar box
if %breakfront = 1 then gosub shopvar breakfront
if %bucket = 1 then gosub shopvar bucket
if %buffet = 1 then gosub shopvar buffet
if %bull = 1 then gosub shopvar bull
if %bureau = 1 then gosub shopvar bureau
if %cabinet = 1 then gosub shopvar cabinet
if %carpet = 1 then gosub shopvar carpet
if %cart = 1 then gosub shopvar cart
if %carton = 1 then gosub shopvar carton
if %case = 1 then gosub shopvar case
if %catalog = 1 then gosub shopvar catalog
if %chair = 1 then gosub shopvar chair
if %chest = 1 then gosub shopvar chest
if %closet = 1 then gosub shopvar closet
if %coffer = 1 then gosub shopvar coffer
if %cord = 1 then gosub shopvar cord
if %corral = 1 then gosub shopvar corral
if %cot = 1 then gosub shopvar cot
if %counter = 1 then gosub shopvar counter
if %cradle = 1 then gosub shopvar cradle
if %crate = 1 then gosub shopvar crate
if %desk = 1 then gosub shopvar desk
if %display = 1 then gosub shopvar display
if %drawer = 1 then gosub shopvar drawer
if %dresser = 1 then gosub shopvar dresser
if %dummy = 1 then gosub shopvar dummy
if %endtable = 1 then gosub shopvar endtable
if %footrest = 1 then gosub shopvar footrest
if %fountain = 1 then gosub shopvar fountain
if %framework = 1 then gosub shopvar framework
if %garderobe = 1 then gosub shopvar garderobe
if %hanger = 1 then gosub shopvar hanger
if %hatstand = 1 then gosub shopvar hatstand
if %head = 1 then gosub shopvar head
if %highboy = 1 then gosub shopvar highboy
if %hole = 1 then gosub shopvar hole
if %hook = 1 then gosub shopvar hook
if %horse = 1 then gosub shopvar horse
if %jar = 1 then gosub shopvar jar
if %lattice = 1 then gosub shopvar lattice
if %locker = 1 then gosub shopvar locker
if %mannequin = 1 then gosub shopvar mannequin
if %mantle = 1 then gosub shopvar mantle
if %net = 1 then gosub shopvar net
if %pail = 1 then gosub shopvar pail
if %pedestal = 1 then gosub shopvar pedestal
if %peg = 1 then gosub shopvar peg
if %pipe = 1 then gosub shopvar pipe
if %plank = 1 then gosub shopvar plank
if %planter = 1 then gosub shopvar planter
if %platter = 1 then gosub shopvar platter
if %plinth = 1 then gosub shopvar plinth
if %pole = 1 then gosub shopvar pole
if %quilt = 1 then gosub shopvar quilt
if %rack = 1 then gosub shopvar rack
if %rope = 1 then gosub shopvar rope
if %rug = 1 then gosub shopvar rug
if %sawhorse = 1 then gosub shopvar sawhorse
if %shelf = 1 then gosub shopvar shelf
if %shell = 1 then gosub shopvar shell
if %shelves = 1 then gosub shopvar shelves
if %showcase = 1 then gosub shopvar showcase
if %sideboard = 1 then gosub shopvar sideboard
if %skeleton = 1 then gosub shopvar skeleton
if %skippet = 1 then gosub shopvar skippet
if %spittoon = 1 then gosub shopvar spittoon
if %stable = 1 then gosub shopvar stable
if %stand = 1 then gosub shopvar stand
if %stool = 1 then gosub shopvar stool
if %table = 1 then gosub shopvar table
if %tomb = 1 then gosub shopvar tomb
if %tray = 1 then gosub shopvar tray
if %tree = 1 then gosub shopvar tree
if %trestle = 1 then gosub shopvar trestle
if %trunk = 1 then gosub shopvar trunk
if %turtle = 1 then gosub shopvar turtle
if %urn = 1 then gosub shopvar urn
if %valet = 1 then gosub shopvar valet
if %vanity = 1 then gosub shopvar vanity
if %wall = 1 then gosub shopvar wall
if %wardrobe = 1 then gosub shopvar wardrobe
if %waterwheel = 1 then gosub shopvar waterwheel
if %web = 1 then gosub shopvar web
if %workbench = 1 then gosub shopvar workbench
if %worktable = 1 then gosub shopvar worktable
goto end

shopvar:
put #var shopper $0
goto shop1

shop1:
send shop first $shopper
matchre shop2 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop2:
send shop second $shopper
matchre shop3 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop3:
send shop third $shopper
matchre shop4 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop4:
send shop fourth $shopper
matchre shop5 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop5:
send shop fifth $shopper
matchre shop6 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop6:
send shop sixth $shopper
matchre shop7 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop7:
send shop seventh $shopper
matchre shop8 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop8:
send shop eighth $shopper
matchre shop9 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop9:
send shop ninth $shopper
matchre shop10 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop10:
send shop tenth $shopper
matchre shop11 ^\[Type SHOP \[GOOD\] to see some details about
matchre return ^I could not find what you referring to|^You can buy this item if you like
matchwait

shop11:
send shop eleventh $shopper
goto return

return:
return

end:
put #parse SCRIPT DONE
exit

Crossing's Market Plaza

start:
put #class rp on
put #class shop on
put #class combat off
put #class arrive off
put #var currency Kronars
put #var shopcity Crossing
send stop play
waitforre ^You stop|^In the name

send read listings board
waitforre shops? (is|are) open\.$

put #log >Shoplog.txt The following items are sold at Crossing's Market Plaza and are priced in copper Kronars [$date $time]:

move north

Sun_Room:
gosub arch
gosub door
gosub entrance
move east

Water_Room:
gosub arch
gosub door
gosub entrance
move northeast

Grass_Room:
gosub arch
gosub door
gosub entrance
move northwest

Solarium:
gosub arch
gosub door
gosub entrance
move southwest
move northwest

Forest_Room:
gosub arch
gosub door
gosub entrance
move southwest

Dimly-Lit_Storage:
gosub arch
gosub door
gosub entrance
move southeast

Meeting_Room:
gosub arch
gosub door
gosub entrance
move east
move southeast

Moon_Room:
gosub arch
gosub door
gosub entrance
move east

Armor_Room:
gosub arch
gosub door
gosub entrance
move west
move south

Lodge_Room:
gosub arch
gosub door
gosub entrance
move north
move northwest
move southwest

Gladiolus_Room:
gosub arch
gosub door
gosub entrance
move west

Fire_Room:
gosub arch
gosub door
gosub entrance
move east
move south

Library:
gosub arch
gosub door
gosub entrance
move north
move northeast
move go spiral ramp

Volcano_Room:
gosub arch
gosub door
gosub entrance
move east

Palm_Room:
gosub arch
gosub door
gosub entrance
move northeast

Ocean_Room:
gosub arch
gosub door
gosub entrance
move northwest

Tundra_Room:
gosub arch
gosub door
gosub entrance
move southwest

Jungle_Room:
gosub arch
gosub door
gosub entrance
move northwest

Savannah_Room:
gosub arch
gosub door
gosub entrance
move southwest

Desert_Room:
gosub arch
gosub door
gosub entrance
move southeast

River_Room:
gosub arch
gosub door
gosub entrance
move east
move go spiral ramp
move climb marble staircase

Tasting_Room:
gosub arch
gosub door
gosub entrance
move north

Bottle_Room:
gosub arch
gosub door
gosub entrance
move north

Stomping_Room:
gosub arch
gosub door
gosub entrance
move east

Barrel_Room:
gosub arch
gosub door
gosub entrance
move west
move north

Fermentation_Room:
gosub arch
gosub door
gosub entrance
move south
move west

Cooper_Room:
gosub arch
gosub door
gosub entrance
move east
move south
move south
move climb marble staircase
move south
goto done

arch:
setvariable portal arch
send look arch
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

door:
setvariable portal door
send look door
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

entrance:
setvariable portal entrance
send look entrance
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

shopinv:
move go %portal
put .shop2
waitfor SCRIPT DONE
move out
return

return:
return

done:
put #class arrive on
put #class shop off
send hum $hum
exit

Riverhaven's Knight's Hall

start:
put #class rp on
put #class shop on
put #class combat off
put #class arrive off
put #var currency Lirums
put #var shopcity Riverhaven
send stop play
waitforre ^You stop|^In the name

send read listings board
waitforre shops? (is|are) open\.$

put #log >Shoplog.txt The following items are sold at Riverhaven's Knight's Hall and are priced in copper Lirums [$date $time]:

move north

Rose_Room:
gosub arch
gosub door
gosub entrance
move north

Warrior_Room:
gosub arch
gosub door
gosub entrance
move north

Food_Plaza:
gosub arch
gosub door
gosub entrance
move north

Childrens_Room:
gosub arch
gosub door
gosub entrance
move south
move south
move south
move south
move northeast

Theatre_Room:
gosub arch
gosub door
gosub entrance
move northeast

World_Room:
gosub arch
gosub door
gosub entrance
move northeast

The_Back_Room:
gosub arch
gosub door
gosub entrance
move southwest
move southwest
move southwest
move northwest

Keep_Room:
gosub arch
gosub door
gosub entrance
move northwest

Dungeon_Room:
gosub arch
gosub door
gosub entrance
move northwest

Storage_Area:
gosub arch
gosub door
gosub entrance
move southeast
move southeast
move southeast
goto done

arch:
setvariable portal arch
send look arch
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

door:
setvariable portal door
send look door
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

entrance:
setvariable portal entrance
send look entrance
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

shopinv:
move go %portal
put .shop2
waitfor SCRIPT DONE
move out
return

return:
return

done:
put #class arrive on
put #class shop off
send hum $hum
exit

Shard's Crystal Plaza

start:
put #class rp on
put #class shop on
put #class combat off
put #class arrive off
put #var currency Dokoras
put #var shopcity Shard
send stop play
waitforre ^You stop|^In the name

send read listings board
waitforre shops? (is|are) open\.$

put #log >Shoplog.txt The following items are sold at Shard's Crystal Plaza and are priced in copper Dokoras [$date $time]:

move north
move north

Play_Yard:
gosub arch
gosub door
gosub entrance
move south
move northeast

Prism_Room:
gosub arch
gosub door
gosub entrance
move southwest
move east

Oak_Room:
gosub arch
gosub door
gosub entrance
move west
move southeast

Luminous_Room:
gosub arch
gosub door
gosub entrance
move northwest
move southwest

Storage:
gosub arch
gosub door
gosub entrance
move northeast
move west

Food_Court:
gosub arch
gosub door
gosub entrance
move east
move northwest

The_Sea:
gosub arch
gosub door
gosub entrance
move southeast
move south
goto done

arch:
setvariable portal arch
send look arch
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

door:
setvariable portal door
send look door
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

entrance:
setvariable portal entrance
send look entrance
matchre shopinv ^'.+'.+It is currently open\.$
matchre return ^'.+'.+It is currently closed\.$
matchwait 1
return

shopinv:
move go %portal
put .shop2
waitfor SCRIPT DONE
move out
return

return:
return

done:
put #class arrive on
put #class shop off
send hum $hum
exit

See Also

  • Trader-owned Shops: I periodically update this list of shops, their record owners, and their locations.
  • Trader Shop Inventory: This is a spreadsheet that I made from the information logged by these triggers.