截取一小部分:
这里应该只是物理攻击伤害吧,我的诸葛亮才1级,没策略,没试。
这个伤害算出来后,返回我之前贴的函数后边计算,
最最终的伤害是你已经写出来的那些:
1、致命一击
2、反击
3、加上或者减去等级因素的随机值
结论是:
除了几个特殊兵种怕或者不怕物理攻击外,没有什么相克关系
可能是用兵种成长特性和初始特性来决定所谓的相克了
....................................
0042A514 . 8B4D DC MOV ECX,DWORD PTR SS:[EBP-24]
0042A517 . E8 05FEFFFF CALL <EKD2Win.GetBingZhongDiXingXiuZheng>
0042A51C . 8845 F8 MOV BYTE PTR SS:[EBP-8],AL
0042A51F . 8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C]
0042A522 . E8 FAFDFFFF CALL <EKD2Win.GetBingZhongDiXingXiuZheng>
0042A527 . 8845 EC MOV BYTE PTR SS:[EBP-14],AL
0042A52A . C745 F0 00000>MOV DWORD PTR SS:[EBP-10],0
0042A531 . 8B4D DC MOV ECX,DWORD PTR SS:[EBP-24]
0042A534 . E8 FEFBFFFF CALL <EKD2Win.GetGongJi_> ; 攻击方攻击力
0042A539 . 33C9 XOR ECX,ECX
0042A53B . 8A4D F8 MOV CL,BYTE PTR SS:[EBP-8]
0042A53E . 0FAFC1 IMUL EAX,ECX
0042A541 . B9 0A000000 MOV ECX,0A
0042A546 . 2BD2 SUB EDX,EDX
0042A548 . F7F1 DIV ECX
0042A54A . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX ; 攻击方攻击力x攻击方所在地形因素/10
0042A54D . 8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C]
0042A550 . E8 D2FCFFFF CALL <EKD2Win.GetFangYu_> ; 防御方防御力
0042A555 . 33C9 XOR ECX,ECX
0042A557 . 8A4D EC MOV CL,BYTE PTR SS:[EBP-14]
0042A55A . 0FAFC1 IMUL EAX,ECX
0042A55D . B9 0A000000 MOV ECX,0A
0042A562 . 2BD2 SUB EDX,EDX
0042A564 . F7F1 DIV ECX
0042A566 . 8945 E0 MOV DWORD PTR SS:[EBP-20],EAX ; 防御力x地形因素/10
0042A569 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 攻击方攻击力x攻击方所在地形因素/10
0042A56C . 50 PUSH EAX ; /Arg1
0042A56D . E8 B6CD0100 CALL <EKD2Win.Random%Arg1> ; \Random%Arg1
0042A572 . 83C4 04 ADD ESP,4
0042A575 . 8BC8 MOV ECX,EAX
0042A577 . BB 0A000000 MOV EBX,0A
0042A57C . 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20]
0042A57F . 2BD2 SUB EDX,EDX
0042A581 . F7F3 DIV EBX
0042A583 . 3BC8 CMP ECX,EAX ; 随机数%(攻击力x地形因素/10)大于等于防御力x地形因素/10/10则往下走
0042A585 . 0F83 28000000 JNB EKD2Win.0042A5B3
0042A58B . 837D 0C 00 CMP DWORD PTR SS:[EBP+C],0
0042A58F . 0F84 1E000000 JE EKD2Win.0042A5B3
0042A595 . 6A 10 PUSH 10 ; /这个不知道什么状态,如果满足前面条件,此状态下不会受伤
0042A597 . 8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C] ; |
0042A59A . E8 B1EBFDFF CALL <EKD2Win.CheckIfSomeStatus> ; \CheckIfSomeStatus
0042A59F . 85C0 TEST EAX,EAX
0042A5A1 . 0F85 0C000000 JNZ EKD2Win.0042A5B3
0042A5A7 . 33C0 XOR EAX,EAX
0042A5A9 . E9 E6000000 JMP EKD2Win.0042A694
0042A5AE . E9 D9000000 JMP EKD2Win.0042A68C
0042A5B3 > 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] ; 防御力x地形因素/10
0042A5B6 . 40 INC EAX
0042A5B7 . C1E8 01 SHR EAX,1 ; (防御力x地形因素/10+1)/2
0042A5BA . 3B45 FC CMP EAX,DWORD PTR SS:[EBP-4]
0042A5BD . 0F82 0C000000 JB EKD2Win.0042A5CF
0042A5C3 . C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1 ;(防御力x地形因素/10+1)/2大于攻击方攻击力x攻击方所在地形因素/10,只受1点伤害
0042A5CA . E9 0E000000 JMP EKD2Win.0042A5DD
0042A5CF > 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0042A5D2 . 8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
0042A5D5 . C1E9 01 SHR ECX,1
0042A5D8 . 2BC1 SUB EAX,ECX ;
0042A5DA . 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX ; 小于的话,伤害为:防御力x地形因素/10-攻击力x地形因素/10/2
0042A5DD > 8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C]
0042A5E0 . E8 BBECFDFF CALL <EKD2Win.GetBingZhong_> ; 物理攻击只跟防御方兵种有关,除了下边特殊兵种,没有其他相克关系
0042A5E5 . 33C9 XOR ECX,ECX
0042A5E7 . 8AC8 MOV CL,AL
0042A5E9 . 894D D8 MOV DWORD PTR SS:[EBP-28],ECX
0042A5EC . E9 3C000000 JMP EKD2Win.0042A62D
0042A5F1 > 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 防御方兵种代号9、A、B的时候伤害为75%
0042A5F4 . 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]
0042A5F7 . C1E8 02 SHR EAX,2
0042A5FA . 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
0042A5FD . E9 8A000000 JMP EKD2Win.0042A68C
0042A602 > 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 防御方兵种代号1B、1C、1D伤害达150%
0042A605 . 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]
0042A608 . C1E8 01 SHR EAX,1
0042A60B . 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
0042A60E . E9 79000000 JMP EKD2Win.0042A68C
0042A613 > C16D F0 01 SHR DWORD PTR SS:[EBP-10],1 ; 兵种代号1E、1F被攻击只有伤害50%
0042A617 . E9 70000000 JMP EKD2Win.0042A68C
0042A61C > C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1 ; 某个bt兵种,代号22H,只有1点伤害0042A623 . E9 64000000 JMP EKD2Win.0042A68C ; 其他没有另外加成伤害
0042A628 . E9 5F000000 JMP EKD2Win.0042A68C
0042A62D > 836D D8 09 SUB DWORD PTR SS:[EBP-28],9
0042A631 . 837D D8 1E CMP DWORD PTR SS:[EBP-28],1E
0042A635 . 0F87 51000000 JA EKD2Win.0042A68C
0042A63B . 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28] ; 兵种代号-9
0042A63E . 33C9 XOR ECX,ECX
0042A640 . 8A88 6DA64200 MOV CL,BYTE PTR DS:[EAX+42A66D]
0042A646 . FF248D 4DA642>JMP DWORD PTR DS:[ECX*4+42A64D]
0042A64D . F1A54200 DD EKD2Win.0042A5F1 ; 分支表 被用于 0042A646
0042A651 . 02A64200 DD EKD2Win.0042A602
0042A655 . 13A64200 DD EKD2Win.0042A613
0042A659 . 1CA64200 DD EKD2Win.0042A61C
0042A65D . 13A64200 DD EKD2Win.0042A613
0042A661 . F1A54200 DD EKD2Win.0042A5F1
0042A665 . 13A64200 DD EKD2Win.0042A613
0042A669 . 8CA64200 DD EKD2Win.0042A68C
0042A66D . 00 DB 00 ; 分支 0042A64D 索引表
0042A66E . 00 DB 00
0042A66F . 00 DB 00
0042A670 . 07 DB 07
0042A671 . 07 DB 07
0042A672 . 07 DB 07
0042A673 . 07 DB 07
0042A674 . 07 DB 07
0042A675 . 07 DB 07
0042A676 . 07 DB 07
0042A677 . 07 DB 07
0042A678 . 07 DB 07
0042A679 . 07 DB 07
0042A67A . 07 DB 07
0042A67B . 07 DB 07
0042A67C . 07 DB 07
0042A67D . 07 DB 07
0042A67E . 07 DB 07
0042A67F . 01 DB 01
0042A680 . 01 DB 01
0042A681 . 01 DB 01
0042A682 . 02 DB 02
0042A683 . 02 DB 02
0042A684 . 07 DB 07
0042A685 . 07 DB 07
0042A686 . 03 DB 03
0042A687 . 04 DB 04
0042A688 . 05 DB 05
0042A689 . 07 DB 07
0042A68A . 07 DB 07
0042A68B . 06 DB 06
0042A68C > 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 最终伤害
0042A68F . E9 00000000 JMP EKD2Win.0042A694
0042A694 > 5F POP EDI
0042A695 . 5E POP ESI
0042A696 . 5B POP EBX
0042A697 . C9 LEAVE
0042A698 . C2 0800 RETN 8
[ 本帖最后由 ctermiii 于 2010-7-18 14:36 编辑 ]
|