2014-4-3 22:27
aaa132536
请毅兄指点下,谢谢
像损血、耗蓝时的动画需调用450984函数,那么策略动画有没有一个专门的函数,只要输入策略动画编号、施策方、受策方等参数,调用这个函数就可播出动画,谢谢。
2014-4-4 00:17
WHITESHIP
噗看标题还以为是旧帖……
我的经验是,如果只是要播放策略动画还是有可能的。
一般是一串连着的函数,4014F8,401E5C,4016AB等。你可以搜一下,仿照一下代码。
如果要像真正的策略攻击一样显示数字,损血什么的太难了,因为中途还需要45533D调用攻击范围,并会让玩家决定攻击目标。
如果只调用4214BF的话,要从497AF8开始设置几个值,非常麻烦,所以我最后没有用这个方法。
不知道毅大有没有比较好的方案……
2014-4-4 00:58
aaa132536
回复 #2 WHITESHIP 的帖子
我只要动画效果,我想为几个特性加上动画效果。如回春:受伤后可自动释放补给策略,特性作用时会显示补给的动画。
[color=Silver][[i] 本帖最后由 aaa132536 于 2014-4-4 01:07 编辑 [/i]][/color]
2014-4-4 01:05
aaa132536
回复 #2 WHITESHIP 的帖子
谢谢夏侯兄。动画一般是引用4014F8这个函数。
004141F4 |> \68 004C0400 push 44C00 ; /Arg4 = 00044C00
004141F9 |. 6A 04 push 4 ; |/Arg3 = 00000004
004141FB |. 6A 00 push 0 ; ||Arg2 = 00000000
004141FD |. 6A 00 push 0 ; ||Arg1 = 00000000
004141FF |. B9 C8E44A00 mov ecx,Ekd5.004AE4C8 ; ||
00414204 |. E8 37B80600 call Ekd5.0047FA40 ; |\Ekd5.0047FA40
00414209 |. 50 push eax ; |Arg3
0041420A |. 8A55 F4 mov dl,byte ptr ss:[ebp-C] ; |
0041420D |. 52 push edx ; |Arg2
0041420E |. 68 F8BB4800 push Ekd5.0048BBF8 ; |Arg1 = 0048BBF8 ASCII "MEFF.E5"
00414213 |. B9 B0174900 mov ecx,Ekd5.004917B0 ; |
00414218 |. E8 DBD2FEFF call Ekd5.004014F8 ; \Ekd5.004014F8
可惜还不明白输入的参数到底是什么
2014-4-4 08:51
godtype
[url]http://www.xycq.net/forum/viewthread.php?tid=222806&page=1#pid3699629[/url]
......
2014-4-4 11:21
aaa132536
回复 #5 godtype 的帖子
谢谢毅兄,不过我想问下
00414204 |. E8 37B80600 call Ekd5.0047FA40 ; |\Ekd5.0047FA40
00414209 |. 50 push eax ; |Arg3
0041420A |. 8A55 F4 mov dl,byte ptr ss:[ebp-C] ; |
0041420D |. 52 push edx ; |Arg2
0041420E |. 68 F8BB4800 push Ekd5.0048BBF8 ; |Arg1 = 0048BBF8 ASCII "MEFF.E5"
00414213 |. B9 B0174900 mov ecx,Ekd5.004917B0 ; |
00414218 |. E8 DBD2FEFF call Ekd5.004014F8 ; \Ekd5.004014F8
参数2是不是策略动画编号,参数3是不是受策方坐标
谢谢
[color=Silver][[i] 本帖最后由 aaa132536 于 2014-4-4 11:23 编辑 [/i]][/color]
2014-4-4 12:35
godtype
策略动画是很多函数组合使用的,看清楚前面的部分。
2014-4-4 15:48
aaa132536
回复 #7 godtype 的帖子
嗯,我发现调用004014F8函数还要输入一个空间值:dword ptr ss:[ebp-110],那dword ptr ss:[ebp-110]到底是什么哦
2014-4-4 15:54
aaa132536
00405990 |> \8B4D 1C mov ecx,dword ptr ss:[ebp+1C] (ecx=受策方战场内存地址)
00405993 |. FF71 07 push dword ptr ds:[ecx+7] ; /Arg2
00405996 |. FF71 06 push dword ptr ds:[ecx+6] ; |Arg1
00405999 |. B9 50424B00 mov ecx,Ekd5.004B4250 ; |
0040599E |. E8 9CF60400 call Ekd5.0045503F ; \Ekd5.0045503F
004059A3 |. 68 004C0400 push 44C00 ; /Arg4 = 00044C00
004059A8 |. 6A 04 push 4 ; |/Arg3 = 00000004
004059AA |. 6A 00 push 0 ; ||Arg2 = 00000000
004059AC |. 6A 00 push 0 ; ||Arg1 = 00000000
004059AE |. B9 C8E44A00 mov ecx,Ekd5.004AE4C8 ; ||
004059B3 |. E8 88A00700 call Ekd5.0047FA40 ; |\Ekd5.0047FA40
004059B8 |. 50 push eax ; |Arg3
004059B9 6A 05 push 5 (策略动画编号)
004059BB |. 90 nop ; |
004059BC |. 90 nop ; |
004059BD |. 68 F8BB4800 push Ekd5.0048BBF8 ; |Arg1 = 0048BBF8 ASCII "MEFF.E5"
004059C2 |. B9 B0174900 mov ecx,Ekd5.004917B0 ; |
004059C7 |. E8 2CBBFFFF call Ekd5.004014F8 ; \Ekd5.004014F8
这个调用策略动画的代码还要补充哪里哦
2014-4-4 17:11
godtype
只要跟mov ecx,004917B0 有关的都是。
好像我那样拆开指令6B就足够了。
2014-4-4 18:05
aaa132536
回复 #10 godtype 的帖子
哦,那我再去研究下。
2014-4-4 19:24
aaa132536
回复 #10 godtype 的帖子
谢谢毅兄,我知道怎么做了。
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.