很多mod都會動到rpg_param.xml這個檔案
早期版本常常會有相衝突的情況
這篇文章教你如何將多個使用到rpg_param.xml的mod整合成一個新的mod
一、前置作業 - 提取遊戲中的原始xml檔
二、前置作業 - 下載基本MOD
接著我們需要一個基本mod,下載基本MOD好處是只要修改已有檔案即可,當然你要自己開記事本從頭寫起也是可以。這邊我們拿這個做為基本MOD:https://www.nexusmods.com/kingdomcomedeliverance/mods/1087,Nexus網站使用方法自行Google。
param_demo資料夾
- Data資料夾
- IncreasedCarryWeight.pak
- mod.manifest
--------------------------------------------------------
三、修改mod.manifest
四、取出mod的rpg_param.xml
<rows>
<row rpg_param_key="BaseInventoryCapacity" rpg_param_value="150" />
<rows>
五、比對原始xml找出修改內容
<row rpg_param_key="BaseInventoryCapacity" rpg_param_value="999999999" />
<row rpg_param_key="HerbGatherSkillToRadius" rpg_param_value="25" />
--------------------------------------------------------
<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
<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>
<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>
--------------------------------------------------------
九、打包xml成pak
Libs資料夾
- Tables資料夾
- rpg資料夾
- rpg_param__param_demo.xml
- perk_rpg_param_override__param_demo.xml
十、大功告成
完成後檢查一下:
最終完成的資料夾格式如下:
--------------------------------------------------------
param_demo資料夾
- Data資料夾
- param_demo.pak
- mod.manifest
--------------------------------------------------------
注意,如果下載的mod是採新版格式是沒問題,但如果仍為舊版格式,又有使用到rpg_param.xml,就先把它整合進你的mod以免發生衝突。確認mod無衝突後就能進遊戲做測試了。
早期版本常常會有相衝突的情況
這篇文章教你如何將多個使用到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:https://www.nexusmods.com/kingdomcomedeliverance/mods/1087,Nexus網站使用方法自行Google。
- 下載好後再新建一個資料夾,命名param_demo (或你想要的英文名做為mod名稱)。
- 把下載壓縮檔裡的檔案丟進param_demo資料夾裡。
- 資料夾格式會是這樣
param_demo資料夾
- Data資料夾
- IncreasedCarryWeight.pak
- mod.manifest
--------------------------------------------------------
三、修改mod.manifest
- 用記事本打開mod.manifest。
- 把<name>Increased Carry Weight</name>改成<name>param_demo</name>。
- <name>是mod名稱,可自取你喜歡的英文名。
- 其餘資訊像作者的隨意。
四、取出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無衝突後就能進遊戲做測試了。