[wizs] 關於虛擬物品

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間13年前 (2012/11/05 21:58), 編輯推噓1(100)
留言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
文章代碼(AID): #1GbyOSYW (mud_sanc)
文章代碼(AID): #1GbyOSYW (mud_sanc)