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