Board logo

标题: 部分旧引擎修改资料整理 [打印本页]

作者: godtype    时间: 2009-7-30 19:25     标题: 部分旧引擎修改资料整理

部分旧引擎修改资料的整理,内含EXE的扩容、部队装备显示的扩展、1024DATA的扩展、五围上限突破单双数字节。

本帖的内容本来是不应该整理出来的,但是考虑到不看教程、不翻精华、不查旧帖、更不会去看设计区中几位大神早期精华帖但又喜欢修改引擎的同志们,所以经过一段时间思想斗争后,决定整理出来,当然不保证绝对正确。

目录:
2# stud_PE的简单使用——EXE的扩容、UE-OB地址互转
3# 可装备部队显示的扩展
4# 1024 DATA 扩展
5# 五围突破255限制
6# 经验类补充说明
7# 头像状态设置解释

[ 本帖最后由 godtype 于 2009-12-9 13:01 编辑 ]
作者: godtype    时间: 2009-7-30 19:26     标题: 第一部分 stud_PE的简单使用

详细内容可以看:
岱瀛的《乱侃Exe文件的修改》
这里只是简单说一下EXE的扩容和UE-OB地址互转

一、EXE的扩容
如下图打开EXE后,点“区段”

然后点击右键,选“新建区段”


上图中,名称应该可以随便填,两个大小的数值要一致,填多大自己试,最下面要点选“用NULL字节填充区段”,这样新增的区段就会全部是00了。
最后点击“添加”即可,无需保存。
新建区段的UE位置是从“原偏移量”开始。

二、UE-OB地址互转
如下图,点击“Rva<=>Raw”


上图中,“文件偏移量”就是UE地址,“虚似地址”就是OB地址。

[ 本帖最后由 godtype 于 2010-1-8 15:49 编辑 ]
作者: godtype    时间: 2009-7-30 19:26     标题: 第二部分 可装备部队显示

首先用Resource Hacker打开exe(我用的是旧引擎雪芸四改再改版),并按图所示打开Dialog>167>2052


用鼠标调整红框如这样显示


然后拖动鼠标将“都督类”整行选择起来,并复制


如下图这样粘贴,并修改蓝框的名称和数字,用过ES就知道1490是ID号,我要改“驯虎师”,所以是1489,后面的152是Y轴,我将它改成160


改好如下图所示,并点击上面蓝框的“编译脚本”


就变成如下图所示了


然后“文件”->“保存”或“保存为”(我是另存文件名,预防出错)
进入游戏测试


最后还有一个地方要修改:
0040CA57     83BD 2CFFFFFF >CMP DWORD PTR SS:[EBP-D4],35
UE位置在BE5D,原值忘记了,改成35即可。

[ 本帖最后由 godtype 于 2010-1-8 15:47 编辑 ]
作者: godtype    时间: 2009-7-30 19:27     标题: 第三部分 1024 DATA 扩展

原帖:东方教主的《EXE补充研究及修改》

以下是整理后的详细修改内容:
一、1024DATA扩展
先用UE/WINHEX的查找并替换功能,将所有68 1B 4A 00都改成00 00 D6 00

接着是使用OB修改以下内容(没有特别注明的都是修改后的内容):

00481891   . E8 64FDFFFF    CALL 004815FA

004815FA   $ 50             PUSH EAX
004815FB   . 53             PUSH EBX
004815FC   .^EB 85          JMP SHORT 00481583

00481583   > 51             PUSH ECX
00481584   . 52             PUSH EDX
00481585   . 6A 04          PUSH 4
00481587   . 68 00100000    PUSH 1000
0048158C   . EB 70          JMP SHORT 004815FE

004815FE   > EB 42          JMP SHORT 00481642

00481642   > 68 00000200    PUSH 20000
00481647   . 68 0000D600    PUSH 0D60000
0048164C   . EB 14          JMP SHORT 00481662

