3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 266|回复: 1
打印 上一主题 下一主题

[资源] Mycopunk dll静态修改

[复制链接]

56

主题

1086

帖子

1588

积分

游戏狂人

Rank: 6Rank: 6

贡献度
111
金元
11443
积分
1588
精华
0
注册时间
2012-9-8
跳转到指定楼层
主题
发表于 2025-8-16 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Roul'Soul 于 2025-8-16 22:43 编辑

分享下真菌朋克的dll静态修改记录,同时分享一下版本1.1.5h1的dll文件
对其他版本未必通用,请记得备份
可惜不会做mod,不然就更方便了,有兴趣可以自己做一下,thunderstore站就有这个游戏的mod,就是没几个,可安装重复升级还是从里面的Mod找到的代码位置

dll文件是
Mycopunk\Mycopunk_Data\ManagedMycopunk\Mycopunk_Data\Managed\Assembly-CSharp.dll
这个文件

dnspy无法直接修改这个dll,因为缺乏一些依赖项会报错,所以使用【编辑IL指令】来进行局部修改
修改时鼠标点击需要修改的部分位置,然后右键选择【编辑IL指令】,从弹出来的界面里,从高亮部分找到需要的参数,对操作码和操作符进行修改



技能无冷却
手雷/主技能/副技能,无冷却,但是手雷有动作冷却
结构:CooldownData
方法:AddCharge
找到
this.charge = Mathf.Clamp(this.charge + amount, 0f, (float)this.maxCharges);
改为
this.charge = Mathf.Clamp(this.charge + amount, 1f, (float)this.maxCharges);
修改方法:选择0f,右键编辑il指令,找到弹出界面高亮部分的操作码里的ldc.r4的右边的0,0改为1,保存


常态掉落升级
原本是小概率掉落升级,现在是小概率不掉落升级
类:EnemyManager
方法:SpawnEnemy_Server
找到
if (random.NextFloat() <= Global.Instance.GetEnemyUpgradeDropChance((EnemyType)Mathf.Min((int)enemyClass.config.enemyType, 1), enemyClass))
改为
if (random.NextFloat() > Global.Instance.GetEnemyUpgradeDropChance((EnemyType)Mathf.Min((int)enemyClass.config.enemyType, 1), enemyClass))
修改方法:选择<=右键编辑il指令,找到弹出来窗口中高亮部分的操作码bgt.un.s,点击选中,查找弹出来的下拉窗口里的ble.un.s操作码,选择后保存
注:这两个是IL代码里的符号代码,想要具体了解可以搜搜IL代码集看看


可安装同样的升级
普通的原本不能同效果安装的升级也可以多个叠加安装了
类:ModuleEquipSlots
方法:CancelStackingEquip
找到两个return true;
改为return false;
修改方法:选择true右键编辑il指令,找到弹出来窗口中高亮部分的操作码ldc.i4.1,点击选中,查找弹出来的下拉窗口里上一个的ldc.i4.0,选择后保存
注:这里的代码逻辑是0=false错误,1=true正确


随意叠加升级
随意重叠叠放升级,超出一些格子都可以,但是叠加后再拿下来会有图像残留,重新打开升级界面即可清除
类:ModuleEquipSlots
方法:CanEquip
找到
return false;
改为
return true;
修改方法:同上,不过是找到ldc.i4.0改成ldc.i4.1



本来还想找一下资源解锁方面的,但是想了想算了,资源如果真的不想打干脆自己用ce随便改改就完事了,没必要这么麻烦
没有测试过多人联机会如何,我猜会报错?总之不建议尝试多人这么做,单机玩玩算了

以下是改好的几个dll分享,可能仅能用于1.1.5h1版本,覆盖替换记得备份


1.【技能无冷却】
2.【常态掉落升级】+【可安装同样的升级】
3.【可安装同样的升级】+【随意叠加升级】
4.【常态掉落升级】+【可安装同样的升级】+【随意叠加升级】-我在用的版本,升级流
5.【技能无冷却】+【常态掉落升级】+【可安装同样的升级】+【随意叠加升级】

链接: https://pan.baidu.com/s/1dU-TfT4DWpH2aS2SVcJt5Q?pwd=uafi 提取码: uafi

评分

1

查看全部评分

回复

使用道具 举报

56

主题

1086

帖子

1588

积分

游戏狂人

Rank: 6Rank: 6

贡献度
111
金元
11443
积分
1588
精华
0
注册时间
2012-9-8
舒服的沙发
 楼主| 发表于 2025-8-16 22:42 | 只看该作者
【后记】
类:PlayerData
方法:AddResource
this.resources[resource.ID] = Mathf.Min(this.GetResource(resource) + amount, resource.Max);
改为
this.resources[resource.ID] = Mathf.Min(this.GetResource(resource) + amount + 50, resource.Max);
每次获得任意物资的时候就会额外+50个,但是不会显示+50的数字,想显示就要把下面一个amount的后面也+50
改法:右键amount编辑il指令,找到ldarg.2操作码,选择它下面的一行add,右键,选择【在选区后添加指令】两次,会有两个nop空指令出来,点击nop,从上到下依次改为idc.14.s、add,并在idc.14.s后填上想改的数值
也可以选择add改为mul,就是乘,但是不知为何乘算会成倍的增加……


然后,我发现,就算可以随意叠加,能装的升级也是有极限的,大概是位置全都覆盖满了,记录被覆盖了,所以装完之后出去就会挤掉之前的相同位置的升级
不确定那个可重复安装的mod是不是做了新的记录进去,暂时不好解决
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-4 00:34 , Processed in 0.026778 second(s), 17 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表