标题: 新引擎 71特效请求 指令的修改
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2009-4-21 20:30 资料 个人空间 短消息 看全部作者
新引擎 71特效请求 指令的修改


新引擎里面有两条指令是专为瓦岗而设的,分别是71特效请求和72信息传送,其他的MOD用不到。
最近编写剧本中的自由转职系统时,由于打算在转职后重新计算武将的能力(包括五围和HPMP),原本是在剧本继续写指令的,但是本身自由转职已经需要很多条指令了,不想再让剧本变得过大,于是想到了修改引擎,因为我发现71指令挺适合的(如上图),我只要输入武将的编号,当执行了这条指令后,马上就会重新按照新的兵种能力重新计算部队的五围和HPMP,而且还可以包括吃果后的成长。
经过翻阅资料,加上请教其他高手,终于改出了一个雏形,经过简单的测试,无出错,现在发上论坛,可能还会有一些代码有问题,希望有其他高手看出来并指出错误之处,再提供一下意见。

00410C02     00204D00            DD 004D2000

004D2000   55               PUSH EBP
004D2001   8BEC             MOV EBP,ESP
004D2003   83EC 14          SUB ESP,14
004D2006   6A 04            PUSH 4
004D2008   8B4D 08          MOV ECX,DWORD PTR SS:[EBP+8]
004D200B   E8 E763F4FF      CALL 004183F7
004D2010   25 FFFF0000      AND EAX,0FFFF
004D2015   8945 FC          MOV DWORD PTR SS:[EBP-4],EAX
004D2018   8B4D FC          MOV ECX,DWORD PTR SS:[EBP-4]
004D201B   6BC9 48          IMUL ECX,ECX,48
004D201E   81C1 0000D600    ADD ECX,0D60000
004D2024   894D F8          MOV DWORD PTR SS:[EBP-8],ECX
004D2027   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004D202A   E8 D0000000      CALL 004D20FF
004D202F   C645 F0 00       MOV BYTE PTR SS:[EBP-10],0
004D2033   EB 07            JMP SHORT 004D203C
004D2035   8A4D F0          MOV CL,BYTE PTR SS:[EBP-10]
004D2038   41               INC ECX
004D2039   884D F0          MOV BYTE PTR SS:[EBP-10],CL
004D203C   0FB655 F0        MOVZX EDX,BYTE PTR SS:[EBP-10]
004D2040   83FA 07          CMP EDX,7
004D2043   0F8D AD000000    JGE 004D20F6
004D2049   0FB645 F0        MOVZX EAX,BYTE PTR SS:[EBP-10]
004D204D   50               PUSH EAX
004D204E   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D2051   33D2             XOR EDX,EDX
004D2053   8A51 2B          MOV DL,BYTE PTR DS:[ECX+2B]
004D2056   8BCA             MOV ECX,EDX
004D2058   6BC9 1B          IMUL ECX,ECX,1B
004D205B   81C1 A0BF4A00    ADD ECX,004ABFA0
004D2061   E8 3A75F3FF      CALL 004095A0
004D2066   25 FF000000      AND EAX,0FF
004D206B   8945 F4          MOV DWORD PTR SS:[EBP-C],EAX
004D206E   0FB645 F0        MOVZX EAX,BYTE PTR SS:[EBP-10]
004D2072   83F8 04          CMP EAX,4
004D2075   7F 46            JG SHORT 004D20BD
004D2077   0FB64D F0        MOVZX ECX,BYTE PTR SS:[EBP-10]
004D207B   51               PUSH ECX
004D207C   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D207F   E8 7852F3FF      CALL 004072FC
004D2084   25 FF000000      AND EAX,0FF
004D2089   8B4D F4          MOV ECX,DWORD PTR SS:[EBP-C]
004D208C   03C8             ADD ECX,EAX
004D208E   D1E9             SHR ECX,1
004D2090   894D EC          MOV DWORD PTR SS:[EBP-14],ECX
004D2093   8B45 EC          MOV EAX,DWORD PTR SS:[EBP-14]
004D2096   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D2099   33D2             XOR EDX,EDX
004D209B   8A51 2C          MOV DL,BYTE PTR DS:[ECX+2C]
004D209E   0FAFC2           IMUL EAX,EDX
004D20A1   33D2             XOR EDX,EDX
004D20A3   8A55 F0          MOV DL,BYTE PTR SS:[EBP-10]
004D20A6   80C2 21          ADD DL,21
004D20A9   8A1411           MOV DL,BYTE PTR DS:[ECX+EDX]
004D20AC   03C2             ADD EAX,EDX
004D20AE   0FB655 F0        MOVZX EDX,BYTE PTR SS:[EBP-10]
004D20B2   D1E2             SHL EDX,1
004D20B4   80C2 11          ADD DL,11
004D20B7   66:890411        MOV WORD PTR DS:[ECX+EDX],AX
004D20BB   EB 34            JMP SHORT 004D20F1
004D20BD   83F8 05          CMP EAX,5
004D20C0   75 19            JNZ SHORT 004D20DB
004D20C2   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D20C5   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D20C8   33D2             XOR EDX,EDX
004D20CA   8A51 2C          MOV DL,BYTE PTR DS:[ECX+2C]
004D20CD   0FAFC2           IMUL EAX,EDX
004D20D0   66:8B51 1C       MOV DX,WORD PTR DS:[ECX+1C]
004D20D4   03C2             ADD EAX,EDX
004D20D6   8941 1C          MOV DWORD PTR DS:[ECX+1C],EAX
004D20D9   EB 16            JMP SHORT 004D20F1
004D20DB   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D20DE   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D20E1   33D2             XOR EDX,EDX
004D20E3   8A51 2C          MOV DL,BYTE PTR DS:[ECX+2C]
004D20E6   0FAFC2           IMUL EAX,EDX
004D20E9   8A51 20          MOV DL,BYTE PTR DS:[ECX+20]
004D20EC   03C2             ADD EAX,EDX
004D20EE   8841 20          MOV BYTE PTR DS:[ECX+20],AL
004D20F1  ^E9 3FFFFFFF      JMP 004D2035
004D20F6   B8 01000000      MOV EAX,1
004D20FB   8BE5             MOV ESP,EBP
004D20FD   5D               POP EBP
004D20FE   C3               RETN

