《火炬之光2》各類型MOD文件修改方法及部分技巧介紹
MEDIA文件夾內的文件大致有這些類型: DAT,LAYOUT,RAW,MESH,HIE,TEMPLATE,ANIMATION,SKELETON等.
除了以上這些類型外,還有圖片文件PNG和DDS,字體文件TTF和FONT,這兩類就不多做介紹了.
注意:所有文件名和后綴名都必須是大寫,否則游戲無法識別!!!
1.DAT文件
DAT文件是當前可以MOD最主要的部分,也是最容易修改的部分,多數MOD教程都有對特點DAT文件的修改介紹,所以這里就只介紹一些基礎性的知識.
DAT文件首先需要使用dat2txt轉換成txt文件才能進行修改.新建txt文件也可以,但是要保證編碼格式為UTF-16,如果你沒有這個能力,還是修改轉換過來的txt文件來得簡單.dat2txt軟件建議使用py版本的,因為可以看到源代碼,并且有tl2_dat_strings.txt文件(exe版本不確定是否有),會很有優勢.
DAT文件的結構是一個嵌套型的結構,使用[XXX]...[/XXX]的結構來進行嵌套,其中XXX為相應嵌套關鍵字,省略號里的內容為此關鍵字下定義的數據.具體什么時候需要進行嵌套,請自行參考相似文件.
一個DAT文件的嵌套結構可能是:
[A]
...
[B]
...
[/B]
...
[C]
...
[/C]
...
[/A]
這樣的多層結構,甚至更加復雜,所以在修改這樣的文件時,很可能因為嵌套對應錯誤而發生無法轉換的情況(技能修改常出現這個問題).
當你嵌套結構有誤時,其報錯方式是停留在dos窗口,并顯示類似如下的報錯情況:
因此,只要你看見line XXX的錯誤,你直接到對應行找嵌套錯誤就可以了.
對于DAT文件內的一行數據,比如:
<INTEGER>STRENGTH_REQUIRED:30
其中<>中的內容是數據類型,包括:
INTEGER:整型,也就是整數,一般來說應該是32位的,范圍為-2,147,483,648 到2,147,483,647.但是部分GUID的類型也是INTEGER,其實際為64位整型,也就是INTER64
INTEGER64:64位整型,范圍為-9,223,372,036,854,775,808 到9,223,372,036,854,775,807.所以寫GUID時千萬別超過這個范圍.
FLOAT:浮點數,也就是小數.
STRING:字符串型,也就是一組字符,比如一個路徑,一個名字等等.
BOOL:布爾型,只有兩個值,true代表真,false代表假.
TRANSLATE:翻譯型,也就是顯示在游戲中的文字,如果是中文版的游戲,這一項可以為中文.此外這一項還可以使用一些特定的關鍵字來調用游戲內部參數,也可以用十六進制的顏色表示來設定顯示顏色.
<>和:之間的部分(例子中STRENGTH_REQUIRED)是關鍵字:
所謂關鍵字,就是定義這一項屬性是什么,比如STRENGTH_REQUIRED就是這件裝備的力量要求.
一般關鍵字的選擇只能從同類文件中尋找,因為你所寫的關鍵字只要和系統內設定的有一點點不一致,就無法生效,并且有可能導致無法轉換回DAT文件.
但是有些時候盲目地找關鍵字會很麻煩,所以這里有一個小技巧:在tl2_dat_strings.txt中找,這個文件在py版的dat2txt中有.
tl2_dat_strings.txt中列出了所有已經解析出來的,可以轉換的可能關鍵字,如果某個關鍵字不在這個列表里,其在最后的txt文件中一定是以hash碼的形式存放的,比如0x9b4df640.
:后的部分是該屬性的具體值:
必須要滿足該值與數據類型的一致性才能進行轉換.
2.HIE文件
MEDIA文件夾內的HIE文件只有兩個:FEATURETAGS.HIE和UNITTYPES.HIE,前者可能是定義一些物件的,后者是定義物品類型的.
HIE文件也可以使用dat2txt進行轉換.
3.TEMPLATE文件
TEMPLATE文件是定義地圖類型的,完成部分地圖參數,地圖隨機性,地圖聲效,光影等方面的設定,上一級文件是DUNGEONS文件夾內的文件,下一級文件是通目錄下子文件夾內的LAYOUT文件.
TEMPLATE文件也可以使用dat2txt進行轉換.
4.ANIMATION文件
ANIMATION文件是定義模型動作參數的文件,可以使用dat2txt進行轉換.1代的模型有類似的文件,不過可以之間用記事本打開,移植時需要注意二代的ANIMATION文件會多一些參數,需要手動添加.
5.SKELETON,MESH文件
這兩個文件都是需要3D模型技術的,我并不會修改.1代模型移植時,兩者都可以直接移植.
6.RAW文件
MEIDA文件夾下的RAW文件一共7個,RAW文件可以使用raw2txt進行轉換,轉換后的文件格式與DAT文件轉換后的文件格式類似.
RAW文件是類似于注冊表的一個文件,用于將新添加的項進行注冊,有些項目如果不注冊,則添加無效.
不同的RAW文件的注冊方法不同,請根據同文件下其它項目的注冊方法進行注冊.
由于RAW文件有很多項目的含義仍不清楚(UNKNOWN項),所以當你要新加項目是,選用最接近項目的參數即可.
RAW文件還負責最底層的隨機,比如SPAWNCLASS文件夾的隨機掉落文件一般只到某類物品,比如UNIQUE WAND,這時候游戲就會調用RAW文件中的RARITY參數進行掉落,RARITY參數與WEIGHT參數效果類似,越大掉落概率越高.
各個RAW文件注冊的內容:
AFFXIES.RAW:注冊詞綴,也就是AFFIXES文件夾下的內容,WEIGHT同樣決定了詞綴隨機到的概率.
MISSILES.RAW:注冊彈道,也就是MISSILES文件夾下的內容.
ROOMPIECES.RAW:注冊場景物品,也就是LEVELSETS文件夾下的內容.
SKILLS.RAW:注冊技能,也就是SKILLS文件夾下的內容.
TRIGGERABLES.RAW:注冊觸發器,也就是TRIGGERABLES.RAW文件夾下的內容.
UI.RAW:注冊用戶界面,是UI文件夾下的LAYOUT文件.
UNITDATA.RAW:注冊單位,是UNITS文件夾下的內容,包括物品,怪物,人物,觸發裝置.
7.LAYOUT文件
LAYOUT文件需要使用layout編輯器來進行修改,由于當前該編輯器功能很弱,所以可以修改的內容很少.當前所能做到的只有學習現有layout實現新功能.
首先介紹一下layout編輯器的界面:
1:菜單欄:需要注意的是上面有搜索功能,初步確定想要修改的內容在哪就靠它了.
2.LAYOUT文件結構樹狀圖:定義了一個樹狀的結構,子節點可以看作是父節點的補充定義.
3.節點性質:TYPE ID為類型編號,TYPE NAME為類型名(很多都是UNKNOWN),Object GUID為此節點的GUID,Object Name為此節點名字(無關緊要),Child Count為子節點的個數,Parent Object為父節點的GUID.
4.已設置屬性:也就是在這一個項目中已經進行設置的屬性,最左邊的X可以刪除這一行屬性,然后從左到右是屬性編號,屬性名字(可以自己設定),屬性數據類型(可以自己設定,但可能引起錯誤),數據值.
5.未設置屬性:也就是在這一個項目中可以進行設置的屬性,最左邊的+可以添加這一行.
需要著重說明的兩個TYPE ID:
36: LOGIC GROUP
這個類型是定義邏輯關系的,比如一個按鈕按下后執行怎樣的操作等等,當前可以做的只有使用原有的邏輯來完成新的功能.
這一個節點中Child Count項變成了Logic Group Count.其每一個子節點為一個邏輯,每個邏輯可以完成一項或幾項功能,最簡單的為指向功能:
右上角的Target Object GUID即為指向的單元.左上角為此邏輯在此邏輯組(Logic Group)內的編號.
下面的每一項為一個邏輯,也就是當指向單元滿足了Event項目內設定的內容時,Target Group所指向的單元執行Action內指定的操作.
35:TIMELINE
這個類型是定義時間軸的,里面的內容可能有所缺失,暫時修改起來有一定難度.
其它TYPE ID中數據類型的判斷:
當前layout編輯器非常粗糙,很多屬性都是沒有名字,沒有類型(默認為BINARY),這對我們修改layout文件很不利.
這里有一些小技巧可以判斷屬性的類型,但是在改變類型前一定要切記備份layout文件和layout編輯器下的ObjectMetadata.xml和NameMappings.xml文件.因為有些時候錯誤的數據類型會導致layout文件損壞以及layout編輯器工作不正常.
首先,當你看見XX-00-XX-00-XX-00-XX-00這樣的數據時,你可以嘗試將類型改為STRING,一般來說就能出現正常的字符串.但是有些時候并不會有效,這時候你可以嘗試刪掉最開頭的XX-00-,再進行轉換.這是因為,有些項目中會存儲這個字符串的長度(十六進制),也就是最開始的XX-00,你可以修改后,自行計算長度在轉換回BINARY后添加.
其次,當你看到XX-XX-XX-XX的數據時,你可以嘗試選擇INT32和FLOAT類型,具體選用哪種可以根據標綠的四個值來判斷,如果全為0或者全為F,一般是INT32類型,否則為FLOAT類型,當然,你轉換數據后,也可以從數據是否合理(比如特別大或者特別小的數據一般是錯誤的)得到一個大致的判斷.
記一個XX為長度1的話,如果數據長度為4的倍數,也就是4n時,你可以嘗試FLOATXY(8),FLOATXYZ(12),INT32XY(8),INT32XYZ(12).
如果數據長度為4n+2時,一般為float[]和int32[],其中最開始的兩個長度為后面的項目數(n).
更多《火炬之光2》各類型MOD文件修改方法及部分技巧介紹相關問題
問題:《劍靈》提升40幀的黑科技后續優化界面方案圖為改漢化文件方法但是負優
回答:美少女的體液都是香的 詳情 >
問題:《最終幻想》簡單總結下ff7re的一些戰斗技巧
回答:2021年1月5日簽到 詳情 >
問題:《龍之谷2》【禮包】PC端多玩禮包領取方法
回答:找來干嘛?又不能睡 詳情 >
問題:《巫師3》1.32版如何用負重mod!
回答:不錯,設定挺新,好活 詳情 >
問題:求助:看門狗2 檢測到禁止的windows內核修改 現在無法
回答:真快,我才湊了三件,打了兩天了 詳情 >