您当前位置: 天堂123 > 天堂架設 > 私服客戶端和登入器與變身檔解密

私服客戶端和登入器與變身檔解密

2022/5/12


開始說明前,要先理解一些簡單的定義:

客戶端:表示天堂的主程式。
例:Lineage 3.81C、Lineage 7.2C、Lineage 8.8C。
登入器:表示私服的登入程式
例:L1Login-Login_363、L1Login-Login_380。
註:部分版本可能找不到對應的登入器版本,往往都是使用lin.bin檔直接做登入使用。

變身檔:基本上就是list.spr、list.spz檔,該部分有分為兩種 -
客戶端使用:
所謂的客戶端使用,就是在沒有使用登入器的方式去做登入時/或是登入器沒有設定讀取自定義變身檔的時候,客戶端所讀取的變身檔的一系列操作、動作編碼等等;此時候客戶端就是讀取text.pak內的list.spr、list.spz設定。
登入器使用:
登入器的使用,通常是針對登入器內提供的變身檔並打包成pak檔,並設定給登入器使用,此時就會讀取設定的pak變身檔設定。
問題
看完定義後,產生幾個疑問:

不使用登入器的變身檔:
客戶端到底是讀取list.spr、還是list.spz為主呢?
單修改list.spr或list.spz是否有效果?
單修改list.spr或list.spz其一是否會造成遊戲崩潰呢?
使用登入器的變身檔:
自定義變身檔未設定的部分,是否會讀取客戶端內的list.spr、list.spz的設定?
自定義變身檔未設定的部分,是否會與客戶端內的list.spr、list.spz的設定衝突?
分析
以下將針對上述產生的五個問題做嘗試並分析:

前置作業:
將登入器的Login.ini設定改為不讀取自定義的變身檔,並將客戶端內放的TW13081901.pak一併先刪除。
已先將相關的spr圖檔吃檔完成。
list.spr抽檔完成。
list.spz抽檔完成,並解密完成。
註:list.spr與list.spz會備份最原始檔已利後面的分析。

指令使用:
使用GM的權限角色。
輸入影像動畫指令。
.gfxid ${圖檔編號} ${數量} ${名稱}
此範例變身編號,使用的主要編號為362。
.gfxid 362 1 1
可見下圖,放置出來的圖檔並不會正常呼吸或是人物晃動,就是死板板的一張圖片。

註:該放置會在畫面上產生一個類似NPC的角色,當伺服器重開後,該NPC就會移除。

驗證一:
修改list.spr,新增#362(舊版死亡騎士-焚焰)的變身檔。
將list.spr丟至text目錄,並吃檔。
重新登入觀看結果。
依舊是死板板,表示沒有效果。

驗證二:
將原始的list.spr丟至text目錄,並吃檔,做還原的動作。
修改list.spz,新增#362(舊版死亡騎士-焚焰)的變身檔。
將list.spz丟至text目錄,並吃檔。<注意吃檔回去需加密>
重新登入觀看結果。
可見舊版死亡騎士-焚焰正常在呼吸,表示顯示正常。

根據上面的操作,可以對1、2、3的問題做出解釋:

客戶端是依list.spz為主。
單修改list.spr是沒有效果,list.spz是有效果的。
單修改是不會造成崩潰。
驗證三:
在不還原list.spz的情況下,使用登入器設定讀取自定義變身檔的情況下。
更新登入器Login.ini設定改為讀取自定義的變身檔,並將TW13081901.pak放置客戶端。
重新登入觀看結果。
結果是死板板,表示沒有效果。

驗證四:
修改登入器變身檔TW13081901.txt,新增#362(舊版死亡騎士-焚焰)的變身檔。
重新打包TW13081901.pak,並將TW13081901.pak再次放置客戶端覆蓋。
重新登入觀看結果。
可見舊版死亡騎士-焚焰正常在呼吸,表示顯示正常。

根據上面的操作,可以對4、5的問題做出解釋:

自定義變身檔未設定的部分是完全不讀取客戶端。
自定義變身檔未設定的部分不會與客戶端衝突。