天堂-龍不會放招的資料修補

January 9, 2024

免責聲明: 

1.本部落格僅做學習交流用, 所研討的主程式為網路發佈的版本, 不會提供任何的載點.

2.程式版權屬於原作者, 本文僅就網路資源進行程式面的分析研討, 並無任何商用行為.



網路上流傳的3.8版本主程式其中有DB的中文化, 

其中針對四龍, 玩家都有碰到一個問題就是並不會放招, 只會平A

既然打龍, 沒有秒殺的感覺未免有些無趣了



回到資料面, 仔細研究了一下得出如下圖的資料表關連


這個意思是說, 怪物也是NPC資料表的一員, NPC會不會有自己的技能, 如何放, 則會設定在怪物技能表(mobskill)

怪物技能表又有一個欄位是skillid 對應到真正會放出來的技能細節(skills)


但回到火龍先透過名字"巴拉卡斯"查到火龍的id = 45684

再拿45684這個id去查mobskill 就會發現...查無資料, 很明顯的資料短少


好啦, 怎麼辦呢, 這些遊戲數值不是我隨便可以變出來的, 

於是將腦筋動到了3.5版原始碼附加的日文資料庫匯出檔案,

這下mobskill有對應到看起來像樣的技能了


不過看起來不能直接使用這段insert 語法, 因為3.5跟3.8的這張table 差了幾個欄位,

下圖為3.8的資料與法

不過不用擔心, 這種比對的苦勞就請ChatGPT來處理, 

將兩個create table的語法提供給ChatGPT 並且將待補入的舊版本insert sql 並prompt讓AI來補完缺失的資料欄位將值預設為0 , 這步我有逐一寫入排查語法有沒有問題, 確認寫入後還剩一個問題, 就是skillid 對應到的技能是什麼?


一樣的圖, 倒數的欄位0數過來第一個不為0的欄位其實就是skillid 10052以及10028, 一樣的邏輯我們倒skills table來查找, 會發現也沒有這個skill的資料!


那就如法炮製, 到3.5版的日文資料備份語法skills.sql檔案中尋找 10052以及10028


這次比較單純, 這兩個版本間並沒有欄位的差異, 回到我們目前的資料庫寫入


好了, 火龍現在除了會噴火, 也會說話囉