作者laechan (小太保)
看板mud_sanc
标题[wizs] 偷窃设定的简易解决方式
时间Thu May 20 16:59:33 2010
这个我想拉 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