- 积分
- 1623
- 威望
- 7
- 魅力
- 6
- 经验
- 1326
- 热心度
- 0
- 注册时间
- 2014-12-11
- 最后登录
- 2024-8-15
- 主题
- 12
- 回帖
- 112
- 精华
- 1
- 阅读权限
- 40
TA的每日心情 | 开心 2024-8-15 19:26 |
---|
签到天数: 149 天 连续签到: 1 天 [LV.7]血污怪
4级 Famous Hero
- 积分
- 1623
|
这段时间一直在做一个脚本,构想中可以实现一回会多次施法,经大神007指点,参看了双C脚本,非常好用,正是我想实现的功能,只有一点和预想中的不同,我预想的是鼠标点击施法图标两次施法。这就要求第一次施法之后,施法图标不能变灰,于是再次在007的指点之下,我开始了wog内部机制修改之旅,修改的目的就是实现施法图标不变灰的功能。
启运ce,创建进程,调试-运行,让wog运行起来,并进入战斗界面。
到了这一步,不知怎么下断,然后看了双C脚本,007里面用了一个内部函数,功能是弹出魔法书,于是我就用这个函数下断,函数地址是0x476500,这是我换算后的十六进制地址。右键点击代码窗口-转到地址-输入地址,直接跳到这个地址-下断。
点施法图标,我满怀希望的断没有出现,当时真没想到内部机制弹出魔法书竟然用的不是这个函数。
我又试其它操作,结果在怪物移动时,中断了。
然后,我shift+F8返回,返回,连续返回,然后定到一个函数那里,再也返回不动了,这个就是战场总处理函数,再能返出去,就是退出战斗了。
就在这个函数下断,不愧为总处理函数,一断下,画面就定格了,按F9看看效果,按一下,动一下,效果很好。
这时点施法图标,按F7进入总处理函数内部,按F8一步一步执行。
这个时候就是考验耐心的时候,我因为初时没有耐心,在这一步重复N多次,眼睛看花了,也没有得到有用的结果。
按一段时间之后,魔法书弹出,把这个函数下断,我当时在想,原来你才是御用的魔法书弹出函数啊。
这时点选一个魔法,又断,大家注意观察一下,这时EAX的值就是你所选魔法的编号。
F8继续前进,几步之后,又过一个函数,让你点选施法目标,点选之后,又断下,按F8继续,一会儿之后,魔法书图标变灰,好了,就是这个函数,下断。
wog的内部施法机制是图标先变灰,再显示法术动画效果。
F9运行起来了,把前面的断点都删除,等下一回合能施法时,点施法图标弹出魔法书,点选魔法,选择施法目标,中断到刚才施法图标变灰的函数上。
F7进入,F8继续。这个时候更是考验耐心的时候,因为接下来的函数还有很多,你要判断哪个是环节函数,哪个是底部执行函数。
我们要做的就是找出最接近底部执行函数的环节函数,因为通常情况下,最接近底部的操作起来更加安全,不会对全局造成影响。
一般情况下是不能操作底部执行函数的,因为它被调用的太频繁了,改它更容易出错。
这样找下去之后,我找到一个比较合适的环节函数,然后看它的执行条件,结果就是在0x5A032C这个地址看到一个条件跳转,条件满足时,会跳过环节函数,不进行战场重绘,当然图标也不会变灰了。
就是它了,立即改成无条件跳转,F9运行,果然跳过,战场显示法术动画,而施法图标却没有变灰。
最后改成erm语句,就是!!UN:C5899052/4/2206870251;
这是改成无条件跳转,恢复语句就是!!UN:C5899052/4/2206870132;
最后感谢贤知有您007的帮助和指点。
|
评分
-
1
查看全部评分
-
|