004D20FF   55               PUSH EBP
004D2100   8BEC             MOV EBP,ESP
004D2102   83EC 10          SUB ESP,10
004D2105   894D F8          MOV DWORD PTR SS:[EBP-8],ECX
004D2108   8945 FC          MOV DWORD PTR SS:[EBP-4],EAX
004D210B   A1 606F4900      MOV EAX,DWORD PTR DS:[496F60]
004D2110   50               PUSH EAX
004D2111   6A 00            PUSH 0
004D2113   68 60BB4800      PUSH 0048BB60                     ; ASCII "DATA.E5"
004D2118   E8 0194F4FF      CALL 0041B51E
004D211D   83C4 0C          ADD ESP,0C
004D2120   85C0             TEST EAX,EAX
004D2122   75 02            JNZ SHORT 004D2126
004D2124   EB 56            JMP SHORT 004D217C
004D2126   8B0D 606F4900    MOV ECX,DWORD PTR DS:[496F60]
004D212C   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004D212F   6BC0 20          IMUL EAX,EAX,20
004D2132   03C1             ADD EAX,ECX
004D2134   83C0 17          ADD EAX,17
004D2137   8945 F4          MOV DWORD PTR SS:[EBP-C],EAX
004D213A   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D213D   33C9             XOR ECX,ECX
004D213F   8A08             MOV CL,BYTE PTR DS:[EAX]
004D2141   894D F0          MOV DWORD PTR SS:[EBP-10],ECX
004D2144   8B55 F4          MOV EDX,DWORD PTR SS:[EBP-C]
004D2147   83C2 01          ADD EDX,1
004D214A   8955 F4          MOV DWORD PTR SS:[EBP-C],EDX
004D214D   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D2150   33C9             XOR ECX,ECX
004D2152   8A08             MOV CL,BYTE PTR DS:[EAX]
004D2154   C1E1 08          SHL ECX,8
004D2157   8B55 F0          MOV EDX,DWORD PTR SS:[EBP-10]
004D215A   03D1             ADD EDX,ECX
004D215C   8955 F0          MOV DWORD PTR SS:[EBP-10],EDX
004D215F   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D2162   83C0 01          ADD EAX,1
004D2165   8945 F4          MOV DWORD PTR SS:[EBP-C],EAX
004D2168   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D216B   8B55 F0          MOV EDX,DWORD PTR SS:[EBP-10]
004D216E   8951 1C          MOV DWORD PTR DS:[ECX+1C],EDX
004D2171   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004D2174   8B4D F4          MOV ECX,DWORD PTR SS:[EBP-C]
004D2177   8A11             MOV DL,BYTE PTR DS:[ECX]
004D2179   8850 20          MOV BYTE PTR DS:[EAX+20],DL
004D217C   8BE5             MOV ESP,EBP
004D217E   5D               POP EBP
004D217F   C3               RETN


不详细解释了,高手们一般都可以看得出来。
希望能够指出需要改进的地方。

[ 本帖最后由 godtype 于 2009-4-22 19:19 编辑 ]


顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2009-4-22 19:26 资料 个人空间 短消息 看全部作者
基本上已经完善好了,HP和MP已经可以正常计算出来了。


顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2009-4-23 08:34 资料 个人空间 短消息 看全部作者
回复 #6 蛇夫座 的帖子

5.1不能够照抄的,因为部队成长的写法改了。

004D207F   E8 7852F3FF      CALL 004072FC
改成
CALL 004072F2
试一下

后续指令我用52来测试是没有问题,兵种可以改变。

STAR 5.1版如果要用这个修改,可能还要调整一下,等有时间再做。
顶部

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




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

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

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