| | |
|
刘国公 广南东路经略使 枢密直学士 ★★★★★★★★★★★★ ★★★
  
| |
| | |
|
| | |
|
组别 | 经略使 |
级别 | 卫将军 |
好贴 | 1 |
功绩 | 1314 |
帖子 | 6207 |
编号 | 111321 |
注册 | 2007-2-18 |
来自 | 我家 |
家族 | 轩辕学院 |
| |
| | |
|
|
|
新引擎 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 编辑 ]
|
|
|
|