各位打印仓们,是否苦恼于每周只能roll三次皮肤,很长时间roll不到自己喜欢的皮肤,为了方便各位打印仓使用自己喜欢的皮肤,本教程将会手把手教各位打印仓通过改文件实现游戏中所有皮肤可用
[叠甲]:作为单机游戏,修改本地文件完全合情合理,由此产生的各种装B问题属于个人道德范畴,与技术无关。
开箱即用
从下载地址下载Assembly-CSharp.dll,并覆盖位于
./OxygenNotIncluded/OxygenNotIncluded_Data/Managed
的 Assembly-CSharp.dll
请注意
每次更新/验证游戏完整性后需要重新替换
从 U52-622509 版本后,破解规则为将未拥有的更改为 1 个,拥有多个的数量不变,从而方便筛选 2+ 拆解
严禁随意拆解只拥有一个的皮肤,你可能根本没有这个皮肤,从而导致向科雷服务器发送许多错误信息,目前对科雷账号的影响未知,如有尝试,后果自负
到这里,有的打印仓就要抱怨了,为什么每次我都要重新下载一遍,就不能说说具体怎么实现的吗?
授人以渔
所需软件
dnSpy:一个开源的 .NET 程序调试和反编译工具。
操作步骤
使用 dnSpy 打开
./OxygenNotIncluded/OxygenNotIncluded_Data/Managed
在搜索框中,搜索
PermitItems.GetOwnedCount
你会看到类似以下内容
public static int GetOwnedCount(PermitResource permit)
{
int result = 0;
PermitItems.ItemInfo itemInfo;
if (PermitItems.Mappings.TryGetValue(permit.Id, out itemInfo))
{
result = KleiItems.GetOwnedItemCount(itemInfo.ItemType);
}
return result;
}
将结尾的
return result;
修改为
return result + 1;
编译&保存后重新启动游戏生效
基本原理:获取到拥有皮肤的数量,在此基础上返回值+1,未拥有的皮肤(数量0)就会变成数量1,从而实现使用所有皮肤的效果
如果有帮助,可用在GitHub上为我点个★Star