作者laechan (小太保)
看板mud_sanc
標題[wizs] 虛擬物品的觀看買賣
時間Mon Mar 5 20:37:51 2012
這問題我已經思考非~~~~~~~~常久了。
今天定案。
首先,以1個字母+3位數字編號的方式,把物品分成最多26種,
每一種最多1000個。例如怪物掉落物就全部編到a這個種類,然
後把a~c配給怪物掉落物這樣。
則在觀看或買賣時,就假設如下..
> vobjs
1.XX的翅膀(99) 2.OO的尾巴(195) 3.**的牙齒(258) 4......
> vobjs 1
這是XX的翅膀,可以像收集品商人購買。
> vobjs sell 10 1
你將 10 個XX的翅膀賣給了收集品商人。
你得到 600 影特幣。
這樣一個指令就可以搞定,虛擬物品販售商店只要 set 特殊參
數就可,全由 vobjs 指令來支援,可令 vi = vobjs,vi 即代
表「虛擬」的 inventory。
也就是說,玩家不會知道虛擬物品的實際ID,只有 wizs 知道。
接下來是重點,這也是今天定案的。
打區域時會打到虛擬物品,這些東西「不會儲存」。
你要儲存虛擬物品,就得回到自己的家,然後把這些東西丟進家
裡的「儲存箱」,這樣物品才能儲存。
這可以解決幾個問題..
一、虛擬物品不需要儲存在玩家身上,就不會佔用玩家資料檔的
儲存空間。
二、虛擬物品儲存在別處,則儲存容量就可以設很大。
三、虛擬物品的買賣「可以直接隔空從儲存箱提取」,也可以賣
身上的,只要寫這項支援即可,玩家就不必冒著「為了買賣
而得先從箱子拿東西放身上,再到商店去賣掉」的這段時間
系統可能 crash 的風險。
EX: vobjs sell 100 1 from box
四、觀看跟買賣全由 vobjs 指令支援,則ID與物品名稱的對照就
可定義在同一個地方,寫法就很彈性。
虛擬物品系統主要是 mob_drop.c,這個東西我最近會看過後就寫
使用說明讓各 wizs 可以方便使用,vobjs_d.c 則可能改寫或廢
棄重寫一份,因為基本上已經不需要定義資料庫,虛擬物品系統
的重要存在意義在於減少物件數,但是又不能因為如此而增大需
定義的資料量,這兩者之間就會存在一個平衡點。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.7.33
推 justinj :等完善了再來改我區域內的東東....amem 03/07 10:59
→ laechan :你可以先想想你覺得怎麼設虛擬物品在怪物身上,讓玩家 03/07 18:30
→ laechan :打死怪就會掉這些東西,把你的想法寫出來,大家討論 03/07 18:30
→ laechan :(像傳統設物品是 set("objects",([xxxxxx...... 03/07 18:31