※ 引述《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