作者laechan (小太保)
看板mud_sanc
標題[wizs] vobjs 虛擬物品的 use
時間Tue Jan 8 00:35:10 2013
這個我已經寫了,wiz 可參考,說明及使用方式如下:
一、統一指令: ob use [虛擬物品名稱] 或 [序號]
> ob
你的物品欄帶著 10/99 種物品:
─────────────────────────────────────
1.藍色晶礦 ( 10) 2.黃寶石 ( 1) 3.毒蛇的牙齒 ( 4)
4.聖誕禮物箱 ( 10) 5.綠寶石 ( 1) 6.紫寶石 ( 1)
> ob use 4 <= 支援用你所看到的編號方式(或"聖誕禮物箱"也可)
你開啟了禮物箱,裡面裝了一顆%力量大補丸%(Str Pill)。
二、使用 vobjs 指令去設定你想要讓玩家可 use 的物品
,節慶物品請統一設在 f 區,其它就看你覺得該物品
可以使用哪一區。
請自行參考 vobjs 相關設定。vobjs 支援快速設定。
三、撰寫該虛擬物品的「實體支援物件」。例如聖誕禮物
箱 f802 的實體物件為 /d/event/xmas/box.c,它只
有一個關鍵函數:
int ob_use_func(object ppl)
{
object ob;
string str;
switch(random(6))
{
case 0:
write("你開啟了禮物箱,結果箱子裡是空的。\n"+
"你: ......\n");
.
.
跟以前撰寫的實體物件有底下差異:
1.inherit
ROOM;
2.不需要 void init() 去 add_action,直接寫函數
3.函數名需統一為 ob_use_func(object ppl)
你可自行參看並拷貝 /d/event/xmas/box.c 去改。
四、在 ob view 4 時會看到如下
────────────────────────────
聖誕禮物箱
────────────────────────────
單位:個
型態:節慶物
攜帶:9 / 10
價格:10
一個禮物箱,你可以使用 ob use 聖誕禮物箱 指令來開啟它。
────────────────────────────
物品資訊:虛擬物品
該物品被識別為可 use 的條件就是該物品的敘述被
設定為"完整檔名路徑",這樣 ob use 才能依據敘述
去找實體物件。
最後虛擬物件的簡單概念,就是不再「clone」出一個一
個實體的物件給玩家下指令去使用,例如現在的大補丸就
是這樣的模式。
以後改成大家都以 ob use 指令去使用,並統一呼叫同一
個物件(房間)。這樣單一物件就可以給多位玩家同時使用
,而且可以一直重覆用,系統永遠只載入一個物件。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.224.240.189
推 justinj :檔案路徑...全部都一樣.../d/obj/vobj....amem 01/08 08:43
→ laechan :嗯? 01/08 08:46
→ hlead :這方法不錯...vobj目錄其實可以產表列出中文啦.. 01/08 11:20
→ laechan :原則上目前的 vobjs -ext 理論上應改成顯示完整檔名 01/08 11:37
→ laechan :而非去讀取該檔名指向的物件之 long 做為 desc. 01/08 11:37
→ laechan :(因為 vobjs 是 wiz 內部使用的東西應顯示原始內容) 01/08 11:38
→ laechan :這個最近會變更 01/08 11:38