00481662   > FF15 E8614800  CALL DWORD PTR DS:[<&KERNEL32.VirtualAll>; \VirtualAlloc
00481668   . 5A             POP EDX
00481669   . 59             POP ECX
0048166A   . 5B             POP EBX
0048166B   . 58             POP EAX
0048166C   .^EB 92          JMP SHORT 00481600

0041AEBD   . 68 DCA80000    PUSH 0A8DC

0040BFF9  |. 05 9A030000    ADD EAX,39A

00434F8A  |. C745 F0 282CD600  MOV DWORD PTR SS:[EBP-10],0D62C28
00434F91  |. C745 F8 0000D600  MOV DWORD PTR SS:[EBP-8],0D60000
00434F98  |. C745 FC 0009D600  MOV DWORD PTR SS:[EBP-4],0D60900

以下所有“,0AE”或“,200”都改成“,400”
0040BFEB  |. 817D 0C AE000000   CMP DWORD PTR SS:[EBP+C],0AE
00417591  |. 81FA 00020000      CMP EDX,200
004175A1  |. 3D 00020000        CMP EAX,200
004186D9  |> 817D E8 00020000   CMP DWORD PTR SS:[EBP-18],200
0041B6A2  |> 817D F8 00020000   CMP DWORD PTR SS:[EBP-8],200
0042CB7F  |. 817D 0C 00020000   CMP DWORD PTR SS:[EBP+C],200
0042D603  |. 817D 0C 00020000   CMP DWORD PTR SS:[EBP+C],200
0042D65A  |. 817D 0C 00020000   CMP DWORD PTR SS:[EBP+C],200
0042D6C8  |> 817D 0C 00020000   CMP DWORD PTR SS:[EBP+C],200
004428B8  |. 813A AE000000      CMP DWORD PTR DS:[EDX],0AE
0045743F  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
004577D8  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
00466D7F  |> 817D F8 AE000000   CMP DWORD PTR SS:[EBP-8],0AE
00469DD4  |> 817D D4 AE000000   CMP DWORD PTR SS:[EBP-2C],0AE
004786E8  |. 813C85 F06C4B00 0> CMP DWORD PTR DS:[EAX*4+4B6CF0],200
00479372  |. 813C8D F06C4B00 0> CMP DWORD PTR DS:[ECX*4+4B6CF0],200
00406763  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
0040840E  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
0040BE63  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
0040C299  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
004113D8  |. 3D 00020000        CMP EAX,200
00411BDD  |. 81FA 00020000      CMP EDX,200
00411D03  |. 81FA 00020000      CMP EDX,200
004120F5  |. 3D 00020000        CMP EAX,200
00412EE6  |. 81F9 00020000      CMP ECX,200
00414DAB  |. 81F9 00020000      CMP ECX,200
00416429  |. 81F9 00020000      CMP ECX,200
00416E67  |. 81FA 00020000      CMP EDX,200
004171C4  |. 3D 00020000        CMP EAX,200
00417280  |. 3D 00020000        CMP EAX,200
004172EC  |. 81F9 00020000      CMP ECX,200
004174FB  |. 81FA 00020000      CMP EDX,200
0041750B  |. 3D 00020000        CMP EAX,200
0041AFFB  |> 81BD D8FEFFFF 000> CMP DWORD PTR SS:[EBP-128],200
0041B38D  |> 81BD D8FEFFFF 000> CMP DWORD PTR SS:[EBP-128],200
0041EED6  |> 817D FC 00020000   CMP DWORD PTR SS:[EBP-4],200
0042B0CB  |. 68 00020000        PUSH 200
0042B0F8  |. 68 00020000        PUSH 200
004575B7  |> 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
004591B5  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
00459965  |. 817D 14 00020000   CMP DWORD PTR SS:[EBP+14],200
0045AA65  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
0047972B  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
00479A15  |. 813D 04754B00 000> CMP DWORD PTR DS:[4B7504],200
00479AD9  |. 817D 08 00020000   CMP DWORD PTR SS:[EBP+8],200
0040A7C7  |. 81C2 AE000000      ADD EDX,0AE
0040A921  |. 68 AE000000        PUSH 0AE
00438BA7  |. 817D F8 AE000000   CMP DWORD PTR SS:[EBP-8],0AE
0043A21E  |. 8138 AE000000      CMP DWORD PTR DS:[EAX],0AE
004676A6  |> 817D F4 AE000000   CMP DWORD PTR SS:[EBP-C],0AE
004768F6  |> 817D F8 AE000000   CMP DWORD PTR SS:[EBP-8],0AE
004784AD  |. 81BD 30FFFFFF AE0> CMP DWORD PTR SS:[EBP-D0],0AE
0047A7F8  |. 3D AE000000        CMP EAX,0AE

二、目前的1024DATA通常都附带了战场名称和商店的扩展,所以以下是有关的扩展
1、商店127个
以下4AEB68都改成0D72000,3A都改成7F
004197EB  |. 81C1 68EB4A00     ADD ECX,004AEB68
00419878  |. 81C1 68EB4A00     ADD ECX,004AEB68
00419905  |. 81C1 68EB4A00     ADD ECX,004AEB68
0041B83B  |. 81C1 68EB4A00     ADD ECX,004AEB68
00466B7C  |. 81C1 68EB4A00     ADD ECX,004AEB68
00466CD0  |. 81C1 68EB4A00     ADD ECX,004AEB68
004684A9  |. 81C1 68EB4A00     ADD ECX,004AEB68
0046857F  |. 81C1 68EB4A00     ADD ECX,004AEB68
0046860E  |. 81C1 68EB4A00     ADD ECX,004AEB68
0046B13A  |. 81C1 68EB4A00     ADD ECX,004AEB68
0046B26C  |. 81C1 68EB4A00     ADD ECX,004AEB68
0046DC43  |. 81C1 68EB4A00     ADD ECX,004AEB68
0041B82B  |> 837D F8 3A        CMP DWORD PTR SS:[EBP-8],3A
0042B27F  |. 6A 3A             PUSH 3A
0042B283  |. 68 68EB4A00       PUSH 004AEB68
0042B2A9  |. 6A 3A             PUSH 3A
0042B2AD  |. 68 68EB4A00       PUSH 004AEB68

2、战场名称99个
将3A都改成63
0040BFA7  |. 837D 0C 3A        CMP DWORD PTR SS:[EBP+C],3A
00449E6B  |. 83F9 3A           CMP ECX,3A
00449D06     83F8 3A        CMP EAX,3A
作者: godtype    时间: 2009-7-30 19:28     标题: 第四部分 五围突破255限制

内容较多,可能有个别地方有误,没有再详细对照

00406D87  /$ 55                PUSH EBP
00406D88  |. 8BEC              MOV EBP,ESP
00406D8A  |. 83EC 08           SUB ESP,8
00406D8D  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
00406D90  |. 33C0              XOR EAX,EAX
00406D92  |. 8A45 08           MOV AL,BYTE PTR SS:[EBP+8]
00406D95  |. FF2485 C96D4000   JMP DWORD PTR DS:[EAX*4+406DC9]
00406D9C  |> 66:8B4441 11      MOV AX,WORD PTR DS:[ECX+EAX*2+11]
00406DA1  |. EB 20             JMP SHORT 00406DC3
00406DA3  |> 8B41 1C           MOV EAX,DWORD PTR DS:[ECX+1C]
00406DA6  |. EB 1B             JMP SHORT 00406DC3
00406DA8  |> 33C0              XOR EAX,EAX
00406DAA  |. 8A41 20           MOV AL,BYTE PTR DS:[ECX+20]
00406DAD  |. EB 14             JMP SHORT 00406DC3
00406DAF  |> 33C0              XOR EAX,EAX
00406DB1  |. 8A41 2C           MOV AL,BYTE PTR DS:[ECX+2C]
00406DB4  |. EB 0D             JMP SHORT 00406DC3
00406DB6  |> 8A4408 17         MOV AL,BYTE PTR DS:[EAX+ECX+17]
00406DBA  |. 25 FF000000       AND EAX,0FF
00406DBF  |. EB 02             JMP SHORT 00406DC3
00406DC1  |> 33C0              XOR EAX,EAX
00406DC3  |> 8BE5              MOV ESP,EBP
00406DC5  |. 5D                POP EBP
00406DC6  \. C2 0400           RETN 4
00406DC9   . 9C6D4000          DD 00406D9C
00406DCD   . 9C6D4000          DD 00406D9C
00406DD1   . 9C6D4000          DD 00406D9C
00406DD5   . 9C6D4000          DD 00406D9C
00406DD9   . 9C6D4000          DD 00406D9C
00406DDD   . A36D4000          DD 00406DA3
00406DE1   . A86D4000          DD 00406DA8
00406DE5   . C16D4000          DD 00406DC1
00406DE9   . C16D4000          DD 00406DC1
00406DED   . AF6D4000          DD 00406DAF
00406DF1   . B66D4000          DD 00406DB6
00406DF5   . B66D4000          DD 00406DB6
00406DF9   . B66D4000          DD 00406DB6
00406DFD   . B66D4000          DD 00406DB6
00406E01   . B66D4000          DD 00406DB6
00406E05   . C16D4000          DD 00406DC1

00406E17  /$ 55                PUSH EBP
00406E18  |. 8BEC              MOV EBP,ESP
00406E1A  |. 83EC 08           SUB ESP,8
00406E1D  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
00406E20  |. 8B45 08           MOV EAX,DWORD PTR SS:[EBP+8]
00406E23  |. 25 FF000000       AND EAX,0FF
00406E28  |. 8945 F8           MOV DWORD PTR SS:[EBP-8],EAX
00406E2B  |. 837D F8 0E        CMP DWORD PTR SS:[EBP-8],0E
00406E2F  |. 0F87 9C000000     JA 00406ED1
00406E35  |. 8B4D F8           MOV ECX,DWORD PTR SS:[EBP-8]
00406E38  |. FF248D D76E4000   JMP DWORD PTR DS:[ECX*4+406ED7]
00406E3F  |> 68 0F270000       PUSH 270F                                ; /Arg3 = 0000270F
00406E44  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]             ; |
00406E47  |. 52                PUSH EDX                                 ; |Arg2
00406E48  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00406E4B  |. 66:8B4C48 11      MOV CX,WORD PTR DS:[EAX+ECX*2+11]        ; |
00406E50  |. 51                PUSH ECX                                 ; |Arg1
00406E51  |. E8 338C0700       CALL 0047FA89                       ; \0047FA89
00406E56  |. 83C4 0C           ADD ESP,0C
00406E59  |. 8B55 FC           MOV EDX,DWORD PTR SS:[EBP-4]
00406E5C  |. 8B4D F8           MOV ECX,DWORD PTR SS:[EBP-8]
00406E5F  |. 66:89444A 11      MOV WORD PTR DS:[EDX+ECX*2+11],AX
00406E64  |. EB 6B             JMP SHORT 00406ED1
00406E66  |> 68 FFFF0000       PUSH 0FFFF                               ; /Arg3 = 0000FFFF
00406E6B  |. 8B45 0C           MOV EAX,DWORD PTR SS:[EBP+C]             ; |
00406E6E  |. 50                PUSH EAX                                 ; |Arg2
00406E6F  |. 8B4D FC           MOV ECX,DWORD PTR SS:[EBP-4]             ; |
00406E72  |. 8B51 1C           MOV EDX,DWORD PTR DS:[ECX+1C]            ; |
00406E75  |. 52                PUSH EDX                                 ; |Arg1
00406E76  |. E8 0E8C0700       CALL 0047FA89                       ; \0047FA89
00406E7B  |. 83C4 0C           ADD ESP,0C
00406E7E  |. 8B4D FC           MOV ECX,DWORD PTR SS:[EBP-4]
00406E81  |. 8941 1C           MOV DWORD PTR DS:[ECX+1C],EAX
00406E84  |. EB 4B             JMP SHORT 00406ED1
00406E86  |> 68 FF000000       PUSH 0FF                                 ; /Arg3 = 000000FF
00406E8B  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]             ; |
00406E8E  |. 52                PUSH EDX                                 ; |Arg2
00406E8F  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00406E92  |. 33C9              XOR ECX,ECX                              ; |
00406E94  |. 8A48 20           MOV CL,BYTE PTR DS:[EAX+20]              ; |
00406E97  |. 51                PUSH ECX                                 ; |Arg1
00406E98  |. E8 EC8B0700       CALL 0047FA89                       ; \0047FA89
00406E9D  |. 83C4 0C           ADD ESP,0C
00406EA0  |. 8B55 FC           MOV EDX,DWORD PTR SS:[EBP-4]
00406EA3  |. 8842 20           MOV BYTE PTR DS:[EDX+20],AL
00406EA6  |. EB 29             JMP SHORT 00406ED1
00406EA8  |> 68 64000000       PUSH 64                                  ; /Arg3 = 00000064
00406EAD  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]             ; |
00406EB0  |. 52                PUSH EDX                                 ; |Arg2
00406EB1  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00406EB4  |. 8A4C01 17         MOV CL,BYTE PTR DS:[ECX+EAX+17]          ; |
00406EB8  |. 81E1 FF000000     AND ECX,0FF                              ; |
00406EBE  |. 51                PUSH ECX                                 ; |Arg1
00406EBF  |. E8 C58B0700       CALL 0047FA89                       ; \0047FA89
00406EC4  |. 83C4 0C           ADD ESP,0C
00406EC7  |. 8B55 FC           MOV EDX,DWORD PTR SS:[EBP-4]
00406ECA  |. 8B4D F8           MOV ECX,DWORD PTR SS:[EBP-8]
00406ECD  |. 884411 17         MOV BYTE PTR DS:[ECX+EDX+17],AL
00406ED1  |> 8BE5              MOV ESP,EBP
00406ED3  |. 5D                POP EBP
00406ED4  \. C2 0800           RETN 8
00406ED7   . 3F6E4000          DD 00406E3F                         ;  Switch table used at 00406E38
00406EDB   . 3F6E4000          DD 00406E3F
00406EDF   . 3F6E4000          DD 00406E3F
00406EE3   . 3F6E4000          DD 00406E3F
00406EE7   . 3F6E4000          DD 00406E3F
00406EEB   . 666E4000          DD 00406E66
00406EEF   . 866E4000          DD 00406E86
00406EF3   . D16E4000          DD 00406ED1
00406EF7   . D16E4000          DD 00406ED1
00406EFB   . D16E4000          DD 00406ED1
00406EFF   . A86E4000          DD 00406EA8
00406F03   . A86E4000          DD 00406EA8
00406F07   . A86E4000          DD 00406EA8
00406F0B   . A86E4000          DD 00406EA8
00406F0F   . A86E4000          DD 00406EA8

00406F54  /$ 55                PUSH EBP
00406F55  |. 8BEC              MOV EBP,ESP
00406F57  |. 83EC 24           SUB ESP,24
00406F5A  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
00406F5D  |. 8B45 08           MOV EAX,DWORD PTR SS:[EBP+8]
00406F60  |. 25 FF000000       AND EAX,0FF
00406F65  |. 8945 F8           MOV DWORD PTR SS:[EBP-8],EAX
00406F68  |. 837D F8 0F        CMP DWORD PTR SS:[EBP-8],0F
00406F6C  |. 0F87 BA000000     JA 0040702C
00406F72  |. 8B4D F8           MOV ECX,DWORD PTR SS:[EBP-8]
00406F75  |. FF248D 32704000   JMP DWORD PTR DS:[ECX*4+407032]
00406F7C  |> 817D 0C 0F270000  CMP DWORD PTR SS:[EBP+C],270F
00406F83  |. 73 08             JNB SHORT 00406F8D
00406F85  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]
00406F88  |. 8955 F4           MOV DWORD PTR SS:[EBP-C],EDX
00406F8B  |. EB 05             JMP SHORT 00406F92
00406F8D  |> BA 0F270000       MOV EDX,270F
00406F92  |> 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]
00406F95  |. 66:895448 11      MOV WORD PTR DS:[EAX+ECX*2+11],DX
00406F9A  |. E9 8D000000       JMP 0040702C
00406F9F  |> 817D 0C FFFF0000  CMP DWORD PTR SS:[EBP+C],0FFFF
00406FA6  |. 73 08             JNB SHORT 00406FB0
00406FA8  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]
00406FAB  |. 8955 E0           MOV DWORD PTR SS:[EBP-20],EDX
00406FAE  |. EB 07             JMP SHORT 00406FB7
00406FB0  |> C745 E0 FFFF0000  MOV DWORD PTR SS:[EBP-20],0FFFF
00406FB7  |> 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]
00406FBA  |. 8B4D E0           MOV ECX,DWORD PTR SS:[EBP-20]
00406FBD  |. 8948 1C           MOV DWORD PTR DS:[EAX+1C],ECX
00406FC0  |. EB 6A             JMP SHORT 0040702C
00406FC2  |> 817D 0C FF000000  CMP DWORD PTR SS:[EBP+C],0FF
00406FC9  |. 73 08             JNB SHORT 00406FD3
00406FCB  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]
00406FCE  |. 8955 DC           MOV DWORD PTR SS:[EBP-24],EDX
00406FD1  |. EB 07             JMP SHORT 00406FDA
00406FD3  |> C745 DC FF000000  MOV DWORD PTR SS:[EBP-24],0FF
00406FDA  |> 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]
00406FDD  |. 8A4D DC           MOV CL,BYTE PTR SS:[EBP-24]
00406FE0  |. 8848 20           MOV BYTE PTR DS:[EAX+20],CL
00406FE3  |. EB 47             JMP SHORT 0040702C
00406FE5  |> 817D 0C 64000000  CMP DWORD PTR SS:[EBP+C],64
00406FEC  |. 73 08             JNB SHORT 00406FF6
00406FEE  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]
00406FF1  |. 8955 DC           MOV DWORD PTR SS:[EBP-24],EDX
00406FF4  |. EB 07             JMP SHORT 00406FFD
00406FF6  |> C745 DC 64000000  MOV DWORD PTR SS:[EBP-24],64
00406FFD  |> 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]
00407000  |. 8A55 DC           MOV DL,BYTE PTR SS:[EBP-24]
00407003  |. 885401 17         MOV BYTE PTR DS:[ECX+EAX+17],DL
00407007  |. EB 23             JMP SHORT 0040702C
00407009  |> 817D 0C FFFF0000  CMP DWORD PTR SS:[EBP+C],0FFFF
00407010  |. 73 08             JNB SHORT 0040701A
00407012  |. 8B55 0C           MOV EDX,DWORD PTR SS:[EBP+C]
00407015  |. 8955 E0           MOV DWORD PTR SS:[EBP-20],EDX
00407018  |. EB 07             JMP SHORT 00407021
0040701A  |> C745 E0 FFFF0000  MOV DWORD PTR SS:[EBP-20],0FFFF
00407021  |> 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]
00407024  |. 66:8B4D E0        MOV CX,WORD PTR SS:[EBP-20]
00407028  |. 66:8948 04        MOV WORD PTR DS:[EAX+4],CX
0040702C  |> 8BE5              MOV ESP,EBP
0040702E  |. 5D                POP EBP
0040702F  \. C2 0800           RETN 8
00407032   . 7C6F4000          DD 00406F7C                         ;  Switch table used at 00406F75
00407036   . 7C6F4000          DD 00406F7C
0040703A   . 7C6F4000          DD 00406F7C
0040703E   . 7C6F4000          DD 00406F7C
00407042   . 7C6F4000          DD 00406F7C
00407046   . 9F6F4000          DD 00406F9F
0040704A   . C26F4000          DD 00406FC2
0040704E   . 2C704000          DD 0040702C
00407052   . 2C704000          DD 0040702C
00407056   . 2C704000          DD 0040702C
0040705A   . E56F4000          DD 00406FE5
0040705E   . E56F4000          DD 00406FE5
00407062   . E56F4000          DD 00406FE5
00407066   . E56F4000          DD 00406FE5
0040706A   . E56F4000          DD 00406FE5
0040706E   . 09704000          DD 00407009

