标题: 无反击兵种和武将代码,出现问题
性别:男-离线 513633522
(小越)

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


发表于 2010-8-18 13:56 资料 文集 短消息 只看该作者
无反击兵种和武将代码,出现问题

扩展无反击兵种和武将代码,出现问题,求教各位前辈!!
这段代码是按严老师的教程、岱瀛的一些教程和毅大的一些教程修改扩展的,但不知道出来什么问题!!运行后,武将攻击会跳出的!!不知道是哪里错了,是不是判断武将的代码有错误??请哪位给我看看!!谢谢!!

如果按严老师的 各种兵种与宝物特效 原代码是可以有效的!!我改成下面的就会出现问题!!

004CE058   /74 05           JE SHORT Ekd51.004CE05F
004CE05A  -|E9 8D84F3FF     JMP Ekd51.004064EC    攻击者带无反装备,跳过反击有效代码
004CE05F   \8B4D F0         MOV ECX,DWORD PTR SS:[EBP-10]
004CE062    8B49 08         MOV ECX,DWORD PTR DS:[ECX+8]
004CE065    E8 A685F3FF     CALL Ekd51.00406610
004CE06A    25 FF000000     AND EAX,0FF
004CE06F    83F8 03         CMP EAX,3
004CE072    75 05           JNZ SHORT Ekd51.004CE079 不是3号兵种跳到004CE079判断是不是9号兵种
004CE074  - E9 7384F3FF     JMP Ekd51.004064EC   是3号兵种,跳过反击有效代码
004CE079    8B4D F0         MOV ECX,DWORD PTR SS:[EBP-10]
004CE07C    8B49 08         MOV ECX,DWORD PTR DS:[ECX+8]
004CE07F    E8 8C85F3FF     CALL Ekd51.00406610
004CE084    25 FF000000     AND EAX,0FF
004CE089    83F8 09         CMP EAX,9
004CE08C    75 05           JNZ SHORT Ekd51.004CE093  不是3号兵种跳到004CE093判断是不是0号武将
004CE08E  - E9 5984F3FF     JMP Ekd51.004064EC  是9号兵种,跳过反击有效代码
004CE093    8B4D F0         MOV ECX,DWORD PTR SS:[EBP-10]
004CE096    8B49 08         MOV ECX,DWORD PTR DS:[ECX+8]
004CE099    E8 D215F9FF     CALL Ekd51.0045F670  “这一段应该是判断
004CE09E    8BC8            MOV ECX,EAX            武将序号的
004CE0A0    6BC9 48         IMUL ECX,ECX,48        代码,自己看了其他
004CE0A3    81C1 681B4A00   ADD ECX,Ekd51.004A1B68 引擎和教程,才弄明白
004CE0A9    E8 52B4F3FF     CALL Ekd51.00409500    一半,估计是这个问题
004CE0AE    25 FF000000     AND EAX,0FF
004CE0B3    83F8 00         CMP EAX,0             ”
004CE0B6    75 05           JNZ SHORT Ekd51.004CE0BD不是0号武将跳到004CE0BD判断是不是2号武将
004CE0B8  - E9 2F84F3FF     JMP Ekd51.004064EC    是0号武将,跳过反击有效代码
004CE0BD    8B4D F0         MOV ECX,DWORD PTR SS:[EBP-10]
004CE0C0    8B49 08         MOV ECX,DWORD PTR DS:[ECX+8]
004CE0C3    E8 A815F9FF     CALL Ekd51.0045F670
004CE0C8    8BC8            MOV ECX,EAX
004CE0CA    6BC9 48         IMUL ECX,ECX,48
004CE0CD    81C1 681B4A00   ADD ECX,Ekd51.004A1B68
004CE0D3    E8 28B4F3FF     CALL Ekd51.00409500
004CE0D8    25 FF000000     AND EAX,0FF
004CE0DD    83F8 02         CMP EAX,2
004CE0E0    75 05           JNZ SHORT Ekd51.004CE0E7
004CE0E2  - E9 0584F3FF     JMP Ekd51.004064EC     同上判断是不是2号武将
004CE0E7    8B4D F0         MOV ECX,DWORD PTR SS:[EBP-10]
004CE0EA    8B49 08         MOV ECX,DWORD PTR DS:[ECX+8]
004CE0ED    E8 7E15F9FF     CALL Ekd51.0045F670
004CE0F2    8BC8            MOV ECX,EAX
004CE0F4    6BC9 48         IMUL ECX,ECX,48
004CE0F7    81C1 681B4A00   ADD ECX,Ekd51.004A1B68
004CE0FD    E8 FEB3F3FF     CALL Ekd51.00409500
004CE102    25 FF000000     AND EAX,0FF
004CE107    83F8 03         CMP EAX,3
004CE10A  - 0F85 6C83F3FF   JNZ Ekd51.0040647C  同上判断是不是3号武将,以上都不是跳回继续执行反击
004CE110  - E9 D783F3FF     JMP Ekd51.004064EC  是3号武将,跳过反击有效代码
004CE115    90              NOP

