天堂私服 | NPC對應對話檔分析
章節用意
透過分析找尋特定NPC的對話檔,進而了解其對應的方式、進行抽檔或是修改;另外可反思自建NPC、對話檔…等等應用。
版本資訊
- 客戶端版本
- 天堂(Lineage 3.81C)
- 核心版本
- L1J-3.80c
前言
在開始分析前,請務必先將以下文章閱讀完畢。
- GM指令分析 (前往怪物)
- 了解
spawnlist資料表用途與欄位說明。 - 了解
spawnlist_npc資料表用途與欄位說明。
- 了解
- GM指令分析 (創怪/創NPC)
- 了解創建
NPC時,會針對spawnlist_npc資料表寫入資料。
- 了解創建
- PakViewer 介紹
- 了解抽檔工具的使用。
- 額外提及:對話檔與
NPC的對應是使用npcaction資料表。- 當點擊
NPC時候會照這張表的設定去讀取相對應的html檔。
- 當點擊
分析
以下分析使用奇岩村的商店村傳送師-艾巴來做分析範例。
- 1.使用座標位置找尋:
- 移動到
NPC旁邊。 - 輸入
/loc指令輸出當前的人物座標位置。 - 可得
33439, 32809座標位置。
- 進入資料庫搜尋
spawnlist_npc的location為商店村傳送師。1
SELECT * FROM spawnlist_npc WHERE location = '商店村傳送師'
- 可見列出
19筆,找尋locx與locy接近33439, 32809座標的資料。 - 可見
npc_templateid=50034。
- 透過
npcid去搜尋對應的行動。 - 資料庫搜尋
npcaction的npcid為50034。 - 可見列出
1筆,這邊我們只需先注意normal_action與teleport_url;其他的欄位下方有稍微解釋。normal_action= 一般對話檔(當人物為:中立、正義,顯示該對話檔內容)caotic_action= 混亂對話檔(當人物為:邪惡,顯示該對話檔內容)teleport_url= 傳送對話檔(主要用於傳送師,亦可以理解為第二頁對話檔)teleport_urla= 傳送對話檔(主要用於傳送師,亦可以理解為第二頁對話檔)註:建議自行找位
NPC去看對話檔內容,就可以理解其欄位用途。
- 可見有兩個對話檔名稱為
grtztele與grtztele1
- 移動到
- 2.使用抽檔工具查看:
- 這邊透過抽檔工具去看
grtztele與grtztele1這兩個對話檔。註:抽檔工具請參考。PakViewer 介紹
- 以下為這兩個對話檔的內容,對應艾巴的對話框內容,可以發現是對應的上的。


- 以下是遊戲內的對話檔動態示範。

- 這邊透過抽檔工具去看
結論
根據分析,大致上可以理出一些東西。
- 資料表:
npcaction.normal_action一般對話檔(當人物為:中立、正義,顯示該對話檔內容)。npcaction.caotic_action混亂對話檔(當人物為:邪惡,顯示該對話檔內容)。npcaction.teleport_url傳送對話檔(主要用於傳送師,亦可以理解為第二頁對話檔)。npcaction.teleport_urla傳送對話檔(主要用於傳送師,亦可以理解為第二頁對話檔)。
結語
此處透過座標位置去找尋NPC然後再透過npcid去找尋他對應的行動;或許有其他的方式也歡迎下面留言分享,作者就不另外教學了…。
原創文章真的不易,希望多多支持,感謝。
最後建議回顧一下首章天堂私服 | 天堂私服架設教學,了解其章節目錄。
免責聲明
- 本部落格文章中皆不提供任何所謂的遊戲「主程式」、「模擬器」、「登入器」…等等相關程式的下載點。
- 本部落格文章中所見之遊戲主程式和服務器端程序均來自網路發佈,版本歸原作者所有。
- 本部落格文章為研究SQL資料庫與修改JAVA語法使用,並非商業用途,亦無做營運事實等任何一切商業行為。
- 本部落格文章內容是為研究學習設計思想和原理為目的,絕沒有故意侵權或惡意抄襲、篡改其他遊戲內容!
