[系統] 虛擬物品系統補完

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間17年前 (2009/01/15 23:47), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
主檔:/adm/daemons/vobjs_d.c    /include/vobjs.h 這兩個檔都已經 cp 給 highelf,檔案內容很單純,highelf 擁有的權限是.. 一、其它 wiz 自行撰寫的 vobj.c,highelf 有權決定是否   寫入 vobjs.h 中。 二、highelf 可自行新增 vobjs_d.c 的函數(但不能更改原   先已存在的函數),以方便管理。   (有需要的話我也可以去新增) 三、vobjs 另有一個主檔放在 /adm/simul_efun 下,有幾個   關鍵函數..   // 設定 n 個 vobjs 給 user void set_user_vobjs(object user,string vobjs_key,int n) 這是直接為 user 設定 vobjs_key 這個虛擬物品 n 個 * 這個還要加判斷,讀取 vobjs_key 這個物品的最大值設定 (一樣 wiz 的 vobj.c 中設定再由 vobjs_d.c 讀取) =============================================================== // 增加(或減少) n 個 vobjs 給 user void add_user_vobjs(object user,string vobjs_key,int n) 跟上面一樣要加同樣的判斷。 =============================================================== // 移除玩家身上某種 vobjs void delete_user_vobjs(object user,string vobjs_key) 移除的判斷很少,不過我要參考其它有 delete_xxx 的系統。 =============================================================== // 讀取 vobjs_data 的內容 varargs mixed query_vobjs_data(string vobjs_key,string kind) 這是給特殊指令用的,使用 varargs 宣告語法 query_vobjs_data 不接任何東西,就讀取所有的 vobjs_data (mapping)   query_vobjs_data(vobjs_key) 不接 kind 就只讀取 vobjs_key 這個東西 的 data (mapping)   query_vobjs_data(vobjs_key,kind) 有接 kind 就讀取資料 mapping vobjs_data=(["_maker":"highelf", "highelf_happyearth_breakfast":([ "name" : "羿雲特製早餐\", "file" : "/d/ppl/highelf/happyearth/obj/breakfast", "mark" : "吃了可以補血一萬hp的早餐\",]), 以上面來說.. query_vobjs_data("highelf_happyearth_breakfast") 就是讀 (["name" : "羿雲特製早餐\", "file" : "/d/ppl/highelf/happyearth/obj/breakfast", "mark" : "吃了可以補血一萬hp的早餐\",]), ]) query_vobjs_data("highelf_happyearth_breakfast","name") 就是讀 "羿雲特製早餐\" (另外 highelf 你應該是設錯了,自訂的 vobj.c 只要設 happyearth_breakfast   就可以了) 目前則使用玩家身上的 temp_data["vobjs"] 欄位當做暫存用。 (要永久使用這個欄位也可以,因為原先的設定就是玩家 quit 就 清除玩家所打到的 vobjs,以後才可能保留) Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.105.143

01/16 00:27, , 1F
備忘:第五個參數cmds
01/16 00:27, 1F
文章代碼(AID): #19RrgIo3 (mud_sanc)
文章代碼(AID): #19RrgIo3 (mud_sanc)