求教贤知有您,这个脚本的地址是如何查到的?
贤知有您!!SN:L^EraPlugins\erm_hooker.era^/?y1 Ay1/^SetHook^/?y2 Ay1/^UnsetHook^/?y3; ..记录Ay1/^SetHook^/?y2插入?Ay1/^UnsetHook^/?y3;记录还原..
!!SN&x1=0:Ey2/1/4462078/111218; hook at 004415FE => FU111218 4462078(肉搏攻击,环击进行前 )插队到这个内存地...用 FU111218
!!SN&x1=1:Ey3/1/4462078; 还原
这个你是如何知道这个地址的???难道有反汇编软件让运行wog然后另一侧显示地址变化?这个的需要个简易的操作教程啊....我试了下反汇编软件运行..但是高清那个打不开..无法窗口.然后运用也是一脸蒙...求一个简易的战场内存地址查找教程....感觉这插件谁然好只是目前使用面也太窄了吧??基本都是攻击前后..伤害计算前后..这套用和BG没有质变....很悖论的节奏唯一的质变就是这个最好计算吸血伤害..能修改让吸血鬼吸更多血..
ZVSE
*by贤知有您 Hawaiing 2015-7-31
*bloodsuck&retaliation
*用于解决环击和吸血无法共存的问题.修复后,环击时吸血生物可以对目标吸血(非群体吸血).
*需要erm_hooker.era插件才能运行.不能与其它修改过相关地方的脚本混用.
*FU111217-FU111218
*FU111219-FU111220
!?PI;
!!MA:X63/?i;
!!VRi:|524288;
!!MA:X63/i;[吸血鬼王为环击-用于测试]
*--------------------SetHook&UnsetHook---------------
!?BA0&1000;[战斗前]
!!FU111217:P0;
!!FU111219:P0;
!?BA1&1000;[战斗后]
!!FU111217:P1;
!!FU111219:P1;
*------------------------------------------------------------
!?FU111217;[肉搏攻击,环击进行前]
*004415FE - 8d 45 e8 - lea eax,
!!SN:L^EraPlugins\erm_hooker.era^/?y1 Ay1/^SetHook^/?y2 Ay1/^UnsetHook^/?y3;
!!SN&x1=0:Ey2/1/4462078/111218; hook at 004415FE => FU111218
!!SN&x1=1:Ey3/1/4462078;
!?FU111218;
*此时目标堆栈,写入的目标地址是
*计算目标堆栈的总HP,并写入目标地址
*需提取地址: EBP (8)
!!SN:X?y1/1;[按原命令执行]
!!VRy2:Sy1+8;
!!UN:Cy2/4/?y3; =ebp
!!VRy4:Sy3+8;
!!UN:Cy4/4/?y5; y5=目标堆栈
!!VRy6:Sy3-36;
!_!UN:Cy6/4/?y7; 原值
!!VRy8:Sy5+192; BM:H
!!VRy9:Sy5+76; BM:N
!!VRy10:Sy5+88; BM:L
!!UN:Cy8/4/?y11 Cy9/4/?y12 Cy10/4/?y13;
!!VRy14:Sy11*y12-y13;
!!VRy14&y14<0:S0;
!!UN:Cy6/4/y14;[写入数据]
*------------------------------------------------------------
!?FU111219;[吸血过程中]
*0044095A - 8b 8e c0 00 00 00 - mov ecx,
!!SN:L^EraPlugins\erm_hooker.era^/?y1 Ay1/^SetHook^/?y2 Ay1/^UnsetHook^/?y3;
!!SN&x1=0:Ey2/1/4458842/111220; hook at 0044095A => FU111220
!!SN&x1=1:Ey3/1/4458842;
!?FU111220;
*此时,本体堆栈esi,目标堆栈,目标堆栈原总HP,写入目标地址是(指针)
*若本体堆栈拥有环击标志,但重算可吸血HP.用原总HP-当前目标堆栈总HP获得.并写入到相应内存上.
*需提取地址:EDI (0),ESI (4), EBP (8)
!!SN:X?y1/1;[按原命令执行]
!!UN:Cy1/4/?y2; y2=edi
!!VRy3:Sy1+4;
!!UN:Cy3/4/?y4; y4=esi
!!VRy21:Sy4+132;
!!UN:Cy21/4/?y22; y22=本体堆栈标志
!!VRy22:&524288;是否环击
!!FU&y22=0:E;
!!VRy5:Sy1+8;
!!UN:Cy5/4/?y6; y6=ebp
!!VRy7:Sy6+8;
!!UN:Cy7/4/?y8; y8=目标堆栈
!!VRy9:Sy6+20;
!!UN:Cy9/4/?y10; y10=目标堆栈原总HP
!!VRy11:Sy8+192; BM:H
!!VRy12:Sy8+76; BM:N
!!VRy13:Sy8+88; BM:L
!!VRy14:Sy8+132;BM:F
!!UN:Cy11/4/?y15 Cy12/4/?y16 Cy13/4/?y17 Cy14/4/?y18;
!!VRy19:Sy15*y16-y17;目标当前总HP
!!VRy20:Sy10-y19;
!!VRy20&y20<0:S0;
!!VRy18:&8388608;[是否克隆体]
!!VRy20&y18>0/y20>1:S1;[按原作设定克隆体只为1hp]
!!UN:Cy2/4/y20; 写入到 上
*贤知有您 Hawaiing*
复制代码
你单纯问怎样找到地址是没有意义的.学习都需要知识和过程的.
反汇编的工具是很多的,有静态的也有动态的.我之前比较喜欢 CE 这款,就像内存编辑器一样,直接改机器码.
但软件不是重点,重点是你需要先学习 汇编的知识.也就是需要知道软件编码是怎样运作的.
有了汇编的知识,你就可以去看各种内存了.当你积累了很多,你就可以尝试去查找需要的编码,通过各种断点,了解各函数调用的情况.
ERM_HOOKER的插件主要就是HOOK住内存并转换为ERM语言来设定你想要的结果.
如果要说WOG的一些特性功能是怎么来的,基本都是HOOK了SOD并延展开来的.只不过编者有源码,所以直接用高级语言编写插件完成了这些.
我们有了ERM和ERM_HOOKER,也就是把内存运行延伸到ERM语言控制上.
回到最早的前提,楼主可以先学习汇编知识.
不过话说回来.玩内存是很累很累的.
但是,如果没有UN:C SN:E 这样的内存修改和调用,就没有这么多精彩的WOG技能修改了.
以前WOG只能圈在ERM原语法的框架下无法突破,当有了内存修改,几乎就是你想干啥都行.(理论上说的)
回味当年和沧海一粟探讨突破各种ERM框架限制的时光.
现在ERM越来越少人玩了.好在还有像XEricSin等不断进步和开发.
希望各路大神坚持下去.
顺便BS一下一些不尊重论坛劳动成果的人,害得沧海一粟都失去了封神后续创作的意向. 贤知有您 发表于 2017-5-6 23:40
不过话说回来.玩内存是很累很累的.
但是,如果没有UN:C SN:E 这样的内存修改和调用,就没有这么多精彩的WOG ...
代码道到能看懂..只是不知道如何查..先运行wog?然后用这个扫?比如你截图的这个..是不是必须英雄上战场带上类似九头之类的攻击后才能扫出呢? 定位到主函数入口上,然后慢慢研究。 贤知有您 发表于 2017-5-7 10:24
定位到主函数入口上,然后慢慢研究。
难道不需要运行?? 运行方便断点调试。静态的话就是只能看exe或者dll之类的机器码,运行时可能受各种插件影响有变化。正如HD版本就像个外挂一样。 ERA之所以能随便修改wog内存,是事先去掉了exe的头保护。dll这些受保护的运行是不会让你随便在运行中修改的。 贤知有您 发表于 2017-5-7 12:14
ERA之所以能随便修改wog内存,是事先去掉了exe的头保护。dll这些受保护的运行是不会让你随便在运行中修改的 ...
唉.好吧..研究一下午发现不是促发器的问题..而是一旦开始攻击就已经跳转了..乱改直接跳出..模拟出来的基本也差不多完美了...
话说封神里面这个如何用呢??? x2 x3 一脸蒙逼啊.....
**FU16061:Px1/x2/x3;//调用改变生物名称和说明函数 By 召唤师
**x1=堆栈,x2=单数&复数ert名称,x3=特技ert说明
!?FU16061;
!!FU|x1<0/x1>41:E;
!!BMx1:T?y1 N?y2;
!!FU|y1<0/y2<1:E;
!!SN:E7824928/1/x2;
!!VRy3:Sv1;
!!BMx1:G-67/y3/d G-68/y3/d;-67生物复数名称,-68生物单数名称
!!SN:E7824928/1/x3;
!!VRy4:Sv1;
!!BMx1:G-66/y4/d; -66生物特技说明
!?PI;
!!UN:C6240582/4/8951691;
!!UN:C6240586/4/1435041792;
!!UN:C6240590/4/-1869574136;
!!UN:C6240594/4/-1869574000;
!!UN:C6240598/4/-1869574000;
!!UN:C6240602/4/-1869574000;
!!UN:C6240606/4/-1752489237;
!!UN:C6240610/4/140;
!!UN:C6240614/4/-1878502007;
!!UN:C6240618/4/-1869574000;
!!UN:C6240622/4/-1869574000;
!!UN:C6240626/4/-1869574000;
!!UN:C6240630/4/-342847344;
!?GM0;
!!UN:C6240582/4/8951691;
!!UN:C6240586/4/1435041792;
!!UN:C6240590/4/-1869574136;
!!UN:C6240594/4/-1869574000;
!!UN:C6240598/4/-1869574000;
!!UN:C6240602/4/-1869574000;
!!UN:C6240606/4/-1752489237;
!!UN:C6240610/4/140;
!!UN:C6240614/4/-1878502007;
!!UN:C6240618/4/-1869574000;
!!UN:C6240622/4/-1869574000;
!!UN:C6240626/4/-1869574000;
!!UN:C6240630/4/-342847344;
!?PI;
!!UN:C4794706/2/20619;
!!UN:C4794708/1/52;
!!UN:C4794709/2/53893;
!!UN:C4794713/2/64129;
!!UN:C4794715/4/256;
!!UN:C4794719/2/6015;
!!UN:C4794721/4/2425393296;
!!UN:C4794725/4/2425393296;
!!UN:C4794729/4/2425393296;
!!UN:C4794733/2/37008;
!!UN:C4794735/4/8945803;
!!UN:C4794739/2/0;
!!UN:C4794741/1/144;
!?GM0;
!!UN:C4794706/2/20619;
!!UN:C4794708/1/52;
!!UN:C4794709/2/53893;
!!UN:C4794713/2/64129;
!!UN:C4794715/4/256;
!!UN:C4794719/2/6015;
!!UN:C4794721/4/2425393296;
!!UN:C4794725/4/2425393296;
!!UN:C4794729/4/2425393296;
!!UN:C4794733/2/37008;
!!UN:C4794735/4/8945803;
!!UN:C4794739/2/0;
!!UN:C4794741/1/144;
16061函数主要是为现场临时召唤堆栈时,修改堆栈的一些文本说明,比如这里提到的堆栈名字和技能描述。x2-x3是指ert的序号,用ert存储文本。你看看调用函数的脚本就知道了,一串ert的数字,到ert文本中可以找到文字。 贤知有您 发表于 2017-5-7 22:16
16061函数主要是为现场临时召唤堆栈时,修改堆栈的一些文本说明,比如这里提到的堆栈名字和技能描述。x2-x3 ...
找到了ERT文件不过编号如何看呢?? 贤知有您 发表于 2017-5-7 22:16
16061函数主要是为现场临时召唤堆栈时,修改堆栈的一些文本说明,比如这里提到的堆栈名字和技能描述。x2-x3 ...
找到了文本..不过都是侦查术等...汉字.而且只有行列...没有编号暗示.. 贤知有您 发表于 2017-5-7 22:16
16061函数主要是为现场临时召唤堆栈时,修改堆栈的一些文本说明,比如这里提到的堆栈名字和技能描述。x2-x3 ...
好吧找到了.....原来居然要TXT打开才能看到........;sw; 楼主对wog和era的构造还不够了解,嘿嘿 贤知有您 发表于 2017-5-7 23:50
楼主对wog和era的构造还不够了解,嘿嘿
不过还是无法使用..就算我创建ERT文件进mod.加载后人家压根就不读取....直接说空文本.. 贤知有您 发表于 2017-5-7 23:50
楼主对wog和era的构造还不够了解,嘿嘿
额.同名文件可用....不过要创建一个erm 和一个 ERA文本.然后做图时候地图对应事件和这个ert同名字....话说如此细节应该论坛出个贴集中说明一下...不然人家绘图调试脚本就累死了..结果再被这些细节坑一波,早就放弃尝试了...
页:
[1]