| 回复 #1 神力助我 的帖子 
 
 横扫攻击请看毅大的贴子【各种研究成果】
 借力打力由 majiming 原创,帖子不好找,帮你贴个原代码吧
 四、借力打力
 效果为:在自己的攻击范围内同时有2个或2个以上的敌人时,被打中时能将敌人的攻击牵引到血最少的敌人(除了发起攻击的人)上,同时自己受到的伤害减少一半
 
 一些可以设置的地方:
 004CE05B    PUSH 200           ; 具有这种特性的武将编号
 004CE060    PUSH 40             ; 具有此特性的宝物特效编号
 004CE062    PUSH 40             ; 具有此特性的兵种编号
 004CE15B    IMUL EAX,EAX,32 ; 转移50%的伤害给敌人,改为64,那么有此特性的武将伤害为0,全部转移到敌人身上
 
 
 修改开始
 00406541               JMP 004CE041  ; 跳到新代码处
 
 
 新代码
 004CE041    8B4D 0C         MOV ECX,DWORD PTR SS:[EBP+C]
 004CE044    81E1 FF000000   AND ECX,0FF
 004CE04A    6BC9 24         IMUL ECX,ECX,24
 004CE04D    81C1 502C4B00   ADD ECX,Ekd5原版.004B2C50
 004CE053    894D F8         MOV DWORD PTR SS:[EBP-8],ECX
 004CE056    8B09            MOV ECX,DWORD PTR DS:[ECX]
 004CE058    83EC 20         SUB ESP,20
 004CE05B    68 00020000     PUSH 200       ; 具有这种特性的武将编号
 004CE060    6A 40           PUSH 40             ; 具有此特性的宝物特效编号
 004CE062    6A 40           PUSH 40             ; 具有此特性的兵种编号
 004CE064    E8 97FFFFFF     CALL Ekd5原版.004CE000    ; 新函数检查ECX武将是否具有当前特性,见此段代码结束处.
 004CE069    85C0            TEST EAX,EAX
 004CE06B    75 0D           JNZ SHORT Ekd5原版.004CE07A
 004CE06D    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]
 004CE070    E8 CF76F3FF     CALL Ekd5原版.00405744
 004CE075  - E9 CF84F3FF     JMP Ekd5原版.00406549
 004CE07A    83EC 20         SUB ESP,20
 004CE07D    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]
 004CE080    BA 00000000     MOV EDX,0
 004CE085    807C11 10 FF    CMP BYTE PTR DS:[ECX+EDX+10],0FF
 004CE08A    74 03           JE SHORT Ekd5原版.004CE08F
 004CE08C    42              INC EDX
 004CE08D  ^ EB F6           JMP SHORT Ekd5原版.004CE085
 004CE08F    817C11 11 63850>CMP DWORD PTR DS:[ECX+EDX+11],8563
 004CE097    75 0E           JNZ SHORT Ekd5原版.004CE0A7
 004CE099    C64411 0F FF    MOV BYTE PTR DS:[ECX+EDX+F],0FF          ; 把被打力过的武将从伤害列表中排除, 不然会重复添加
 004CE09E    C74411 11 FFFF0>MOV DWORD PTR DS:[ECX+EDX+11],0FFFF
 004CE0A6    4A              DEC EDX
 004CE0A7    8955 E0         MOV DWORD PTR SS:[EBP-20],EDX
 004CE0AA    68 FF000000     PUSH 0FF                                 ; 下面这段是为了获取武将攻击范围内所有敌方武将战场编号
 004CE0AF    68 40060000     PUSH 640
 004CE0B4    6A 04           PUSH 4
 004CE0B6    6A 00           PUSH 0
 004CE0B8    68 C0120000     PUSH 12C0
 004CE0BD    B9 38EB4A00     MOV ECX,Ekd5原版.004AEB38
 004CE0C2    E8 7919FBFF     CALL Ekd5原版.0047FA40
 004CE0C7    50              PUSH EAX
 004CE0C8    E8 461CFBFF     CALL Ekd5原版.0047FD13
 004CE0CD    6A 00           PUSH 0
 004CE0CF    6A 00           PUSH 0
 004CE0D1    8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
 004CE0D4    E8 E517F7FF     CALL Ekd5原版.0043F8BE
 004CE0D9    50              PUSH EAX
 004CE0DA    8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
 004CE0DD    83C1 06         ADD ECX,6
 004CE0E0    51              PUSH ECX
 004CE0E1    8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
 004CE0E4    E8 9D84F6FF     CALL Ekd5原版.00436586
 004CE0E9    C745 F0 0000000>MOV DWORD PTR SS:[EBP-10],0             ; 下面遍历获取攻击范围内HP最少的敌人
 004CE0F0    C745 EC FF00000>MOV DWORD PTR SS:[EBP-14],0FF
 004CE0F7    C745 E8 FFFF0F0>MOV DWORD PTR SS:[EBP-18],0FFFFF
 004CE0FE    EB 03           JMP SHORT Ekd5原版.004CE103
 004CE100    FF45 F0         INC DWORD PTR SS:[EBP-10]
 004CE103    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
 004CE106    8A88 48C74A00   MOV CL,BYTE PTR DS:[EAX+4AC748]
 004CE10C    80F9 FF         CMP CL,0FF
 004CE10F    74 2C           JE SHORT Ekd5原版.004CE13D
 004CE111    3A4D 08         CMP CL,BYTE PTR SS:[EBP+8]
 004CE114    74 25           JE SHORT Ekd5原版.004CE13B                ;  如果是攻方本人就忽略
 004CE116    81E1 FF000000   AND ECX,0FF
 004CE11C    894D E4         MOV DWORD PTR SS:[EBP-1C],ECX
 004CE11F    6BC9 24         IMUL ECX,ECX,24
 004CE122    81C1 502C4B00   ADD ECX,Ekd5原版.004B2C50
 004CE128    E8 634BFAFF     CALL Ekd5原版.00472C90
 004CE12D    3B45 E8         CMP EAX,DWORD PTR SS:[EBP-18]
 004CE130    73 09           JNB SHORT Ekd5原版.004CE13B                ; 只保留HP最少的
 004CE132    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
 004CE135    894D EC         MOV DWORD PTR SS:[EBP-14],ECX
 004CE138    8945 E8         MOV DWORD PTR SS:[EBP-18],EAX
 004CE13B  ^ EB C3           JMP SHORT Ekd5原版.004CE100
 004CE13D    8A4D EC         MOV CL,BYTE PTR SS:[EBP-14]
 004CE140    80F9 FF         CMP CL,0FF
 004CE143  ^ 0F84 24FFFFFF   JE Ekd5原版.004CE06D                       ; 最终没找到可以借力打击的敌人,则跳回去
 004CE149    8B5D FC         MOV EBX,DWORD PTR SS:[EBP-4]
 004CE14C    8B83 84000000   MOV EAX,DWORD PTR DS:[EBX+84]            ; 有此特性的武将此次伤害值
 004CE152    83F8 02         CMP EAX,2
 004CE155  ^ 0F82 12FFFFFF   JB Ekd5原版.004CE06D
 004CE15B    6BC0 32         IMUL EAX,EAX,32                          ; 分出50%的伤害给敌人
 004CE15E    33D2            XOR EDX,EDX
 004CE160    B9 64000000     MOV ECX,64
 004CE165    F7F1            DIV ECX
 004CE167    2983 84000000   SUB DWORD PTR DS:[EBX+84],EAX
 004CE16D    3B45 E8         CMP EAX,DWORD PTR SS:[EBP-18]
 004CE170    76 03           JBE SHORT Ekd5原版.004CE175
 004CE172    8B45 E8         MOV EAX,DWORD PTR SS:[EBP-18]  ; 下面是把此敌人加入到伤害列表中
 004CE175    8B4D EC         MOV ECX,DWORD PTR SS:[EBP-14]
 004CE178    8B55 E0         MOV EDX,DWORD PTR SS:[EBP-20]
 004CE17B    8B5D FC         MOV EBX,DWORD PTR SS:[EBP-4]
 004CE17E    884C1A 10       MOV BYTE PTR DS:[EDX+EBX+10],CL
 004CE182    C6441A 11 FF    MOV BYTE PTR DS:[EDX+EBX+11],0FF
 004CE187    898493 84000000 MOV DWORD PTR DS:[EBX+EDX*4+84],EAX
 004CE18E    C7441A 12 63850>MOV DWORD PTR DS:[EDX+EBX+12],8563
 004CE196  ^ E9 D2FEFFFF     JMP Ekd5原版.004CE06D                      ; 返回原代码处
 
 
 新函数,检查武将ECX是否为10栈的武将,若不是检查是否有0C栈的宝物,若没有则检查是否为08栈的兵种.
 共四个参数,08栈 : 兵种编号 ; 0C栈 :宝物特效编号 ; 10栈 :武将编号 ;
 还有一个ECX参数 ;当前要检查的武将编号
 004CE000    55              PUSH EBP
 004CE001    8BEC            MOV EBP,ESP
 004CE003    3B4D 10         CMP ECX,DWORD PTR SS:[EBP+10]
 004CE006    74 21           JE SHORT Ekd5原版.004CE029
 004CE008    6BC9 48         IMUL ECX,ECX,48
 004CE00B    81C1 681B4A00   ADD ECX,Ekd5原版.004A1B68
 004CE011    8A41 2B         MOV AL,BYTE PTR DS:[ECX+2B]
 004CE014    3A45 08         CMP AL,BYTE PTR SS:[EBP+8]
 004CE017    74 10           JE SHORT Ekd5原版.004CE029
 004CE019    FF75 0C         PUSH DWORD PTR SS:[EBP+C]
 004CE01C    E8 E899F3FF     CALL Ekd5原版.00407A09
 004CE021    85C0            TEST EAX,EAX
 004CE023    75 04           JNZ SHORT Ekd5原版.004CE029
 004CE025    33C0            XOR EAX,EAX
 004CE027    EB 05           JMP SHORT Ekd5原版.004CE02E
 004CE029    B8 01000000     MOV EAX,1
 004CE02E    8BE5            MOV ESP,EBP
 004CE030    5D              POP EBP
 004CE031    C3              RETN
 |