爱的燃火 发表于 2015-2-26 07:42:55

hdhhhz 发表于 2015-2-25 13:32
关于生物特技还有部分没有列出来啊。

因为还没找到或者不需要写上去。

贤知有您 发表于 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;

fly123 发表于 2015-5-20 22:20:43

修改黑市出售的宝物
ZVSE
!?FU9100;
Control of black markets (OxFEA):
x1 - market number (0..31) 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;

贤知有您 发表于 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;
!!SN:E6289408/2/x3/-1/-1;
!!SN:E5658176/2/x3/0;
!!SN:E5645872/2/x3;

贤知有您 发表于 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;
!!SN:E6289408/2/x4/-1/-1;
!!UN:C7998936/4/x2;[用于点击进入经验特技界面]
!!if&x3=0:;
!!SN:E6245280/2/x4;
!!el:;
!!SN:E6245264/2/x4;
!!en:;
!!SN:E6244736/2/x4;]

贤知有您 发表于 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;

air 发表于 2017-4-23 14:52:00

话说这些地址都哪里查的?

贤知有您 发表于 2017-4-23 22:42:16

大力神盾施法的回合 (原设定为2)
UN:C5901022/4/2;

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

air 发表于 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 =起始镇类型

air 发表于 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;

air 发表于 2017-4-28 11:52:46


大大提升骑士冲锋杀伤力

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


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

air 发表于 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;

贤知有您 发表于 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;

air 发表于 2017-6-23 18:42:36

本帖最后由 air 于 2017-6-23 18:43 编辑

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

XEricSin 发表于 2017-6-23 21:35:06

贤知有您 发表于 2017-5-29 13:29
!!FU12333:P38/2/2;

!?FU12333;


这个有个小瑕疵,就是信息栏会显示是当前回合的生物施放的火墙。不知道方不方便自定义。

XEricSin 发表于 2017-6-23 21:36:52

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

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

air 发表于 2017-6-23 21:47:31

XEricSin 发表于 2017-6-23 21:36
你这个是想说什么啊?让兵种看见火墙然后自动绕开火墙?

吧你制作DEF的工具拿来!

air 发表于 2017-8-2 18:10:02

感觉无论如何都有必要,让攻击上限破300%,防御上限破70%..........不然一点也不wog............

XEricSin 发表于 2018-2-15 12:33:29

本帖最后由 XEricSin 于 2018-2-15 12:38 编辑

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

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

贤知有您 发表于 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。

这个数据是之前写自己的宝物增强时用到的,天使联盟增强天使复活效果。但是,我忘记有否认真测试过了。你可以试试,最好能告诉我个测试结果。
页: 1 2 [3] 4
查看完整版本: ERM内存修改和函数调用探讨专题

捐赠