标题: 强化下【禁咒】策略的效果
性别:未知-离线 a117398902
(G仔)

Rank: 4
组别 士兵
级别 牙门将军
功绩 5
帖子 546
编号 301657
注册 2008-12-18


发表于 2015-9-16 13:19 资料 个人空间 短消息 只看该作者
强化下【禁咒】策略的效果

感觉这货太鸡肋了,所以强化下, 令其中咒者每回合 扣掉一定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 编辑 ]


顶部
性别:男-离线 程军超
(虎贲郎赵统)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 安国将军
好贴 1
功绩 23
帖子 822
编号 498865
注册 2014-3-4
来自 山东烟台


发表于 2015-9-16 13:25 资料 文集 短消息 只看该作者 QQ
a大好样的,支持一下!继续加油,小弟膜拜!


顶部
性别:未知-离线 gaming

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 8
帖子 793
编号 41146
注册 2005-6-17


发表于 2015-9-16 13:53 资料 短消息 只看该作者
想法挺好的
禁咒破智
麻痹破移
我觉得也不错
顶部
性别:男-离线 zyc1002
(愤青陈翰)

Rank: 4
组别 士兵
级别 牙门将军
功绩 5
帖子 529
编号 510163
注册 2015-1-27
来自 上海市


发表于 2015-9-16 20:56 资料 短消息 只看该作者 QQ
回复 #1 a117398902 的帖子

赞!不过禁咒一回合扣的MP是不是应该比中毒扣的HP多?不然禁咒还是鸡肋。毕竟连己方文官都能照面了,对方撑不了几个回合,禁咒的控场效果也就不好。(不如直接用谍报)
顶部
性别:未知-离线 c381612
(龙城飞将)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 忠义校尉
功绩 3
帖子 273
编号 330810
注册 2009-7-24


发表于 2015-11-14 08:47 资料 短消息 只看该作者
G仔大神 问一下一个问题 0052AD91这个地址 6.1引擎并没有啊 那么新增的函数写在什么位置啊?
顶部
性别:未知-离线 c381612
(龙城飞将)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 忠义校尉
功绩 3
帖子 273
编号 330810
注册 2009-7-24


发表于 2015-11-14 09:36 资料 短消息 只看该作者
G仔大神 我试着随便找了一处空白的地址 写了这段代码 但是发现没用啊 而且禁咒本身的效果都没了 变成了直接扣血的策略了 到底是哪里不对?我用的是6.1的引擎 求助你
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-2-12 03:27
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.011826 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP