标题: 武将专属武器代码
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-3 10:50 资料 个人空间 短消息 看全部作者
武将专属武器代码

写扩展教程的时候,突然想起漏了研究武将专属武器的代码,所以先随便研究了一下,并帖出相关的参考代码。


00407907  /$ 55             PUSH EBP
00407908  |. 8BEC           MOV EBP,ESP
0040790A  |. 83EC 0C        SUB ESP,0C
0040790D  |. 56             PUSH ESI
0040790E  |. 894D F4        MOV DWORD PTR SS:[EBP-C],ECX
00407911  |. 807D 08 FF     CMP BYTE PTR SS:[EBP+8],0FF
00407915  |. 75 07          JNZ SHORT 0040791E
00407917  |. B0 01          MOV AL,1
00407919  |. E9 83000000    JMP 004079A1
0040791E  |> 807D 08 17     CMP BYTE PTR SS:[EBP+8],17   ——[EBP+8]是物品编号
00407922  |. 75 15          JNZ SHORT 00407939
00407924  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]   ——[EBP-C]是武将数据的内存地址
00407927  |. E8 D41B0000    CALL 00409500
0040792C  |. 83F8 00        CMP EAX,0   ——CALL 409500后出来的EAX值就是武将编号
0040792F  |. 75 04          JNZ SHORT 00407935
00407931  |. B0 01          MOV AL,1
00407933  |. EB 6C          JMP SHORT 004079A1
00407935  |> 33C0           XOR EAX,EAX
00407937  |. EB 6B          JMP SHORT 004079A4
00407939  |> 0FB64D 08      MOVZX ECX,BYTE PTR SS:[EBP+8]
0040793D  |. 6BC9 19        IMUL ECX,ECX,19
00407940  |. 81C1 40114A00  ADD ECX,004A1140
00407946  |. 894D F8        MOV DWORD PTR SS:[EBP-8],ECX
00407949  |. E8 9C4D0000    CALL 0040C6EA
0040794E  |. 3C 03          CMP AL,3
00407950  |. 75 04          JNZ SHORT 00407956
00407952  |. 33C0           XOR EAX,EAX
00407954  |. EB 4E          JMP SHORT 004079A4
00407956  |> 3C 02          CMP AL,2
00407958  |. 75 26          JNZ SHORT 00407980
0040795A  |. 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
0040795D  |. E8 8E640100    CALL 0041DDF0
00407962  |. 3C FF          CMP AL,0FF
00407964  |. 74 12          JE SHORT 00407978
00407966  |. 0FB6F0         MOVZX ESI,AL
00407969  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]
0040796C  |. E8 5FFEFFFF    CALL 004077D0
00407971  |. 0FB6C0         MOVZX EAX,AL
00407974  |. 3BF0           CMP ESI,EAX
00407976  |. 75 04          JNZ SHORT 0040797C
00407978  |> B0 01          MOV AL,1
0040797A  |. EB 25          JMP SHORT 004079A1
0040797C  |> 33C0           XOR EAX,EAX
0040797E  |. EB 24          JMP SHORT 004079A4
00407980  |> 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00407983  |. E8 B81B0000    CALL 00409540
00407988  |. 0FB6C0         MOVZX EAX,AL
0040798B  |. 50             PUSH EAX
0040798C  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0040798F  |. 0FB648 2B      MOVZX ECX,BYTE PTR DS:[EAX+2B]
00407993  |. 6BC9 1B        IMUL ECX,ECX,1B
00407996  |. 81C1 A0BF4A00  ADD ECX,004ABFA0
0040799C  |. E8 1F1C0000    CALL 004095C0
004079A1  |> 0FB6C0         MOVZX EAX,AL
004079A4  |> 5E             POP ESI
004079A5  |. 8BE5           MOV ESP,EBP
004079A7  |. 5D             POP EBP
004079A8  \. C2 0400        RETN 4

以上代码修改后,原版的17倚天剑就只能给0号曹操装备,其他用剑类部队都不可装备。
若要修改成某个武将可以装备某件非本职部队可以装备的物品,同时不影响该物品原来对应的部队装备,改成这样即可:
0040792F  |. 75 08          JNZ SHORT 00407939

以上代码是原版引擎的,其他引擎请参考着来改,同时以上代码只有一个武将对应一件物品,如果需要设置多人对就不同的物品,继续参考着来添加修改就是了。


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

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

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


发表于 2011-3-4 17:54 资料 个人空间 短消息 看全部作者
回复 #5 WHITESHIP 的帖子

call 409500改成call 4077d0就可以了,注意是用AL输出。

[ 本帖最后由 godtype 于 2011-3-4 18:56 编辑 ]


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

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

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


发表于 2011-3-10 16:53 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 ydldc0810 于 2011-3-9 20:02 发表
请教毅大,如果改成特效专署该如何改(武器相同的兵种都能装备,但特效只有特定的人物才有效果)。

指定的特效只有由指定的人物使用,将对应的特效里面的
PUSH **
CALL 407A09
改成武将编号的判断就了。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2013-11-5 18:39 资料 个人空间 短消息 看全部作者


QUOTE:
其他引擎请参考着来改

写得很清楚了。
顶部

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




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

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

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