博得之门吧 关注:55,565贴子:1,165,134

关于狂乱魔法波动的一些修改方法

只看楼主收藏回复

首先,关于波动值。
程序内首先生成随机值,然后再加上附加值(包括装备、护罩等),最后根据所得结果确定波动效果。对应关系可参看玄音前辈的《狂野宝典》。
相加的汇编命令是ADD ECX, DWORD PTR DS:[EAX+1F4],将这条命令改为MOV ECX,3C就可以将波动效果固定为第60项“模拟成功且无视豁免”。想要其他波动效果只要把3C改为其他值即可。
在weido三部曲主人版1.12版里,这条命令在BGMain.exe文件内的地址是0x5587FE,在程序运行时的地址加上0x400000偏移是0x9587FE。使用OllyDBG启动程序或附加到程序上,修改此条命令后保存到文件即可。
在其他版本里地址可能有变化。假如其他版本未改变狂乱波动相关代码,一个可能成功的方法是在OllyDBG里搜索1F4这个常数,逐条查看搜索结果。至少在weido三部曲主人版1.12版里,很容易就能找到这条命令。
下图是修改前后汇编命令/十六进制字节对比,这里我固定的不是第60项而是第82项。


如果不会用OllyDBG,可以使用GameMaster8.0,这个修改器可以直接指定内存地址也可以修改文件,除了不知道每个字节对应什么汇编指令外很方便。ADD ECX, DWORD PTR DS:[EAX+1F4]这条汇编指令对应的六个字节的十进制是3,136,244,1,0,0,用GameMaster打开BGMain文件搜索这个数列,然后将这六个字节改为MOV ECX,3C对应的185,60,0,0,0,144即可。
GameMaster的另一个好处是在游戏过程中也可以改变这个值,不必每换一个波动效果都要重新启动游戏。所以我在用OllyDBG找到地址后,平时游戏时都只用GameMaster。
原理上用其他十六进制编辑器也可以修改BGMain.exe,用其他游戏修改器也可以在游戏过程中改变波动效果,具体方不方便我就不知道了。
然后,关于波动效果。
其实也没什么,就是想把多个波动效果串到一起,结果发现波动效果列表是指针列表,相邻的波动效果代码未必相邻,暂时没兴趣做下去了。
顺便发现部分波动效果实际上是启动某个法术,例如82项“随机生成某个宝物”实际上是启动了SPWM141.SPL这个神莓术的修改版。
最后提醒一下,修改前备份一下未修改的原文件。毕竟某些敌人也会产生波动效果(例如某塔内和某些MOD新增人物),不想被敌人无豁免秒杀的话,打到特定剧情前换回原来的文件比较安全。


IP属地:广东1楼2016-05-31 14:00回复
    我擦!牛逼!能改内核的真是要膜拜一下!


    IP属地:河北3楼2016-05-31 20:54
    回复
      为啥要改


      来自Android客户端5楼2016-06-01 08:26
      收起回复
        我了个去,我还以为改成100%成功就很牛了


        IP属地:黑龙江6楼2016-06-01 08:54
        回复
          没必要吧,这个还有意思啊?我修改把武器,100%斩首,自带大旋风高加,每击dm,免疫魔法,自带物抗满,豁免最低。然后把武器丢在烛堡,名字就叫葛立安送给查的六一礼物,这样好玩吗?


          IP属地:江苏来自iPhone客户端8楼2016-06-01 09:28
          收起回复
            没有什么有意思没意思的,毕竟对很多同好来说,探索就是最有意思的,突破规则限制就是最有意思的。
            很早之前就有很多人讨论固化波动效果的修改,可惜都没有成功,感谢楼主的汇编知识解答了困惑。


            IP属地:江西9楼2016-06-01 12:02
            收起回复
              有没有可能在不改波动内核的情况下强制让波动出现特定的结果?


              IP属地:湖北10楼2016-06-01 12:10
              收起回复
                理论上相同版本的官方补丁下的exe结构都是一样的,任何有对exe修改的mod都只是改动某些字节,至多在尾部加几个指令,把指针改掉。楼主找到的地址在非ee环境应该是通用的。顺便虽然对狂法无爱,此贴可精


                来自iPhone客户端11楼2016-06-01 19:23
                回复
                  可怕 居然精了 不知为何 总是想起魔兽世界的boss为何会被t住这个问题


                  来自Android客户端12楼2016-06-01 22:06
                  回复
                    膜拜LZ。
                    我也是改派,不过学艺不精,汇编不会。
                    按LZ的思路,不用改源文件,直接用FPE之类的锁定地址,查狂法,写入值=60-查等级,就可以实现查永远60效果,其他人效果和查相差值为查的狂法等级。就是要多开1个程序,麻烦了点。


                    IP属地:福建13楼2016-06-02 09:56
                    收起回复
                      太神了,好顶赞!


                      IP属地:广东来自iPhone客户端14楼2016-06-02 10:46
                      回复
                        思索良久,我应该是多年之前在fate吧见过楼主?


                        IP属地:湖北15楼2016-06-02 12:17
                        收起回复
                          LZ我来报告啦,测试结果非常满意,跟我预想的一样。程序内容读到内存后就不会再变更了,所以不需要锁定地址,只要在指定的地址改一遍就可以了。可以根据狂法等级修改相应的波动值,以达到只对指定等级(查)有利的目的。唯一不便就是必须每次启动游戏时改一下。


                          IP属地:福建16楼2016-06-06 15:22
                          回复
                            膜拜楼主!
                            如果我不想修改莽行咒,只想把狂法师普通施法的5%波动去掉,如何才能实现呢?
                            前阵子胡乱研究了一一顿,完全没有头绪...


                            IP属地:山东17楼2016-06-06 15:23
                            收起回复
                              楼主,对你的敬仰之情如滔滔江水。这下Wild Mage是彻底无敌了。


                              IP属地:江苏18楼2016-07-08 00:23
                              收起回复