还有,我按star175 的教程在原曹操传增加一个X能力档时,找不到那五个调用的兵种的五项能力成长,原曹操传中也没找到很重要的自定义函数00406CC9的那段代码 ,
他们的位置和star175 说的不一样,是不是原曹操传中没有star175说自定义函数00406CC9的那段代码?也就没有调用的了??如果有谁告诉我一下位置!!
不胜感激!!

“这五个地方作用是一样的,就是通过自定义函数返回的值去找到相应的字母位置以表示兵种某项能力档,现在我们先来看一下477Cf7:

00477CF7  |.  E8 CDEFF8FF   CALL GEkd5.00406CC9                      ; 自定义函数,返回eax
00477CFC  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]
00477D03  |.  52            PUSH EDX                                 ; /Text

关键的位置在

0477CFC  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]

假设兵种的某项能力为1(eax)
EAX*4+406A51=406A55,这个位置就是我们刚才输入了24个字节的起始位置,而它的值就是0048C4D0,也就是字母D在exe里的ob地址了,这样此兵种
的该项能力成长就显示为D了。

以下依葫芦画瓢,修改其余的4处,就可以了。

00477CF7  |.  E8 CDEFF8FF   CALL GEkd5.00406CC9
00477CFC  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]

00477D30  |.  E8 94EFF8FF   CALL GEkd5.00406CC9
00477D35  |.  8B0485 516A40>MOV EAX,DWORD PTR DS:[EAX*4+406A51]

00477D69  |.  E8 5BEFF8FF   CALL GEkd5.00406CC9
00477D6E  |.  8B0C85 516A40>MOV ECX,DWORD PTR DS:[EAX*4+406A51]

00477DA0  |.  E8 24EFF8FF   CALL GEkd5.00406CC9
00477DA5  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]

00477DD9  |.  E8 EBEEF8FF   CALL GEkd5.00406CC9
00477DDE  |.  8B0485 516A40>MOV EAX,DWORD PTR DS:[EAX*4+406A51]


多谢帮忙!!
没时间上网,一个月后再来看看回复!!


顶部
性别:男-离线 wysjbc
(小冲)


Rank: 6Rank: 6Rank: 6
组别 校尉
级别 安国将军
功绩 19
帖子 862
编号 358831
注册 2010-2-3
来自 福建


发表于 2010-8-24 14:14 资料 文集 短消息 只看该作者 QQ
你要把你在OB写出的代码复制出来,而不是把严老师的复制来。


顶部
性别:男-离线 513633522
(小越)

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


发表于 2010-8-24 14:28 资料 文集 短消息 只看该作者
我弄的就是改的 在OB中复制出来的
顶部
性别:男-离线 wysjbc
(小冲)


Rank: 6Rank: 6Rank: 6
组别 校尉
级别 安国将军
功绩 19
帖子 862
编号 358831
注册 2010-2-3
来自 福建


发表于 2010-8-24 17:06 资料 文集 短消息 只看该作者 QQ
回复 #3 513633522 的帖子

哦……我自己没看清楚……SORRY
顶部
性别:男-离线 513633522
(小越)

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


发表于 2010-9-1 13:22 资料 文集 短消息 只看该作者
重点是怎么给武将弄上特效  我写的不对……
顶部

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




当前时区 GMT+8, 现在时间是 2025-2-8 06:15
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

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

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