《BadNorth》《坏北》《绝境北方》修改金币军队数量,获取金币效率,修改地图大小,修改地图奖励数量,DLL修改,[Dnspy工具]
本帖最后由 你牛哥Ao 于 2024-7-29 00:17 编辑一.前言:
[*]之前找了个CT,但是失效了,正好这个游戏的DLL是C#写的而且没加密,所以研究了下代码结构,找了点可能常用的修改项,希望对那些想从底层机制魔改游戏的玩家有所帮助。
[*]操作提示:实操Dnspy修改DLL需要的专业能力基本为0,找到相应变量位置,编辑并重新编译,保存新编译的DLL文件即可。具体不解释,自己B站学。
[*]潜在影响提示:有些修改是影响全局的,有些只影响修改的存档。如有必要请保留备份存档!!!
[*]有问题自行留言,不定期补充,也可能不补充。图片排版跟啥啊狗一样,有描述,xdm自己下面找。
[*]不会改但瘾还大的的找帖子里会计算机的热心帅气有闲情逸致的Pro哥帮忙。
[*]由于存在未厘清的逻辑,战役关卡修改的数值目前没参考意义,会无法正常进入游戏,建议先仅参考功能和代码!!!
二.准备:
[*]工具:Dnspy,如果不想自己实操,可以用现成的。
[*]修改的DLL目录:BadNorth\BadNorth_Data\Managed\Assembly-CSharp.dll
[*]这里介绍的涉及修改的代码域大概就是关于塔防核心功能的几个系统:(可以修改的有很多,不过精力有限,介绍主要的内容即可,后续自行探索)
[*](塔防角色,Hero,队伍,敌人,村子,关卡,岛屿,地图,寻路)Voxels.TowerDefense
[*](战役设置:关卡,Hero,奖励的设置与生成)Voxels.TowerDefense.CampaignGeneration
[*](局内战斗相关的角色升级能力)Voxels.TowerDefense.Upgrades
三.可能出现的编译错误及Q&A:
[*]类型转换问题,加强制类型做显式类型转换即可。
[*]using(string)的古早语法类型问题,去掉using语句。
[*]无法识别的类型和属性,如果是Attribute,Debug/Debugger相关的可以注释掉,其他的还没遇见过。
[*]编辑类或者编辑方法,取决于哪个不会编译报错或者报错较少,因为会存在找不到引用的类型和字段。所以也是小问题。
[*]待补充...
四.修改功能大类:
[*]战役设置(影响地图内岛屿关卡的数量,奖励,岛屿分布)
[*]角色属性(角色血量,攻击力,补充时间)
[*]角色能力(物品,属性Tag)
五.具体已实操和测试的修改参考:一般有值就直接改默认值,没有值就找初始化被调用的位置,有些修改则需要自行添加代码或者加判断逻辑。
[*]角色再补充时间(直接修改常量):Voxels.TowerDefense.Upgrades.ReplenishAbility:public float replenishTime = 20f;数字越大,再补充时间越短。
[*]角色基本属性(生命值,攻击力):Voxels.TowerDefense.Agent:public Agent() 构造函数改默认值即可,具体属性顾名思义。
[*]队伍人数,使用次数Voxels.TowerDefense.SquadSpawner:public IEnumerator<bool> SpawnEnglishSquad函数功能找数值即可。:
[*]关卡生成数量:Voxels.TowerDefense.CampaignGeneration.GraphGenerator:private IEnumerable GenerateGraph()函数功能找数值即可,注意大致行数。
[*]关卡升级奖励数量Voxels.TowerDefense.CampaignGeneration.GraphGenerator:private IEnumerable GenerateGraph()函数功能找数值即可,注意大致行数。【暂时有问题,直接改奖励数量会出错,猜测和奖励存放的结构是字典有关,数量多了会出现重复导致地图初始化失败然后卡死】
[*]关卡获得金币数量Voxels.TowerDefense.ProfileInternals.CampaignSave:private void PostLoad()。Voxels.TowerDefense.CoinDispensing.CoinDispenser:public IEnumerator DispenseCoinsRoutine()。
[*]提前获取军队(在战役生成时操作)Voxels.TowerDefense.CampaignGeneration.GraphGenerator:private IEnumerable GenerateGraph()函数功能找数值即可,注意大致行数。
[*]战役难度设置及敌人波次设置Voxels.TowerDefense.CampaignGeneration.CampaignDifficultySettings
[*]待续。。。有未知的功能可以底下留言,不定期回看更新。
感谢分享 感谢分享
6666666666666
louzhuxinku
太强了666666 大佬有办法修改敌人数量吗 z98765426 发表于 2024-10-13 23:14
大佬有办法修改敌人数量吗
这个岛屿和对应的敌人是关卡生成的时候确定的,可以通过修改难度和地图生成的过程来试试
你牛哥Ao 发表于 2024-10-14 02:53
这个岛屿和对应的敌人是关卡生成的时候确定的,可以通过修改难度和地图生成的过程来试试
...
刚刚改了下,貌似没有效果,全部改成9999游戏直接死机
z98765426 发表于 2024-10-15 00:54
刚刚改了下,貌似没有效果,全部改成9999游戏直接死机
得看逻辑,暴力改游戏是没法正常运行的
你牛哥Ao 发表于 2024-10-17 00:44
得看逻辑,暴力改游戏是没法正常运行的
大佬找到方法了吗?一直没有调试出来:L,CampaignDifficultySetting里做更改似乎没有作用,还发现了另外几个Raid相关的类,但是效果依旧不理想......求教 30d98f9b2 发表于 2024-11-14 18:14
大佬找到方法了吗?一直没有调试出来,CampaignDifficultySetting里做更改似乎没有作用,还发现了另外 ...
我研究不多,好久没玩了,主要是没有调试环境,改完代码能不能跑通是个大问题,别太纠结:lol
楼主太强了
页:
[1]