[wizs] 本月新增任務統一說明
我本月新增的任務,全部都會跟 ask 指令有關。
一、某隻 npc(A) 可被 ask
二、另一隻同區域的 npc(A) 會提示可 ask npc(A) 什麼
npc(A) 會設定的 ask 相關參數,與 _ask.c 指令內的底
下程式段落有關..
if(mon_obj->query("ask_func"))
{
me->set_temp("time_record/asking",1+times);
if(!mon_obj->query("ask_allow_other_keywords"))
{
keywords=(mixed)mon_obj->query("ask_keywords");
if(member_array(subject,keywords)==-1)
return notify_fail(mon_name+" 一臉茫然的望著你.\n");
}
call_other(mon_obj,(string)mon_obj->query("ask_func"),me,subject);
return 1;
}
比方 mob_obj 做了底下設定..
set("ask_func","ask_laechan");
set("ask_keywords",({"laechan","小寶","羅德斯的大發明家"}));
set("ask_allow_other_keywords",1);
則 mob_obj 的 ask_laechan 函數寫法大致是...
void ask_laechan(object me,string subject)
{
if(subject=="影特")
{
write(query("short")+"笑著告訴你:他可是個大名人喔 ^_^\n");
return ;
}
// 同一問題項多種問法
if(member_array((mixed)query("ask_keywords"),subject)==-1)
{
write(query("short")+"一臉茫然的看著你.\n");
return ;
}
// 條件式過濾
if(!me->query_temp("whiletile_helping_babala"))
{
write(query("short")+"對你說道:我不知道你要問的事情喔.\n");
return 1;
}
write(query("short")+"對你說道:bla bla......\n");
.
.
}
上面的做法,好處就是方便過濾,而且同一問題項支援多種
詢問關鍵字,還可以依關鍵字的不同直接在單一函數內做處
理,例如..
if(subject=="淫魔")
{
write(query("short")+"大喊:老子就是淫魔!淫魔就是你老子!\n");
clone_object(...
本月會新增白瓦鎮的神父跑腿任務,有時間時會再新增別的
,所有新增的任務均會以「方便玩家在線上 chat 任務跑法
」為設定原則,方便讓玩家口耳相傳。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.225.160.49
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
10
18