强化下【禁咒】策略的效果
感觉这货太鸡肋了,所以强化下, 令其中咒者每回合 扣掉一定MP,同样宝物特效的 也会引发此效果
公式:最大MP*15%,修正下,最低扣掉1点,以免出现有MP却无扣的情况
下面贴代码:(不适合原版引擎)
原位置修改:
0044E022 |. /74 0A |JE SHORT Ekd5.0044E02E
0044E024 |. |8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20]
0044E027 |. |E8 65CD0D00 |CALL Ekd5.0052AD91 ; **中毒损失HP计算
0044E02C |. |EB 02 |JMP SHORT Ekd5.0044E030
0044E02E |> \33C0 |XOR EAX,EAX
0044E030 |> 8945 F8 |MOV DWORD PTR SS:[EBP-8],EAX
0044E033 |. 8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20]
0044E036 |. 6A 05 |PUSH 5 ; /禁咒 编号
0044E038 |. E8 A386FBFF |CALL Ekd5.004066E0 ; \判断是否存有【+8栈值】状态编号
0044E03D |. 85C0 |TEST EAX,EAX
0044E03F |. 74 0A |JE SHORT Ekd5.0044E04B
0044E041 |. 8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20]
0044E044 |. E8 9ECD0D00 |CALL Ekd5.0052ADE7 ; **禁咒损失MP计算
0044E049 |. EB 02 |JMP SHORT Ekd5.0044E04D
0044E04B |> 33C0 |XOR EAX,EAX
0044E04D |> 8945 E4 |MOV DWORD PTR SS:[EBP-1C],EAX
0044E050 |. 837D F8 00 |CMP DWORD PTR SS:[EBP-8],0
0044E054 |. 75 06 |JNZ SHORT Ekd5.0044E05C
0044E056 |. 837D E4 00 |CMP DWORD PTR SS:[EBP-1C],0
0044E05A |. 74 72 |JE SHORT Ekd5.0044E0CE
0044E05C |> 8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20]
0044E05F |. E8 FC52FBFF |CALL Ekd5.00403360 ; *战场内存地址+6即=横坐标内存地址
0044E064 |. 50 |PUSH EAX ; /Arg1
0044E065 |. 8D4D FC |LEA ECX,DWORD PTR SS:[EBP-4] ; |
0044E068 |. E8 2E85FBFF |CALL Ekd5.0040659B ; \Ekd5.0040659B
0044E06D |. FF75 FD |PUSH DWORD PTR SS:[EBP-3] ; /Arg2
0044E070 |. FF75 FC |PUSH DWORD PTR SS:[EBP-4] ; |Arg1
0044E073 |. B9 50424B00 |MOV ECX,Ekd5.004B4250 ; |
0044E078 |. E8 C26F0000 |CALL Ekd5.0045503F ; \***将选择框移到该武将
0044E07D |. 6A 01 |PUSH 1 ; /Arg8 = 00000001
0044E07F |. 33C9 |XOR ECX,ECX ; |
0044E081 |. 51 |PUSH ECX ; |*
0044E082 |. 51 |PUSH ECX ; |Arg6 => 00000000
0044E083 |. 51 |PUSH ECX ; |Arg5 => 00000000
0044E084 |. FF75 E4 |PUSH DWORD PTR SS:[EBP-1C] ; |MP
0044E087 |. FF75 F8 |PUSH DWORD PTR SS:[EBP-8] ; |HP
0044E08A |. 68 FF000000 |PUSH 0FF ; |Arg2 = 000000FF
0044E08F |. FF75 F0 |PUSH DWORD PTR SS:[EBP-10] ; |武将战场编号
0044E092 |. E8 EF280000 |CALL Ekd5.00450986 ; \***HP、MP、武器防具EXP、武将EXP、SP,增减处理(单纯的动画),实际增减由后续代码处理
0044E097 |. 83C4 20 |ADD ESP,20
0044E09A |. 8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20]
0044E09D |. FF75 E4 |PUSH DWORD PTR SS:[EBP-1C]
0044E0A0 |. E8 93CD0D00 |CALL Ekd5.0052AE38 ; MP实际扣减
0044E0A5 |. 90 |NOP
0044E0A6 |. 90 |NOP
0044E0A7 |. 90 |NOP
0044E0A8 |. 90 |NOP
0044E0A9 |. 8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20]
空白位置:(原版中毒状态下的HP扣减值计算)
0052AD91 55 PUSH EBP
0052AD92 8BEC MOV EBP,ESP
0052AD94 83EC 08 SUB ESP,8
0052AD97 894D FC MOV DWORD PTR SS:[EBP-4],ECX ; 武将战场内存地址
0052AD9A E8 F0B7EDFF CALL Ekd5.0040658F
0052AD9F E8 BFC4EDFF CALL Ekd5.00407263
0052ADA4 33D2 XOR EDX,EDX
0052ADA6 B9 0A000000 MOV ECX,0A
0052ADAB F7F1 DIV ECX
0052ADAD 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX ; 用[EBP-8]存放
0052ADB0 837D F8 00 CMP DWORD PTR SS:[EBP-8],0
0052ADB4 75 07 JNZ SHORT Ekd5.0052ADBD
0052ADB6 C745 F8 0100000>MOV DWORD PTR SS:[EBP-8],1
0052ADBD 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
0052ADC0 E8 C154FAFF CALL Ekd5.004D0286 ; 获取当前HP,输出为EAX
0052ADC5 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8] ; 比较当前HP是否少于要扣掉的 HP
0052ADC8 77 04 JA SHORT Ekd5.0052ADCE
0052ADCA 48 DEC EAX ; 小于的话 当前HP-1
0052ADCB 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0052ADCE 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0052ADD1 8BE5 MOV ESP,EBP
0052ADD3 5D POP EBP
0052ADD4 C3 RETN
空白位置:(新增的禁咒状态下MP扣减值计算)
0052ADE7 55 PUSH EBP ; 公式:最大MP*15%
0052ADE8 8BEC MOV EBP,ESP
0052ADEA 83EC 08 SUB ESP,8
0052ADED 894D FC MOV DWORD PTR SS:[EBP-4],ECX
0052ADF0 E8 9AB7EDFF CALL Ekd5.0040658F ; 根据武将战场内存计算武将Data内存,输出为ECX
0052ADF5 E8 90C4EDFF CALL Ekd5.0040728A ; 根据武将Data内存获取最大MP值(包括装备加成)
0052ADFA 50 PUSH EAX
0052ADFB 6A 15 PUSH 15 ; 15%
0052ADFD E8 9248FAFF CALL Ekd5.004CF694 ; 计算
0052AE02 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0052AE05 83F8 00 CMP EAX,0
0052AE08 75 07 JNZ SHORT Ekd5.0052AE11
0052AE0A C745 F8 0100000>MOV DWORD PTR SS:[EBP-8],1
0052AE11 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
0052AE14 36:8B41 14 MOV EAX,DWORD PTR SS:[ECX+14]
0052AE18 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8]
0052AE1B 77 03 JA SHORT Ekd5.0052AE20
0052AE1D 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0052AE20 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0052AE23 8BE5 MOV ESP,EBP
0052AE25 5D POP EBP
0052AE26 C3 RETN
空白位置:(MP实际扣减)
0052AE38 55 PUSH EBP
0052AE39 8BEC MOV EBP,ESP
0052AE3B 36:8B41 14 MOV EAX,DWORD PTR SS:[ECX+14]
0052AE3F 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8]
0052AE42 2BC2 SUB EAX,EDX
0052AE44 8941 14 MOV DWORD PTR DS:[ECX+14],EAX
0052AE47 8BE5 MOV ESP,EBP
0052AE49 5D POP EBP
0052AE4A C2 0400 RETN 4
[ 本帖最后由 a117398902 于 2015-9-16 14:23 编辑 ]
|