请帮忙看看我写代码哪里出了问题
修改目的:赋予《精忠报国岳飞传》中的张九成受到伤害后自动吃杜康酒的能力。
首先,这是《精忠报国岳飞传》引擎中,关于自动使用特效(玉砌连环铠)的代码。
00405BBA . 6A 3E PUSH 3E
00405BBC . 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
00405BBF . 33C0 XOR EAX,EAX
00405BC1 . 8A42 01 MOV AL,BYTE PTR DS:[EDX+1]
00405BC4 . 8BC8 MOV ECX,EAX
00405BC6 . 6BC9 24 IMUL ECX,ECX,24
00405BC9 . 81C1 502C4B00 ADD ECX,Ekd5.004B2C50
00405BCF . E8 9C9A0500 CALL Ekd5.0045F670
00405BD4 . 8BC8 MOV ECX,EAX
00405BD6 . 6BC9 48 IMUL ECX,ECX,48
00405BD9 . 81C1 0000D600 ADD ECX,0D60000
00405BDF . 894D FC MOV DWORD PTR SS:[EBP-4],ECX
00405BE2 . E8 221E0000 CALL Ekd5.00407A09 ======> JMP Ekd5.004CE4CD (我的新代码)
00405BE7 . 85C0 TEST EAX,EAX
00405BE9 . 74 5E JE SHORT Ekd5.00405C49
00405BEB . 6A 3E PUSH 3E
00405BED . 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
00405BF0 . E8 FD1E0000 CALL Ekd5.00407AF2
00405BF5 . 25 FF000000 AND EAX,0FF
00405BFA . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00405BFD . 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C]
00405C00 . 33D2 XOR EDX,EDX
00405C02 . 8A51 01 MOV DL,BYTE PTR DS:[ECX+1]
00405C05 . 8BCA MOV ECX,EDX
00405C07 . 6BC9 24 IMUL ECX,ECX,24
00405C0A . 81C1 502C4B00 ADD ECX,Ekd5.004B2C50
00405C10 . E8 3FA30300 CALL Ekd5.0043FF54
00405C15 . 85C0 TEST EAX,EAX
00405C17 . EB 1B JMP SHORT Ekd5.00405C34
我的新代码如下:
004CE4CD 83F8 2F CMP EAX,2F //判断EAX是否等于2F(张九成)
004CE4D0 74 0A JE SHORT Ekd5.004CE4DC //如果是,执行新的代码
004CE4D2 E8 3295F3FF CALL Ekd5.00407A09 //如果不是,执行原有代码判断宝物特效
004CE4D7 - E9 0B77F3FF JMP Ekd5.00405BE7
004CE4DC B8 5B000000 MOV EAX,5B //给EAX赋值成5B(杜康酒)
004CE4E1 - E9 0F77F3FF JMP Ekd5.00405BF5 //跳回原地址继续执行
现在发现的BUG:(1)张九成受到伤害后,可以选择给自己和身边八格范围内的单位吃杜康酒!相当于直接使用杜康酒一样。
(2)只有物理伤害才会触发该效果,策略伤害无效
请问这是怎么一回事?谢谢。
[ 本帖最后由 武骧金星 于 2010-2-27 01:45 编辑 ]
|