梦幻模拟战吧 关注:54,958贴子:384,132

[求助] MDL2,如何将魔法威力与经验条或MP钩挂,有大佬教教吗?

只看楼主收藏回复

有大佬教教,怎么汇编成魔法的6个级别威力与职业经验条挂钩吗?
比如7级经验条与6级威力挂钩,6级经验条与5级威力挂钩
或者魔法威力与MPmax值钩挂?
比如MP[50,99]与6级威力挂钩,MP[40,49]与5级威力挂钩
又如何可以把增加魔法范围的触发挂到职业经验条长度上,而非Lv4和Lv8?
叩首!


IP属地:广东1楼2023-08-03 09:56回复


    IP属地:广东2楼2023-08-05 15:05
    收起回复
      魔法覆盖的范围大小与魔法伤害与施法者的等级有关,与当前职业无关。等级1-3可以发挥魔法的基本水准,等级4-7的时候魔法范围+1。等级8-10的时候相对1-3级魔法范围+2
      不知道你懂不懂68k的汇编,懂的话应该是以上几点随便都是切入点非常好解决的,不懂的话就难了。等会儿帮你看看吧,其实我对md的梦2修改也不是很了解。


      IP属地:四川3楼2023-08-05 18:01
      收起回复
        话说修改器没有改这些的功能吗?


        IP属地:四川4楼2023-08-05 18:02
        收起回复
          @【来吐槽的】
          吐槽大大,有技术支持么?


          IP属地:广东5楼2023-08-05 19:57
          回复
            这玩意就是天书,我也是根据经验来找的。发出来也没几个人看得懂。
            第一步找到海恩在rom里面的等级地址。我已经用修改器找到了在5e685:01 00
            这个地址就是你修改的起点。
            第二步使用regen模拟器,打开游戏rom点开调试器,设置断点5e486点击读取。

            进去游戏会自动暂停的,看代码,我也是翻网上资料的
            movea.l a0,a1是复制a0寄存器地址的数值到a1寄存器的地址
            也就是复制海恩的等级到内存地址ffffa52e,你点68k内存就能看到内存数值,ffffa52e就是内存地址a52e
            这个内存地址就是海恩的等级先记下来


            IP属地:四川6楼2023-08-05 20:58
            收起回复

              继续换断点,FFA52E然后在界面进游戏前会弹出这个,我反正能只能看懂一点点。右上角的红圈ff609c应该是我方的数据,然后用内存查看器观察609c附近的数据如图,我在60ca处找到个09因为我自己把海恩的等级还为了9级


              IP属地:四川8楼2023-08-05 22:24
              回复

                既然已经找到了内存中海恩的等级,那么继续换断点设置为ff60ca。直接开干找个杂兵对他使用魔法剑
                然后就弹出上图所示,红圈部分应该就是伤害方面的代码,从ad18开始到ad82.
                这个调试器我不会用,继续下一步执行会重启游戏,我已经放弃了。如果有更好的调试器也许更简单。
                而且这个调试器连改代码的功能都没有,我反正无法修改。理论上对着网上的指令集然后一个一个翻译,就能看懂了,不过这玩意不提供修改代码的功能。无能为力


                IP属地:四川9楼2023-08-05 22:29
                收起回复
                  有一个安卓版梦战,不知道你玩过没,那个就是MP越高,魔法威力越大,但会随着MP使用量的减少,威力也会随之变小


                  IP属地:河南来自Android客户端10楼2023-08-06 08:01
                  回复
                    另外群里有个啥加强版和魔化版,好像是打了吐槽的某个补丁,魔法威力会随着职业而变化,你可以试试找突破口


                    IP属地:河南来自Android客户端11楼2023-08-06 08:03
                    收起回复
                      有一个改版,25周年纪念版里,实现了部分你提到的功能,应该是痕神写的,可以联系一下直接拿来用。


                      IP属地:湖北12楼2023-08-06 11:13
                      收起回复
                        不过我找到sfc版的修改方法,A04D:2E
                        2E就是等级,改为39就是最大魔法值伤害。不过没人对sfc感兴趣,就不研究了,只是给你提供一个思路,hack游戏就是这样。sfc版伤害计算的程序大概分析了一下,有个未知数不知道有人能解释一下不。
                        等级x一个未知数,这个未知数我打杂兵是32(10进制50),然后把这个结果➗100。这个未知数我估计是魔防???
                        例如魔法箭:海恩9级x未知数32=1c2然后➗64等于4也就是最终伤害等于4。
                        10级情况的话就是:0AX32=1F4然后➗64=5,最终伤害就是5。。。很简单的公式。


                        IP属地:四川13楼2023-08-06 12:12
                        收起回复
                          sfc版的魔法伤害和等级与职业有关。已经完全分析出,每个魔法都有单独的计算程序。
                          列:魔法箭
                          第一条指令,清空内存地址18
                          第二条指令 lda $0317 ;读取等级,我把等级还为了5级所以是05
                          第三条指令and #$fe ;把等级和fe进行相与,用人话说就是偶数不变,奇数减去1,05是奇数减去1等于04
                          第四条指令clc 关闭c标记
                          第五条adc $031d ;加上职业?其实也就是几转,目前我改成了1转,现在也就是01,最高就是4转 04
                          第六条指令sta $17 存入内存地址17
                          第七条指令jmp $A08E 直接跳,跳到计算伤害步骤程序。
                          最后这里计算出来等于5
                          然后用这个5x32➗64就是最终伤害。这只是魔法剑这个魔法的例子,每个魔法好像都不一样。
                          如何把它移植到md上呢?有待研究


                          IP属地:四川14楼2023-08-06 14:07
                          收起回复

                            这是火球的计算。
                            大概意思:LV➗2+几转,上图等于3

                            这是陨石的计算
                            大概意思:(LV÷2)+6+几转
                            然后用这个结果x32÷64就是最终伤害
                            md的只和等级有关?sfc大概就是这样,每个魔法都有个单独的计算公式


                            IP属地:四川15楼2023-08-06 14:13
                            收起回复
                              理论上,这里只说理论上,找到魔法伤害计算的程序就可以开始更高级的修改了,你可以制作技能,比如让埃尔文魔法免疫。又或者海恩使用魔法时伤害翻倍?让其他人无视魔防攻击?我这里简单制作了一个让海恩使用魔法时伤害翻倍。不过是在sfc上实现的。简单测试了一下没问题。。。
                              A0F2:85 17 18 6D 5E 1E改为5c 00 DC 4C EA EA
                              265C00: 85 17 5A 48 A5 02 48 A5 03 48 AD 66 1D 85 02 AD 67 1D 85 03 A0 01
                              B7 02 C9 05 D0 0B A5 17 0A C9 0A 90 02 A9 0A 85 17 68 85 03 68 85
                              02 68 7A 18 6D 5E 1E 5C F7 A0 01


                              IP属地:四川17楼2023-08-06 17:50
                              收起回复