[wizs] 本月新增任務統一說明

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間15年前 (2010/07/06 11:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我本月新增的任務,全部都會跟 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
文章代碼(AID): #1CCfzhSe (mud_sanc)
文章代碼(AID): #1CCfzhSe (mud_sanc)