免責聲明:
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

這次比較單純, 這兩個版本間並沒有欄位的差異, 回到我們目前的資料庫寫入
好了, 火龍現在除了會噴火, 也會說話囉
