精華區beta mud_sanc 關於我們 聯絡資訊
目前考慮寫這個東西,但是依照現行 quest 的做法, 這個東西會很難寫,所以我想新增一個公設。 > quest list 任務編號 任務名稱 任務關鍵字 任務觸發 npc/地點 ─────────────────────────────────────── j/j002 (測)0 寶藏, treasure, 透抽的寶藏, 透抽 永恆守護人波羅卡特(Polocut)試著阻止無知人民前去送死。 /d/ppl/quest /evil/npc/polocut ─────────────────────────────────────── 以這個任務為例,接任務的 npc 設為 polocut,則 polocut 身上就新增 set("quest_num","j002"); 則將來假設該任務編號變更,就順手更新一下該任務 step1_npc 的 quest_num 參數即可。 這樣做的好處就是可以讓 questing 做底下判斷 if(mob->query("quest_num")) if(questing("check","玩家的id","怪物的quest_num",({"steps"}))<1) 該玩家沒有解過這個任務; 底下是試做結果: 十字路口 這裡是兩條大路的交會點,往東你看到了不少商店,西邊有家旅 店,北邊是廣場,往南一直看過去,可以看到翠綠的青山, 山上 還有條瀑布呢!往東走,那裡則是有名的盜賊公會。 明顯出口有: east, south, north, 和 west. (!)Lv100.小販(Vendor) > quest vendor about oolong 小販: 我好想喝烏龍茶(Oolong)啊啊啊~~~ 再 look 一次 > look 十字路口 這裡是兩條大路的交會點,往東你看到了不少商店,西邊有家旅 店,北邊是廣場,往南一直看過去,可以看到翠綠的青山, 山上 還有條瀑布呢!往東走,那裡則是有名的盜賊公會。 明顯出口有: east, south, north, 和 west. 100.小販(Vendor) 相關程式段寫在 /adm/daemons/look_d.c(備份檔 20111113), grep -n quest_num look_d.c 即可找到相關程式段,我目前採 用的寫法如下 if(ob->query("quest_num")) { if(questing("check",me->query("name"),ob->query("quest_num"),({"steps"}))<1) tmp3=HIM"(!)"NOR"Lv"; } else tmp3="Lv"; 一、因為有設 quest_num 的 mob 很少所以採兩個 if 寫法。 二、把原先就會附加在怪物名稱前面的 "Lv" 與該設定做一個 結合,可節省判斷。 三、(!) 基本上是仿 D2 做法,不這樣做也可,例如改成 (quest) 會更明確一點。 四、目前依據 quest list 所列的部份,我先做了底下更動 領航員謬西(Musi) └新增了 quest_num = n000 設定 商人-克拉福.羅倫斯(Kurahuto Rorensu) └新增了 quest_num = n001 設定 改這類設定時因為必須同時更新 npc 所在的房間,因此 findmob 指令在這時就變得很好用 > findmob rorensu > 搜尋中...... 搜尋中...... ok! 找尋路徑為 起點(Muse所在地)->west->west->west->north Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.7.33
laechan :另外,若是測試用任務自然就不用設 quest_num,沒有設 11/13 20:21
laechan :這個參數玩家自然就不會看到(!)就不會誤認該怪有任務 11/13 20:22