佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
楼主: 贤知有您

ERM内存修改和函数调用探讨专题

[复制链接]

该用户从未签到

693

回帖

6777

金币

2

精华

5级 Honorable Hero

Rank: 5Rank: 5

积分
4100

退役版主

发表于 2015-2-26 07:42:55 来自手机 | 显示全部楼层
hdhhhz 发表于 2015-2-25 13:32
关于生物特技还有部分没有列出来啊。

因为还没找到或者不需要写上去。
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4947

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34630

    论坛守望者论坛元老杰出贡献

     楼主| 发表于 2015-3-28 23:31:50 | 显示全部楼层
    最新探索出来的,战场临时更换背景方法.
    这里采用z997变量固定一个背景图案文本(其内存地址是10107880).
    ERM们也可以使用ert变量作为载体,再由
    SN:E7824928/1/ert编号; 并由v1返回内存地址.

    ZVSE
    !?CM4&1000; [战场更换场景示例]
    !!CM:F?y1 I?y2 S?y3;
    !!FU|y1<>512/y2<>2006/y3<>14:E; [右键点信息栏向上翻的按钮]
    !!CM:R0;
    !!IF:M^我变^;
    !!VRz997:S^CmBkCur.pcx^;[诅咒之地]
    !!UN:C6919200/4/?y1;    [战场内存地址]
    !!VRy2:Sy1+78948;[存储PCX文本]
    !!UN:Cy2/4/10107880;
    !!VRy3:Sy1+21432;
    !!UN:Cy3/4/0;
    !!SN:E4798576/2/y1;
    !!BU:R;
  • TA的每日心情
    开心
    2019-1-31 14:25
  • 签到天数: 130 天

    连续签到: 1 天

    [LV.7]血污怪

    2778

    回帖

    2万

    金币

    14

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    14801

    退役版主社区QQ达人魅力之星

    发表于 2015-5-20 22:20:43 | 显示全部楼层
    修改黑市出售的宝物
    ZVSE
    !?FU9100;
    Control of black markets (OxFEA):
    x1 - market number (0..31) [Control number of BM (OB:C)]  OB:C?y1;黑市编号=y1
    x2 - slot number (0..6)   宝物位置
    x3 - artifact ID (0..31)   宝物ID
    !!UN:C6919480/4/?y1;
    !!VRy1:+128644;
    !!UN:Cy1/4/?y2;
    !!VRy3:Sx1 *7 + x2 *4 + y2;
    !!UN:Cy3/4/x3;
    !!UN:Cy3/4/?y4;
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4947

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34630

    论坛守望者论坛元老杰出贡献

     楼主| 发表于 2015-5-29 16:24:42 | 显示全部楼层
    模拟英雄访问祭坛
    ZVSE
    !?CM1&1000; [城镇界面]
    !!CM:F?y1 I?y2 S?y3;
    !!FU|y1<>512/y2<>30720/y3<>14:E; [右键点确定按钮]
    !!CM:R0;
    !!CA-1:H1/?y1;[来访英雄ID]
    !!FU&y1<0:E;
    !!FU777777:P2/y1;[模拟英雄访问祭坛]

    !?FU777777;
    *x1=临时借用V变量内存(需确保祭坛生成到结束此变量都不会变化),避免使用v1
    *借用的v变量内存主要用于存储生成祭坛对话框的地址(指针)
    *x2=英雄ID
    !!FU|x1<2/x1>10000/x2<0/x2>155:E;
    !!VRx3:Sx1*4+8943204;
    !!HEx2:O?y2;
    !!FU&y2<0:E;
    !!SN:E7411341/1/x2;
    !!VRy3:Sv1;
    !!SN:E5636192/2/x3/y3/y2;[00560060]
    !!SN:E6289408/2/x3/-1/-1;[005FF800]
    !!SN:E5658176/2/x3/0;[00565640]
    !!SN:E5645872/2/x3;[00562630]
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4947

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34630

    论坛守望者论坛元老杰出贡献

     楼主| 发表于 2015-5-29 16:25:34 | 显示全部楼层
    ZVSE
    !?CM0&1000; [大地图右键]
    !!CM:F?y1 I?y2 S?y3;
    !!FU|y1<>512/y2<>1/y3<>14:E; [右键小地图]
    !!CM:R0;
    !!FU777777:P9990/150/0;[调出神圣天使属性框]

    !?FU777777;
    *调出城镇简易生物属性框(招募生物界面时点击出的属性框)
    *By-Hawaiing 贤知有您150527
    *x1=临时借用V变量内存(需确保对话框生成到结束此变量都不会变化),避免使用v1
    *借用的v变量内存主要用于存储生成对话框的地址(指针)
    *x2=生物编号
    *x3=是否暗示式显示(0否,1是)
    !!FU|x1<2/x1>10000/x2<0/x2>255:E;
    !!VRx3&x3<>0:S1;
    !!VRx4:Sx1*4+8943204;
    !!VRx5:Sx3*-1+1;[取反]
    !!SN:E6243760/2/x4/x2/119/32/x5;[005F45B0-创建对话框]
    !!SN:E6289408/2/x4/-1/-1;[5FF800-创建对话框]
    !!UN:C7998936/4/x2;[用于点击进入经验特技界面]
    !!if&x3=0:;
    !!SN:E6245280/2/x4;[005F4BA0-正常显示对话框]
    !!el:;
    !!SN:E6245264/2/x4;[005F4B90-暗示式显示对话框]
    !!en:;
    !!SN:E6244736/2/x4;[005F4980-销毁对话框]]
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4947

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34630

    论坛守望者论坛元老杰出贡献

     楼主| 发表于 2015-5-29 16:26:24 | 显示全部楼层
    在当前城镇界面下,调出招募生物框
    ZVSE
    !?CM1&1000; [城镇界面]
    !!CM:F?y1 I?y2 S?y3;
    !!FU|y1<>512/y2<>30720/y3<>14:E; [右键点确定按钮]
    !!CM:R0;
    !!FU7777777:P150/10/?y1;
    !!IF:M^刚招募了%Y1个150生物^;
    !!UN:R4/-1;

    !?FU7777777;
    *ByHawaiing 贤知有您 150529
    *在当前城镇界面下,调出招募生物框(借用召唤之门的招募界面)
    *x1=生物类型(0-255)
    *x2=可招募个数(1-32767)
    *?x3=返回当次招募的个数
    !!VRx3:S0;
    !!FU|x1<0/x1>255/x2<1/x2>32767:E;
    !!UN:C6919480/4/?y1;
    !!VRy1:+136724;
    !!UN:Cy1/4/?y2;
    !!CA-1:U?y3;
    !!VRx4:Sy3*360+y2+60;
    !!VRx5:Sx4+4;
    !!UN:Cx4/4/?x6 Cx5/2/?x7;
    !!UN:Cx4/4/x1 Cx5/2/x2;
    !!UN:C6106483/1/235;
    !!UN:C6919500/4/?y10;
    !!SN:E6106448/2/y10;
    !!UN:C6106483/1/117;
    !!UN:Cx5/2/?y11;
    !!VRx3:Sx2-y11;
    !!UN:Cx4/4/x6 Cx5/2/x7;

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-4-23 14:52:00 | 显示全部楼层
    话说这些地址都哪里查的?
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4947

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34630

    论坛守望者论坛元老杰出贡献

     楼主| 发表于 2017-4-23 22:42:16 | 显示全部楼层
    大力神盾施法的回合 (原设定为2)
    UN:C5901022/4/2;

    火墙施法的回合 (原设定为2)
    UN:C5901337/4/2;

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-4-28 11:44:54 | 显示全部楼层
    本帖最后由 air 于 2017-4-28 16:56 编辑

    找到玩家起始镇类型
    !?FU 15020;
    ; x1当前玩家
    !!UC:C6919480 / 4 / ?y1;
    !! VR y1:+128688; 起始镇型表的地址
    !! VR y2:Sx1 * 4 + y1; 表每个颜色有4个字节,从y1开始
    !!UC:Cy2 / 4 / ?y3; y3 =起始镇类型

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-4-28 11:51:04 | 显示全部楼层
    只对当前 &1000 玩家有效
    X1=1推他一下船
    X1=0吧英强制上船
    X2 强制上船英雄编号
    x3-5上船的位置



    !?FU221;

    !!UN:C6918840/4/?y2;
    !!SN:E7411341/1/x2;
    !!VRy3:Sv1;
    !!if&x1=0;
    !!HEx2:Px3/x4/x5;
    !!VRx5:* 4;
    !!UN:C10784129/1/0 C10784128/1/x3 C10784130/1/x4 C10784131/1/x5;
    !!SN:E7410371/1/y1;
    !!SN:E4852864/2/y2/y3/v1;
    !!el:;
    !!SN:E4842208/2/y2/y3/1;
    !!en:;
    !!UN:R1;

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-4-28 11:52:46 | 显示全部楼层

    大大提升骑士冲锋杀伤力

    !!UC:C4468887 / 4/6554608;
    !!UC:C4468961 / 4/6554608;


    6535680 - 25%
    6824736 - 50%
    6535688 - 75%

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-5-11 22:44:32 | 显示全部楼层
    已经移动到了目标身边,但是还没攻击之前触发      要钩子插件..                          
    触发器 !?FU36896   

    !?PI;
    !!SN:L^EraPlugins\erm_hooker.era^/?y1 Ay1/^SetHook^/?y2;   下钩子
    !!SN:Ey2/1/4463326/36896;                                                 勾住攻击前内存 4463326  让FU36896 插入...
    !?GM0;
    !!SN:L^EraPlugins\erm_hooker.era^/?y1 Ay1/^SetHook^/?y2;
    !!SN:Ey2/1/4463326/36896;
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4947

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34630

    论坛守望者论坛元老杰出贡献

     楼主| 发表于 2017-5-29 13:29:13 | 显示全部楼层
    !!FU12333:P38/2/2;

    !?FU12333;
    *战场位置施放单格火墙 byHawaiing 170526
    *注意应先判断施法位置是否可放置魔法
    *x1=位置,x2=力量,x3=持续回合(系统设定为2回合)
    !!VRx3&x3<1:S2;
    !!UN:C5901158/4/440;
    !!UN:C5901162/2/36864;
    !!UN:C5901337/4/x3;
    !!UN:C6919200/4/?y10;
    !!SN:E5898560/2/y10/13/x1/1/-1/0/x2;
    !!UN:C5901158/4/2210438415;
    !!UN:C5901162/2/704;
    !!UN:C5901337/4/2;

    点评

    这个有个小瑕疵,就是信息栏会显示是当前回合的生物施放的火墙。不知道方不方便自定义。  详情 回复 发表于 2017-6-23 21:35

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-6-23 18:42:36 | 显示全部楼层
    本帖最后由 air 于 2017-6-23 18:43 编辑

    来个教程.这段如何转换成erm?烈火魔墙,让双格生物能看见....
    44d7fa--jmp 44dd37(只能从这里插入,因为隔一隔放火墙会跳到这里)            
    mov ebx,eax(生物站位备份)
    push 01(双格属性)
    mov ecx,[ebp+08](兵种地址,用兵种内存地址)
    call 0040B32A(是否有双格属性,兵种地址+84)
    and eax,000000FF(计算过程,只留1字节,可以无视)
    test eax,eax(计算过程,判断数值是否与双格属性相等,可以无视)
    je 44dd71(无双格属性时跳转到最后)
    mov eax,ebx(生物站位还原)
    mov ecx,[826c28]
    add ecx,c39c
    cmp [ebp+08],ecx(攻防判断)
    jnl 44dd62跳转到防守方代码处
    dec eax(攻击方站位-1)
    jmp 44dd63跳到火墙判断
    inc eax(防守方站位+1)
    火墙判断
    cmp esi,[ebp+eax*4-00000324]
    jnl跳到最后
    jmp 0044D46A
    最后
    push 64
    push 4B
    call 004019F6
    jmp 44d803

    点评

    你这个是想说什么啊?让兵种看见火墙然后自动绕开火墙?  详情 回复 发表于 2017-6-23 21:36
  • TA的每日心情
    开心
    2015-12-9 01:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]火元素使者

    1839

    回帖

    8223

    金币

    8

    精华

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    10787

    社区QQ达人

    发表于 2017-6-23 21:35:06 | 显示全部楼层
    贤知有您 发表于 2017-5-29 13:29
    !!FU12333:P38/2/2;

    !?FU12333;

    这个有个小瑕疵,就是信息栏会显示是当前回合的生物施放的火墙。不知道方不方便自定义。
  • TA的每日心情
    开心
    2015-12-9 01:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]火元素使者

    1839

    回帖

    8223

    金币

    8

    精华

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    10787

    社区QQ达人

    发表于 2017-6-23 21:36:52 | 显示全部楼层
    air 发表于 2017-6-23 18:42
    来个教程.这段如何转换成erm?烈火魔墙,让双格生物能看见....
    44d7fa--jmp 44dd37(只能从这里插入,因 ...

    你这个是想说什么啊?让兵种看见火墙然后自动绕开火墙?

    点评

    air
    吧你制作DEF的工具拿来!  详情 回复 发表于 2017-6-23 21:47

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-6-23 21:47:31 | 显示全部楼层
    XEricSin 发表于 2017-6-23 21:36
    你这个是想说什么啊?让兵种看见火墙然后自动绕开火墙?

    吧你制作DEF的工具拿来!

    该用户从未签到

    1066

    回帖

    7228

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6026
    发表于 2017-8-2 18:10:02 | 显示全部楼层
    感觉无论如何都有必要,让攻击上限破300%,防御上限破70%..........不然一点也不wog............
  • TA的每日心情
    开心
    2015-12-9 01:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]火元素使者

    1839

    回帖

    8223

    金币

    8

    精华

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    10787

    社区QQ达人

    发表于 2018-2-15 12:33:29 | 显示全部楼层
    本帖最后由 XEricSin 于 2018-2-15 12:38 编辑

    我看到大天使的复活和指挥官的复活差不多。
    既然指挥官的复活限制取消了,大天使能否也取消限制呢?
    或者更改复活点数呢?比如100 -> 200?

    补充以下,单就复活而言,可以用超级复活函数。
    但是想能配合原始施法动作,一同进行。

    点评

    如果使用HOOK钩子来处理估计会很容易处理。 如果单纯改几个内存地址,很难更改数据的。因为硬编码(汇编)处理乘数法是很特殊的,并不是一个乘号一个除号的公式。 不过你提到的复活数量翻倍倒是可以简单实现,恰好  详情 回复 发表于 2018-2-17 23:39
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4947

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34630

    论坛守望者论坛元老杰出贡献

     楼主| 发表于 2018-2-17 23:39:41 | 显示全部楼层
    本帖最后由 贤知有您 于 2018-2-17 23:42 编辑
    XEricSin 发表于 2018-2-15 12:33
    我看到大天使的复活和指挥官的复活差不多。
    既然指挥官的复活限制取消了,大天使能否也取消限制呢?
    或者 ...

    如果使用HOOK钩子来处理估计会很容易处理。
    如果单纯改几个内存地址,很难更改数据的。因为硬编码(汇编)处理乘数法是很特殊的,并不是一个乘号一个除号的公式。
    不过你提到的复活数量翻倍倒是可以简单实现,恰好3个判断位置都是个移位语法
    比如
    00447077 - c1 e0 02                   - shl eax,02
    只需要把 02 改成 03,结果就变成200了。

    !!UN:C4485241/1/3 C4489947/1/3 C5932992/1/3;[天使重生效果翻倍]

    还原的语句是后面的3改成2。

    这个数据是之前写自己的宝物增强时用到的,天使联盟增强天使复活效果。但是,我忘记有否认真测试过了。你可以试试,最好能告诉我个测试结果。

    点评

    复活点数的确翻倍了,但是复活门槛没有变。也就是说生命值大于100的点生物仍然不能复活。这个小问题可以用erm的触发战场提示解决。 另外我在想,如果没有内存修改的情况下,是否可以临时更改目标的生命上限,从而  详情 回复 发表于 2018-2-18 10:53
    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

    捐赠
    关注我们,英3Mod一网打尽!

    WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号

    GMT+8, 2024-4-27 04:00 , Processed in 0.432565 second(s), 11 queries , Gzip On, File On.

    Powered by Discuz! X3.4

    Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.

    快速回复 返回顶部 返回列表