标题: 孔明传经验获得的分析, 代码分析
性别:男-离线 godtype
(毅)

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

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


发表于 2010-7-27 16:15 资料 个人空间 短消息 只看该作者
孔明传经验获得的分析

物理攻击获得的经验值有两个,分别保存在内存46BCD8H+2EH和+32H里面,前者应该是基本经验,即发动了攻击就有,不管是否命中,后者是击倒敌人才有的。

00423B89  /$ 55             PUSH EBP
00423B8A  |. 8BEC           MOV EBP,ESP
00423B8C  |. 83EC 10        SUB ESP,10
00423B8F  |. 53             PUSH EBX
00423B90  |. 56             PUSH ESI
00423B91  |. 57             PUSH EDI
00423B92  |. 894D F0        MOV DWORD PTR SS:[EBP-10],ECX  <==固定的ECX=46BCD8

00423B95  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423B98  |. 33C9           XOR ECX,ECX
00423B9A  |. 8A48 10        MOV CL,BYTE PTR DS:[EAX+10]
00423B9D  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423BA0  |. 8B4C88 08      MOV ECX,DWORD PTR DS:[EAX+ECX*4+8]
00423BA4  |. E8 D756FEFF    CALL 00409280
00423BA9  |. 33C9           XOR ECX,ECX
00423BAB  |. 8AC8           MOV CL,AL
00423BAD  |. 894D F4        MOV DWORD PTR SS:[EBP-C],ECX
取出攻击方等级

00423BB0  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423BB3  |. 33C9           XOR ECX,ECX
00423BB5  |. 8A48 11        MOV CL,BYTE PTR DS:[EAX+11]
00423BB8  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423BBB  |. 8B4C88 08      MOV ECX,DWORD PTR DS:[EAX+ECX*4+8]
00423BBF  |. E8 BC56FEFF    CALL 00409280
00423BC4  |. 33C9           XOR ECX,ECX
00423BC6  |. 8AC8           MOV CL,AL
00423BC8  |. 894D F8        MOV DWORD PTR SS:[EBP-8],ECX
取出防御方等级

00423BCB  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423BCE  |. 33C9           XOR ECX,ECX
00423BD0  |. 8A48 10        MOV CL,BYTE PTR DS:[EAX+10]
00423BD3  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423BD6  |. 8B0C88         MOV ECX,DWORD PTR DS:[EAX+ECX*4]
00423BD9  |. E8 4256FEFF    CALL 00409220
00423BDE  |. 85C0           TEST EAX,EAX
00423BE0  |. 0F85 05000000  JNZ 00423BEB
00423BE6  |. E9 DD000000    JMP 00423CC8
判断攻击方是否我军,409220输出的EAX为0则表示非我军,不能得到经验。

00423BEB  |> 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
00423BEE  |. 3945 F8        CMP DWORD PTR SS:[EBP-8],EAX
00423BF1  |. 0F83 0C000000  JNB 00423C03
00423BF7  |. C745 FC 040000>MOV DWORD PTR SS:[EBP-4],4
00423BFE  |. E9 0E000000    JMP 00423C11
防御方等级小于攻击方等级,基本经验值固定为4

00423C03  |> 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
00423C06  |. 2B45 F4        SUB EAX,DWORD PTR SS:[EBP-C]
00423C09  |. 03C0           ADD EAX,EAX
00423C0B  |. 83C0 06        ADD EAX,6
00423C0E  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
防御方等级大于等于攻击方等级,基本经验值 = (防方等级 - 攻方等级 )*2 + 6

00423C11  |> 837D FC 10     CMP DWORD PTR SS:[EBP-4],10
00423C15  |. 0F8C 07000000  JL 00423C22
00423C1B  |. C745 FC 100000>MOV DWORD PTR SS:[EBP-4],10
基本经验最大为16

00423C22  |> 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00423C25  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
00423C28  |. 8941 2E        MOV DWORD PTR DS:[ECX+2E],EAX
保存到46BCD8H+2EH里面

00423C2B  |. C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0

00423C32  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423C35  |. 33C9           XOR ECX,ECX
00423C37  |. 8A48 11        MOV CL,BYTE PTR DS:[EAX+11]
00423C3A  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423C3D  |. 8B4488 1A      MOV EAX,DWORD PTR DS:[EAX+ECX*4+1A]
00423C41  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
00423C44  |. 2B41 2A        SUB EAX,DWORD PTR DS:[ECX+2A]
00423C47  |. 0F85 59000000  JNZ 00423CA6
判断是否击倒敌人,46BCD8H+2AH是伤害值,没有击倒敌人则跳到后面。

00423C4D  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423C50  |. 33C9           XOR ECX,ECX
00423C52  |. 8A48 11        MOV CL,BYTE PTR DS:[EAX+11]
00423C55  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423C58  |. 8B0C88         MOV ECX,DWORD PTR DS:[EAX+ECX*4]
00423C5B  |. E8 70A6FFFF    CALL 0041E2D0
00423C60  |. 33C9           XOR ECX,ECX
00423C62  |. 8AC8           MOV CL,AL
00423C64  |. 83F9 0F        CMP ECX,0F
00423C67  |. 0F85 0C000000  JNZ 00423C79
00423C6D  |. C745 FC 300000>MOV DWORD PTR SS:[EBP-4],30
00423C74  |. E9 2D000000    JMP 00423CA6
41E2D0输出的值为0F表示敌军主将,击倒经验值直接为48。

