前往
大廳
主題

【天國降臨:救贖】MOD衝突合併教學

mP3+Z | 2021-01-07 08:53:13 | 巴幣 0 | 人氣 351

很多mod都會動到rpg_param.xml這個檔案
早期版本常常會有相衝突的情況
這篇文章教你如何將多個使用到rpg_param.xml的mod整合成一個新的mod

一、前置作業 - 提取遊戲中的原始xml檔
  • 首先你讓檔案能「顯示副檔名」,方法自行Google。
  • 新建一個資料夾,命名原始檔
  • 到\KingdomComeDeliverance\Data\裡,複製Tables.pak檔丟到原始檔資料夾
  • 把Tables.pak改名成Tables.zip後用解壓縮軟體開啟
  • 取出\Libs\Tables\rpg\裡頭的rpg_param.xml跟perk_rpg_param_override.xml丟進原始檔資料夾
  • 這兩個檔案在步驟五會使用到。


二、前置作業 - 下載基本MOD
    接著我們需要一個基本mod,下載基本MOD好處是只要修改已有檔案即可,當然你要自己開記事本從頭寫起也是可以。這邊我們拿這個做為基本MOD:https://www.nexusmods.com/kingdomcomedeliverance/mods/1087,Nexus網站使用方法自行Google。
  • 下載好後再新建一個資料夾,命名param_demo (或你想要的英文名做為mod名稱)。
  • 把下載壓縮檔裡的檔案丟進param_demo資料夾裡。
  • 資料夾格式會是這樣
            --------------------------------------------------------
            param_demo資料夾
             - Data資料夾
              - IncreasedCarryWeight.pak    
             - mod.manifest
            --------------------------------------------------------


三、修改mod.manifest
  1. 用記事本打開mod.manifest。
  2. 把<name>Increased Carry Weight</name>改成<name>param_demo</name>。
  3. <name>是mod名稱,可自取你喜歡的英文名。
  4. 其餘資訊像作者的隨意。


四、取出mod的rpg_param.xml
  • 把IncreasedCarryWeight.pak  改名 param_demo.zip並打開,取出rpg_param.xml。
  • 接著重點來了,把rpg_param.xml改名「rpg_param__param_demo.xml」。注意rpg_param後是接兩個下底線再接mod.manifest裡頭<name>的值。這是最新版才有mod格式,讓你可以只修想要的參數而不會覆蓋其他無關參數的值。
  • 接著打開rpg_param__param_demo.xml
  • 你可以看到   
        --------------------------------------------------------   
        <rows>
              <row rpg_param_key="BaseInventoryCapacity" rpg_param_value="150" />
        <rows>
        -------------------------------------------------------
其中「<row rpg_param_key.....」這一行就是此mod的做的修改內容,表示把基本負重修改成150。

註:早期的mod都是直接使用內建的rpg_param.xml,這會導致後面的mod會覆蓋前面的mod的值,結果就是兩個mod有衝突只能擇一使用。因此,新版的做法是只需要放上修改過的值,這樣就不會覆蓋舊值的情況發生。



五、比對原始xml找出修改內容
  • 這邊拿採集範圍mod做範例:https://www.nexusmods.com/kingdomcomedeliverance/mods/863
  • 下載好後照前述方法提取出此mod的rpg_param.xml並用記事本打開。你會發現這個xml有100多行,要找出修改哪一條也太累了。這時候要靠比對軟體像是WinMerge找出兩個相異的行數,載點跟用法也請自行google。
  • 接著你把步驟一提取的原始rpg_param.xml檔案,拿來跟mod的rpg_param.xml做比對。
  • 經過WinMerge比對後找出有修改的行數有兩個
            --------------------------------------------------------   
                  <row rpg_param_key="BaseInventoryCapacity" rpg_param_value="999999999" />
                  <row rpg_param_key="HerbGatherSkillToRadius" rpg_param_value="25" />
            --------------------------------------------------------
            
  • 第一個我們已經知道是修改負重所以不用理他,把第二行複製並貼上到你的mod資料夾裡頭rpg_param__param_demo.xml中,結果應該會是這樣          
  --------------------------------------------------------   
            <rows>
                  <row rpg_param_key="BaseInventoryCapacity" rpg_param_value="150" />
                  <row rpg_param_key="HerbGatherSkillToRadius" rpg_param_value="25" />
            <rows>
            --------------------------------------------------------
            這樣就表示你把採集範圍mod合併到你自己的mod中了。完成後儲存檔案。



