标题: 请教一个代码问题
性别:男-离线 YSH0212
(ysh0212)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 185
编号 352883
注册 2009-12-31
来自 福建


发表于 2012-11-2 23:52 资料 短消息 只看该作者
请教一个代码问题

模仿别人写了一段安排人物特效的代码,本来以为可以了,但刚发现所有人都有了这种效果……
下面一段时判断武将的写法,不知道哪里出问题了,各位看看,指点一下。5.0引擎。



MOV EAX,DWORD PTR SS:[EBP-8]
MOV CL,BYTE PTR DS:[EAX+1]
AND ECX,0FF
IMUL ECX,ECX,24
ADD ECX,Ekd5.004B2C50                  
CALL Ekd5.0045F670
CMP EAX,4 -------武将data号                  
JE Ekd5.004231BD    -----执行代码


顶部
性别:男-离线 WHITESHIP

★★
谏议大夫

Rank: 16
组别 翰林学士
级别 征北将军
功绩 380
帖子 4210
编号 170977
注册 2007-6-3
家族 轩辕学院


发表于 2012-11-3 00:04 资料 个人空间 短消息 只看该作者
按F2设断点在cmp eax,4处,然后F9运行游戏。随便让一个人触发特效。
系统会自动跳转到断点处,此时看下右下角eax是多少,如果和那个人的武将编号不同,那就说明代码有问题。

说错了,eax在反汇编窗口的左下角。

[ 本帖最后由 WHITESHIP 于 2012-11-3 00:17 编辑 ]


顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2012-11-3 09:58 资料 个人空间 短消息 只看该作者
JE Ekd5.004231BD
的下一行是什么内容?如果是需要给4号武将的效果,那上面这行就应该用jnz
顶部
性别:男-离线 YSH0212
(ysh0212)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 185
编号 352883
注册 2009-12-31
来自 福建


发表于 2012-11-3 10:43 资料 短消息 只看该作者
回复 #2 WHITESHIP 的帖子

果然不对,eax居然是是0000FFFF,这是什么情况……
顶部
性别:男-离线 YSH0212
(ysh0212)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 185
编号 352883
注册 2009-12-31
来自 福建


发表于 2012-11-3 10:47 资料 短消息 只看该作者
回复 #3 godtype 的帖子

应该是用je,后面的代码是不执行特效的代码,跳转过去的是人物特效代码。
你们平时给人物设置特效一般怎么写,我觉得是前面
MOV EAX,DWORD PTR SS:[EBP-8]
MOV CL,BYTE PTR DS:[EAX+1]
这里给eax赋值什么的出了问题。因为cmp eax,4这里的eax的值一直是0000ffff
顶部
性别:男-离线 WHITESHIP

★★
谏议大夫

Rank: 16
组别 翰林学士
级别 征北将军
功绩 380
帖子 4210
编号 170977
注册 2007-6-3
家族 轩辕学院


发表于 2012-11-3 12:49 资料 个人空间 短消息 只看该作者
回复 #5 YSH0212 的帖子

你把
MOV EAX,DWORD PTR SS:[EBP-8]
MOV CL,BYTE PTR DS:[EAX+1]
这两条也设断点测试一下。可能调用武将代码的ECX就错了。
我从没写过特效……这个是我的弱项。这里我不太记得了,ECX本应该是什么来着……?
如果错误要修正的话,就要看右下角的堆栈代码,然后来计算要读取哪个栈。
顶部
性别:男-离线 513633522
(小越)

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 右将军
功绩 12
帖子 1179
编号 349592
注册 2009-12-6
家族 轩辕狼党


发表于 2012-11-3 13:31 资料 文集 短消息 只看该作者


QUOTE:
CMP EAX,4 -------武将data号                  
JE Ekd5.004231BD    -----执行代码

后面的代码是不执行特效的代码,跳转过去的是人物特效代码。

把那一段全部贴出来看看  这样  不执行特效的代码 后 跳过 特效代码 了没

eax的值一直是0000ffff   调用函数之前清空下看看

5.0引擎表示没看过

[ 本帖最后由 513633522 于 2012-11-3 13:33 编辑 ]
顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2012-11-3 15:02 资料 个人空间 短消息 只看该作者
贴完整代码,从跳转的位置来看,这里没什么效果可以添加。
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2024-11-27 05:04
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.011273 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP