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

注册 登录

QQ登录

只需一步,快速开始

查看: 808|回复: 13
打印 上一主题 下一主题

[修改] 通过修改sts2.dll来解放部分mod需求

[复制链接]

1

主题

87

帖子

206

积分

中级玩家

Rank: 3Rank: 3

贡献度
10
金元
1660
积分
206
精华
0
注册时间
2012-3-20
跳转到指定楼层
主题
发表于 2026-3-19 03:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
由于18号更新导致MOD文件失效, 看到有人修改sts2.dll文件便能无需MOD进行简单的数值修改
所以就简单跟着AI学了一下该如何修改
首先去下载一个dnspy, 以下是我写给自己看的教程,本意是每次版本更新后我再跟着教程快速把我的需求再改一遍:

战斗金钱和战斗卡牌奖励数量:
搜“GenerateRewardsFor”,找到monster、elite、boss.
右键选编辑方法,在GoldProportion后面加上 * 5f        (每个类都有min和max这两项后面的proportion要改)
同时下面几行代码里的数字3改为4

删牌永不售罄:
搜MerchantCardRemovalEntry,然后搜SetUsed
应该能找到this.used = true
修改IL指令,将序号1里的操作码idc.i4.1  通过下拉菜单,改为idc.i4.0
确认,出来以后就能看到true改为false了

价格永远75:
搜CalcCost
从几个结果中找到merchant, 进入IL指令编辑,在0x19这里改为0x00就行

火堆回血:
搜GetBaseHealAmount, 改0.3m

暂时就那么多,没有任何编程基础,改着玩。

评分

2

查看全部评分

回复

使用道具 举报

0

主题

10

帖子

12

积分

新手玩家

Rank: 1

贡献度
0
金元
115
积分
12
精华
0
注册时间
2026-3-17
舒服的沙发
发表于 2026-3-19 10:51 来自手机 | 只看该作者
有详细点的教程吗?看不懂
回复 支持 反对

使用道具 举报

0

主题

340

帖子

531

积分

高级玩家

Rank: 4

贡献度
0
金元
5312
积分
531
精华
0
注册时间
2024-4-15
硬硬的板凳
发表于 2026-3-19 12:09 | 只看该作者
谢谢分享!!!很需要这个
回复 支持 反对

使用道具 举报

0

主题

67

帖子

98

积分

初级玩家

Rank: 2

贡献度
0
金元
979
积分
98
精华
0
注册时间
2023-5-2
冰凉的地板
发表于 2026-3-19 16:01 | 只看该作者
大佬,GenerateRewardsFor搜不到啊
回复 支持 反对

使用道具 举报

0

主题

340

帖子

531

积分

高级玩家

Rank: 4

贡献度
0
金元
5312
积分
531
精华
0
注册时间
2024-4-15
5#
发表于 2026-3-19 16:07 | 只看该作者
求助初始能量修改应该搜什么???
回复 支持 反对

使用道具 举报

1

主题

349

帖子

359

积分

高级玩家

Rank: 4

贡献度
0
金元
3587
积分
359
精华
0
注册时间
2013-8-24
6#
发表于 2026-3-19 21:13 | 只看该作者
我问了下AI,完善了一下,但是仍然找不到第一步奖励卡牌数量怎么改。
回复 支持 反对

使用道具 举报

1

主题

349

帖子

359

积分

高级玩家

Rank: 4

贡献度
0
金元
3587
积分
359
精华
0
注册时间
2013-8-24
7#
发表于 2026-3-19 21:13 | 只看该作者
这是《杀戮尖塔2(Slay the Spire 2)》通过 dnSpy 直接修改  sts2.dll  程序集的新手教程。核心原理是用工具打开游戏的核心文件  sts2.dll ,找到控制游戏逻辑的代码片段,修改其中的数值或逻辑后重新保存,从而实现作弊效果。

 

️ 前期准备(必做)

1. 下载工具:安装 dnSpy(.NET 反编译/编辑工具,官网或第三方正规渠道下载)。
2. 定位游戏文件:
- 打开 Steam,右键点击《杀戮尖塔2》→ 管理 → 浏览本地文件。
- 进入  data_sts2_windows_x86_64  文件夹,找到 sts2.dll。
3. 备份原文件:这是最重要的一步! 复制一份  sts2.dll  到其他文件夹备份。如果改坏了,用备份还原即可。

 

详细操作步骤

1. 准备工作

- 打开 dnSpy,点击菜单栏  文件 (File)  →  打开 (Open) ,选中游戏目录里的  sts2.dll 。
- 等待 dnSpy 加载完成(左侧会出现一堆类列表)。

2. 功能一:战斗金钱/卡牌奖励翻倍

- 搜索代码:按下  Ctrl+Shift+K (打开搜索),输入  GenerateRewardsFor  并搜索。
- 定位方法:在搜索结果中,找到属于  monster 、 elite 、 boss  相关的方法(通常是  GenerateRewardsFor  方法)。
- 修改数值:
- 右键点击该方法,选择 编辑类 (Edit Class) 或 编辑方法 (Edit Method)。
- 在代码中找到  GoldProportion  相关的行。
- 在  GoldProportion  后面加上  * 5f ( f  表示这是浮点数,代表5倍)。
- 同理:如果有  CardProportion (卡牌掉落率),也可以改成  * 5f 。

3. 功能二:删牌永不售罄

- 搜索代码:按下  Ctrl+Shift+K ,输入  MerchantCardRemovalEntry  并搜索。
- 定位方法:找到其中的  SetUsed  方法或相关逻辑。
- 修改逻辑:
- 找到类似  this.used = true  的代码。
- 将  true  改为  false 。
- 这样游戏就不会标记“删牌次数已使用”,你可以无限次免费删牌。

4. 功能三:价格永远75(商人删牌费)

- 搜索代码:按下  Ctrl+Shift+K ,在  MerchantCardRemovalEntry  类下,找到  CalcCost  方法。
- 修改IL代码:
- 右键点击  CalcCost  方法,选择 编辑 IL (Edit IL)。
- 在IL代码列表中,找到操作码为  ldc.r4 (或  ldc.m )的行。
- 找到数值为  75  或  25  的行,右键选择 编辑 (Edit)。
- 将数值改为你想要的固定价格(比如直接把75改成你想要的任意数字)。

5. 功能四:火堆回血修改

- 搜索代码:按下  Ctrl+Shift+K ,输入  GetBaseHealAmount  并搜索。
- 修改数值:
- 找到该方法,右键编辑。
- 将返回值  0.3f  改为你想要的回血比例(比如  1.0f  代表回满血, 2.0f  代表回2倍血量)。

 

保存修改

- 所有修改完成后,点击菜单栏  文件 (File)  → 保存全部 (Save All)。
- dnSpy 会重新编译并保存修改后的  sts2.dll 。
- 回到游戏,重启游戏即可生效。
回复 支持 1 反对 0

使用道具 举报

1

主题

1314

帖子

1585

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
15845
积分
1585
精华
0
注册时间
2013-4-5
8#
发表于 2026-3-20 20:49 | 只看该作者
编辑方法我什么都不改点编辑都报错,下面的IL指令的倒是改成功了
回复 支持 反对

使用道具 举报

2

主题

422

帖子

574

积分

高级玩家

Rank: 4

贡献度
7
金元
5459
积分
574
精华
0
注册时间
2009-12-12
9#
发表于 2026-3-20 20:58 | 只看该作者
ruhua2295210 发表于 2026-3-20 20:49
编辑方法我什么都不改点编辑都报错,下面的IL指令的倒是改成功了

不加F就可以
回复 支持 反对

使用道具 举报

2

主题

422

帖子

574

积分

高级玩家

Rank: 4

贡献度
7
金元
5459
积分
574
精华
0
注册时间
2009-12-12
10#
发表于 2026-3-20 20:59 | 只看该作者
ruhua2295210 发表于 2026-3-20 20:49
编辑方法我什么都不改点编辑都报错,下面的IL指令的倒是改成功了

switch (room.RoomType)
{
    case RoomType.Monster:
        if (combatRoom.GoldProportion > 0f)
        {
            int minGold = (int)Math.Round((double)((float)(combatRoom.Encounter.MinGoldReward * 10) * combatRoom.GoldProportion));
            int maxGold = (int)Math.Round((double)((float)(combatRoom.Encounter.MaxGoldReward * 10) * combatRoom.GoldProportion));
            list.Add(new GoldReward(minGold, maxGold, player, false));
        }
        this.RollForPotionAndAddTo(list, player, room.RoomType);
        list.Add(new CardReward(CardCreationOptions.ForRoom(player, room.RoomType), 3, player));
        break;
    case RoomType.Elite:
        list.Add(new GoldReward(combatRoom.Encounter.MinGoldReward * 10, combatRoom.Encounter.MaxGoldReward * 10, player, false));
        this.RollForPotionAndAddTo(list, player, room.RoomType);
        list.Add(new CardReward(CardCreationOptions.ForRoom(player, room.RoomType), 3, player));
        list.Add(new RelicReward(player));
        break;
    case RoomType.Boss:
        list.Add(new GoldReward(combatRoom.Encounter.MinGoldReward * 10, combatRoom.Encounter.MaxGoldReward * 10, player, false));
        this.RollForPotionAndAddTo(list, player, room.RoomType);
        list.Add(new CardReward(CardCreationOptions.ForRoom(player, room.RoomType), 3, player));
        break;
}

回复 支持 反对

使用道具 举报

1

主题

1314

帖子

1585

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
15845
积分
1585
精华
0
注册时间
2013-4-5
11#
发表于 2026-3-20 21:13 | 只看该作者

啥也没改点编译就这种报错

QQ20260320-211304.png (14.93 KB, 下载次数: 0)

QQ20260320-211304.png
回复 支持 反对

使用道具 举报

1

主题

1314

帖子

1585

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
15845
积分
1585
精华
0
注册时间
2013-4-5
12#
发表于 2026-3-20 23:18 | 只看该作者
ruhua2295210 发表于 2026-3-20 21:13
啥也没改点编译就这种报错

解决了,是下的版本问题,下了个旧版本的dnspy就好了

回复 支持 反对

使用道具 举报

0

主题

230

帖子

322

积分

高级玩家

Rank: 4

贡献度
0
金元
3224
积分
322
精华
0
注册时间
2020-1-7
13#
发表于 2026-3-21 00:42 | 只看该作者
qinzhansu91 发表于 2026-3-19 16:07
求助初始能量修改应该搜什么???

MegaCrit.Sts2.Core.Models   ------》》》CharaterModel
修改以下方法
public virtual int MaxEnergy
        
{
            
get
            
{
               
return 3;
            
}
        
}
回复 支持 反对

使用道具 举报

0

主题

110

帖子

124

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1240
积分
124
精华
0
注册时间
2019-5-26
14#
发表于 2026-3-21 11:14 | 只看该作者
牛的学到了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-25 03:50 , Processed in 0.031272 second(s), 20 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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