新增任務需要去修改WZ,而任務資訊存放的WZ為Quest.wz,所以在新增任務之前我們要對存放任務的 Quest.wz 有一定的認識才能夠開始。我建議各位可以打開 伺服端\wz\Quest.wz 大致看一下Act、Check、QuestInfo、Say 是紀錄什麼東西。
PQ開頭的為遠征隊的任務,這篇文章主要是新增普通任務所以不會碰到。
- Act:用於記錄任務需要的物品、楓幣..等,以及任務完成之後獲得的獎勵;
- Check:可以指定任務接取、完成的NPC以及檢查任務道具或者怪物擊殺數量是否正確;
- QuestInfo:任務在任務欄裡頭顯示的文字;
- Say:接任務以及回報任務時NPC所說的話。
Act首先來看Act:
Act裡面的每個節點代表任務代碼,任務代碼可以從 QuestInfo.img 中查找,比如說我想要參考的任務是《找回楓之谷古書2》它的任務id為 2075。
那我們展開 Act 節點找到任務id 2075 節點後展開,可以看到有這些內容:
0代表未完成,1代表完成
- 0 – item 代表任務所需要的道具,需要的第一個道具為 0 – item – 0 第二個為 0 – item – 1 …依此類推
- count 為 需求數量(若是要從玩家那裡得到記得要加上負號)
- id 為 物品代碼
- 1 – exp 代表完成後可得到的經驗值
- 1 – item 代表任務所需要的物品或者獎勵的物品
若你今天任務完成要給予玩家兩個道具,則要新增兩個節點(0,1)
1 – item – 0
1 – item – 1
而0,1底下還要再新增id與count,這邊沒有提到的 prop 則可以控制得到獎勵的機率。
Check再來說說Check,Check扮演了很重要的角色,
0主要是處理「可接取對象的條件」
- 0 - job 代表可以接取任務的職業
- 每個職業各放一個節點,例如:0 – job – 0 為 300 , 0 – job – 1 為 400 代表弓箭手和盜賊可以接取任務的意思
- 0 - lvmax(lvmin) 代表可以接取任務的最低等級以及等級限制
- 0 - npc 代表接取任務的NPC代碼
- 0 - quest 代表該任務的前置任務
- quest 裡頭的id就是任務代碼
- start, end 開始與結束日期,值格式:200906300000,為 2009年6月30 00:00
1則是「接取任務後至結束」
- 1 - item 代表任務所需的道具
- item - 0 第一個道具 (id,count)
- item - 1 第二個道具 (id,count) …以此類推
- 1 - npc 代表完成任務的NPC
- 1 - quest 代表完成此任務後可以解鎖的任務
QuestInfoQuestInfo就比較容易了,隨便點開一個任務看一下就知道每個節點的意義。
- name 為任務的名稱
- 0 代表 任務在「可執行」任務欄位時顯示的內容
- 1 代表 任務在「進行中」任務欄位時顯示的內容
- 2 代表 任務在「完成」任務欄位時顯示的內容
- area代表任務屬於的類別,就是在任務的哪個分類底下,例如:楓葉村、維多利亞港…等,目前知道的是10代表「職業」,其他就自行研究了。
- demandSummary是在任務欄「任務需求」顯示的內容
- rewardSummary是在任務欄「任務獎勵」顯示的內容
這邊用 28267 [蒐集]我需要雨傘! 為例:
在 可執行 欄位時任務所顯示的內容是記錄在 0
在 進行中 欄位所顯示的內容記錄在 1
在 完成 欄位的內容記錄在 2
順帶提一下,這裡的任務簡介和補償是記錄在 demandSummary 和 rewardSummary
Say0代表未完成,1代表完成
- 0 - 0,1… 任務未接取時NPC說的說明文字
- 1 - 0 任務完成時NPC的說明文字
- 1 - lost 放棄任務時NPC說的話
- 1 - stop - item - 0 任務道具尚未收集完成時NPC說的話
- 1 - yes - 0 任務完成後NPC說的話
我覺得直接文字敘述可能很難明白,這邊一樣用 28267 [蒐集]我需要雨傘! 為例子,
這是準備接受任務時NPC所說的話:
對應到的為節點 0 - 0 的內容:
0 – 00 - yes 是按下接受後NPC所說的話,0 - no 則是按下拒絕NPC所說的話。
0 – yes – 0接取任務後直至未收集完任務道具前所顯示的文字則是在 1 - stop - item - 0
任務道具收集完畢後繳交時NPC所說的話
對應到 1- 0
至此Quest.wz常用的內容大概都說明完畢,要新增任務的話就新增節點取一個沒用到的任務代碼即可。