00407126  /$ 55                PUSH EBP
00407127  |. 8BEC              MOV EBP,ESP
00407129  |. 51                PUSH ECX
0040712A  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
0040712D  |. 68 0F270000       PUSH 270F                                ; /Arg3 = 0000270F
00407132  |. 6A 00             PUSH 0                                   ; |/Arg1 = 00000000
00407134  |. 90                NOP                                      ; ||
00407135  |. 90                NOP                                      ; ||
00407136  |. E8 D30A0000       CALL 00407C0E                       ; |\00407C0E
0040713B  |. 25 FF000000       AND EAX,0FF                              ; |
00407140  |. 50                PUSH EAX                                 ; |Arg2
00407141  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00407144  |. 33C9              XOR ECX,ECX                              ; |
00407146  |. 66:8B48 11        MOV CX,WORD PTR DS:[EAX+11]              ; |
0040714A  |. 51                PUSH ECX                                 ; |Arg1
0040714B  |. E8 39890700       CALL 0047FA89                       ; \0047FA89
00407150  |. 83C4 0C           ADD ESP,0C
00407153  |. 8BE5              MOV ESP,EBP
00407155  |. 5D                POP EBP
00407156  \. C3                RETN
00407157  /$ 55                PUSH EBP
00407158  |. 8BEC              MOV EBP,ESP
0040715A  |. 51                PUSH ECX
0040715B  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
0040715E  |. 68 0F270000       PUSH 270F                                ; /Arg3 = 0000270F
00407163  |. 6A 01             PUSH 1                                   ; |/Arg1 = 00000001
00407165  |. 90                NOP                                      ; ||
00407166  |. 90                NOP                                      ; ||
00407167  |. E8 A20A0000       CALL 00407C0E                       ; |\00407C0E
0040716C  |. 25 FF000000       AND EAX,0FF                              ; |
00407171  |. 50                PUSH EAX                                 ; |Arg2
00407172  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00407175  |. 33C9              XOR ECX,ECX                              ; |
00407177  |. 66:8B48 13        MOV CX,WORD PTR DS:[EAX+13]              ; |
0040717B  |. 51                PUSH ECX                                 ; |Arg1
0040717C  |. E8 08890700       CALL 0047FA89                       ; \0047FA89
00407181  |. 83C4 0C           ADD ESP,0C
00407184  |. 8BE5              MOV ESP,EBP
00407186  |. 5D                POP EBP
00407187  \. C3                RETN
00407188  /$ 55                PUSH EBP
00407189  |. 8BEC              MOV EBP,ESP
0040718B  |. 51                PUSH ECX
0040718C  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
0040718F  |. 68 0F270000       PUSH 270F                                ; /Arg3 = 0000270F
00407194  |. 6A 02             PUSH 2                                   ; |/Arg1 = 00000002
00407196  |. 90                NOP                                      ; ||
00407197  |. 90                NOP                                      ; ||
00407198  |. E8 710A0000       CALL 00407C0E                       ; |\00407C0E
0040719D  |. 25 FF000000       AND EAX,0FF                              ; |
004071A2  |. 50                PUSH EAX                                 ; |Arg2
004071A3  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
004071A6  |. 33C9              XOR ECX,ECX                              ; |
004071A8  |. 66:8B48 15        MOV CX,WORD PTR DS:[EAX+15]              ; |
004071AC  |. 51                PUSH ECX                                 ; |Arg1
004071AD  |. E8 D7880700       CALL 0047FA89                       ; \0047FA89
004071B2  |. 83C4 0C           ADD ESP,0C
004071B5  |. 8BE5              MOV ESP,EBP
004071B7  |. 5D                POP EBP
004071B8  \. C3                RETN
004071B9  /$ 55                PUSH EBP
004071BA  |. 8BEC              MOV EBP,ESP
004071BC  |. 51                PUSH ECX
004071BD  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
004071C0  |. 68 0F270000       PUSH 270F                                ; /Arg3 = 0000270F
004071C5  |. 6A 03             PUSH 3                                   ; |/Arg1 = 00000003
004071C7  |. 90                NOP                                      ; ||
004071C8  |. 90                NOP                                      ; ||
004071C9  |. E8 400A0000       CALL 00407C0E                       ; |\00407C0E
004071CE  |. 25 FF000000       AND EAX,0FF                              ; |
004071D3  |. 50                PUSH EAX                                 ; |Arg2
004071D4  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
004071D7  |. 33C9              XOR ECX,ECX                              ; |
004071D9  |. 66:8B48 17        MOV CX,WORD PTR DS:[EAX+17]              ; |
004071DD  |. 51                PUSH ECX                                 ; |Arg1
004071DE  |. E8 A6880700       CALL 0047FA89                       ; \0047FA89
004071E3  |. 83C4 0C           ADD ESP,0C
004071E6  |. 8BE5              MOV ESP,EBP
004071E8  |. 5D                POP EBP
004071E9  \. C3                RETN
004071EA  /$ 55                PUSH EBP
004071EB  |. 8BEC              MOV EBP,ESP
004071ED  |. 51                PUSH ECX
004071EE  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
004071F1  |. 68 0F270000       PUSH 270F                                ; /Arg3 = 0000270F
004071F6  |. 6A 04             PUSH 4                                   ; |/Arg1 = 00000004
004071F8  |. 90                NOP                                      ; ||
004071F9  |. 90                NOP                                      ; ||
004071FA  |. E8 0F0A0000       CALL 00407C0E                       ; |\00407C0E
004071FF  |. 25 FF000000       AND EAX,0FF                              ; |
00407204  |. 50                PUSH EAX                                 ; |Arg2
00407205  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00407208  |. 33C9              XOR ECX,ECX                              ; |
0040720A  |. 66:8B48 19        MOV CX,WORD PTR DS:[EAX+19]              ; |
0040720E  |. 51                PUSH ECX                                 ; |Arg1
0040720F  |. E8 75880700       CALL 0047FA89                       ; \0047FA89
00407214  |. 83C4 0C           ADD ESP,0C
00407217  |. 8BE5              MOV ESP,EBP
00407219  |. 5D                POP EBP
0040721A  \. C3                RETN
0040721B  /$ 55                PUSH EBP
0040721C  |. 8BEC              MOV EBP,ESP
0040721E  |. 51                PUSH ECX
0040721F  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
00407222  |. 68 FFFF0000       PUSH 0FFFF                               ; /Arg3 = 0000FFFF
00407227  |. 6A 05             PUSH 5                                   ; |/Arg1 = 00000005
00407229  |. 8B4D FC           MOV ECX,DWORD PTR SS:[EBP-4]             ; ||
0040722C  |. E8 DD090000       CALL 00407C0E                       ; |\00407C0E
00407231  |. 25 FF000000       AND EAX,0FF                              ; |
00407236  |. 50                PUSH EAX                                 ; |Arg2
00407237  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
0040723A  |. 8B48 1C           MOV ECX,DWORD PTR DS:[EAX+1C]            ; |
0040723D  |. 51                PUSH ECX                                 ; |Arg1
0040723E  |. E8 46880700       CALL 0047FA89                       ; \0047FA89
00407243  |. 83C4 0C           ADD ESP,0C
00407246  |. 8BE5              MOV ESP,EBP
00407248  |. 5D                POP EBP
00407249  \. C3                RETN
0040724A  /$ 55                PUSH EBP
0040724B  |. 8BEC              MOV EBP,ESP
0040724D  |. 51                PUSH ECX
0040724E  |. 894D FC           MOV DWORD PTR SS:[EBP-4],ECX
00407251  |. 68 FF000000       PUSH 0FF                                 ; /Arg3 = 000000FF
00407256  |. 6A 06             PUSH 6                                   ; |/Arg1 = 00000006
00407258  |. 8B4D FC           MOV ECX,DWORD PTR SS:[EBP-4]             ; ||
0040725B  |. E8 AE090000       CALL 00407C0E                       ; |\00407C0E
00407260  |. 25 FF000000       AND EAX,0FF                              ; |
00407265  |. 50                PUSH EAX                                 ; |Arg2
00407266  |. 8B45 FC           MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00407269  |. 33C9              XOR ECX,ECX                              ; |
0040726B  |. 8A48 20           MOV CL,BYTE PTR DS:[EAX+20]              ; |
0040726E  |. 51                PUSH ECX                                 ; |Arg1
0040726F  |. E8 15880700       CALL 0047FA89                       ; \0047FA89
00407274  |. 83C4 0C           ADD ESP,0C
00407277  |. 8BE5              MOV ESP,EBP
00407279  |. 5D                POP EBP
0040727A  \. C3                RETN