41E2D0输出的值不为0F即非敌军主将的时候:
00423C79  |> 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
00423C7C  |. 3945 F8        CMP DWORD PTR SS:[EBP-8],EAX
00423C7F  |. 0F86 0C000000  JBE 00423C91
00423C85  |. C745 FC 200000>MOV DWORD PTR SS:[EBP-4],20
00423C8C  |. E9 15000000    JMP 00423CA6
防方等级大于攻方等级的时候,击倒经验值直接为32。

00423C91  |> 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]
00423C94  |. 2B4D F8        SUB ECX,DWORD PTR SS:[EBP-8]
00423C97  |. 83C1 02        ADD ECX,2
00423C9A  |. B8 40000000    MOV EAX,40
00423C9F  |. 2BD2           SUB EDX,EDX
00423CA1  |. F7F1           DIV ECX
00423CA3  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
防方等级小于等于攻方等级的时候,击倒经验值 = 64 / (攻方等级 - 防方等级 + 2),结果取整数部分。

00423CA6  |> 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00423CA9  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
00423CAC  |. 8941 32        MOV DWORD PTR DS:[ECX+32],EAX
保存到46BCD8H+32H里面

00423CAF  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423CB2  |. 8378 2A 00     CMP DWORD PTR DS:[EAX+2A],0
00423CB6  |. 0F85 07000000  JNZ 00423CC3
00423CBC  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00423CBF  |. C168 2E 02     SHR DWORD PTR DS:[EAX+2E],2
判断46BCD8H+2AH里面的值是否为0,为0即没有命中,基本经验值除以4。

00423CC3  |> E9 00000000    JMP 00423CC8
00423CC8  |> 5F             POP EDI
00423CC9  |. 5E             POP ESI
00423CCA  |. 5B             POP EBX
00423CCB  |. C9             LEAVE
00423CCC  \. C3             RETN


[ 本帖最后由 阿尔法孝直 于 2010-8-13 21:12 编辑 ]

本帖最近评分记录
阿尔法孝直 2010-7-27 16:22 +150


顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6034
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2010-7-27 16:22 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 godtype 于 2010-7-27 16:15 发表
这段不太清楚,41E2D0输出的值为0F的时候,击倒经验值直接为48。而这里的内存地址与前面判断是否可以得到经验也有关。

灭敌方主将,经验值为基本经验+48,这与英杰传是一样的。0F是敌军主将编号,因为我军+友军最多只有15人。


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

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

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


发表于 2010-7-27 16:28 资料 个人空间 短消息 只看该作者
回复 #2 阿尔法孝直 的帖子

了解,顶楼已更改。
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-27 17:23 资料 文集 短消息 只看该作者
这么快啊,挺好挺好,那就不缺什么了。
顶部
性别:男-离线 lewulezo


Rank: 4
组别 校尉
级别 仁勇校尉
功绩 27
帖子 158
编号 58100
注册 2006-1-22
来自 上海


发表于 2010-7-27 20:31 资料 文集 短消息 只看该作者
还有几个问题,就是升级时候,如何计算升级属性?
我其实关心的是,想把随机升级因子去掉,让属性成长为固定值。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2010-7-27 21:19 资料 个人空间 短消息 只看该作者
武将成长参考:
http://www.xycq.net/forum/thread-193072-2-2.html
52楼起

代码如下:
0040C7B4  /$ 55             PUSH EBP
0040C7B5  |. 8BEC           MOV EBP,ESP
0040C7B7  |. 83EC 24        SUB ESP,24
0040C7BA  |. 53             PUSH EBX
0040C7BB  |. 56             PUSH ESI
0040C7BC  |. 57             PUSH EDI
0040C7BD  |. 894D DC        MOV DWORD PTR SS:[EBP-24],ECX
0040C7C0  |. C745 E4 000000>MOV DWORD PTR SS:[EBP-1C],0
0040C7C7  |. C745 E8 000000>MOV DWORD PTR SS:[EBP-18],0
0040C7CE  |. C745 EC 000000>MOV DWORD PTR SS:[EBP-14],0
0040C7D5  |. C745 F0 000000>MOV DWORD PTR SS:[EBP-10],0
0040C7DC  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C7DF  |. 33C9           XOR ECX,ECX
0040C7E1  |. 66:8B08        MOV CX,WORD PTR DS:[EAX]
0040C7E4  |. 81E1 FF01FFFF  AND ECX,FFFF01FF
0040C7EA  |. 894D F4        MOV DWORD PTR SS:[EBP-C],ECX
0040C7ED  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C7F0  |. 33C9           XOR ECX,ECX
0040C7F2  |. 8A48 25        MOV CL,BYTE PTR DS:[EAX+25]
0040C7F5  |. B8 63000000    MOV EAX,63
0040C7FA  |. 33D2           XOR EDX,EDX
0040C7FC  |. 8A55 08        MOV DL,BYTE PTR SS:[EBP+8]
0040C7FF  |. 2BC2           SUB EAX,EDX
0040C801  |. 3BC8           CMP ECX,EAX
0040C803  |. 0F86 17000000  JBE 0040C820

