yyjzbl 发表于 2021-4-14 10:17:14

关于内存地址的一些问题

hero3 生物魔免排列:00 01 09 09 09 09 09。。。。起始地址:8a6be
era   生物魔免排列:00 01 08 08 08 08 08。。。。起始地址:33aed0
(从矮人开始)

00 20%抵抗
01 40%抵抗
02 1-3级魔法
03 1-4级魔法
04 所有魔法
05 流星火雨,双目失明
06 气系伤害
07 水系伤害

生物施法对象判断:33aa10(从大天使开始)
00 复活
01 我方
02 敌方

生物施法1:33aad0(从大天使开始)
00 复活
01 有益魔法(神怪)
02 嗜血(食人魔王)
03御水
04 御土
05 御气
06 御火
07 攻击魔法(紫龙)

生物施法2:33ab90(从大天使开始)
00 复活
01 有益魔法
02 复活恶鬼(邪神王)
03 嗜血(食人魔王)
04 御水
05 御土
06 御气
07 御火
08 攻击魔法(紫龙)

生物特技:33ace0-33ad8e(从老树开始)
00 缠绕
01 失明
02 疾病
03 诅咒
04 衰老
05 石化
06 麻痹
07 中毒
08 酸液(破防)

至于为什么设计2个生物施法,可能是考虑到使某种生物既能对敌施放伤害魔法又能对我方施放有益魔法,当然原版h3没有这种兵种,而且施法对象判断就3种,没有设计针对敌我施法共存的判断,于是。。。
简单的改变施法标志是容易出错的,涉及到调用函数的内存偏移,想想就很麻烦,但理论上通过硬编码的修改(这个比较难,主要是wog.exe压缩了空间,不像hero3.exe可以往里面塞东西)或者erm内存指令可实现

大部分应该有人发过了,但是我没查到,就自己查了一下

说实话我根本不懂编程和erm编写,上面都是胡诌的。。。。。

本来我就是简单地想让黑龙和金龙能复活,强迫症,喜欢无损,不能复活得话这两个兵种万年冷板凳,翻了翻论坛资料,有相关的去除魔法免疫,但是那些erm都存在一个问题--就是你只带黑龙的时候,根本打不开复活魔法,会提示无效,貌似MR0的判断太靠后了,又不会erm,于是翻了翻关于内存的,没有生物魔免的标志,就自己找了一下,还是不理想,因为魔免判断指令就那几种,最多改成圣龙这样不吃1-3级又能复活的。。。

单纯伸手党估计没人理,所以写了那么多就是想请教一下,怎么通过erm+内存修改让金龙和黑龙真正的只受复活魔法!!

yyjzbl 发表于 2021-4-14 10:41:51

对了,那一大段数据里还有
生物特技2 : 33ac50(从高级吸血鬼开始)
00 吸血
01 闪电
02 死亡凝视
03 驱散
04 毒液(毒龙)

gsczwzzzzz 发表于 2021-4-14 15:10:01

给个妖路子想法,当检测到玩家在施放(英雄和生物施法分开检测)转世重生时候,且鼠标移动对象为黑龙,则修改指针为施法图标,并取消原施法,消耗对应魔力值或施法次数,然后根据威力和生物数量直接代码复活黑龙。当然在做全局魔免检测时候还需要在场上有可复活的黑龙时候屏蔽掉对应的检测。

yyjzbl 发表于 2021-4-14 15:35:57

gsczwzzzzz 发表于 2021-4-14 15:10
给个妖路子想法,当检测到玩家在施放(英雄和生物施法分开检测)转世重生时候,且鼠标移动对象为黑龙,则修 ...

关键就是全局魔免检测怎么屏蔽啊。。。。

贤知有您 发表于 2021-4-14 15:42:22

要想黑龙可以被复活.
加个容纳的经验特技就可以了.

yyjzbl 发表于 2021-4-16 11:34:27

本帖最后由 yyjzbl 于 2021-4-16 11:42 编辑

贤知有您 发表于 2021-4-14 15:42
要想黑龙可以被复活.
加个容纳的经验特技就可以了.
容纳被全灭了无法起作用吧,而且主要是玩一些老的经典地图根本不敢开兵种经验选项,会导致有些地方卡住过不去。。。
研究了好长时间,要是单纯的能复活可以把exe文件的0x33af13的04改为08,黑龙就没有任何魔法免疫了,或者
!!UN:C7995155/1/8;也能实现去除黑龙魔法免疫,我就是想只吃复活魔法,不吃别的,我试着把!!UN:C包在一个?!FU函数里,然后战场检测到复活施法时调用,试了半天发现-----我根本不懂erm好不好!!!就别玩这种高深的操作了。。。也找到战场魔法免疫全局检测了,内存地址偏移为4A4B1,但是要是使用nop屏蔽了的话就天下大乱了,所有免疫消除。。。。



Hugh 发表于 2023-11-27 14:33:12



大佬可以给出4.0白金版 生物内存特技地址吗? 圣龙地址一直找不到,
页: [1]
查看完整版本: 关于内存地址的一些问题

捐赠