盗贼遗产2(Rogue Legacy 2)CT修改器★★★★★★★★★★★★★★★★★★★★2023.02.25更新,快速通关,无限次挑战全盛Boss等
本帖最后由 tempa 于 2023-2-25 14:26 编辑功能稳定,停止更新。
对应游戏版本1.0.0
https://bbs.3dmgame.com/thread-6297376-1-1.html
相邻版本可能有效,找的AOB,如果没效,懂CE的稍微改下应该也能用,毕竟函数位置大体不会变太多。
测试操作系统:Win7,Win10
下载
1.1.1版
1.0.2c版
1.0.1a版
1.0.0版
功能简介
无敌
无限生命
无限魔力
技能无冷却
无限跳跃
无限冲刺
无限子弹(枪手)
无限炸弹、子弹(枪手)
可直接使用所有传送点
无视条件进Boss房
无限次挑战全盛Boss(除了第1个Boss拉麦,其他Boss没有重置过场等待和地形,想要正常多次挑战需要重新读一次档,重置Boss场景逻辑,才能正常游戏,建议所有Boss打一遍,读一次档,此功能多周目需要关闭全盛剧情选项才有效,不然会显示记忆场景,无法多次挑战)
可以打开失败的精灵宝箱
无限金钱
金钱加倍
银钱加倍
红钱加倍
灵魂商店无限魂
双遗物
重置遗物不减
重置技能不减
重置子嗣不减
想要增加武器攻击力就修改力量,比如默认15,改成150
想要增加魔法攻击力就修改智慧
想要一鸡必杀,就把上面2项的值改很高就可以了,比如多加几个0
想要更多决心升级,就修改基础决心,默认1,改成100一般就够用了
因为游戏正式版刚刚发布,属性偏移地址几乎一版一变,不可能每版都更新,所以最好的选择就是趁修改器还支持,完全玩一个版本通关。
无限生命,无限魔力,无敌这三项依赖记录玩家信息选项,如果记录玩家信息项勾选不上,说明可能你的游戏版本与修改器不同,这三项功能将无效,
正版玩家注意,因为正版玩家几乎都是最新版,肯定会出现下次更新又有部分功能用不了的情况。
关于第一项,“记录玩家信息”,不同CE版本勾选可能不同,一般有几种情况。
1.CE 6.7,点一次可勾选
2.CE 7.0或以上,点一次,等1秒,再点一次,可激活
3.无论如何点击不了这项,说明AOB字节码不同,可能是游戏版本和修改器支持版本不同,也可能是汇编代码与修改器找到的代码不同,因为C#是动态生成汇编代码的,每次运行的代码可能不唯一,有少许差别,大部分代码还是可以确定不变的
4.不但点不了,还有错误提示,如楼下几楼所述,无解
有些功能有1,2两个开关,测试发现,因为生成的代码不同,只做一种情况有时可能打不开,如果1用不了,可以尝试用2,如果1,2都用不了,可以回贴说明一下。
关于地址1,2,通常与代码触发时机有关,不同时间加载代码,会导致1,2的差异。
举例来说,打开游戏,停在菜单界面,选择存档时,这时打开CE,加载游戏进程,加载CT表格,开启选项,通常是地址2有效,
而读完档进入正式游戏后,比如一开始的城堡,有传送站点,可以控制玩家时,这时再打开CE,加载游戏进程,加载CT表格,开启选项,通常是地址1有效。
CE程序路径不要使用中文,不然可能会弹出 Failure injecting the MonoDatacollector dll 错误
另外360也会拦截Mono注入
如果弹 Fail injecting 错误,可以先排除这两点,再试试
使用说明:
进入游戏后,首先勾选记录玩家信息项,如图,这会记录玩家信息基址和属性值,直接就可以修改这些值
无限金钱,触发币条件是捡金币时触发,金钱,银钱,红钱设为10000,可以直接修改数值,也可以打开脚本,改成自己想要的数值,确保改脚本前,先关闭脚本,修改脚本,再开启,以防锁死。
不想无限金钱,可以选用下面的各种金钱拾取加倍。
金钱,银钱,红钱指的是下面这个界面的数值。
面板暂时只列出几个常用的属性,如生命,法力等,想了解其他属性值,如下操作(一般用户无需关注全部属性值,可以跳过操作部分,直接看后面的功能说明)
1.点击内存窗口
2.Tools >> Dissect data,快捷键Ctrl + D
3.Structures >> PlayerController
把主面板,玩家信息基址的地址粘贴出来,如图绿色框部分,就可以修改全部属性了。
注意,全部属性与游戏版本有关,比如1.0.0的属性与1.0.1a的不同,比如部分属性位置偏移有前后变化,1.0.1a加了更多属性等,不能在不同版本间直接套用前一版提供的属性表。
想要增加血量,可以修改活力值,比如活力值原本是15,可以改成150,换一个场景或者刷新血量就可以看到变化了。
想增加攻击力就修改力量和智慧,对应近战和魔法伤害,也是15改成150等。
金钱,银钱,红钱加倍,默认2倍,也就是原版捡1金币加10元,2倍现在加20元,可以自己修改脚本中倍数。
找到#2,#2表示二倍,#10表示十倍,#表示10进制数,一般要改成什么,只要改数字就可以,只能是整数,不能是小数
无敌保护时间,默认1秒,可以改成5-10秒,不建议改太高,如60,会导致时间太长,无受击判定,当然,如果这是你想要的效果,你也可以这么改。
修改的值许多只在游戏运行时有效,并不会保存进存档,退出到主菜单,再进游戏可以发现值又恢复原样了。
可以自定义快捷键,选中对应选项,按Ctrl + H,比如可以把数字键1设为加生命1000,2设为魔力1000,3设为切换无敌状态,4设为力量为1500000等
测试发现,开着CE,退出游戏可能导致游戏卡死,建议退游戏前,先关CE,再退出游戏。
有时修改值过多,就算退出CE,再退游戏也可能卡死,但是不会影响存档,如果有这情况,建议任务管理器结束游戏进程,虽然不是绝对发生,但是偶尔会有这种情况。
26楼,提供全装备,全符文修改方法。
无需刷宝箱,直接解锁,上限需要在灵魂商店购买解锁,默认+4,测试可以解锁到+10
个人修改器整合贴
https://bbs.3dmgame.com/thread-6328576-1-3.html
更新进度 ========================================
2022.06.16更新
双遗物
支持1.0.2c
2022.05.11更新
修复“可以打开失败的精灵宝箱2”无效的问题
2022.05.10更新
修复部分功能Win10无法使用的问题
无视条件进Boss房
可以打开失败的精灵宝箱
精灵宝箱开启参考了Mod
https://bbs.3dmgame.com/thread-6300038-1-1.html
金钱,银钱,红钱加倍,修改为默认2倍
无限次挑战全盛Boss
开启后,有些Boss需要打过第1次,再打才会进入全盛状态,有些第1次打就会进入全盛状态
2022.05.09更新
无视条件进Boss房,方便多周目快速通关
除最后一个图,地底的龙需要解锁外,其他Boss如雪地高原,冥界书斋都可以无视2个前置条件直接开战,包含最开始进地图,要打败所有Boss才能进入,有树根缠绕的房间也可以直接进入
2022.05.08更新
支持1.0.1a
2022.05.07更新
可直接使用所有传送点,方便多周目直接打Boss
2022.05.05更新
灵魂商店无限魂,开启后,对话灵魂商店时,直接变成100000魂,可自己修改
重置遗物不减(游戏地图开启)
重置技能不减(游戏地图开启)
重置子嗣不减
无敌(IsInvincible)
无限子弹(枪手)
无限炸弹、子弹(枪手)
无限生命和无限魔法做成了脚本开关,方便使用
占一楼更新备用 感谢分享 挺好的 谢谢楼主分享分享,很给力 很好用{:3_121:} 感谢大佬分享
感谢感谢 大佬,记录玩家信息按钮无法激活。右键显示“扫描AOB错误:replayerinfo_entr错误:not all result found”。
无限冲刺,跳跃,技能可以使用,无限金币可以使用。 本帖最后由 tempa 于 2022-5-5 10:09 编辑
你的游戏版本是什么,论坛版还是正版?官方有更新吗?按理说不应该显示错误,因为某一项不能激活应该就是AOB地址变了,你能不能截个图看看,出错信息是什么样的,另个也说下你的CE版本,谢谢
一般会有错误提示就是Injected Fail什么的,可能是中文路径的问题,你这个错误我还是第一次看到,估计我可能解决不了,我从来没遇到过
tempa 发表于 2022-5-5 09:50
你的游戏版本是什么,论坛版还是正版?官方有更新吗?按理说不应该显示错误,因为某一项不能激活应该就是AO ...
我好像也遇到类似问题了,正版,ce7.2
正版现在是什么版本,有更新吗,我用的论坛学习版,是Steam 1.0.0,用不了不知道是什么问题,但是其他项能用,猜测是是记录基址到内存那句有问题,我写个通用AOB地址试试,如果还不行就没办法了。 tempa 发表于 2022-5-5 10:29
正版现在是什么版本,有更新吗,我用的论坛学习版,是Steam 1.0.0,用不了不知道是什么问题,但是其他项能 ...
正版现在是v1.0.1另外应该不是ce的版本问题,我试了下ce6.7好像也不行
换了一种写法记录内存,你们可以试一下有没有效果
如图,试一下记录玩家信息2,能不能勾上,如果能再试一下把无限生命和魔力都改成1,游戏里试试有没有效果
如果有效,我就改成这种写法,如果勾不上,说明游戏AOB有变,我需要搞个1.0.1版测试,如果还弹出错误,我就没办法了,确实没遇到过这种错误
tempa 发表于 2022-5-5 11:03
换了一种写法记录内存,你们可以试一下有没有效果
ce7.2和6.7都勾不上其中7.2右击菜单会报一个不同的错
本帖最后由 tempa 于 2022-5-5 12:44 编辑
看错误提示,似乎是mono函数挂了,你打开“记录玩家信息2”脚本,点确定看看报的完整提示是什么。
能想到的可能的情况,我写了中文注释,可能被编码或者什么的错误解析,你把注释去掉看看能不能通过编译。
如果不行,我就想不出其他原因导致失败了,显示nil value,还在monoscript.lua里,能想到的就只有编码什么的解析不对了
我用的英文版CE,不知道和这个有没有关系。
但是你们说其他功可以用,其他功能如金钱也有中文注释,能正常用,所以应该也不是编码有问题
12345+6846546564564 tempa 发表于 2022-5-5 12:29
看错误提示,似乎是mono函数挂了,你打开“记录玩家信息2”脚本,点确定看看报的完整提示是什么。
能想到的 ...
换了CE7.4似乎可以注入mono了,
但是报了另一个错:
<<Error while scanning for AOB's : RecPlayerInfo_Entry Error: Not all results found>>
本帖最后由 tempa 于 2022-5-5 18:11 编辑
我解决不了,你可以试试其他修改器,或者国外Fearless之类的,说不定写法不同也有类似的功能。
虽然不一定有用,但是我改用AOB做了个记录地址的文件,叫“记录玩家信息AOB”,还不行就真没办法了,我能想到的方法都试过了。
steam1.01版还是永不了:'( 大佬请问能不能做出可以直接开挑战失败的宝箱或者宝箱必出装备蓝图? 1.0.1版本
楼主可以下载这个测试一下 66666666666666666666666666 顶加支持 666666666666666666666666666666666666感谢 本帖最后由 tempa 于 2022-6-26 11:57 编辑
锋光無限 发表于 2022-5-6 04:18
大佬请问能不能做出可以直接开挑战失败的宝箱或者宝箱必出装备蓝图?
宝箱逻辑不太好懂,尝试做了宝箱锁定和开关解除,但是只对一般箱子,如金钱和银钱之类的箱子有效,对精灵宝箱之类的没效果,箱子逻辑还包括动画,全局消息什么的,挺复杂的。
如果你只是想在铁匠开全部建造,有个简单的方法,就是用dnSpy改,因为CE用汇编写逻辑只能处理些简单的,复杂的逻辑很难写,但是用C#代码几下就能实现,如果是你想要的,你可以试一下。
或者等等Mod,因为是Unity C#的,所以可能以后会有Mod,写起来会简单
首先备份游戏脚本dll
Rogue Legacy 2\Rogue Legacy 2_Data\Managed\Assembly-CSharp.dll
必需备份,因为还要恢复用。
打开dnSpy,找任意可在游戏中每帧有处理逻辑的脚本注入,比如PlayerController
我以这个为例注入
搜索PlayerController,展开找到LateUpdate函数,鼠标右键,选编辑方法(C#)
在上面加入引用
using System.Collections.Generic;
下面加入代码
if (Input.GetKeyDown(KeyCode.Alpha4))
{
int myLevel = 99;
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Cape))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Chest))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Head))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Trinket))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Weapon))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<RuneType, RuneObj> keyValuePair in SaveManager.EquipmentSaveData.RuneDict)
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
}
点编译
点完后会提示有一个错误,双击
删除画线部分,再点编译,通过。
文件,全部保存
重新进入游戏,最好是在铁匠铺门前,按几下数字键4(非小键盘数字键),再打开铁匠铺就可以看到解锁全部装备了。
退出游戏。
然后还原dll文件,再重进游戏,可以看到开启有效
上限需要在灵魂商店升级解锁
1.0.1版本下载链接:
https://www.skidrowreloaded.com/rogue-legacy-2-v1-0-1/
楼主可以用来测试 谢谢分享 本帖最后由 锋光無限 于 2022-5-6 18:10 编辑
tempa 发表于 2022-5-6 14:39
宝箱逻辑不太好懂,尝试做了宝箱锁定和开关解除,但是只对一般箱子,如金钱和银钱之类的箱子有效,对精灵 ...
感谢大佬,顺便问一下有没有办法能把符文的也解锁?
本帖最后由 tempa 于 2022-5-20 23:20 编辑
操作方法同之前,我直接把2个写一起了,后加的那段就是符文
上限需要在灵魂商店升级解锁
if (Input.GetKeyDown(KeyCode.Alpha4))
{
int myLevel = 99;
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Cape))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Chest))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Head))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Trinket))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<EquipmentType, EquipmentObj> keyValuePair in EquipmentManager.GetEquipmentDict(EquipmentCategoryType.Weapon))
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
foreach (KeyValuePair<RuneType, RuneObj> keyValuePair in SaveManager.EquipmentSaveData.RuneDict)
{
keyValuePair.Value.UpgradeLevel = myLevel;
keyValuePair.Value.UpgradeBlueprintsFound = myLevel;
}
}