2010-3-7 14:54
godtype
那里不记得是什么原因,地址变了,到了4.0的时代已经换了另外一种方式,所以没有打算修改。
0043BEF5 |. 803D B2334E00 >CMP BYTE PTR DS:[4E33B2],1
这句要改成 CMP BYTE PTR DS:[4E41B2],1
而4E41B2换算成UE地址是AEFB2
2010-3-7 15:14
godtype
看一下旧版STAR引擎的代码吧,容易看一点
0043BE3D |> 8B4D D4 MOV ECX,DWORD PTR SS:[EBP-2C]
0043BE40 |. E8 7B4B0900 CALL 004D09C0
0043BE45 |. 894D F8 MOV DWORD PTR SS:[EBP-8],ECX
0043BE48 |. 6A 17 PUSH 17 ; /Arg1 = 00000017
0043BE4A |. E8 BABBFCFF CALL 00407A09 ; \00407A09
0043BE4F |. 85C0 TEST EAX,EAX
0043BE51 |. 74 30 JE SHORT 0043BE83
0043BE53 |. 6A 17 PUSH 17 ; /Arg1 = 00000017
0043BE55 |. 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8] ; |
0043BE58 |. E8 95BCFCFF CALL 00407AF2 ; \00407AF2
0043BE5D |. 33C9 XOR ECX,ECX
0043BE5F |. 8AC8 MOV CL,AL
0043BE61 |. 894D FC MOV DWORD PTR SS:[EBP-4],ECX
0043BE64 |. 803D 70234600 01 CMP BYTE PTR DS:[462370],1 ——这里判断是否如果是1就是整数伤害,即按DATA的效果值来直接伤血,否则就是按被攻击方的总HP的百分比来计算
0043BE6B |. 74 69 JE SHORT 0043BED6
0043BE6D |. 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
0043BE70 |. E8 B7B3FCFF CALL 0040722C ——被攻击方的总HP
0043BE75 |. FF75 FC PUSH DWORD PTR SS:[EBP-4]
0043BE78 |. 50 PUSH EAX
0043BE79 |. E8 79000000 CALL 0043BEF7 ——两个参数相乘后除以100
0043BE7E |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX