[wizs] 關於虛擬物品
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間13年前 (2012/11/05 21:58)推噓1(1推 0噓 0→)留言1則, 1人參與討論串1/2 (看更多)
首先,玩家可帶在身上的虛擬物品種類是有限制的。
那麼多的物品要存去哪裡?我打算在羅德斯建造一座「倉庫」,
玩家可進出倉庫去存放這些多出來的東西。
========================================================
接著是物品的基本分類,例如p001是生命藥水,p002是OOXX藥水
,....
則資料結構我打算這樣子訂
mapping obj_data=([
"p":([
"p001":({"生命藥水",..}),
.
.
]),
]);
考量到物品可能會「非常多」,可能也會應用家族的分散式資料
儲存方式。則以底下為例..
keys_vobjs=ppl->query_vobjs();
foreach(tmp in keys_vobjs)
str+=sprintf("-12s %2d",vobjs_name(tmp_,keys_objs[tmp]));
由這裡可以看出 vobjs_name 是關鍵,函數可能是這樣寫..
string vobjs_name(string tmp)
{
return obj_data[tmp[0..0]][tmp];
}
========================================================
這時有兩種型式
一、仿 chinesed.c,再定義相關的 simul_efun 來跑
二、仿 party_d.c,資料都在 party_d.c 裡頭,函數也是
我可能會採第二種型式。
至於玩家←→虛擬物品系統之間的溝通,則寫在玩家 user.c
的相關檔案裡頭,即建立相關函數存取玩家本身的虛擬物品資
料。
========================================================
最後是 mob_drop,我將全面修改這個東西。
首先,物品資料庫只有唯一一個,所以怪物會掉的東西,都將
統一集中在某個地方設定。
問題:那我怎麼設計該怪物會掉什麼物品?
很簡單,就是把傳統的 mob_drop.c 的設計修改一下即可,例
如..
set("mob_drop",({"L/001"}));
改成
set("mob_drop",({"虛擬物品編號"}));
然後仿 chinese 指令,讓 wiz 可以自行新增自己的虛擬物品
,隨時可新增、刪除、修改。
這樣在 mob_d.c 的 die 函數裡面就可以這樣做..
if(mob->query("mob_drop"))
exec_mob_drop(mob);
現在的重點是,必須模擬當玩家身上攜帶 100 種物品時究竟顯
示出來的情況是如何,這個必須先做。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.141.55.137
推
11/06 08:38, , 1F
11/06 08:38, 1F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
1
1
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
29
45