Re: [wizs] 直覺化的虛擬物品系統
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間17年前 (2008/09/24 10:47)推噓1(1推 0噓 0→)留言1則, 1人參與討論串2/6 (看更多)
:::::::::::::: /u/l/laechan/vobjs.c ::::::::::::::
// Laechan@Sanc in 2008/09/24
// 虛擬物品系統之各 wiz 自建資料庫
inherit ROOM;
// 統一定為 vobjs_data
// 所有虛擬物品必須依 key 的開頭字母做排序以避免重覆
// name 與 file 兩個子 key 必備, mark 非必要
// name 盡量等於實體物件名(無色碼與空白)
// file 指向實體物件檔名(預設 .c 檔)
// mark 是用來做特殊判斷用(也可當成 wiz 自行 remark 用), 可有可無
mapping vobjs_data=(["_maker":"laechan", // 誰建置這個虛擬物品系統
"tnt" : ([ "name" : "黃色炸藥TNT",
"file" : "/u/l/laechan/special/obj/tnt",
"mark" : "在某地 ignite 炸藥時會判斷到的東西",]),
"viagra" : ([ "name" : "威而剛",
"file" : "/u/l/laechan/special/obj/viagra",
"mark" : "解任務用",]),
]);
// 統一的函數名 set_vobjs() 一定要有
void set_vobjs()
{
// 避免產生 bug
if(file_exists("/adm/daemons/vobjs_d.c"))
"/adm/daemons/vobjs_d"->set_vobjs(vobjs_data);
}
// 一定要有
void create()
{
::create();
seteuid(getuid(this_object()));
set("light",1);
set("short","虛擬物品資料房");
set_vobjs(); // 一定要有, 保證 update 房間就去 set
}
// 統一的函數名 vobjs_data()
mapping vobjs_data()
{
return vobjs_data;
}
> call vobjs;vobjs_data
房間(/u/l/laechan/vobjs)-> vobjs_data() = ([ "viagra" :
([ "name" : "威而剛", "mark" : "解任務用", "file" :
"/u/l/laechan/special/obj/viagra" ]), "_maker" : "laechan", "tnt" : ([
"name" : "黃色炸藥TNT", "mark" : "在某地 ignite 炸藥時會判斷到的東西",
"file" : "/u/l/laechan/special/obj/tnt" ]) ])
補充說明一下, key name 最好都定為英文名, 因為中文字會有
亂碼問題, 英文 key 比較不會出問題.
各 wizs 可開始實作, 並可貼出自己的 vobjs 雛形物件檔內容
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.230.61
推
12/05 19:57, , 1F
12/05 19:57, 1F
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
-22
41