您当前位置: 天堂123 > 天堂架設 > 天堂伺服器圖片對話檔分析篇

天堂伺服器圖片對話檔分析篇

2022/3/3

透過分析找尋特定NPC的對話檔,嘗試修改圖片或是加入圖片的內容,進而了解於對話檔內使用圖的方式。

版本資訊
客戶端版本
天堂(Lineage 3.81C)
核心版本
L1J-3.80c
前言
在開始分析前,請務必先將以下文章閱讀完畢。

NPC對應對話檔分析
了解如何找到NPC對應的對話檔。
分析
以下分析使用說話之島的芬來做分析修改範例。

1.使用座標位置找尋:
移動到NPC旁邊。

進入資料庫搜尋spawnlist_npc的location為芬。
透過npcid去搜尋對應的行動。
資料庫搜尋npcaction的npcid為70101。
最終可以取得對話檔名稱為fiin1。
SELECT * FROM spawnlist_npc WHERE location = '芬'
-- 70101
SELECT * FROM npcaction WHERE npcid = 70101
-- fiin1

2.使用抽檔程式抽檔:
使用抽檔工具去看fiin1對話檔。
註:抽檔工具請參考。PakViewer 介紹

以下為對話檔的內容,對應芬的對話框內容,可以發現是對應的上的。

透過抽檔工具匯出該對話檔fiin1-c.html。
4.編輯對話檔:
此處我們希望在對話檔中插入幾張圖片做顯示。
修改前先對插入圖片HTML標籤做說明。<如果有html經驗,請直接忽略>
<img>:
說明:HTML img圖片標籤用來在網頁上插入圖片,增加網頁的豐富程度。
屬性:
src:圖片網址,必要項目。<參數對應客戶端內的img檔名稱>
tooltip:當滑鼠游標移到圖片上時出現的提示。
以下屬性在客戶端中是沒有效果的:
border:圖片邊框,例如border="0"代表邊框為0。
alt:圖片替代文字,當圖片顯示失效,則顯示alt文字。
title:圖片文字標示,當滑鼠移經圖片,自動顯示的文字。
width:圖片寬度,例如width="120px"代表寬度限制在120px。
height:圖片高度,例如height="100px"代表高度限制在100px。
下方為編輯後的對話檔內容:
<body>
   <font fg=ffffff>
      <p align=left>芬:</p>
   </font>
   <br>
   戰爭結束了,和平到來了?不要騙人了! 我妹妹在3天前才因為妖魔而受傷,現在都不能走路了!<br>
   <br>
   什麼亞丁守護團,要當守護團就要好好做! 明知道那個洞穴很危險卻不去封掉,還不斷的讓怪物跑出來!<br>
   <br>
   <img src="#3431" tooltip="當滑鼠游標移到圖片上時出現的提示"></img>
</body>
以上的修改說明:
於最下方加入一張3431的圖片。
3431是什麼圖片,請使用抽檔預覽工具觀看即可。

修改完畢後,將檔案儲存,並讓天堂進行吃檔。
再次進入遊戲與NPC對話,可以看到其效果。

注意事項
設定圖片的時候,所使用的客戶端img檔,其檔名是有使用順序的。
當對話檔內設定的src="#3431"時,根據客戶端語系的不同而讀取的檔案名稱順序亦會不同。

註:檔案名稱後面的c是繁體中文、h是簡體中文、j是日文、e是英文、k是韓文..等等。

此處用繁體中文來做示範:

範例一:

當客戶端內有以下img檔存在時:
3431.img
3431c.img
優先使用3431c.img做顯示。
範例二:

當客戶端內有以下img檔存在時:
3431.img
使用3431.img做顯示。
規則說明:
同組數字,優先讀C,沒C的話,讀數字。

以上規則由Discord-柴犬網遊技研所的”骷髏弓箭手“成員提供的資訊,非常感謝。

額外問題
可以看到商店的買和賣是透過圖片呈現的,分別為#312、#314;
然後透過抽檔預覽程式去看檔名為312.img、314.img、312c.img、314c.img,會發現圖片是不一致的。

初步有稍微翻找過核心原始碼、客戶端xml檔,並未查到有用的資訊來解釋上述的問題。