作者laechan (小太保)
看板mud_sanc
標題[wizs] 關於 (!) 做法
時間Sun Nov 13 17:44:41 2011
目前考慮寫這個東西,但是依照現行 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