網上找了好久沒找到這個版本的大背包mod,所以自己動手改。
要修改的文件:
7DaysToDie_Data\Managed\Assembly-CSharp.dll
7 Days To Die\Data\Config\XUi\windows.xml
7 Days To Die\Data\Config\xui.xml
修改前記得對以上文件做好備份
如果網上有大背包mod,一般都會提供以上3個可供替換的文件,但請確定你的游戲版本號和mod的版本號一致(B后面的數字也要一樣,如A15.2 B6),不然替換的dll文件會導致游戲出錯。
我的游戲是單機版的A15.2 (B6),網上找不到對應的大背包mod,只好嘗試自己修改了。
所以如果你沒有找到合適的大背包mod,想自己修改的話可以繼續看下面的內容。
修改辦法:
1.修改Assembly-CSharp.dll文件,這個需要反編譯軟件ILSpy+Reflexil插件才能修改。
軟件下載地址:https://download.csdn.net/download/fengzhao33/12487897
①解壓后運行ILSpy.exe,點擊File->Open,選擇Assembly-CSharp.dll文件(注意做好備份),選擇打開。
可以看到左側文件列表新添加了一個文件(黃圈所示)
②點擊搜索按鈕(上圖綠圈),第一步,輸入Bag,第二步,選擇右側Types and Members為Type,第三步,雙擊結果列表中的Bag
③然后左側就會顯示搜索到的Bag,第一步點擊Bag前面的+號展開,第二步點擊AddItem(ItemStack):bool方法,第三步點擊菜單欄的齒輪按鈕
④點擊齒輪按鈕后,可以看到右側的界面最下方出現一個屬性表格,調整綠色邊框的大小,可以看到有一個數字是32,這就是要修改的目標
⑤鼠標右鍵,點擊Edit,將32改為96,然后點擊Update保存.
這個數字表示背包的方格數的上限,我改為96是因為我要把背包改為6行16列(96格)或者以后調整為7行13列(91格)的背包,保證游戲里背包的方格數<=數字上限即可。超出這個上限的方格會無法使用,比如如果這里的32沒改(沒有改dll)的話,你直接去第二步的windows.xml中修改背包數為6*16,那么雖然進入游戲中背包顯示為96個方格,但是你只能使用32格,其余的無法使用。
⑥Bag屬性修改完之后,我們點擊Bag前面的-號折疊起來。然后我們搜索第二個要修改的屬性PlayerDataFile,注意右側的Search for選項要選擇Type,雙擊搜到的結果PlayerDataFile
⑦點擊左側列表出現的PlayerDataFile前面的+號展開,拉到最下面選擇倒數第4個紅色的Read(BinaryReader,unit):void方法,右側出現一個屬性表格,可以看到48行,56行,64行,有3個32。
⑧鼠標右鍵,Edit,將32改為96,點擊update保存,然后將其他兩處的32也都修改為96,每改完一處注意保存(update)
到這里PlayerDataFile屬性就修改完了,我們點擊前面的-號折疊起來。
⑨最后一步:將Assembly-CSharp折疊起來,鼠標右鍵,選擇Save as,將文件保存為Assembly-CSharp.dll,然后放入對應的目錄(7DaysToDie_Data\Managed\)進行替換即可
到這里dll文件的修改就完成了。
2.修改windows.xml,查找depth="1" name="inventory" 這一行
改前:
depth="1" name="inventory" rows="4" cols="8"
改后
depth="1" name="inventory" rows="7" cols="13"
3.修改xui.xml,修改大背包后格子太大了,把格子縮小一點。
改前:
<ruleset name="default" scale="1.255" stackpanel_scale="1.05">
改后:
<ruleset name="default" scale="1.0" stackpanel_scale="1.0">
4過程修改完畢,此時已經調整為91格背包,即7*13格物品欄,但是會遮擋右側的狀態欄以及熔爐等物品。
所以有了第4步,調整 物品欄(windowBackpack),狀態欄(emptyInfoPanel/itemInfoPanel)的寬度對齊。
調整過程看下面黑色加粗部分即可,如果你想改的不是7*13而是a*b,請參考下面修改的原理,同理。
文件:windows.xml
1.調整物品欄寬度
windowBackpack(383行)
調整383行的width(603->978)height(349->574)
寬度:改之前603=8*75+3; 改之后 978=13*75+3 (表格的列數*每列的寬度+3)
高度:改之前349=43+303+(3);改之后574=43+528+(3)
其中43是windowbackpack中的第一個panel(header),顯示物品欄的圖標和物品總價,高度43是寫死的。
303是物品欄的第二個panel(content),也就是表格背包,303=4*75+(3),即4行背包的高度+3,所以這個要調整為背包的行數+3
調整392行的height(303->528)
392行定義了第二個panel的高度,即表格背包的高度,所以原來的303是4行背包的高度+3,那么修改為7*13的表格后,高度為7*75+3=528
調整394行的width(603->978),height(303->528)
暫不清楚這個寬度和高度干嘛的。
調整以后效果圖如下
可以看到,黑色背景的物品欄標簽已經和背包一樣長度了,但是金幣和圖標的位置還在原來的位置,定義的位置在388行的pos和389行的pos,將這兩個pos的第一個數字向后平移5個表格(75*5)
調整388行pos(472,-8)->(847,-8)
847=472+75*5
調整389行pos(577,-10)->(952,-10)
952=577+75*5
重啟游戲,物品欄的金幣和錢包圖標已經顯示在最右邊,狀態欄和熔爐也不再遮擋了。完美。
2調整上面的狀態欄的寬度
這個位置實際上有兩個狀態欄,空白狀態下的檢查狀態欄(如上圖),以及點擊某項物品后的物品信息狀態欄(如下圖)。
上圖中的檢查這個狀態欄在298行,window名稱為emptyInfoPanel,可以看到有兩個603(298行和305行),調整為978即可
調整298行width(603->978)
調整305行width(603->978)
上圖中的物品詳細信息狀態欄在311行(itemInfoPanel)首先要調整寬度
調整311行width(603->978)
第一行的售價和圖標也是通過pos定義的,分別在315行和316行,因此pos中的第一個數值需要往后順延5個表格的寬度,與下面的背包欄對齊。
調整315行pos(350,-8)->(725,-8)
725=350+75*5;
調整316行pos(577,-10)->(952,-10)
952=577+75*5;
調整320行width(603->978)暫不清楚這個標簽有什么用,先這么改
下面的界面分為左半部和右半部,
左半部顯示了棉襖的圖片,品質,動作,可以不用調整
右半部分為上中下3個小部分,需要調整這三個小部分的寬度
右上:
調整354行width(447->822)
原來的寬度是6個小方塊的寬度-3,調整后是11個小方塊的寬度*3
447=6*75-3;822=11*75-3;
調整356行width(453->828)
這個標簽不知道有什么用,先這么改。
右中:
調整361行width(447->822)
調整363行width(453->828)
調整364行width(440->815)
中間部分的標簽長度原來是6個小方塊寬度-10,調整后是11個小方塊寬度-10
440=6*75-10;815=11*75-10;
右下:
調整367行cols(6->11)
即下半部分的表格寬度列數由6列調整為11列
看效果如下:
檢查狀態欄顯示正確。
物品信息狀態欄顯示正確