admin 发表于 2023-6-19 08:47:21

【天堂架设72】私服使用GM指令創立套裝

在開始分析前,要知道GM指令的指令效果與使用方式,才方便開啟除錯(Debug)進行分析。

效果:生成指定的套裝。
範例:

.itemset ${套裝名稱}
1.分析資料表:

先進入commands表,找到itemset的指令。
class_name是L1CreateItemSet。

2.分析程式碼:

透過搜尋L1CreateItemSet開啟程式碼。
src/l1j/server/server/command/executor/L1CreateItemSet.java

啟動模擬器除錯模式,並啟動天堂遊戲登入。
使用創立套裝的GM指令。(由於不知道套裝設定的名稱,先帶入1)
.imteset 1
會顯示1 是未定義的套裝內容。

回到IDEA,斷點於43。
回到天堂遊戲內,再次執行創立套裝的GM指令。
.imteset 1
使用評估表達式Evaluate Expression來分析GMCommandsConfig.ITEM_SETS。
可發現抓取的key為dkset。

點擊Mute Breakpoints將所有斷點先關閉,Resume Program恢復程式
回到天堂遊戲內,再次執行創立套裝的GM指令,將1改為dkset。
.imteset dkset
發現創立了死亡騎士套裝並且全部都是+10(請用鑑定卷軸鑑定)。

至此可以知道有設定一個死亡騎士的套裝,並且名稱為dkset且全部都是+10的。
此時我們繼續分析其他程式碼;關於GMCommandsConfig.ITEM_SETS的部分,後面會分析。
2.分析程式碼:

***本内容需购买可见***


到此基本上就對創立套裝的指令分析完成。
結論
程式碼:
src/l1j/server/server/command/executor/L1CreateItemSet.java
處理客戶端來的GM指令itemset的處理。
src/l1j/server/server/GMCommandsConfig.java
GM指令相關的設定檔,透過XML欄設定提供。
./data/xml/GmCommands/GMCommands.xml
存放GM指令對應的XML內容。

隨心 发表于 2024-3-8 07:44:31

++++++++++++++++++++++++++++++
页: [1]
查看完整版本: 【天堂架设72】私服使用GM指令創立套裝