龙崖吧 关注:11,740贴子:20,602
  • 9回复贴,共1

水贴:自己动手丰衣足食--手动修改dll

只看楼主收藏回复

半夜闲来无事。。写一下怎么改速度
工具:
百度搜索3dm mod,进入后搜索dnspy。支持中文

打开工具(是我喜欢的风格):

菜单栏->文件->打开, 选中游戏文件夹下的/game_Data/Managed/Asembly-CSharp.dll
提前注意:最好把这个dll重新拷贝一份出来放着备用,并且打开的时候不要去打开放在其他地方的备用的dll,因为dll需要加载其他链接库,拷贝出来就加载不了了。
确定后工具的列表会加载一堆东西,不用管,拉倒最下面找到打开的这个dll(只是确定加载成功 ):

点击菜单栏上面的放大镜搜索:
输入speedPanel(看名字就知道是 游戏速度面板控制):

打开它,找到这个位置:

这个方法看 UpdateTimeState是更新时间状态,其实就变更游戏内速度的方法调用。
作用是输入一个timeScale的速度,if判断一下,这个速度的绝对值是否小于1(取绝对值在这是编程中防止负数的处理办法之一)。
如果是,那么这个timeScale一定为0了,也就是游戏暂停,则执行this._currentSpeed = SpeedUpButtonType.Pause
这句意思就是,将_currentSpeed(游戏当前速度)状态更改为暂停,点进去Pause会看到5个状态,分别对应游戏里5个速度
else if就是上面if条件不满足,就来到这里,继续判断这个timeScale-1是否小于0.1
也就是判断传递进来的速度是不是一倍速。同理分别判断是不是 1 1.5 2 3倍速,到最后的else,也就是上面的if以及else if都不符合条件,就会进入这里。
GameWorld.instance.PlayerProfile.TimeScaleSetting = 1f;
timeScale = 1f;
this._currentSpeed = SpeedUpButtonType.NormalSpeed;
也就是timeScale速度数据可能出错,直接将游戏速度设置为默认的一倍速
下面的 Time.timeScale = timeScale; 就是最终设置游戏速度的地方
例如 选中这行,右键编辑方法, 改成 Time.timeScale = timeScale * 3; 那么游戏内的所有速度都会扩大三倍(0,1,1.5,2,3 -> 0,3,4.5,6,9)这样的
修改好后,点击编译,点击菜单栏->文件->保存模块,重启后进入游戏就可以了。
建议仅更改最后一个4倍速。修改10倍速如下:

(改成10倍速,玩火流会卡伤害,建议搞一队千刃流挂机)
this.UpdateButtonsColor();看名字就知道是点了按钮修改按钮的颜色啦,想改其他颜色自己琢磨
改其他东西的话。例如,修改升级属性
(参考贴吧其他兄弟的东西, https://tieba.baidu.com/p/6617878582)
Type:UnitGrowthProfile
Member:GetRandomAttributeValue作用:升级英雄的属性随机
搜索UnitGrowthProfile后往下拉,会发现有这个东西:

看名字就知道是获取等级提成改变,不就是升级增加属性嘛

上面一堆代码意思就是创建一个属性容器(数组),用第一个黄框里随机出来的数据扔进这个容器里,返回给系统
第一个黄框里就是获取随机属性,这个方法就在下面,第二个黄框里就是在min与max这两个值之间做随机产生值。要改的话, 直接0.8f改成100f,1f改成100f,每次升级一定提升100倍属性,这样就完全没意思了 = =
其他改的方法自行探索吧~


IP属地:广东1楼2021-02-13 04:41回复
    这个,dnspy找关键是方便
    就是这个很多数值改不了
    基本上动了数值都是红色感叹号


    IP属地:广西2楼2021-02-13 22:59
    收起回复
      这个升级属性的问题,改了你也没啥好结果的,怪同样属性倍增,难度还一定程度增加了


      IP属地:广西3楼2021-02-13 23:00
      收起回复
        大佬厉害了


        来自Android客户端4楼2021-02-15 15:58
        回复
          请问商店卖价和开箱子不随机怎么改?


          IP属地:重庆5楼2021-09-29 22:05
          收起回复
            大佬厉害。。。可以自己改。。


            IP属地:广东6楼2023-09-29 18:19
            回复