#SHOPS 控制的是商店,包括營業時間和定價規則在內。#SHOPS 和 #RESETS 一樣,都是單行的指令,行末可加註解。本段最後以 0 結尾。

#SHOPS
{
<keeper:number> <trade-0:number> <trade-1:number> \
<trade-2:number> <trade-3:number> <trade-4:number> \
<profit-buy:number> <profit-sell:number> \
<open-hour:number> <close-hour:number> <comment:to_eol>
}
0

基本設定

<keeper:number> 老闆的 vnum
<trade-0:number> 老闆願意收購的商品種類(參照 item-type
<trade-1:number> 老闆願意收購的商品種類
<trade-2:number> 老闆願意收購的商品種類
<trade-3:number> 老闆願意收購的商品種類
<trade-4:number> 老闆願意收購的商品種類
<profit-buy:number> 玩家購買價(至少為 100)
<profit-sell:number> 店家收購價(最高為 100)
<open-hour:number> 開店時間(0~23)
<close-hour:number> 關店時間(0~23)
<comment:to_eol> 註解
範例

3039 19 0 0 0 0 125 75 7 21 將 mob #3039 設為老闆,只收購食物,賣出價是物品原價的 150%,收購價是物品原價的 75%,營業時間自 7 點到 21 點

如範例所示,#SHOPS 的設計相當單純。要注意的是,商店是寫在怪物身上,而非寫在房間上,因此也可以設計流動攤販。玩家購買價和店家收購價都是百分比,原價就是 #OBJECTS 中定義的價格。賣出時不能低於原價,買進時不能高於原價。

建立庫存

有了商店之後,再來要有商品。商品的設定,要用 #RESETS 中的 G 指令

範例

M 0 3039 1 3039 * Smilings在 #3039 放一隻 Smilings

G 0 3078 0 * cake把 cake 放在她身上

結合先前的 #SHOPS 設定,Smilings 就會在房間 #3039 販賣蛋糕了。

寵物店

寵物店的設計和一般商店略有不同。我們雖然同樣可以在 #SHOPS 裡設定老闆、定價策略和營業時間,但要怎麼把活生生的動物(mob)作成商品(object)呢?

範例

3053 0 0 0 0 0 100 100 0 23 將#3053 設定為老闆,不收購任何物品,原價買進賣出,24 小時營業

關鍵就在於要在寵物店之後接著寫一間「寵物休息室」。以潘城寵物店為例,寵物店位於 #3053,其寵物休息室就是緊接其後的 #3054。寵物店的正體是 #3053,我們需要在 #RESETS 中把老闆放進寵物店:

#RESETS 裡的設定

M 0 3053 1 3053 * pet shop boy在 #3053 放一隻 pet shop boy

同時,我們在 #ROOMS 中也必須將 #3053 的 room flag 設定為 ROOM_PET_SHOP。作為休息室的 #3054 不需要特別的 room flag,但請不要設計任何出入口,以免玩家進入。接著,我們在 #MOBILES 設計販售用的寵物,也就是在 act flag 中加入 ACT_PET。最後再仿造一般商店的寫法,在老闆後面加入要賣的寵物:

#RESETS 裡的設定‧續

M 0 3053 1 3053 * pet shop boy寵物店裡的 pet shop boy

M 0 3090 1 3054 * kitten 休息室裡的 kitten

M 0 3091 1 3054 * puppy 休息室裡的 puppy

M 0 3092 1 3054 * beagle 休息室裡的 beagle

M 0 3093 1 3054 * rottweiler 休息室裡的 rottweiler

M 0 3095 1 3054 * wolf 休息室裡的 wolf

馬店

以上就是寵物店的寫法,關鍵在於寵物休息室(x+1)一定要緊接在老闆所在的寵物店之後(x)。馬店的原理和寵物店完全一樣,馬房一樣要緊鄰在馬店之後,差別只在於馬店的 room flag 要設定為 ROOM_HORSE_SHOP_P,以及 #MOBILES 中的馬需要設定為 ACT_STEED 而已。

至於潘城的馬店為什麼會有差別待遇?答案很簡單,那其實只是兩間外表沒有區別的馬店。玩家一走進店裡,符合特殊條件的人就會被傳送到隱藏的另一家馬店,當然馬房也是另外一間,馬房裡準備的馬自然也不一樣。這就是差別待遇的真相,而同樣的技巧也可以應用在一般的商店中。