六、修改perk_rpg_param_override
    有的mod會動到其他檔案 像是這個解除修理耐久度限制的mod:https://www.nexusmods.com/kingdomcomedeliverance/mods/938
  •     你會發現pak檔裡頭多了一個perk_rpg_param_override.xml。
  •     按照步驟二的方式,先複製這個檔案到你的mod資料夾並改名成新格式perk_rpg_param_override__param_demo.xml
  •     再來按照步驟五的方法比對原始檔找出修改內容為
            --------------------------------------------------------   
                  <row perk_id="01c3b32a-5751-4c98-b6ab-258d02370382" rpg_param_key="RepairKitItemHealthBestLimit" rpg_param_value="" />
                  <row perk_id="01c3b32a-5751-4c98-b6ab-258d02370382" rpg_param_key="RepairKitItemHealthDefaultLimit" rpg_param_value="" />
            --------------------------------------------------------

  • 記住新版的mod格式你只需要保留有修改的行數,所以把其他不需要的行數刪掉後會長這樣
            --------------------------------------------------------   
            <rows>
                   <row perk_id="01c3b32a-5751-4c98-b6ab-258d02370382" rpg_param_key="RepairKitItemHealthBestLimit" rpg_param_value="" />
                  <row perk_id="01c3b32a-5751-4c98-b6ab-258d02370382" rpg_param_key="RepairKitItemHealthDefaultLimit" rpg_param_value="" />
            <rows>
            --------------------------------------------------------
            完成後儲存檔案。


七、對應perk_rpg_param_override修改rpg_param
再來比較特別的是只要perk_rpg_param_override裡頭有的值,在rpg_param檔案也要有對應值,你可以看一下原始檔的rpg_param.xml裡是沒有這兩個值的,所以我們的rpg_param__param_demo.xml要補進這兩個值,但要刪除perk_id,結果會是這樣:
            --------------------------------------------------------   
            <rows>
                  <row rpg_param_key="BaseInventoryCapacity" rpg_param_value="150" />
                  <row rpg_param_key="HerbGatherSkillToRadius" rpg_param_value="25" />
                  <row rpg_param_key="RepairKitItemHealthBestLimit" rpg_param_value="" />
                  <row rpg_param_key="RepairKitItemHealthDefaultLimit" rpg_param_value="" />
            <rows>
            --------------------------------------------------------

八、將參數調整到你要的值
調整一下剛剛整合進你的mod的內容到你想要的值
  • 負重:mod值為150,你想要無限負重可以改為9000或
  • 採集距離:mod值為25,是原始值的100倍,這半徑可能有幾百公尺,採集一次量就破千,建議1.25最好,大概半徑是2公尺,可以採集到你眼前看到的同類藥草。
  • 解除修理限制:他的值留空,我是把它改為0,正常運作。


九、打包xml成pak
  • 上述都完成後準備收尾,開啟param_demo.zip。進到\Libs\Tables\rpg\資料夾
  • 把修改好的rpg_param__param_demo.xml跟perk_rpg_param_override__param_demo.xml壓進rpg資料夾裡,注意要rpg_param.xml跟rpg_param.tbl是舊的檔案,必須刪掉
  • 打包好的zip檔應該如下:
            --------------------------------------------------------
            Libs資料夾
             - Tables資料夾
              - rpg資料夾
               - rpg_param__param_demo.xml
               - perk_rpg_param_override__param_demo.xml
            --------------------------------------------------------
  • 完成後把param_demo.zip改名為param_demo.pak



十、大功告成

完成後檢查一下:
  • mod.manifest裡頭的<name>值是param_demo
  • Data資料夾裡的pak檔名是param_demo.pak
  • pak裡頭的xml檔案,檔名末端是「__param_demo」結尾
  • 確保上面三者名稱一致。

最終完成的資料夾格式如下:
            --------------------------------------------------------
            param_demo資料夾
             - Data資料夾
              - param_demo.pak
             - mod.manifest
            --------------------------------------------------------

注意,如果下載的mod是採新版格式是沒問題,但如果仍為舊版格式,又有使用到rpg_param.xml,就先把它整合進你的mod以免發生衝突。確認mod無衝突後就能進遊戲做測試了。



創作回應

更多創作