00408CD0  |. 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]
00408CD3  |. 8B55 0C        MOV EDX,DWORD PTR SS:[EBP+C]
00408CD6  |. 33C0           XOR EAX,EAX
00408CD8  |. 8A02           MOV AL,BYTE PTR DS:[EDX]
00408CDA  |. 66:8941 11     MOV WORD PTR DS:[ECX+11],AX
00408CDE  |. 42             INC EDX
00408CDF  |. 8955 0C        MOV DWORD PTR SS:[EBP+C],EDX
00408CE2  |. 90             NOP
00408CE3  |. 90             NOP
00408CE4  |. 8B55 E8        MOV EDX,DWORD PTR SS:[EBP-18]
00408CE7  |. 8B45 0C        MOV EAX,DWORD PTR SS:[EBP+C]
00408CEA  |. 33C9           XOR ECX,ECX
00408CEC  |. 8A08           MOV CL,BYTE PTR DS:[EAX]
00408CEE  |. 66:894A 13     MOV WORD PTR DS:[EDX+13],CX
00408CF2  |. 40             INC EAX
00408CF3  |. 8945 0C        MOV DWORD PTR SS:[EBP+C],EAX
00408CF6  |. 90             NOP
00408CF7  |. 90             NOP
00408CF8  |. 8B45 E8        MOV EAX,DWORD PTR SS:[EBP-18]
00408CFB  |. 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00408CFE  |. 33D2           XOR EDX,EDX
00408D00  |. 8A11           MOV DL,BYTE PTR DS:[ECX]
00408D02  |. 66:8950 15     MOV WORD PTR DS:[EAX+15],DX
00408D06  |. 41             INC ECX
00408D07  |. 894D 0C        MOV DWORD PTR SS:[EBP+C],ECX
00408D0A  |. 90             NOP
00408D0B  |. 90             NOP
00408D0C  |. 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]
00408D0F  |. 8B55 0C        MOV EDX,DWORD PTR SS:[EBP+C]
00408D12  |. 33C0           XOR EAX,EAX
00408D14  |. 8A02           MOV AL,BYTE PTR DS:[EDX]
00408D16  |. 66:8941 17     MOV WORD PTR DS:[ECX+17],AX
00408D1A  |. 42             INC EDX
00408D1B  |. 8955 0C        MOV DWORD PTR SS:[EBP+C],EDX
00408D1E  |. 90             NOP
00408D1F  |. 90             NOP
00408D20  |. 8B55 E8        MOV EDX,DWORD PTR SS:[EBP-18]
00408D23  |. 8B45 0C        MOV EAX,DWORD PTR SS:[EBP+C]
00408D26  |. 33C9           XOR ECX,ECX
00408D28  |. 8A08           MOV CL,BYTE PTR DS:[EAX]
00408D2A  |. 66:894A 19     MOV WORD PTR DS:[EDX+19],CX
00408D2E  |. 40             INC EAX
00408D2F  |. 8945 0C        MOV DWORD PTR SS:[EBP+C],EAX
00408D32  |. 90             NOP
00408D33  |. 90             NOP

00408D3A  |. 8A51 11             MOV DL,BYTE PTR DS:[ECX+11]

00408D46  |. 8A51 13             MOV DL,BYTE PTR DS:[ECX+13]

00408D52  |. 8A51 15             MOV DL,BYTE PTR DS:[ECX+15]

00408D5E  |. 8A51 17             MOV DL,BYTE PTR DS:[ECX+17]

00408F2E  /$ 55                PUSH EBP
00408F2F  |. 8BEC              MOV EBP,ESP
00408F31  |. 8B45 08           MOV EAX,DWORD PTR SS:[EBP+8]
00408F34  |. 8A51 04           MOV DL,BYTE PTR DS:[ECX+4]
00408F37  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F39  |. 40                INC EAX
00408F3A  |. 8A51 05           MOV DL,BYTE PTR DS:[ECX+5]
00408F3D  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F3F  |. 40                INC EAX
00408F40  |. 8A51 02           MOV DL,BYTE PTR DS:[ECX+2]
00408F43  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F45  |. 40                INC EAX
00408F46  |. 8A51 2A           MOV DL,BYTE PTR DS:[ECX+2A]
00408F49  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F4B  |. 40                INC EAX
00408F4C  |. 8A51 11           MOV DL,BYTE PTR DS:[ECX+11]
00408F4F  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F51  |. 40                INC EAX
00408F52  |. 8A51 12           MOV DL,BYTE PTR DS:[ECX+12]
00408F55  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F57  |. 40                INC EAX
00408F58  |. 8A51 13           MOV DL,BYTE PTR DS:[ECX+13]
00408F5B  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F5D  |. 40                INC EAX
00408F5E  |. 8A51 14           MOV DL,BYTE PTR DS:[ECX+14]
00408F61  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F63  |. 40                INC EAX
00408F64  |. 8A51 15           MOV DL,BYTE PTR DS:[ECX+15]
00408F67  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F69  |. 40                INC EAX
00408F6A  |. 8A51 16           MOV DL,BYTE PTR DS:[ECX+16]
00408F6D  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F6F  |. 40                INC EAX
00408F70  |. 8A51 17           MOV DL,BYTE PTR DS:[ECX+17]
00408F73  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F75  |. 40                INC EAX
00408F76  |. 8A51 18           MOV DL,BYTE PTR DS:[ECX+18]
00408F79  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F7B  |. 40                INC EAX
00408F7C  |. 8A51 19           MOV DL,BYTE PTR DS:[ECX+19]
00408F7F  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F81  |. 40                INC EAX
00408F82  |. 8A51 1A           MOV DL,BYTE PTR DS:[ECX+1A]
00408F85  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F87  |. 40                INC EAX
00408F88  |. 8A51 21           MOV DL,BYTE PTR DS:[ECX+21]
00408F8B  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F8D  |. 40                INC EAX
00408F8E  |. 8A51 22           MOV DL,BYTE PTR DS:[ECX+22]
00408F91  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F93  |. 40                INC EAX
00408F94  |. 8A51 23           MOV DL,BYTE PTR DS:[ECX+23]
00408F97  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F99  |. 40                INC EAX
00408F9A  |. 8A51 24           MOV DL,BYTE PTR DS:[ECX+24]
00408F9D  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408F9F  |. 40                INC EAX
00408FA0  |. 8A51 25           MOV DL,BYTE PTR DS:[ECX+25]
00408FA3  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FA5  |. 40                INC EAX
00408FA6  |. 8A51 1C           MOV DL,BYTE PTR DS:[ECX+1C]
00408FA9  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FAB  |. 40                INC EAX
00408FAC  |. 8A51 1D           MOV DL,BYTE PTR DS:[ECX+1D]
00408FAF  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FB1  |. 40                INC EAX
00408FB2  |. 8A51 20           MOV DL,BYTE PTR DS:[ECX+20]
00408FB5  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FB7  |. 40                INC EAX
00408FB8  |. 8A51 2B           MOV DL,BYTE PTR DS:[ECX+2B]
00408FBB  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FBD  |. 40                INC EAX
00408FBE  |. 8A51 2C           MOV DL,BYTE PTR DS:[ECX+2C]
00408FC1  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FC3  |. 40                INC EAX
00408FC4  |. 8A51 2D           MOV DL,BYTE PTR DS:[ECX+2D]
00408FC7  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FC9  |. 40                INC EAX
00408FCA  |. 8A51 2E           MOV DL,BYTE PTR DS:[ECX+2E]
00408FCD  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FCF  |. 40                INC EAX
00408FD0  |. 8A51 2F           MOV DL,BYTE PTR DS:[ECX+2F]
00408FD3  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FD5  |. 40                INC EAX
00408FD6  |. 8A51 30           MOV DL,BYTE PTR DS:[ECX+30]
00408FD9  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FDB  |. 40                INC EAX
00408FDC  |. 8A51 31           MOV DL,BYTE PTR DS:[ECX+31]
00408FDF  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FE1  |. 40                INC EAX
00408FE2  |. 8A51 32           MOV DL,BYTE PTR DS:[ECX+32]
00408FE5  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FE7  |. 40                INC EAX
00408FE8  |. 8A51 33           MOV DL,BYTE PTR DS:[ECX+33]
00408FEB  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FED  |. 40                INC EAX
00408FEE  |. 8A51 34           MOV DL,BYTE PTR DS:[ECX+34]
00408FF1  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FF3  |. 40                INC EAX
00408FF4  |. 8A51 35           MOV DL,BYTE PTR DS:[ECX+35]
00408FF7  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FF9  |. 40                INC EAX
00408FFA  |. 8A51 36           MOV DL,BYTE PTR DS:[ECX+36]
00408FFD  |. 8810              MOV BYTE PTR DS:[EAX],DL
00408FFF  |. 40                INC EAX
00409000  |. 8A51 27           MOV DL,BYTE PTR DS:[ECX+27]
00409003  |. 8810              MOV BYTE PTR DS:[EAX],DL
00409005  |. 40                INC EAX
00409006  |. 8A51 28           MOV DL,BYTE PTR DS:[ECX+28]
00409009  |. 8810              MOV BYTE PTR DS:[EAX],DL
0040900B  |. 40                INC EAX
0040900C  |. 8A51 29           MOV DL,BYTE PTR DS:[ECX+29]
0040900F  |. 8810              MOV BYTE PTR DS:[EAX],DL
00409011  |. 40                INC EAX
00409012  |. 8BE5              MOV ESP,EBP
00409014  |. 5D                POP EBP
00409015  \. C2 0400           RETN 4

