[wizs] 偷竊設定的簡易解決方式
這個我想拉 quest 一起做。
大致上是,/d/obj 會新增一個 steal.c 的東西,它會做
如下宣告..
mapping get_steal=([
"/d/crazy/1/mob/tree1":({錢,"虛擬物品ID" 或 "檔名",...}),
.
.
]);
當玩家發動 steal 指令對 tar 進行偷竊時..
files = base_name(tar);
if(STEAL_D->check_steal(files))
{
if(!steals=tar->query_temp("steals"))
{
steals=get_steal(files); // return ({錢,...})
tar->set_temp("steals",steals); // 初始設定
}
if(判斷本次偷竊有得手)
{
switch random
{
case 拿到錢:
money=steals[0];
money=money/2;
steals[0]=money;
tar->set_temp("steals",steals);
本次偷竊拿到 money;
break;
case 拿到物品:
if(sizeof(steal)>1) // 表示還有物品可偷
{
files=steals[1];
if(file_exists(files+".c")) // 基本判斷
{
steals-=({files});
tar->set_temp("steals",steals);
if(!catch(ob=clone_object(files)))
{
ob->move_to(me);
本次偷竊拿到物品;
}
}
else if 判斷為虛擬物品
{
執行虛擬物品相關判斷;
}
}
break;
}
return 1;
}
本次偷竊失敗;
}
這樣設的好處是..
一、不必去更動怪物檔,只要改 steal.c 檔就可以在怪物
身上增加可偷竊的東西。
二、哪些怪物可偷東西,集中控管;可偷哪些東西,寫個指
令秀一下即可知道;還可以當 ask 類的情報點。
三、重要的是 虛擬物品的id。目前暫定用 "a001,b001,...
",將虛擬物品分成最多 26 類,每類最多 1000 種。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.225.161.234
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
5
12