作者laechan (小太保)
看板mud_sanc
标题Re: [问题] 一些函数用法的问题。
时间Sun Dec 23 01:34:28 2007
※ 引述《doall (狂人)》之铭言:
: 发现有个叫answer的玩家指令,不知如何应用?
: 敢请大大说明之~
有只怪物叫酷拉皮卡(cool)
ask 酷拉皮卡 about 小杰 => 他会先 smile 然後说他是个好孩子
ask 酷拉皮卡 about 念能力 => 他会 shake 然後说他不能告诉你
ask 酷拉皮卡 about 旅团 or 蜘蛛 => 他会变成火红眼然後 kill 你
ask 酷拉皮卡 about 其它有的没的 => 他会说你问的 XX 他不知道喔.
void create()
{
.
.
set("ask_func","ask_xxx"); // 会呼叫的函数
set("ask_keywords",({"小杰","念能力","旅团","蜘蛛"})); // 关键字
set("ask_allow_other_keywords",1); // 允不允许 ask 其它的关键字
}
int ask_xxx(object ppl,string key)
{
switch(key)
{
case "小杰":
command("smile");
command("say 小杰是个好孩子.");
break;
case "念能力":
command("shake "+ppl->query("name"));
command("say 对不起, 我不能告诉你我的念能力是什麽.\n");
break;
case "旅团":
case "蜘蛛":
tell_room(environment(this_object()),
query("chi_name")+"的眼睛突然变成了血一般的红色, "+
"他开始攻击你了!!\n");
this_object()->kill_ob(ppl);
ppl->kill_ob(this_object());
break;
case "奇犽": // 玩家问了关键字以外的 key(需有设 ask_allow_other_keywords)
command("smile");
command("say 奇犽也是个好孩子.");
break;
default: // 所问的东西不在上面的范围时
command("say 对不起, 我不知道 <"+key+"> 这方面的事情喔.");
break;
}
return 1;
}
新的 ask 与旧的 ask 的差别就在於, 只要写一个函数就可以应付
各种的 keywords.
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.114.160.227