00409018  /$ 55                PUSH EBP
00409019  |. 8BEC              MOV EBP,ESP
0040901B  |. 8B45 08           MOV EAX,DWORD PTR SS:[EBP+8]
0040901E  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409020  |. 8851 04           MOV BYTE PTR DS:[ECX+4],DL
00409023  |. 40                INC EAX
00409024  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409026  |. 8851 05           MOV BYTE PTR DS:[ECX+5],DL
00409029  |. 40                INC EAX
0040902A  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040902C  |. 8851 02           MOV BYTE PTR DS:[ECX+2],DL
0040902F  |. 40                INC EAX
00409030  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409032  |. 8851 2A           MOV BYTE PTR DS:[ECX+2A],DL
00409035  |. 40                INC EAX
00409036  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409038  |. 8851 11           MOV BYTE PTR DS:[ECX+11],DL
0040903B  |. 40                INC EAX
0040903C  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040903E  |. 8851 12           MOV BYTE PTR DS:[ECX+12],DL
00409041  |. 40                INC EAX
00409042  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409044  |. 8851 13           MOV BYTE PTR DS:[ECX+13],DL
00409047  |. 40                INC EAX
00409048  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040904A  |. 8851 14           MOV BYTE PTR DS:[ECX+14],DL
0040904D  |. 40                INC EAX
0040904E  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409050  |. 8851 15           MOV BYTE PTR DS:[ECX+15],DL
00409053  |. 40                INC EAX
00409054  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409056  |. 8851 16           MOV BYTE PTR DS:[ECX+16],DL
00409059  |. 40                INC EAX
0040905A  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040905C  |. 8851 17           MOV BYTE PTR DS:[ECX+17],DL
0040905F  |. 40                INC EAX
00409060  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409062  |. 8851 18           MOV BYTE PTR DS:[ECX+18],DL
00409065  |. 40                INC EAX
00409066  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409068  |. 8851 19           MOV BYTE PTR DS:[ECX+19],DL
0040906B  |. 40                INC EAX
0040906C  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040906E  |. 8851 1A           MOV BYTE PTR DS:[ECX+1A],DL
00409071  |. 40                INC EAX
00409072  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409074  |. 8851 21           MOV BYTE PTR DS:[ECX+21],DL
00409077  |. 40                INC EAX
00409078  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040907A  |. 8851 22           MOV BYTE PTR DS:[ECX+22],DL
0040907D  |. 40                INC EAX
0040907E  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409080  |. 8851 23           MOV BYTE PTR DS:[ECX+23],DL
00409083  |. 40                INC EAX
00409084  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409086  |. 8851 24           MOV BYTE PTR DS:[ECX+24],DL
00409089  |. 40                INC EAX
0040908A  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040908C  |. 8851 25           MOV BYTE PTR DS:[ECX+25],DL
0040908F  |. 40                INC EAX
00409090  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409092  |. 8851 1C           MOV BYTE PTR DS:[ECX+1C],DL
00409095  |. 40                INC EAX
00409096  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
00409098  |. 8851 1D           MOV BYTE PTR DS:[ECX+1D],DL
0040909B  |. 40                INC EAX
0040909C  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
0040909E  |. 8851 20           MOV BYTE PTR DS:[ECX+20],DL
004090A1  |. 40                INC EAX
004090A2  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090A4  |. 8851 2B           MOV BYTE PTR DS:[ECX+2B],DL
004090A7  |. 40                INC EAX
004090A8  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090AA  |. 8851 2C           MOV BYTE PTR DS:[ECX+2C],DL
004090AD  |. 40                INC EAX
004090AE  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090B0  |. 8851 2D           MOV BYTE PTR DS:[ECX+2D],DL
004090B3  |. 40                INC EAX
004090B4  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090B6  |. 8851 2E           MOV BYTE PTR DS:[ECX+2E],DL
004090B9  |. 40                INC EAX
004090BA  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090BC  |. 8851 2F           MOV BYTE PTR DS:[ECX+2F],DL
004090BF  |. 40                INC EAX
004090C0  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090C2  |. 8851 30           MOV BYTE PTR DS:[ECX+30],DL
004090C5  |. 40                INC EAX
004090C6  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090C8  |. 8851 31           MOV BYTE PTR DS:[ECX+31],DL
004090CB  |. 40                INC EAX
004090CC  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090CE  |. 8851 32           MOV BYTE PTR DS:[ECX+32],DL
004090D1  |. 40                INC EAX
004090D2  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090D4  |. 8851 33           MOV BYTE PTR DS:[ECX+33],DL
004090D7  |. 40                INC EAX
004090D8  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090DA  |. 8851 34           MOV BYTE PTR DS:[ECX+34],DL
004090DD  |. 40                INC EAX
004090DE  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090E0  |. 8851 35           MOV BYTE PTR DS:[ECX+35],DL
004090E3  |. 40                INC EAX
004090E4  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090E6  |. 8851 36           MOV BYTE PTR DS:[ECX+36],DL
004090E9  |. 40                INC EAX
004090EA  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090EC  |. 8851 27           MOV BYTE PTR DS:[ECX+27],DL
004090EF  |. 40                INC EAX
004090F0  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090F2  |. 8851 28           MOV BYTE PTR DS:[ECX+28],DL
004090F5  |. 40                INC EAX
004090F6  |. 8A10              MOV DL,BYTE PTR DS:[EAX]
004090F8  |. 8851 29           MOV BYTE PTR DS:[ECX+29],DL
004090FB  |. 40                INC EAX
004090FC  |. 8BE5              MOV ESP,EBP
004090FE  |. 5D                POP EBP
004090FF  \. C2 0400           RETN 4

0041B01A  |. E8 F9DFFEFF       CALL 00409018

0041D165  |. 66:8B41 11          MOV AX,WORD PTR DS:[ECX+11]
0041D169  |. 66:8945 EC          MOV WORD PTR SS:[EBP-14],AX

0041D19A  |. 66:8B41 15          MOV AX,WORD PTR DS:[ECX+15]
0041D19E  |. 66:8945 EC          MOV WORD PTR SS:[EBP-14],AX

0041D1CF  |. 66:8B41 13          MOV AX,WORD PTR DS:[ECX+13]
0041D1D3  |. 66:8945 EC          MOV WORD PTR SS:[EBP-14],AX

0041D201  |. 66:8B41 17          MOV AX,WORD PTR DS:[ECX+17]
0041D205  |. 66:8945 EC          MOV WORD PTR SS:[EBP-14],AX

0041D233  |. 66:8B41 19          MOV AX,WORD PTR DS:[ECX+19]
0041D237  |. 66:8945 EC          MOV WORD PTR SS:[EBP-14],AX

0041D25D  |> 8B45 EC             MOV EAX,DWORD PTR SS:[EBP-14]
0041D260  |. 33D2                XOR EDX,EDX
0041D262  |. 8A55 F0             MOV DL,BYTE PTR SS:[EBP-10]
0041D265  |. 03C2                ADD EAX,EDX
0041D267  |. 66:3D 0F27          CMP AX,270F
0041D26B  |. 76 04               JBE SHORT 0041D271
0041D26D  |. 66:B8 0F27          MOV AX,270F
0041D271  |> 66:8945 EC          MOV WORD PTR SS:[EBP-14],AX

0041D2BE  |> 66:8B55 EC          MOV DX,WORD PTR SS:[EBP-14]
0041D2C2  |. 8B45 E8             MOV EAX,DWORD PTR SS:[EBP-18]
0041D2C5  |. 8B48 10             MOV ECX,DWORD PTR DS:[EAX+10]
0041D2C8  |. 66:8951 11          MOV WORD PTR DS:[ECX+11],DX
0041D2CC  |. 90                  NOP

0041D2F0  |> 66:8B55 EC          MOV DX,WORD PTR SS:[EBP-14]
0041D2F4  |. 8B45 E8             MOV EAX,DWORD PTR SS:[EBP-18]
0041D2F7  |. 8B48 10             MOV ECX,DWORD PTR DS:[EAX+10]
0041D2FA  |. 66:8951 15          MOV WORD PTR DS:[ECX+15],DX
0041D2FE  |. 90                  NOP

0041D322  |> 66:8B55 EC          MOV DX,WORD PTR SS:[EBP-14]
0041D326  |. 8B4D E8             MOV ECX,DWORD PTR SS:[EBP-18]
0041D329  |. 8B49 10             MOV ECX,DWORD PTR DS:[ECX+10]
0041D32C  |. 66:8951 13          MOV WORD PTR DS:[ECX+13],DX
0041D330  |. 90                  NOP

0041D351  |> 66:8B55 EC          MOV DX,WORD PTR SS:[EBP-14]
0041D355  |. 8B45 E8             MOV EAX,DWORD PTR SS:[EBP-18]
0041D358  |. 8B48 10             MOV ECX,DWORD PTR DS:[EAX+10]
0041D35B  |. 66:8951 17          MOV WORD PTR DS:[ECX+17],DX
0041D35F  |. 90                  NOP

0041D380  |> 66:8B55 EC          MOV DX,WORD PTR SS:[EBP-14]
0041D384  |. 8B4D E8             MOV ECX,DWORD PTR SS:[EBP-18]
0041D387  |. 8B49 10             MOV ECX,DWORD PTR DS:[ECX+10]
0041D38A  |. 66:8951 19          MOV WORD PTR DS:[ECX+19],DX
0041D38E  |. 90                  NOP

0043F52D  |. 817D FC 0F270000    CMP DWORD PTR SS:[EBP-4],270F

0043F53E  |> C745 F4 0F270000    MOV DWORD PTR SS:[EBP-C],270F

0043F5C4  |. 817D FC 0F270000    CMP DWORD PTR SS:[EBP-4],270F

0043F5D5  |> C745 F4 0F270000    MOV DWORD PTR SS:[EBP-C],270F

0043F612  |. 817D FC 0F270000    CMP DWORD PTR SS:[EBP-4],270F

0043F623  |> C745 F4 0F270000    MOV DWORD PTR SS:[EBP-C],270F

0043F660  |. 817D FC 0F270000    CMP DWORD PTR SS:[EBP-4],270F

0043F671  |> C745 F4 0F270000    MOV DWORD PTR SS:[EBP-C],270F

0043F6AE  |. 817D FC 0F270000    CMP DWORD PTR SS:[EBP-4],270F

0043F6BF  |> C745 F4 0F270000    MOV DWORD PTR SS:[EBP-C],270F

[ 本帖最后由 godtype 于 2009-10-29 22:32 编辑 ]
作者: godtype    时间: 2009-7-30 19:29     标题: 第五部分 经验类补充说明

一、武将物理攻击、使用策略、单挑击毙所获得的经验
不帖反汇编代码了,只是提供详细的UE地址和说明,需要反汇编代码的自行转换地址。

1、物理攻击部分

击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):2C45、2C63
最高上限(原值200):2C4B、2C54

击退等级低于自己的敌人,经验 = 基数 - 等级差*4
基数地址(原值32):2C7D、2C9F
最低下限(原值10):2C88、2C8E

击退主将(45战场全局变量中设置的敌军主将)经验再*2

未击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*2
基数地址(原值8):2CF4、2D0C
最高上限(原值100):2CF7、2CFD

未击退等级低于自己的敌人,经验 = 基数 - 等级差
基数地址(原值8):2D20、2D3F
最低下限(原值1):2D2B、2D31


2、策略攻击部分

1)使用产生伤害的策略
击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):20408、20426
最高上限(原值200):2040E、20417

击退等级低于自己的敌人,经验 = 基数 - 等级差*4
基数地址(原值32):20440、20462
最低下限(原值10):2044B、20451

击退主将(45战场全局变量中设置的敌军主将)经验再*2

未击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*4
基数地址(原值10):204B7、204D2
最高上限(原值100):204BD、204C3

未击退等级低于自己的敌人,经验 = 基数 - 等级差/2
基数地址(原值10):204EB、2050C
最低下限(原值5):204F6、204FC

2)使用不产生伤害和指定的策略(引擎指定了编号22的策略,即谍报)
对等级高于或等于自己的敌人,经验 = 基数 + 等级差*4
基数地址(原值10):20531、2054C
最高上限(原值100):20537、2053D

对等级低于自己的敌人,经验 = 基数 - 等级差/2
基数地址(原值10):20565、20586
最低下限(原值5):20570、20576

3)对我军友军使用的策略
对等级高于或等于自己的我军友军,经验 = 基数 + 等级差*4
基数地址(原值10):205EF、2060A
最高上限(原值100):205F5、205FB

对等级低于自己的我军友军,经验 = 基数 - 等级差/2
基数地址(原值10):20623、20644
最低下限(原值5):2062E、20634

4)天气类策略
固定经验(原值20):2065B

3、单挑中,使用 62:单挑阵亡 指令后,如果阵亡的是敌军武将,则我军武将所获得的经验

击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):4868F、486AD
最高上限(原值200):48695、4869E

击退等级低于自己的敌人,经验 = 基数 - 等级差*4
基数地址(原值32):486CD、486EF
最低下限(原值10):486D8、486DE

击退主将(45战场全局变量中设置的敌军主将)经验再*2


二、经验

[ 本帖最后由 godtype 于 2012-3-18 14:36 编辑 ]
作者: godtype    时间: 2009-7-30 19:29     标题: 头像状态设置

先看一张图,这是20武将头像状态设置的全部项目,其中有一项曹彰头像改变的没有在剧本编辑器中显示出来,另外最后一条复制多了


接着的这张图是用UE类工具来打开上面的这个测试剧本所显示的代码。

四种颜色代表四个有头像状态改变的人物:曹操(红)、独眼(蓝)、曹丕(黄)、孔明(绿),曹彰在后面的反汇编代码里面说明。
上面的代码中,共通的是“20 00 4A 00”部分4个字节,后面的2个字节代表这几种不同的头像状态。
00-03是曹操四种状态
04是独眼蒙眼状态
10是孔明邪恶
20是曹丕称帝
40是没有出现过的曹彰另一状态
80是独眼的独眼状态
FF是孔明的正常状态

以上是基本的知识,接下来看反汇编代码

004075A7  /$ 55                  PUSH EBP
004075A8  |. 8BEC                MOV EBP,ESP
004075AA  |. 83EC 18             SUB ESP,18
004075AD  |. 894D F0             MOV DWORD PTR SS:[EBP-10],ECX
004075B0  |. 8B4D F0             MOV ECX,DWORD PTR SS:[EBP-10]
004075B3  |. E8 481F0000         CALL 00409500
004075B8  |. 8945 F8             MOV DWORD PTR SS:[EBP-8],EAX
上面是取出武将编号存放在[EBP-8]里面
004075BB  |. B9 70074B00         MOV ECX,004B0770
004075C0  |. E8 7B1F0000         CALL 00409540
004075C5  |. 8845 FC             MOV BYTE PTR SS:[EBP-4],AL
取出保存在4B0770+11位置的武将头像状态代码,并存放在[EBP-4]里面

004075C8  |. 837D F8 00          CMP DWORD PTR SS:[EBP-8],0
004075CC  |. 0F85 A3000000       JNZ 00407675
是否0号武将,不是跳到后面
004075D2  |. B9 70074B00         MOV ECX,004B0770
004075D7  |. E8 841F0000         CALL 00409560
004075DC  |. 25 FF000000         AND EAX,0FF
004075E1  |. 83F8 02             CMP EAX,2
确定当前是第几章,大于等于2(即第3章)跳到后面
004075E4  |. 7D 45               JGE SHORT 0040762B
004075E6  |. 8B45 FC             MOV EAX,DWORD PTR SS:[EBP-4]
004075E9  |. 25 FF000000         AND EAX,0FF
004075EE  |. 24 0F               AND AL,0F
004075F0  |. 8945 EC             MOV DWORD PTR SS:[EBP-14],EAX
004075F3  |. 837D EC 01          CMP DWORD PTR SS:[EBP-14],1
004075F7  |. 74 0E               JE SHORT 00407607
004075F9  |. 837D EC 02          CMP DWORD PTR SS:[EBP-14],2
004075FD  |. 74 11               JE SHORT 00407610
004075FF  |. 837D EC 03          CMP DWORD PTR SS:[EBP-14],3
00407603  |. 74 14               JE SHORT 00407619
00407605  |. EB 1B               JMP SHORT 00407622
00407607  |> C745 F4 01000000    MOV DWORD PTR SS:[EBP-C],1
0040760E  |. EB 19               JMP SHORT 00407629
00407610  |> C745 F4 02000000    MOV DWORD PTR SS:[EBP-C],2
00407617  |. EB 10               JMP SHORT 00407629
00407619  |> C745 F4 03000000    MOV DWORD PTR SS:[EBP-C],3
00407620  |. EB 07               JMP SHORT 00407629
00407622  |> C745 F4 00000000    MOV DWORD PTR SS:[EBP-C],0
00407629  |> EB 45               JMP SHORT 00407670
上面这几行就是0号武将在前2章中4种不同的头像状态,[EBP-14]的值分别是0-3,即本楼最前面第二张图中提到的红色的取值,[EBP-C]是输出用的,0-3就是RV中的1-4号头像。
0040762B  |> 8B4D FC             MOV ECX,DWORD PTR SS:[EBP-4]
0040762E  |. 81E1 FF000000       AND ECX,0FF
00407634  |. 80E1 0F             AND CL,0F
00407637  |. 894D E8             MOV DWORD PTR SS:[EBP-18],ECX
0040763A  |. 837D E8 01          CMP DWORD PTR SS:[EBP-18],1
0040763E  |. 74 0E               JE SHORT 0040764E
00407640  |. 837D E8 02          CMP DWORD PTR SS:[EBP-18],2
00407644  |. 74 11               JE SHORT 00407657
00407646  |. 837D E8 03          CMP DWORD PTR SS:[EBP-18],3
0040764A  |. 74 14               JE SHORT 00407660
0040764C  |. EB 1B               JMP SHORT 00407669
0040764E  |> C745 F4 05000000    MOV DWORD PTR SS:[EBP-C],5
00407655  |. EB 19               JMP SHORT 00407670
00407657  |> C745 F4 06000000    MOV DWORD PTR SS:[EBP-C],6
0040765E  |. EB 10               JMP SHORT 00407670
00407660  |> C745 F4 07000000    MOV DWORD PTR SS:[EBP-C],7
00407667  |. EB 07               JMP SHORT 00407670
00407669  |> C745 F4 04000000    MOV DWORD PTR SS:[EBP-C],4
00407670  |> E9 DB000000         JMP 00407750
上面这几行就是0号武将在第3章后4种不同的头像状态,[EBP-18]跟上面的[EBP-14]作用一样,4-7就是RV中的5-8号头像。

00407675  |> 837D F8 01          CMP DWORD PTR SS:[EBP-8],1
00407679  |. 75 45               JNZ SHORT 004076C0
是否1号武将,不是跳到后面
0040767B  |. 8B55 FC             MOV EDX,DWORD PTR SS:[EBP-4]
0040767E  |. 81E2 FF000000       AND EDX,0FF
00407684  |. 80E2 0F             AND DL,0F
00407687  |. 83FA 04             CMP EDX,4
0040768A  |. 75 09               JNZ SHORT 00407695
0040768C  |. C745 F4 E0000000    MOV DWORD PTR SS:[EBP-C],0E0
00407693  |. EB 26               JMP SHORT 004076BB
判断头像状态是否04,是04所以输出图片编号是E0,即RV中的225号头像。
00407695  |> 8B45 FC             MOV EAX,DWORD PTR SS:[EBP-4]
00407698  |. 25 FF000000         AND EAX,0FF
0040769D  |. 25 80000000         AND EAX,80
004076A2  |. 85C0                TEST EAX,EAX
004076A4  |. 75 09               JNZ SHORT 004076AF
004076A6  |. C745 F4 DF000000    MOV DWORD PTR SS:[EBP-C],0DF
004076AD  |. EB 0C               JMP SHORT 004076BB
判断头像状态是否80,不是80所以输出图片编号是DF,即RV中的224号头像。
004076AF  |> 8B4D F0             MOV ECX,DWORD PTR SS:[EBP-10]
004076B2  |. 8B51 04             MOV EDX,DWORD PTR DS:[ECX+4]
004076B5  |. 83C2 07             ADD EDX,7
004076B8  |. 8955 F4             MOV DWORD PTR SS:[EBP-C],EDX
004076BB  |> E9 90000000         JMP 00407750
头像状态是80,所以头像输出图片编号是DATA设定的头像号+7。
以上的就是为什么制作MOD的时候,1号武将的头像要用RV的224号头像图片的原因了,去掉这几行即可。

004076C0  |> 837D F8 23          CMP DWORD PTR SS:[EBP-8],23
004076C4  |. 75 26               JNZ SHORT 004076EC
是否35号武将,不是跳到后面
004076C6  |. 8B45 FC             MOV EAX,DWORD PTR SS:[EBP-4]
004076C9  |. 25 FF000000         AND EAX,0FF
004076CE  |. 83E0 10             AND EAX,10
004076D1  |. 85C0                TEST EAX,EAX
004076D3  |. 74 09               JE SHORT 004076DE
004076D5  |. C745 F4 D6000000    MOV DWORD PTR SS:[EBP-C],0D6
004076DC  |. EB 0C               JMP SHORT 004076EA
判断头像状态是否10,是10所以输出图片编号是D6,即RV中的215号头像。
004076DE  |> 8B4D F0             MOV ECX,DWORD PTR SS:[EBP-10]
004076E1  |. 8B51 04             MOV EDX,DWORD PTR DS:[ECX+4]
004076E4  |. 83C2 07             ADD EDX,7
004076E7  |. 8955 F4             MOV DWORD PTR SS:[EBP-C],EDX
004076EA  |> EB 64               JMP SHORT 00407750
头像状态不是10,所以头像输出图片编号是DATA设定的头像号+7。

004076EC  |> 837D F8 08          CMP DWORD PTR SS:[EBP-8],8
004076F0  |. 75 26               JNZ SHORT 00407718
是否8号武将,不是跳到后面
004076F2  |. 8B45 FC             MOV EAX,DWORD PTR SS:[EBP-4]
004076F5  |. 25 FF000000         AND EAX,0FF
004076FA  |. 83E0 20             AND EAX,20
004076FD  |. 85C0                TEST EAX,EAX
004076FF  |. 74 09               JE SHORT 0040770A
00407701  |. C745 F4 E2000000    MOV DWORD PTR SS:[EBP-C],0E2
00407708  |. EB 0C               JMP SHORT 00407716
判断头像状态是否20,是20所以输出图片编号是E2,即RV中的227号头像。
0040770A  |> 8B4D F0             MOV ECX,DWORD PTR SS:[EBP-10]
0040770D  |. 8B51 04             MOV EDX,DWORD PTR DS:[ECX+4]
00407710  |. 83C2 07             ADD EDX,7
00407713  |. 8955 F4             MOV DWORD PTR SS:[EBP-C],EDX
00407716  |> EB 38               JMP SHORT 00407750
头像状态不是20,所以头像输出图片编号是DATA设定的头像号+7。

00407718  |> 837D F8 04          CMP DWORD PTR SS:[EBP-8],4
0040771C  |. 75 26               JNZ SHORT 00407744
是否4号武将,不是跳到后面
0040771E  |. 8B45 FC             MOV EAX,DWORD PTR SS:[EBP-4]
00407721  |. 25 FF000000         AND EAX,0FF
00407726  |. 83E0 40             AND EAX,40
00407729  |. 85C0                TEST EAX,EAX
0040772B  |. 74 09               JE SHORT 00407736
0040772D  |. C745 F4 E3000000    MOV DWORD PTR SS:[EBP-C],0E3
00407734  |. EB 0C               JMP SHORT 00407742
判断头像状态是否40,是40所以输出图片编号是E3,即RV中的228号头像。
00407736  |> 8B4D F0             MOV ECX,DWORD PTR SS:[EBP-10]
00407739  |. 8B51 04             MOV EDX,DWORD PTR DS:[ECX+4]
0040773C  |. 83C2 07             ADD EDX,7
0040773F  |. 8955 F4             MOV DWORD PTR SS:[EBP-C],EDX
00407742  |> EB 0C               JMP SHORT 00407750
头像状态不是40,所以头像输出图片编号是DATA设定的头像号+7。
这一段就是在原版中没有出现过的曹彰头像改变代码(连剧本编辑器也没有为他准备,有需要时只能用UE来指定,真可怜。)

00407744  |> 8B45 F0             MOV EAX,DWORD PTR SS:[EBP-10]
00407747  |. 8B48 04             MOV ECX,DWORD PTR DS:[EAX+4]
0040774A  |. 83C1 07             ADD ECX,7
0040774D  |. 894D F4             MOV DWORD PTR SS:[EBP-C],ECX
其他编号的武将,头像输出图片编号都是DATA设定的头像号+7。

00407750  |> 8B45 F4             MOV EAX,DWORD PTR SS:[EBP-C]
00407753  |. 8BE5                MOV ESP,EBP
00407755  |. 5D                  POP EBP
00407756  \. C3                  RETN
结束,将[EBP-C]的值作为EAX输出。

值得注意的是,头像状态改变的代码除了00-03,其余的是以叠加的形式来存放的在4B0770+11的位置,例如这位置的值是30,那么8号武将和35号将的头像都会使用在上面的代码中指定的头像图片,而不是DATA设定的头像。至于孔明正常的FF,是恢复成DATA设定用的,但是会不会让其他的都恢复DATA设定,还没有详细测试过。


[ 本帖最后由 godtype 于 2009-12-9 13:00 编辑 ]
作者: morningboo    时间: 2009-7-30 19:55

终于出现新的教程了!!!!!!(老大,我还是想拜你为师)
感动ing~~~~~~~~
作者: oyht99    时间: 2009-7-30 21:55

苍天呀大地啊~~~突破静态255要改这么多。。。。。。。。。。。。
作者: godtype    时间: 2009-7-30 22:01     标题: 回复 #8 morningboo 的帖子

我会的东西每一项都有比我强的人,我不会的东西就更不用说了,所以不能以我为榜样。
作者: oyht99    时间: 2009-7-30 22:11     标题: 回复 #10 godtype 的帖子

god大虾不好意思问一下,你所给的突破255的代码一定有用吗?为什么我看了一个已突破的EXE,根据你给的地址看并不是你改后的代码?
作者: godtype    时间: 2009-7-30 22:35

406D87、00406E17、00406F54这三条函数是最近参考了新引擎之后重新修正的,主要修正剧本指令 38武将能力设定 里面武统智敏运设置无效的问题。其他都是直接从周瑜大的EXE修改器里面找出来的。
作者: younger3    时间: 2009-7-30 23:49

"考虑到不看教程、不翻精华、不查旧帖、更不会去看设计区中几位大神早期精华帖但又喜欢修改引擎的同志们"


看到這句真是感到汗顏啊><

不過真的非常謝謝godtype版大的耐心及用心
造福不同需求的MOD同好們


非常實用的好帖
收下了~~
作者: 乱世枭雄    时间: 2009-7-31 00:44     标题: 回复 #10 godtype 的帖子

毅兄谦虚了啊,可能确实你不是每一项都最强,但是你会的东西多啊,很全面,呵呵!
作者: 37610716    时间: 2009-7-31 09:18     标题: 回复 #14 乱世枭雄 的帖子

主要不是这,主要是和蔼可亲!
作者: sddciwei    时间: 2009-7-31 10:36

毅哥能再次整理出这些资料让我们这些初学者收益,很感动,一如既往的支持你
作者: 乱世枭雄    时间: 2009-7-31 11:29     标题: 回复 #15 37610716 的帖子

呵呵,那是的,毅兄对人也非常热心,经常帮助我的,在此谢谢了!

[ 本帖最后由 乱世枭雄 于 2009-7-31 11:31 编辑 ]
作者: oyht99    时间: 2009-7-31 11:35

找不到00406D9C
作者: xieo33    时间: 2009-7-31 16:06

顶一个!!!
作者: ducksuper    时间: 2009-7-31 20:22

楼主真是这个版仍然在活跃中的好人+达人了
感谢一个
想请教一个问题
旧引擎中如何将辅助火系改为辅助妨碍系的效果呢
yanguodong的《各种兵种与宝物特效》里只介绍了将辅助风系改为辅助妨碍系的内容
我将它套用到辅助火系后 一单挑就错误退出...
下面是我改动的相关内容 是否哪里改错了...

[attach]79323[/attach]
图片是我自作聪明修改的辅助火系地址
然后从4112A7改为

004112A7    83F8 05                       cmp eax,5
004112AA    74 13                         je short Ekd5.004112BF
004112AC    83F8 0F                       cmp eax,0F
004112AF    74 0E                         je short Ekd5.004112BF
004112B1    83F8 10                       cmp eax,10
004112B4    74 09                         je short Ekd5.004112BF
004112B6    83F8 11                       cmp eax,11
004112B9    0F85 D8AF0200                 jnz Ekd5.0043C297
004112BF    6A 2F                         push 2F
004112C1    E9 89AF0200                   jmp Ekd5.0043C1E4


[ 本帖最后由 ducksuper 于 2009-7-31 20:23 编辑 ]

图片附件: 1.jpg (2009-7-31 20:22, 60.44 K) / 该附件被下载次数 263
http://xycq.org.cn/forum/attachment.php?aid=79323


作者: 火树银花~迷    时间: 2009-7-31 20:56

先支持godtype大所发出的旧引擎修改资料整理

我想问一个问题,我改1024DATA扩展时,是需要用到virtualalloc吧..可是我不懂怎样开始。(听人说不用下载)
作者: godtype    时间: 2009-8-1 23:10

回复 #18 oyht99 的帖子
怎样找不到?不要告诉我用UE找。

回复 #20 ducksuper 的帖子
有两个错的地方:
1、004112B9    0F85 D8AF0200                 jnz Ekd5.0043C297
这里应该是 jnz 43c22c
2、原版4112A7这里是剧本指令,也就是说还有很多代码在这里,不是空白地方。

回复 #21 火树银花~迷 的帖子
照改就是了,不用管那个。如果某一行代码不能输入,就按ctrl-E来输入机器码。
作者: ducksuper    时间: 2009-8-2 09:22

谢谢了 这下终于知道代码问题出在哪了
我想yanguodong大大可能是用的新引擎 4112A7那里是空白他才利用来写代码的吧
旧引擎里空白好象不多哦...而且有件奇怪的事
雪郡主利用00485DD3到00485DF1的空白写了一段主动双击的代码
我曾经试过把代码写到00485DF6(紧跟在485DF1后面)
但是复制到可执行文件的时候 它提示我..
[attach]79355[/attach]

我撤消修改后一看
本来从00485DF6开始都是DB 00的
结果现在变这样了...
[attach]79356[/attach]

[ 本帖最后由 ducksuper 于 2009-8-2 09:24 编辑 ]

图片附件: 未命名.JPG (2009-8-2 09:22, 28.22 K) / 该附件被下载次数 224
http://xycq.org.cn/forum/attachment.php?aid=79355



图片附件: 未命名2.JPG (2009-8-2 09:22, 55.53 K) / 该附件被下载次数 238
http://xycq.org.cn/forum/attachment.php?aid=79356


作者: godtype    时间: 2009-8-2 09:49     标题: 回复 #23 ducksuper 的帖子

第一个区段只是到485DFF,后面那些不可用。如果不将原版EXE扩容,就只有占用一下第三个区段的许子将教学。
作者: ducksuper    时间: 2009-8-2 10:00     标题: 回复 #24 godtype 的帖子

3Q 正好阁下楼上有介绍EXE扩容的帖子
太感谢了

原来485DFF以后就不能用了 真是的 郁闷老衲好久了
作者: 火树银花~迷    时间: 2009-8-2 17:33



QUOTE:
原帖由 godtype 于 2009-8-1 23:10 发表
回复 #21 火树银花~迷 的帖子
照改就是了,不用管那个。如果某一行代码不能输入,就按ctrl-E来输入机器码。

godtype大,其实我想问怎样开启virtualalloc?
作者: godtype    时间: 2009-8-2 20:03     标题: 回复 #26 火树银花~迷 的帖子

我连virtualalloc是什么都不知道呢。反正照改就是了。
作者: 火树银花~迷    时间: 2009-8-2 20:37



QUOTE:
原帖由 godtype 于 2009-8-2 20:03 发表
我连virtualalloc是什么都不知道呢。反正照改就是了。

那么是不是依照您四楼所发的教学就能把data改成1024?
作者: godtype    时间: 2009-8-2 21:36     标题: 回复 #28 火树银花~迷 的帖子

是的
作者: 火树银花~迷    时间: 2009-8-2 23:04

可是我已经照?四楼的教学全部都改了,可是还见不到data变成1024…(难道要更换data?)
作者: godtype    时间: 2009-8-3 10:28     标题: 回复 #30 火树银花~迷 的帖子


这个肯定要换DATA了,我又没有写出扩展DATA.E5的方法,我只是写出引擎中的改法。
作者: 火树银花~迷    时间: 2009-8-3 18:54     标题: 回复 #31 godtype 的帖子

明白了。我还是放弃吧...
作者: 花言乔语    时间: 2009-8-9 20:10

啊!!!!!
受不了了
原EKD5用1024只是攻击力是君
我半年未动的改过的EKD攻击力是剑,而且动作一卡一卡的
改支持1024还是原样,非得换成原DATA才正常
EKD可能又要重做了,楼主大大能不能发个做好的EKD呢

作者: a117398902    时间: 2009-8-10 20:06

又让我学到些精华了
作者: 花言乔语    时间: 2009-8-10 21:44

貌似DATA也有新旧引擎之分
作者: 星际银河    时间: 2009-10-4 13:56

请问一下,我照着部队装备显示的扩展也加了个训虎师,但为什么查看装备的时候这个训虎师跟君主类一样字体不亮???
作者: godtype    时间: 2009-10-4 15:27     标题: 回复 #36 星际银河 的帖子

如果是原版,还有一个地方要修改,帖漏了:
0040CA57     83BD 2CFFFFFF >CMP DWORD PTR SS:[EBP-D4],35
UE位置在BE5D,改成35。
作者: godtype    时间: 2009-10-6 09:50

小量更新,有关《曹操传EXE修改详解》中经验类的其他补充说明
作者: renson007    时间: 2009-10-24 23:14

按照5楼的突破五围的修改方法,花了6个小时,一步一步对照修改,修改后一打开就出错
真不知错在哪里了
发上修改后的文件,代码那么长,也不知道阿毅能否有时间检查下错在哪里

附件: 111.rar (2009-10-24 23:14, 208.17 K) / 该附件被下载次数 147
http://xycq.org.cn/forum/attachment.php?aid=82997
作者: godtype    时间: 2009-10-27 08:44     标题: 回复 #39 renson007 的帖子

00406D95     FF2485 C96D4000     JMP DWORD PTR DS:[EAX*4+406DC9]

00406E38     FF248D D76E4000     JMP DWORD PTR DS:[ECX*4+406ED7]

00406F75     FF248D 32704000     JMP DWORD PTR DS:[ECX*4+407032]

00406FE5     817D 0C 64000000    CMP DWORD PTR SS:[EBP+C],64

00407003     885408 17           MOV BYTE PTR DS:[EAX+ECX+17],DL

