您当前位置: 天堂123 > 天堂架設 > L1J版私服GM全輔助指令分析

L1J版私服GM全輔助指令分析

2022/4/30



1.分析資料表:

先進入commands表,找到allbuff全輔助的資料。
class_name是L1AllBuff。

2.分析程式碼:

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

開啟後分析程式碼。
74~78建立一個陣列,存放需要施放的所有輔助魔法SkillId。
滑鼠可以放在隨便一個參數上,可以看到有提示註解,就可以知道是什麼輔助魔法。

80~86取得指令所要施放的角色名稱是否有在線上。

88這段程式碼,可以發現到有一個haste的方法。
按注鍵盤的Ctrl + 滑鼠左箭點選haste方法,開啟到此方法位置。
76~85在判斷是否已經有加速的狀態在身上,如果有的話,要先將狀態做刪除。
註:可以深入追一下killSkillEffectTimer方法,嘗試了解狀態是存放在哪、是如何刪除狀態。

87~98是判斷是否有這些負面狀態的魔法在身上,如果有的話,也要將這些狀態做刪除。
100施放加速技能在身上。
註:可以深入追一下setSkillEffect,裡面包含了addSkillEffect的使用。

102~106是人物動作的表現。
sendPackets給客戶端發送數據包。當客戶端收到,你在你的遊戲會面就會看到人物施放法術的動作聲音或是使用道具的動作聲音。
broadcastPacket給客戶端發送數據包(廣播),在可視你的人物角色範圍內的其他玩家,都會收到此數據包,會看到你的施法動作聲音或是使用道具的動作聲音。
註:這邊要可以猜測gfxId應該就是對應變身檔的編碼了。

回到L1AllBuff.java。
89這段程式碼,可以發現到有一個brave的方法。
按注鍵盤的Ctrl + 滑鼠左箭點選brave方法,開啟到此方法位置。
112~132在判斷是否已經有二段加速的狀態在身上,如果有的話,要先將狀態做刪除。
134施放二段加速技能(勇敢藥水)在身上。
136~141是人物動作的表現。

再回到L1AllBuff.java。
90這段程式碼,可以發現到有一個doPoly的方法。
這邊不特別分析講解,主要動作是指定施法變形術為變身檔編碼5641。
註:透過搜尋找到註解,大概可以確認,料庫polymorphs變身代碼表polyid等於圖檔編號。

回到L1AllBuff.java。
91~950將需要施放的所有輔助魔法的陣列資料,迴圈施放。
關於L1SkillUse().handleCommands這個方法,內部有很多的判斷與邏輯,建議可以除錯模式進行深入分析。
除錯