0040C809  |. B8 63000000    MOV EAX,63
0040C80E  |. 8B4D DC        MOV ECX,DWORD PTR SS:[EBP-24]
0040C811  |. 33D2           XOR EDX,EDX
0040C813  |. 8A51 25        MOV DL,BYTE PTR DS:[ECX+25]
0040C816  |. 2BC2           SUB EAX,EDX
0040C818  |. 8845 F8        MOV BYTE PTR SS:[EBP-8],AL
0040C81B  |. E9 06000000    JMP 0040C826

0040C820  |> 8A45 08        MOV AL,BYTE PTR SS:[EBP+8]
0040C823  |. 8845 F8        MOV BYTE PTR SS:[EBP-8],AL
0040C826  |> C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
0040C82D  |. E9 03000000    JMP 0040C835
0040C832  |> FF45 FC        /INC DWORD PTR SS:[EBP-4]
0040C835  |> 33C0            XOR EAX,EAX
0040C837  |. 8A45 F8        |MOV AL,BYTE PTR SS:[EBP-8]
0040C83A  |. 3B45 FC        |CMP EAX,DWORD PTR SS:[EBP-4]
0040C83D  |. 0F8E 7A000000  |JLE 0040C8BD
0040C843  |. C745 E0 000000>|MOV DWORD PTR SS:[EBP-20],0
0040C84A  |. E9 03000000    |JMP 0040C852
0040C84F  |> FF45 E0        |/INC DWORD PTR SS:[EBP-20]
0040C852  |> 837D E0 04     | CMP DWORD PTR SS:[EBP-20],4
0040C856  |. 0F8D 5C000000  ||JGE 0040C8B8
0040C85C  |. 6A 63          ||PUSH 63                                ; /Arg1 = 00000063
0040C85E  |. E8 C5AA0300    ||CALL 00447328                     ; \00447328
0040C863  |. 83C4 04        ||ADD ESP,4
0040C866  |. B9 03000000    ||MOV ECX,3
0040C86B  |. 2BD2           ||SUB EDX,EDX
0040C86D  |. F7F1           ||DIV ECX
0040C86F  |. 85D2           ||TEST EDX,EDX
0040C871  |. 0F84 35000000  ||JE 0040C8AC

0040C877  |. 6A 02          ||PUSH 2                                 ; /Arg1 = 00000002
0040C879  |. E8 AAAA0300    ||CALL 00447328                     ; \00447328
0040C87E  |. 83C4 04        ||ADD ESP,4
0040C881  |. 83F8 01        ||CMP EAX,1
0040C884  |. 0F8C 0C000000  ||JL 0040C896

0040C88A  |. 8B45 E0        ||MOV EAX,DWORD PTR SS:[EBP-20]
0040C88D  |. FF4485 E4      ||INC DWORD PTR SS:[EBP+EAX*4-1C]
0040C891  |. E9 11000000    ||JMP 0040C8A7

0040C896  |> 6A 02          ||PUSH 2                                 ; /Arg1 = 00000002
0040C898  |. E8 8BAA0300    ||CALL 00447328                     ; \00447328
0040C89D  |. 83C4 04        ||ADD ESP,4
0040C8A0  |. 8B4D E0        ||MOV ECX,DWORD PTR SS:[EBP-20]
0040C8A3  |. 01448D E4      ||ADD DWORD PTR SS:[EBP+ECX*4-1C],EAX
0040C8A7  |> E9 07000000    ||JMP 0040C8B3

0040C8AC  |> 8B45 E0        ||MOV EAX,DWORD PTR SS:[EBP-20]
0040C8AF  |. FF4C85 E4      ||DEC DWORD PTR SS:[EBP+EAX*4-1C]
0040C8B3  |>^E9 97FFFFFF    |\JMP 0040C84F
0040C8B8  |>^E9 75FFFFFF    \JMP 0040C832

0040C8BD  |> 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C8C0  |. 33C9           XOR ECX,ECX
0040C8C2  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C8C5  |. 33C0           XOR EAX,EAX
0040C8C7  |. 8A81 70EB4400  MOV AL,BYTE PTR DS:[ECX+44EB70]
0040C8CD  |. 85C0           TEST EAX,EAX
0040C8CF  |. 0F8E 2B000000  JLE 0040C900
0040C8D5  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C8D8  |. 33C9           XOR ECX,ECX
0040C8DA  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C8DD  |. 33C0           XOR EAX,EAX
0040C8DF  |. 8A81 70EB4400  MOV AL,BYTE PTR DS:[ECX+44EB70]
0040C8E5  |. 40             INC EAX
0040C8E6  |. 33C9           XOR ECX,ECX
0040C8E8  |. 8A4D F8        MOV CL,BYTE PTR SS:[EBP-8]
0040C8EB  |. 0FAFC1         IMUL EAX,ECX
0040C8EE  |. 0345 E4        ADD EAX,DWORD PTR SS:[EBP-1C]
0040C8F1  |. 50             PUSH EAX
0040C8F2  |. 6A 00          PUSH 0
0040C8F4  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0040C8F7  |. 50             PUSH EAX
0040C8F8  |. E8 D0F6FFFF    CALL 0040BFCD
0040C8FD  |. 83C4 0C        ADD ESP,0C

0040C900  |> 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C903  |. 33C9           XOR ECX,ECX
0040C905  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C908  |. 33C0           XOR EAX,EAX
0040C90A  |. 8A81 91EB4400  MOV AL,BYTE PTR DS:[ECX+44EB91]
0040C910  |. 85C0           TEST EAX,EAX
0040C912  |. 0F8E 2B000000  JLE 0040C943
0040C918  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C91B  |. 33C9           XOR ECX,ECX
0040C91D  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C920  |. 33C0           XOR EAX,EAX
0040C922  |. 8A81 91EB4400  MOV AL,BYTE PTR DS:[ECX+44EB91]
0040C928  |. 40             INC EAX
0040C929  |. 33C9           XOR ECX,ECX
0040C92B  |. 8A4D F8        MOV CL,BYTE PTR SS:[EBP-8]
0040C92E  |. 0FAFC1         IMUL EAX,ECX
0040C931  |. 0345 E8        ADD EAX,DWORD PTR SS:[EBP-18]
0040C934  |. 50             PUSH EAX
0040C935  |. 6A 01          PUSH 1
0040C937  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0040C93A  |. 50             PUSH EAX
0040C93B  |. E8 8DF6FFFF    CALL 0040BFCD
0040C940  |. 83C4 0C        ADD ESP,0C

0040C943  |> 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C946  |. 33C9           XOR ECX,ECX
0040C948  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C94B  |. 33C0           XOR EAX,EAX
0040C94D  |. 8A81 B2EB4400  MOV AL,BYTE PTR DS:[ECX+44EBB2]
0040C953  |. 85C0           TEST EAX,EAX
0040C955  |. 0F8E 2B000000  JLE 0040C986
0040C95B  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C95E  |. 33C9           XOR ECX,ECX
0040C960  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C963  |. 33C0           XOR EAX,EAX
0040C965  |. 8A81 B2EB4400  MOV AL,BYTE PTR DS:[ECX+44EBB2]
0040C96B  |. 40             INC EAX
0040C96C  |. 33C9           XOR ECX,ECX
0040C96E  |. 8A4D F8        MOV CL,BYTE PTR SS:[EBP-8]
0040C971  |. 0FAFC1         IMUL EAX,ECX
0040C974  |. 0345 EC        ADD EAX,DWORD PTR SS:[EBP-14]
0040C977  |. 50             PUSH EAX
0040C978  |. 6A 02          PUSH 2
0040C97A  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0040C97D  |. 50             PUSH EAX
0040C97E  |. E8 4AF6FFFF    CALL 0040BFCD
0040C983  |. 83C4 0C        ADD ESP,0C

0040C986  |> 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C989  |. 33C9           XOR ECX,ECX
0040C98B  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C98E  |. 33C0           XOR EAX,EAX
0040C990  |. 8A81 D3EB4400  MOV AL,BYTE PTR DS:[ECX+44EBD3]
0040C996  |. 85C0           TEST EAX,EAX
0040C998  |. 0F8E 56000000  JLE 0040C9F4
0040C99E  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C9A1  |. 33C9           XOR ECX,ECX
0040C9A3  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C9A6  |. 33C0           XOR EAX,EAX
0040C9A8  |. 8A81 D3EB4400  MOV AL,BYTE PTR DS:[ECX+44EBD3]
0040C9AE  |. 83C0 0B        ADD EAX,0B
0040C9B1  |. 50             PUSH EAX                                 ; /Arg1
0040C9B2  |. E8 71A90300    CALL 00447328                       ; \00447328
0040C9B7  |. 83C4 04        ADD ESP,4
0040C9BA  |. 8BC8           MOV ECX,EAX
0040C9BC  |. C1E9 02        SHR ECX,2
0040C9BF  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C9C2  |. 33D2           XOR EDX,EDX
0040C9C4  |. 8A50 24        MOV DL,BYTE PTR DS:[EAX+24]
0040C9C7  |. 33C0           XOR EAX,EAX
0040C9C9  |. 8A82 D3EB4400  MOV AL,BYTE PTR DS:[EDX+44EBD3]
0040C9CF  |. 8D0440         LEA EAX,DWORD PTR DS:[EAX+EAX*2]
0040C9D2  |. 99             CDQ
0040C9D3  |. 83E2 03        AND EDX,3
0040C9D6  |. 03C2           ADD EAX,EDX
0040C9D8  |. C1F8 02        SAR EAX,2
0040C9DB  |. 03C8           ADD ECX,EAX
0040C9DD  |. 33C0           XOR EAX,EAX
0040C9DF  |. 8A45 F8        MOV AL,BYTE PTR SS:[EBP-8]
0040C9E2  |. 0FAFC8         IMUL ECX,EAX
0040C9E5  |. 51             PUSH ECX
0040C9E6  |. 6A 03          PUSH 3
0040C9E8  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0040C9EB  |. 50             PUSH EAX
0040C9EC  |. E8 DCF5FFFF    CALL 0040BFCD
0040C9F1  |. 83C4 0C        ADD ESP,0C

0040C9F4  |> 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040C9F7  |. 33C9           XOR ECX,ECX
0040C9F9  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040C9FC  |. 33C0           XOR EAX,EAX
0040C9FE  |. 8A81 F4EB4400  MOV AL,BYTE PTR DS:[ECX+44EBF4]
0040CA04  |. 85C0           TEST EAX,EAX
0040CA06  |. 0F8E 2B000000  JLE 0040CA37
0040CA0C  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040CA0F  |. 33C9           XOR ECX,ECX
0040CA11  |. 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040CA14  |. 33C0           XOR EAX,EAX
0040CA16  |. 8A81 F4EB4400  MOV AL,BYTE PTR DS:[ECX+44EBF4]
0040CA1C  |. 40             INC EAX
0040CA1D  |. 33C9           XOR ECX,ECX
0040CA1F  |. 8A4D F8        MOV CL,BYTE PTR SS:[EBP-8]
0040CA22  |. 0FAFC1         IMUL EAX,ECX
0040CA25  |. 0345 F0        ADD EAX,DWORD PTR SS:[EBP-10]
0040CA28  |. 50             PUSH EAX
0040CA29  |. 6A 04          PUSH 4
0040CA2B  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0040CA2E  |. 50             PUSH EAX
0040CA2F  |. E8 99F5FFFF    CALL 0040BFCD
0040CA34  |. 83C4 0C        ADD ESP,0C

0040CA37  |> 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040CA3A  |. 33C9           XOR ECX,ECX
0040CA3C  |. 8A48 25        MOV CL,BYTE PTR DS:[EAX+25]
0040CA3F  |. 33C0           XOR EAX,EAX
0040CA41  |. 8A45 F8        MOV AL,BYTE PTR SS:[EBP-8]
0040CA44  |. 03C8           ADD ECX,EAX
0040CA46  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040CA49  |. 8848 25        MOV BYTE PTR DS:[EAX+25],CL
0040CA4C  |. 8B45 DC        MOV EAX,DWORD PTR SS:[EBP-24]
0040CA4F  |. 8A40 25        MOV AL,BYTE PTR DS:[EAX+25]
0040CA52  |. E9 00000000    JMP 0040CA57
0040CA57  |> 5F             POP EDI
0040CA58  |. 5E             POP ESI
0040CA59  |. 5B             POP EBX
0040CA5A  |. C9             LEAVE
0040CA5B  \. C2 0400        RETN 4
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-27 21:43 资料 文集 短消息 只看该作者
1、能力值去掉随机因素的话,把
0040C83D     /0F8E 7A000000           |JLE EKD2Win.0040C8BD
改成0F 8D 7A000000
就可以了
跳过随机因素生成;
2、耐久力不想随机的话,把
0040C9B2  |.  E8 71A90300            CALL 00447328       ; \Random%Arg1
改成90 90 90 90 90就可以了
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2010-7-28 08:41 资料 个人空间 短消息 只看该作者
经验种和经验果


00404291   . 6A 0A               PUSH 0A                                  ; /Arg1 = 0000000A
00404293   . E8 90300400         CALL 00447328                       ; \00447328
00404298   . 83C4 04             ADD ESP,4
0040429B   . 83C0 14             ADD EAX,14
经验种,0-9中随机取一个值,然后加20。

004042A6   > 6A 14               PUSH 14                                  ; /Arg1 = 00000014
004042A8   . E8 7B300400         CALL 00447328                       ; \00447328
004042AD   . 83C4 04             ADD ESP,4
004042B0   . 83C0 28             ADD EAX,28
经验果,0-19中随机取一个值,然后加40。
顶部
性别:男-离线 lewulezo


Rank: 4
组别 校尉
级别 仁勇校尉
功绩 27
帖子 158
编号 58100
注册 2006-1-22
来自 上海


发表于 2010-7-28 11:14 资料 文集 短消息 只看该作者
回复 #7 ctermiii 的帖子

非常感谢。我发现改了以后,兵种会固定以成长值+1来提升。
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-28 11:35 资料 文集 短消息 只看该作者
1、4个能力:
确定要取消随机增长的话:
0040C8DF  |. 8A81 70EB4400  MOV AL,BYTE PTR DS:[ECX+44EBXX]
0040C8E5  |. 40             INC EAX
你看,这是武力的例子,4个能力的每个地方都会以加1来计算的,你不想的话,把相关4个的40(INC eax)都改成90就行了;
或者直接改初始化的地方:
0040C7C0  |. C745 E4 000000>MOV DWORD PTR SS:[EBP-1C],0
0040C7C7  |. C745 E8 000000>MOV DWORD PTR SS:[EBP-18],0
0040C7CE  |. C745 EC 000000>MOV DWORD PTR SS:[EBP-14],0
0040C7D5  |. C745 F0 000000>MOV DWORD PTR SS:[EBP-10],0
把这四个00000000都改成FFFFFFFF,也就是-1,这样跟下边的+1就抵消了;

2、耐久力的计算也是类似:
0040C9A3  |.  8A48 24               MOV CL,BYTE PTR DS:[EAX+24]
0040C9A6  |.  33C0                  XOR EAX,EAX
0040C9A8  |.  8A81 D3EB4400         MOV AL,BYTE PTR DS:[ECX+44EBD3]
0040C9AE  |.  83C0 0B               ADD EAX,0B
0040C9B1  |.  50                    PUSH EAX                                 ; /Arg1
0040C9B2  |.  E8 71A90300           CALL <EKD2Win.Random%Arg1>               ; \Random%Arg1
0040C9B7  |.  83C4 04               ADD ESP,4
0040C9BA  |.  8BC8                  MOV ECX,EAX
0040C9BC  |.  C1E9 02               SHR ECX,2    ;除以4

先取了A1=【Random%(成长值+0BH)】/4作为固定的附加值的;
我前面修改直接给90 90 90 90 90 的话,每个兵种都会额外增加固定的A1=(成长值+0BH)/4;


耐久值的最终=增长量基数Bx(成长值x3/4+A1)
升级量B,比如作战升级一般是B=1,秘籍升级有个直接升5级的,就是B=5,如果有剧本指令,那就是根据指令来;

有个特殊情况是比如你95级以上了,秘籍升5级,那会计算当前等级与99级还差几级,这个时候B=99-当前等级;
就是这一段:
0040C809  |. B8 63000000    MOV EAX,63
0040C80E  |. 8B4D DC        MOV ECX,DWORD PTR SS:[EBP-24]
0040C811  |. 33D2           XOR EDX,EDX
0040C813  |. 8A51 25        MOV DL,BYTE PTR DS:[ECX+25]
0040C816  |. 2BC2           SUB EAX,EDX
0040C818  |. 8845 F8        MOV BYTE PTR SS:[EBP-8],AL

[ 本帖最后由 ctermiii 于 2010-7-28 11:53 编辑 ]
顶部
性别:男-离线 dimeterio
(李秀辰)

Rank: 10Rank: 10Rank: 10Rank: 10
组别 校尉
级别 镇西将军
好贴 1
功绩 45
帖子 3985
编号 266634
注册 2008-2-7


发表于 2010-7-28 11:38 资料 个人空间 短消息 只看该作者 QQ
能不能寫成經驗與等級對照的列表形式?
顶部
性别:男-离线 lewulezo


Rank: 4
组别 校尉
级别 仁勇校尉
功绩 27
帖子 158
编号 58100
注册 2006-1-22
来自 上海


发表于 2010-7-28 12:53 资料 文集 短消息 只看该作者
我印象中,敌人的属性似乎是固定成长, 并且参照成长值+1来提升的。
这边改了不知道会不会影响敌人的属性成长。如果只影响我方的话,那还是别改的好。

[ 本帖最后由 lewulezo 于 2010-7-28 13:34 编辑 ]
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-28 18:57 资料 文集 短消息 只看该作者
敌人怎么升级?不过应该都是同一个函数,这个倒不用担心。
耐久力成长只有6,8,10,12,14,15,16这几个档次,代入整数除法算算,不参与随机数的话结果就是所有的成长值+2
耐久力稍微大了2点。
顶部
性别:男-离线 lewulezo


Rank: 4
组别 校尉
级别 仁勇校尉
功绩 27
帖子 158
编号 58100
注册 2006-1-22
来自 上海


发表于 2010-7-28 19:27 资料 文集 短消息 只看该作者
敌人虽然不会升级,但是敌人会在每关初始时,根据将领的初始数值、等级和兵种成长属性计算出他的五围来。
所以如果函数和玩家的兵种成长函数不同的话,可能会有不平衡的问题。

[ 本帖最后由 lewulezo 于 2010-7-28 19:34 编辑 ]
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6034
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2010-7-28 20:58 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 ctermiii 于 2010-7-28 11:35 发表
1、4个能力:
确定要取消随机增长的话:
0040C8DF  |. 8A81 70EB4400  MOV AL,BYTE PTR DS:
0040C8E5  |. 40             INC EAX
你看,这是武力的例子,4个能力的每个地方都会以加1来计算的,你不想的话, ...

明白了,利用90 NOP指令,把循环体内部变成空语句是吧?
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-29 12:30 资料 文集 短消息 只看该作者


QUOTE:
原帖由 阿尔法孝直 于 2010-7-28 20:58 发表

明白了,利用90 NOP指令,把循环体内部变成空语句是吧?

思想是没错,但就本例子来说,跳出循环体是上边那句
1、能力值去掉随机因素的话,把
0040C83D     /0F8E 7A000000           |JLE EKD2Win.0040C8BD
改成0F 8D 7A000000
就可以了
跳过随机因素生成;



后边那个是取消1个寄存器加1的指令。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6034
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2010-7-29 13:02 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 dimeterio 于 2010-7-28 11:38 发表
能不能寫成經驗與等級對照的列表形式?

由于孔明传和英杰传经验值算法基本一致(区别就在于攻击不中经验值/4),那么参考《英杰传练级纲要》就行了。

QUOTE:
一.攻击
1.攻击所得的经验值与攻防双方的等级差有关。攻击方等级高于被攻击方时,得4点经验,双方同级时得6点经验,攻方低1级时得8点经验,低2级时得10点经验,以下每多差1级多2点经验,但最大为16点。
2.如果攻击时击退敌将,所得经验值比上述为多,具体是:击退同级武将,得38点,击退比自已等级高的武将,每高一级加2点,但最多为48点(也可以认为是在第1条的基础上加32点)。
低1级:25
低2级:20
低3级:16
低4级:14
低5级:13
低6级:12
低7级:11
低8级:10
低9~10级:9
低11~14级:8
低15~19级:7
低20~30级:6
低31~62级:5
低63级以上:4
3.如果击退的是敌军主将,所得经验是在第1条的基础上加48点。

顶部
性别:男-离线 lewulezo


Rank: 4
组别 校尉
级别 仁勇校尉
功绩 27
帖子 158
编号 58100
注册 2006-1-22
来自 上海


发表于 2010-7-30 20:23 资料 文集 短消息 只看该作者
我刚刚试了一下,我把成长的inc去掉,我方成长属性是不+1了,但是敌人出场的数值仍然按照+1来计算的。我怀疑敌军属性的计算函数和我方的等级提升不是同一个地方。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2010-7-30 20:35 资料 个人空间 短消息 只看该作者
回复 #18 lewulezo 的帖子

当然不同了,先看6楼的链接,再看代码:

0040D487   $ 55             PUSH EBP
0040D488   . 8BEC           MOV EBP,ESP
0040D48A   . 83EC 14        SUB ESP,14
0040D48D   . 53             PUSH EBX
0040D48E   . 56             PUSH ESI
0040D48F   . 57             PUSH EDI
0040D490   . 894D F0        MOV DWORD PTR SS:[EBP-10],ECX
0040D493   . 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
0040D496   . 33C9           XOR ECX,ECX
0040D498   . 8A48 25        MOV CL,BYTE PTR DS:[EAX+25]
0040D49B   . 894D F8        MOV DWORD PTR SS:[EBP-8],ECX
0040D49E   . 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
0040D4A1   . 8A40 24        MOV AL,BYTE PTR DS:[EAX+24]
0040D4A4   . 8845 FC        MOV BYTE PTR SS:[EBP-4],AL
0040D4A7   . C745 F4 000000>MOV DWORD PTR SS:[EBP-C],0
0040D4AE   . 33C0           XOR EAX,EAX
0040D4B0   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D4B3   . 83F8 1F        CMP EAX,1F
0040D4B6   . 0F8E 4E000000  JLE 0040D50A
0040D4BC   . 33C0           XOR EAX,EAX
0040D4BE   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D4C1   . 83F8 28        CMP EAX,28
0040D4C4   . 0F83 40000000  JNB 0040D50A
0040D4CA   . 33C0           XOR EAX,EAX
0040D4CC   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D4CF   . 83F8 20        CMP EAX,20
0040D4D2   . 0F84 0E000000  JE 0040D4E6
0040D4D8   . 33C0           XOR EAX,EAX
0040D4DA   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D4DD   . 83F8 21        CMP EAX,21
0040D4E0   . 0F85 09000000  JNZ 0040D4EF
0040D4E6   > C645 FC 20     MOV BYTE PTR SS:[EBP-4],20
0040D4EA   . E9 1B000000    JMP 0040D50A
0040D4EF   > 33C0           XOR EAX,EAX
0040D4F1   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D4F4   . 83F8 26        CMP EAX,26
0040D4F7   . 0F85 09000000  JNZ 0040D506
0040D4FD   . C645 FC 12     MOV BYTE PTR SS:[EBP-4],12
0040D501   . E9 04000000    JMP 0040D50A
0040D506   > C645 FC 1E     MOV BYTE PTR SS:[EBP-4],1E
0040D50A   > 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
0040D50D   . 33C9           XOR ECX,ECX
0040D50F   . 8A48 24        MOV CL,BYTE PTR DS:[EAX+24]
0040D512   . 51             PUSH ECX
0040D513   . E8 2D010000    CALL 0040D645  ——根据大兵种得出余数
0040D518   . 83C4 04        ADD ESP,4
0040D51B   . 8945 EC        MOV DWORD PTR SS:[EBP-14],EAX
0040D51E   . E9 E2000000    JMP 0040D605

0040D605   > 837D EC 00     CMP DWORD PTR SS:[EBP-14],0
0040D609   .^0F84 A8FFFFFF  JE 0040D5B7
0040D60F   . 837D EC 01     CMP DWORD PTR SS:[EBP-14],1
0040D613   .^0F84 54FFFFFF  JE 0040D56D
0040D619   . 837D EC 02     CMP DWORD PTR SS:[EBP-14],2
0040D61D   .^0F84 00FFFFFF  JE 0040D523
0040D623   . E9 00000000    JMP 0040D628

0040D523   > 33C0           XOR EAX,EAX
0040D525   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D528   . 33C9           XOR ECX,ECX
0040D52A   . 8A4D 08        MOV CL,BYTE PTR SS:[EBP+8]
0040D52D   . 8BD1           MOV EDX,ECX
0040D52F   . C1E1 05        SHL ECX,5
0040D532   . 03CA           ADD ECX,EDX
0040D534   . 33D2           XOR EDX,EDX
0040D536   . 8A9408 6EEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6E]
0040D53D   . 85D2           TEST EDX,EDX
0040D53F   . 0F8E 24000000  JLE 0040D569
0040D545   . 33C0           XOR EAX,EAX
0040D547   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D54A   . 33C9           XOR ECX,ECX
0040D54C   . 8A4D 08        MOV CL,BYTE PTR SS:[EBP+8]
0040D54F   . 8BD1           MOV EDX,ECX
0040D551   . C1E1 05        SHL ECX,5
0040D554   . 03CA           ADD ECX,EDX
0040D556   . 33D2           XOR EDX,EDX
0040D558   . 8A9408 6EEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6E]
0040D55F   . 8D4452 03      LEA EAX,DWORD PTR DS:[EDX+EDX*2+3]
0040D563   . 8D0480         LEA EAX,DWORD PTR DS:[EAX+EAX*4]
0040D566   . 0145 F4        ADD DWORD PTR SS:[EBP-C],EAX
0040D569   > 836D F8 0F     SUB DWORD PTR SS:[EBP-8],0F
0040D56D   > 33C0           XOR EAX,EAX
0040D56F   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D572   . 33C9           XOR ECX,ECX
0040D574   . 8A4D 08        MOV CL,BYTE PTR SS:[EBP+8]
0040D577   . 8BD1           MOV EDX,ECX
0040D579   . C1E1 05        SHL ECX,5
0040D57C   . 03CA           ADD ECX,EDX
0040D57E   . 33D2           XOR EDX,EDX
0040D580   . 8A9408 6FEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6F]
0040D587   . 85D2           TEST EDX,EDX
0040D589   . 0F8E 24000000  JLE 0040D5B3
0040D58F   . 33C0           XOR EAX,EAX
0040D591   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D594   . 33C9           XOR ECX,ECX
0040D596   . 8A4D 08        MOV CL,BYTE PTR SS:[EBP+8]
0040D599   . 8BD1           MOV EDX,ECX
0040D59B   . C1E1 05        SHL ECX,5
0040D59E   . 03CA           ADD ECX,EDX
0040D5A0   . 33D2           XOR EDX,EDX
0040D5A2   . 8A9408 6FEB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB6F]
0040D5A9   . 8D4452 03      LEA EAX,DWORD PTR DS:[EDX+EDX*2+3]
0040D5AD   . 8D0480         LEA EAX,DWORD PTR DS:[EAX+EAX*4]
0040D5B0   . 0145 F4        ADD DWORD PTR SS:[EBP-C],EAX
0040D5B3   > 836D F8 0F     SUB DWORD PTR SS:[EBP-8],0F
0040D5B7   > 33C0           XOR EAX,EAX
0040D5B9   . 8A45 FC        MOV AL,BYTE PTR SS:[EBP-4]
0040D5BC   . 33C9           XOR ECX,ECX
0040D5BE   . 8A4D 08        MOV CL,BYTE PTR SS:[EBP+8]
0040D5C1   . 8BD1           MOV EDX,ECX
0040D5C3   . C1E1 05        SHL ECX,5
0040D5C6   . 03CA           ADD ECX,EDX
0040D5C8   . 33D2           XOR EDX,EDX
0040D5CA   . 8A9408 70EB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB70]
0040D5D1   . 85D2           TEST EDX,EDX
0040D5D3   . 0F8E 22000000  JLE 0040D5FB
0040D5D9   . 33C0           XOR EAX,EAX
0040D5DB   . 8A45 08        MOV AL,BYTE PTR SS:[EBP+8]
0040D5DE   . 8BC8           MOV ECX,EAX
0040D5E0   . C1E0 05        SHL EAX,5
0040D5E3   . 03C1           ADD EAX,ECX
0040D5E5   . 33C9           XOR ECX,ECX
0040D5E7   . 8A4D FC        MOV CL,BYTE PTR SS:[EBP-4]
0040D5EA   . 33D2           XOR EDX,EDX
0040D5EC   . 8A9408 70EB440>MOV DL,BYTE PTR DS:[EAX+ECX+44EB70]
0040D5F3   . 42             INC EDX
0040D5F4   . 0FAF55 F8      IMUL EDX,DWORD PTR SS:[EBP-8]
0040D5F8   . 0155 F4        ADD DWORD PTR SS:[EBP-C],EDX
0040D5FB   > E9 28000000    JMP 0040D628
0040D600   . E9 23000000    JMP 0040D628

0040D628   > 33C0           XOR EAX,EAX
0040D62A   . 8A45 08        MOV AL,BYTE PTR SS:[EBP+8]
0040D62D   . 83F8 03        CMP EAX,3
0040D630   . 0F84 00000000  JE 0040D636
0040D636   > 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0040D639   . E9 00000000    JMP 0040D63E
0040D63E   > 5F             POP EDI
0040D63F   . 5E             POP ESI
0040D640   . 5B             POP EBX
0040D641   . C9             LEAVE
0040D642   . C2 0400        RETN 4


[ 本帖最后由 godtype 于 2010-7-30 20:36 编辑 ]
顶部
性别:男-离线 lewulezo


Rank: 4
组别 校尉
级别 仁勇校尉
功绩 27
帖子 158
编号 58100
注册 2006-1-22
来自 上海


发表于 2010-7-31 20:38 资料 文集 短消息 只看该作者
回复 #19 godtype 的帖子

似乎把
0040D5F3   . 42             INC EDX
改成90就可以避免敌军属性按照+1来计算了

验证过了,确实有效

[ 本帖最后由 lewulezo 于 2010-8-1 09:35 编辑 ]
顶部
性别:男-离线 lewulezo


Rank: 4
组别 校尉
级别 仁勇校尉
功绩 27
帖子 158
编号 58100
注册 2006-1-22
来自 上海


发表于 2010-8-6 23:02 资料 文集 短消息 只看该作者
光改上面的那个还不够的,为了对应高级兵种的升级情况,要避免+1计算,必须把
0040D55F   . 8D4452 03      LEA EAX,DWORD PTR DS:[EDX+EDX*2+3]
0040D5A9   . 8D4452 03      LEA EAX,DWORD PTR DS:[EDX+EDX*2+3]

03改为00
顶部

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




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

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

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