- 註冊
- 2023-04-15
- 文章
- 10
- 評分
- 2
- 聲望
- 0
![]() 【介紹】 近日有一項任務修復委託,是要處理萬聖節任務的部分內容, 這邊我將分享我修復的經過,基本上所有任務的修復手法都是 差不多的思路。 【教學開始】 在開始前,先跟大家介紹 Quest.wz 的節點功能。 nextQuest = 下一個任務 exp = 任務完成獎勵經驗 money = 任務完成獎勵的金錢 npc = 任務所要找的NPC job = 任務所要求的職業 count = 任務所要求的物品數量 id = 任務所要求的物品ID end = 任務結束時間 例 2009102112 = 2009年10月21日12點 start = 任務開始時間 例 2009102112 = 2009年10月21日12點 interval = 重複接到任務的間隔時間 normalAutoStart = 任務自動開始 startscript = 達到條件後可透過腳本開啟任務說明。參數內容 q任務腳本代碼s endscript = 達到條件後可透過腳本開啟任務說明。 參數內容 q任務腳本代碼e 最開始客戶回報的問題為 在這邊我需要瞭解的有以下幾點 1. 這個任務具體是怎麼開始的? 2. 這個任務的開始與結束需要什麼條件? 3. 任務具體的破解流程是什麼? 其中,查找官方任務攻略是最重要的,修復要盡可能還原, 本次任務的攻略網址有在巴哈姆特分享過 萬聖節任務(解開詛咒者勳章、好夢、惡夢)任務流程 接著我們要查看任務怎麼開始的? 我們直接查看導出的 Check.img 查找任務代碼 10074 看看具體怎麼設計 ![]() 從資料可以得知,任務開始的條件為 1. 任務 10073 為完成狀態 (2) 2. 找到 NPC 2120000 3. 任務有日期限制 4. 這個任務在接取時,會透過任務腳本 10074 進行 得知狀況後,我決定將日期刪除,並且從資料表 queststatus 中, 直接先讓我的角色對 10073 這個任務是完成狀態,並且召喚NPC 2120000 ![]() NPC 順利亮出燈號可以接,但卻發現點了沒反應, 端口似乎沒有這個任務需要的腳本。 現在 我們必須親自寫出一篇腳本。 從一開始的回報跟攻略我們可以知道,這個任務在接取後會給一個變身藥水, 並且不用任何條件。 這邊先給任務腳本常用的判斷 isQuestActive() = 任務啟動中判斷 isQuestFinished() = 任務完成判斷 getQuestStatus() = 獲取任務狀態 1 =進行中 2 = 完成 forceCompleteQuest() = 強制任務完成 forceStartQuest() = 強制任務開始 sendAcceptDecline("文字") = 顯示接受或拒絕選項 我直接參考別的任務腳本寫法,寫出了一篇符合要求的腳本。
代碼:
現在任務可以正常接取了。 ![]() 為此,客戶回報的問題已解決,接下來要處理第二項問題。 這裡提到後一個任務,也就是 10075 沒有腳本支援, 我直接查看攻略瞭解 10075 是怎麼玩的。 從下圖可以知道,要到一個叫做 像框室 的地圖,點選圖畫並按照順序, 可以進入最終的隱藏地圖破解任務。 ![]() 而在實際查看後得知,上面的相框都是NPC,並不是任務腳本, 因此我們要做出對話NPC,同時要在腦袋中思考整篇腳本的製作邏輯。 我們重複前幾個步驟,瞭解整篇任務的原先官方設計後,得出腳本的設計條件。 1. 畫框要按照順序才能解 2. 如果沒按照順序則沒反應 3. 要玩到這任務需要 10074 這個任務正在進行中 接著就是考驗腳本邏輯的時刻了,這邊就是經驗累積, 這裡,我直接拿其中一個腳本完成品做解說 ![]() 這裡的任務 5000 系列的任務,是我自訂的任務代碼,方便腳本進行判斷, 請記得如果要做類似設計時,要先確認自己自訂的任務代碼, 是不是已經存在於 Quest.wz 中。 接著就依此類推的設計,所有腳本的範本如下,可拿去參考。 ![]() 以上,就是完成的問題排除過程。 如有其他問題歡迎留言。 |