附件: 111.rar (2009-10-27 08:45, 207.9 K) / 该附件被下载次数 163
http://xycq.org.cn/forum/attachment.php?aid=83075
作者: 3791359    时间: 2009-10-27 16:09

非常感谢~~~~~~~~~~~
作者: 半张弓    时间: 2009-10-29 22:04



QUOTE:
原帖由 godtype 于 2009-10-27 08:44 发表
00406D95     FF2485 C96D4000     JMP DWORD PTR DS:

00406E38     FF248D D76E4000     JMP DWORD PTR DS:

00406F75     FF248D 32704000     JMP DWORD PTR DS:

00406FE5     817D 0C 64000000     ...

按照上面方法的修改后,能力确实已经突破上限了,但是出现了另外一个问题,就是所有武将(无敌敌我)的敏捷和统率都变成0了

[ 本帖最后由 半张弓 于 2009-10-29 22:08 编辑 ]

图片附件: QQ截图未命名1.jpg (2009-10-29 22:04, 39.29 K) / 该附件被下载次数 159
http://xycq.org.cn/forum/attachment.php?aid=83155



图片附件: QQ截图未命名.jpg (2009-10-29 22:04, 42.35 K) / 该附件被下载次数 143
http://xycq.org.cn/forum/attachment.php?aid=83156


作者: godtype    时间: 2009-10-29 22:34     标题: 回复 #42 半张弓 的帖子

漏看了四条没有帖出来:

00408D3A  |. 8A51 11             MOV DL,BYTE PTR DS:[ECX+11]

00408D46  |. 8A51 13             MOV DL,BYTE PTR DS:[ECX+13]

00408D52  |. 8A51 15             MOV DL,BYTE PTR DS:[ECX+15]

00408D5E  |. 8A51 17             MOV DL,BYTE PTR DS:[ECX+17]
作者: godtype    时间: 2009-12-9 13:03

7楼更新 头像状态设置
作者: Axie89    时间: 2010-5-4 19:03

哭啊.还是弄不懂怎么增加exe的对话框.就是新建一个.我想试试原創武将的功能.怎么办啊?
作者: godtype    时间: 2010-5-4 19:33     标题: 回复 #45 Axie89 的帖子

你是要蛇夫座的那个呀,你搜一下他的帖,今年发的那三个帖就是了,不过只能用在使用真彩头像的引擎里面,普通头像的不行。
作者: Axie89    时间: 2010-5-4 19:38     标题: 回复 #46 godtype 的帖子

他要求要新增一个对话框.我晕了.怎么也增加不了.第一步都卡死了.真有夠打击人的.
作者: godtype    时间: 2010-5-4 19:46     标题: 回复 #47 Axie89 的帖子

要先看2月发的关于交换装备的那帖,不过我也只是给EXE让他帮我加框。
作者: Axie89    时间: 2010-5-4 20:07     标题: 回复 #48 godtype 的帖子

godtype大哥也没法增加.那惨了.``
作者: e81988    时间: 2011-7-23 23:15



QUOTE:
原帖由 godtype 于 2009-7-30 19:29 发表
一、武将物理攻击、使用策略、单挑击毙所获得的经验
不帖反汇编代码了,只是提供详细的UE地址和说明,需要反汇编代码的自行转换地址。

1、物理攻击部分

击退等级高于或等于自己的敌人,经验 = 基数 + 等 ...

这个地方请教一下毅大,经验计算公式可以修改吗?我看了这个公式,我觉得没有办法通过修改基数来让我军不能通过攻击敌军升级。

我想实现的效果是,让我军攻击、使用策略时不能获得经验值,但是可以通过吃经验果来升级。

不知道毅大能不能指点一下?

谢谢!
作者: e81988    时间: 2011-7-23 23:16



QUOTE:
原帖由 godtype 于 2009-7-30 19:29 发表
一、武将物理攻击、使用策略、单挑击毙所获得的经验
不帖反汇编代码了,只是提供详细的UE地址和说明,需要反汇编代码的自行转换地址。

1、物理攻击部分

击退等级高于或等于自己的敌人,经验 = 基数 + 等 ...

这个地方请教一下毅大,经验计算公式可以修改吗?我看了这个公式,我觉得没有办法通过修改基数来让我军不能通过攻击敌军升级。

我想实现的效果是,让我军攻击、使用策略时不能获得经验值,但是可以通过吃经验果来升级。

不知道毅大能不能指点一下?

谢谢!
作者: 小兵1234    时间: 2011-7-24 16:12

太有用了,一定要收藏。
我真旳有看教程、翻精华、查旧帖、也會去看设计区中几位大神早期精華,而是看不懂。
不過現在只要照改就行了。

[ 本帖最后由 小兵1234 于 2011-7-24 16:14 编辑 ]
作者: 灬棉崽灬    时间: 2011-7-24 22:19     标题: 回复 #51 e81988 的帖子

咋不能?把里面给你的地址全都改为00就OK了!
我试过的
作者: 513633522    时间: 2011-7-25 09:14     标题: 回复 #51 e81988 的帖子



[Copy to clipboard]
CODE:
击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):2C45、2C63
最高上限(原值200):2C4B、2C54

把最高上限改为0不久可以了吗


记得有个  人物经验 装备经验 升级后期处理函数……

[ 本帖最后由 513633522 于 2011-7-25 09:17 编辑 ]
作者: e81988    时间: 2011-7-25 09:37



QUOTE:
原帖由 灬棉崽灬 于 2011-7-24 22:19 发表
咋不能?把里面给你的地址全都改为00就OK了!
我试过的

谢谢,回去试一下!
作者: e81988    时间: 2011-7-25 09:39



QUOTE:
原帖由 513633522 于 2011-7-25 09:14 发表
击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):2C45、2C63
最高上限(原值200):2C4B、2C54


把最高上限改为0不久可以了吗


记得有个  人物经验 装备经验 升级 ...

问题是攻击比自己等级低的人不是只有经验下限没有上限么?呵呵
作者: 灬棉崽灬    时间: 2011-7-25 12:53     标题: 回复 #56 e81988 的帖子

什么都别管,都改为00就没事了~
作者: 513633522    时间: 2011-7-25 12:57     标题: 回复 #56 e81988 的帖子

405C6C            经验值处理,升级显示函数
作者: e81988    时间: 2011-7-25 14:07

感谢二位指点,回去有空就试一下,呵呵
作者: e81988    时间: 2011-7-25 20:25



QUOTE:
原帖由 513633522 于 2011-7-25 12:57 发表
405C6C            经验值处理,升级显示函数

这个没太看懂:405-C,406-C,都改成00是吗?
作者: 513633522    时间: 2011-7-26 09:00     标题: 回复 #60 e81988 的帖子

我提供的位置是错误的,昨天晚上看了下 经验值处理,升级显示函数不是修改的地方

你直接把益达提供的 最高上限位置全部改成 00 就可以了
我看了下代码,
只要获得经验超过最高上限都按最高上限获得,所以改成00  就是获得0经验


作者: e81988    时间: 2011-7-26 09:43



QUOTE:
原帖由 513633522 于 2011-7-26 09:00 发表
我提供的位置是错误的,昨天晚上看了下 经验值处理,升级显示函数不是修改的地方

你直接把益达提供的 最高上限位置全部改成 00 就可以了
我看了下代码,
只要获得经验超过最高上限都按最高上限获得,所以改 ...

我已经把所有位置全都改了00,在第一关颖川简单测试一下实现了想要的效果!谢谢!

如果再有问题会再请教大家的。开心啊
作者: e81988    时间: 2011-7-26 09:44



QUOTE:
原帖由 灬棉崽灬 于 2011-7-25 12:53 发表
什么都别管,都改为00就没事了~

是这样的,攻击、策略都没经验,但是吃经验果可以升级,就需要这样。非常感谢!
作者: 灬棉崽灬    时间: 2012-3-18 14:10



QUOTE:
3、单挑中,使用 62:单挑阵亡 指令后,如果阵亡的是敌军武将,则我军武将所获得的经验

击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):4868F、486AD
最高上限(原值200):48695、4669E

击退等级低于自己的敌人,经验 = 基数 - 等级差*4
基数地址(原值32):486CD、486EF
最低下限(原值10):486D8、486DE

击退主将(45战场全局变量中设置的敌军主将)经验再*2

<br />


毅大,那个最高上限的第二个地址是4869E
作者: 轩雅凌枫    时间: 2014-11-20 10:12     标题: 毅大,关于新引擎经验的修改我想问一下具体位置。

1、物理攻击部分

击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):2C45、2C63
最高上限(原值200):2C4B、2C54

击退等级低于自己的敌人,经验 = 基数 - 等级差*4
基数地址(原值32):2C7D、2C9F
最低下限(原值10):2C88、2C8E

击退主将(45战场全局变量中设置的敌军主将)经验再*2

未击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*2
基数地址(原值8):2CF4、2D0C
最高上限(原值100):2CF7、2CFD

未击退等级低于自己的敌人,经验 = 基数 - 等级差
基数地址(原值8):2D20、2D3F
最低下限(原值1):2D2B、2D31


2、策略攻击部分

1)使用产生伤害的策略
击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):20408、20426
最高上限(原值200):2040E、20417

击退等级低于自己的敌人,经验 = 基数 - 等级差*4
基数地址(原值32):20440、20462
最低下限(原值10):2044B、20451

击退主将(45战场全局变量中设置的敌军主将)经验再*2

未击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*4
基数地址(原值10):204B7、204D2
最高上限(原值100):204BD、204C3

未击退等级低于自己的敌人,经验 = 基数 - 等级差/2
基数地址(原值10):204EB、2050C
最低下限(原值5):204F6、204FC

2)使用不产生伤害和指定的策略(引擎指定了编号22的策略,即谍报)
对等级高于或等于自己的敌人,经验 = 基数 + 等级差*4
基数地址(原值10):20531、2054C
最高上限(原值100):20537、2053D

对等级低于自己的敌人,经验 = 基数 - 等级差/2
基数地址(原值10):20565、20586
最低下限(原值5):20570、20576

3)对我军友军使用的策略
对等级高于或等于自己的我军友军,经验 = 基数 + 等级差*4
基数地址(原值10):205EF、2060A
最高上限(原值100):205F5、205FB

对等级低于自己的我军友军,经验 = 基数 - 等级差/2
基数地址(原值10):20623、20644
最低下限(原值5):2062E、20634

4)天气类策略
固定经验(原值20):2065B

3、单挑中,使用 62:单挑阵亡 指令后,如果阵亡的是敌军武将,则我军武将所获得的经验

击退等级高于或等于自己的敌人,经验 = 基数 + 等级差*8
基数地址(原值32):4868F、486AD
最高上限(原值200):48695、4869E

击退等级低于自己的敌人,经验 = 基数 - 等级差*4
基数地址(原值32):486CD、486EF
最低下限(原值10):486D8、486DE

击退主将(45战场全局变量中设置的敌军主将)经验再*2


以上是旧引擎的经验修改位置,我改完之后发现地址不对,但是自己又找不到STAR新引擎地址~
请教毅大关于经验的修改地址!





欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/) Powered by Discuz! 5.0.0