四、借力打力
效果为:在自己的攻击范围内同时有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
大佬们,我想把主动攻击必双击改到雌雄双剑上,然后把反弹伤害改出来,减轻策略损伤,二次行动,攻击绝对命中,借力打力改出来。已知上面的几种特效是能改出来的,这个论坛的牛人已经改出来了,我想把他的宝物特效抄过来,该怎么做呢?策略双击这块大家看一下代码有什么问题,我也想搞出来,谢谢大牛了!轩辕论坛我去求助会的人都不在线,太难了。
效果为:在自己的攻击范围内同时有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
大佬们,我想把主动攻击必双击改到雌雄双剑上,然后把反弹伤害改出来,减轻策略损伤,二次行动,攻击绝对命中,借力打力改出来。已知上面的几种特效是能改出来的,这个论坛的牛人已经改出来了,我想把他的宝物特效抄过来,该怎么做呢?策略双击这块大家看一下代码有什么问题,我也想搞出来,谢谢大牛了!轩辕论坛我去求助会的人都不在线,太难了。