轩辕春秋文化论坛 » 曹操传MOD制作交流 » 各种兵种与宝物特效(不断更新中)


2007-9-11 18:11 yanguodong
各种兵种与宝物特效(不断更新中)

[color=Red][size=5]目录[/size][/color]

[color=Blue]无反击兵种  #1

“骑马攻击”武器效果对应兵种扩充  #26

防御致命一击兵种  #30

绝对命中武器与兵种   #31

辅助妨碍策略 武器   #32

辅助各类地形宝物  #36

物理攻击免疫兵种  #43

吸血攻击武器与兵种  #57

策略模仿兵种   #106

随机属性攻击武器与兵种特性  #111

策略免疫兵种   #126

每回合恢复自身状态兵种  #127

突击移动兵种   #128[/color]


新增“无反击兵种”特性发布


00406471   /E9 E65E0300                   jmp Ekd5.0043C35C(空白位置)
00406476   |90                            nop
00406477   |90                            nop
00406478   |90                            nop
00406479   |90                            nop
0040647A   |90                            nop
0040647B   |90                            nop

0043C35C   /74 07                         je short Ekd5.0043C365
0043C35E   |B0 64                         mov al,64(无反击概率100%)
0043C360  ^|E9 87A1FCFF                   jmp Ekd5.004064EC
0043C365   \8B4D F0                       mov ecx,dword ptr ss:[ebp-10]
0043C368    8B49 08                       mov ecx,dword ptr ds:[ecx+8]
0043C36B    E8 A0A2FCFF                   call Ekd5.00406610
0043C370    25 FF000000                   and eax,0FF
0043C375    83F8 27                       cmp eax,27(兵种)
0043C378  ^ 0F85 FEA0FCFF                 jnz Ekd5.0040647C
0043C37E    C745 F8 00000000              mov dword ptr ss:[ebp-8],0
0043C385  ^ E9 F2A0FCFF                   jmp Ekd5.0040647C

[[i] 本帖最后由 yanguodong 于 2008-8-26 18:32 编辑 [/i]]

2007-9-11 19:40 有点味道
不是我辈菜鸟能看懂的:q(+

2007-9-11 19:41 yanguodong
[quote]原帖由 [i]有点味道[/i] 于 2007-9-11 19:40 发表
不是我辈菜鸟能看懂的:q(+ [/quote]
几个月以前我也看不懂,慢慢研究就会了

[[i] 本帖最后由 yanguodong 于 2007-9-11 20:14 编辑 [/i]]

2007-9-11 19:50 lincoln10
有用ue改的代码吗?

2007-9-11 19:56 有点味道
[quote]原帖由 [i]yanguodong[/i] 于 2007-9-11 19:41 发表

几个月以前我也看不懂 [/quote]


大哥,应该怎么弄才能加到游戏里呢

2007-9-11 20:08 wolf44
不好意思,问个低级问题
这是哪个修改工具的代码啊?

2007-9-11 20:11 src
:doubt::lol:N年前,公主的轩辕传上就有这个特性了。
其实可以直接用那里面的导出然后再导入自己的:titter:

2007-9-11 20:13 yanguodong
回复 #7 src 的帖子

其他MOD有这个我不知道,这是今天刚研究出来的

2007-9-11 20:13 yanguodong
回复 #6 wolf44 的帖子

用Ollydbg改

2007-9-11 21:38 庸人自擾
感謝LZ:unsure:
先複製下來,有空慢慢研究

2007-9-11 21:40 庸人自擾
忘了問~~這是全兵種無反擊代碼嗎?

2007-9-11 21:59 岱瀛
[quote]原帖由 [i]yanguodong[/i] 于 2007-9-11 18:11 发表
00406471   /E9 E65E0300                   jmp Ekd5.0043C35C(空白位置)
00406476   |90                            nop
00406477   |90                            nop
00406478   |90               ... [/quote]


思路大概对了,但是改得并不是特别好。

这个是原来无反的代码,准确的讲,是无反判断是否有效的代码。
00406462  |> \6A 2C                PUSH 2C                                  ; /Arg1 = 0000002C
00406464  |.  8B4D F0              MOV ECX,DWORD PTR SS:[EBP-10]            ; |
00406467  |.  8B49 08              MOV ECX,DWORD PTR DS:[ECX+8]             ; |
0040646A  |.  E8 9A150000          CALL WaGan.00407A09                      ; \WaGan.00407A09
0040646F  |.  85C0                 TEST EAX,EAX
00406471  |.  74 09                JE SHORT WaGan.0040647C
00406473  |.  C745 F8 00000000     MOV DWORD PTR SS:[EBP-8],0
0040647A  |.  EB 33                JMP SHORT WaGan.004064AF
0040647C  |>  8B55 F0              MOV EDX,DWORD PTR SS:[EBP-10]


而这一整段才是真正意义的反击代码。
004064B5  |.  A1 042E4900          MOV EAX,DWORD PTR DS:[492E04]
004064BA  |.  83C0 01              ADD EAX,1
004064BD  |.  A3 042E4900          MOV DWORD PTR DS:[492E04],EAX
004064C2  |.  8B4D F0              MOV ECX,DWORD PTR SS:[EBP-10]
004064C5  |.  8A11                 MOV DL,BYTE PTR DS:[ECX]
004064C7  |.  52                   PUSH EDX                                 ; /Arg2
004064C8  |.  8B45 F0              MOV EAX,DWORD PTR SS:[EBP-10]            ; |
004064CB  |.  8A48 01              MOV CL,BYTE PTR DS:[EAX+1]               ; |
004064CE  |.  51                   PUSH ECX                                 ; |Arg1
004064CF  |.  E8 55F30200          CALL WaGan.00435829                      ; \WaGan.00435829
004064D4  |.  83C4 08              ADD ESP,8
004064D7  |.  8B55 F0              MOV EDX,DWORD PTR SS:[EBP-10]
004064DA  |.  8A02                 MOV AL,BYTE PTR DS:[EDX]
004064DC  |.  50                   PUSH EAX                                 ; /Arg2
004064DD  |.  8B4D F0              MOV ECX,DWORD PTR SS:[EBP-10]            ; |
004064E0  |.  8A51 01              MOV DL,BYTE PTR DS:[ECX+1]               ; |
004064E3  |.  52                   PUSH EDX                                 ; |Arg1
004064E4  |.  8B4D F0              MOV ECX,DWORD PTR SS:[EBP-10]            ; |
004064E7  |.  E8 05000000          CALL WaGan.004064F1                      ; \WaGan.004064F1




CALL WaGan.00407A09    这个,作用就是判断ecx武将他的身上是否有装备宝物属性具备 2C特征。

简单用剧本指令的形式讲,就是  无反装备测试。

但凡测试,就有true和false.   一般非0则为true,0则为false.

eax是没次call一个函数的返回值所在。  Test eax,eax 无非就是在判断eax是不是0值

JE SHORT WaGan.0040647C  看,零值跳转,代表假,说名不存在2C属性,所以执行反击代码。

如果非零,代表真,
MOV DWORD PTR SS:[EBP-8],0
JMP SHORT WaGan.004064AF

这个跳转再看结果,
   CMP DWORD PTR SS:[EBP-8],0
   JE SHORT WaGan.004064EC
其实就是 jmp 4064EC.  也就是说,不执行反击代码。

简单的用高级语言描述下这个函数,其实很简单就是
if (非受无反装备者攻击 && 被攻击方具备反击能力)
{
   反击;
}

而你的目的是做成
if (非受无反装备者攻击 && 非受无发攻击部队攻击 && 被攻击方具备反击能力)
{
   反击;
}


所以你的代码只需要这样写:

            [color=Red]    je short Ekd5.0043C365
               
                jmp Ekd5.004064EC   攻击者带无反装备,跳过反击有效代码,返回
         
43C365          mov ecx,dword ptr ss:[ebp-10]
                mov ecx,dword ptr ds:[ecx+8]
                call Ekd5.00406610
                and eax,0FF
                cmp eax,27(兵种)
                jnz Ekd5.0040647C
                jmp Ekd5.004064EC    攻击是27兵种,跳过反击有效代码,返回[/color]



其他的一切其他特性,应该懂得改了吧。   这个属性如果是要做成人物特性,即以人物Data序号做判断的,也应该会吧。


:unsure:祝果冻早日学成所有特性随意变更修改法。


对了,提醒下, 人物信息在exe里,经常有四种表达,两种常是ecx值,两种常是08栈值。

08栈值的都是个简单数字, 一个是Data序号,一个是战场形象编号。  

而两个内存地址,分别是Data信息内存地址和战场信息内存地址。以1024Data为例,  Data信息内存起始地址在 0xD6000处  战场信息内存地址在0x4B2c50处。


Data信息每0x48为一块,战场信息以0x24为一块。

所以应该经常可以看到Imual eax,eax,24  Imual eax,eax,48之类的指令。应该能明白这其中的玄机了吧。


内存各字节的意义,可参看ssbye的用FPE修改曹操传的贴子。

[[i] 本帖最后由 岱瀛 于 2007-9-11 22:06 编辑 [/i]]

2007-9-14 15:58 wyp2006d
岱大果然强悍...

2007-9-14 16:01 wyp2006d
不过弱弱的问一句,这段代码在新引擎有效吗?

2007-9-14 23:59 zhonghd12
好像说岳里面的游奕就是无反击兵种

2007-9-15 03:15 做男人挺好
写得太深刻了
写这么多不可能不深刻!

2007-9-15 03:23 神的儿子
有空去试试.

2007-9-16 10:49 qw65
[Glow=blue,4]出现[/Glow]“[blur]需要标签[/blur]”[Glow=blue,4]怎么办[/Glow]??:qoo+[img]file:///F:/需要标签?.bmp[/img]

[[i] 本帖最后由 qw65 于 2007-9-16 10:50 编辑 [/i]]

2007-9-16 11:56 wyp2006d
其实最强悍的还是杨家将里的那个游侠,先手攻击,不知道代码是什么...

2007-9-16 13:07 yanguodong
回复 #19 wyp2006d 的帖子

已经有人发布了,经过测试,并非你想的那么强悍。

2007-9-17 16:33 战神无敌
难以理解

2007-9-17 16:44 lycbeyond1987
关于代码跳转问题,貌似有时候不灵.
捧书研究中……

2007-9-17 18:47 猪头亮是也
晕,这些复杂的代码像我这种菜鸟根本看不懂:q(+………………

岱瀛和YANGUODONG两位大大能不能把改好的文件发上来啊?:Th

2007-9-17 19:54 yanguodong
回复 #23 猪头亮是也 的帖子

我的EAKD5改动很大在曹操传无法运行.上面的代码看不懂,照抄就是。这个不会就没办法了:ph34r:

2007-9-17 20:55 猪头亮是也
那…………抄到哪去???:qoo+:q(+我对这些一大堆的英文符号和数字不懂啊~~

2007-10-4 21:33 yanguodong
“骑马攻击”武器效果对应兵种扩充方法发布

加成伤害的兵种扩充为六个,想要可以再加:titter:

0043BEA1    83F9 01                       cmp ecx,1(步兵)
0043BEA4    74 1B                         je short Ekd5.0043BEC1
0043BEA6    83F9 06                       cmp ecx,6(武术家)
0043BEA9    74 16                         je short Ekd5.0043BEC1
0043BEAB    83F9 07                       cmp ecx,7(贼兵)
0043BEAE    74 11                         je short Ekd5.0043BEC1
0043BEB0    83F9 0F                       cmp ecx,0F(海盗)
0043BEB3    74 0C                         je short Ekd5.0043BEC1
0043BEB5    83F9 17                       cmp ecx,17(木人)
0043BEB8    74 07                         je short Ekd5.0043BEC1
0043BEBA    83F9 1A                       cmp ecx,1A(百姓)
0043BEBD    74 02                         je short Ekd5.0043BEC1
0043BEBF    75 2F                         jnz short Ekd5.0043BEF0
0043BEC1    6A 2D                         push 2D(武器号)
0043BEC3  ^ E9 9B51FEFF                   jmp Ekd5.00421063(转跳到空白位置)
0043BEC8    90                            nop

00421063    8B55 D4                       mov edx,dword ptr ss:[ebp-2C]
00421066    8B0A                          mov ecx,dword ptr ds:[edx]
00421068    6BC9 48                       imul ecx,ecx,48
0042106B    81C1 0000D600                 add ecx,0D60000
00421071    E8 9369FEFF                   call Ekd5.00407A09
00421076    85C0                          test eax,eax
00421078    0F84 72AE0100                 je Ekd5.0043BEF0
0042107E    6A 2D                         push 2D(武器号)
00421080    8B45 D4                       mov eax,dword ptr ss:[ebp-2C]
00421083    8B08                          mov ecx,dword ptr ds:[eax]
00421085    6BC9 48                       imul ecx,ecx,48
00421088    E9 3CAE0100                   jmp Ekd5.0043BEC9

[[i] 本帖最后由 yanguodong 于 2007-10-4 22:53 编辑 [/i]]

2007-10-5 10:17 sanke35
这段代码对我的MOD很有帮助,谢谢版主分享。

如果想要可以再加,那么骑马攻击的武器就可以改成破防攻击了。

2007-10-5 11:06 轩辕无
回复 #2 sanke35 的帖子

..破防攻击和骑马攻击MS不是一个概念吧?再怎么加也不可能变成破防的效果..
最多嫌杨家里的加强攻击

2007-10-5 12:42 yanguodong
回复 #2 sanke35 的帖子

如果全加就是辅助物理伤害:titter:

2007-10-9 21:55 yanguodong
防御致命一击兵种 (修正,保留武器)

00405F1E   /E9 72640300                   jmp Ekd5.0043C395
00405F23   |90                            nop
00405F24   |90                            nop
00405F25   |90                            nop
00405F26   |90                            nop
00405F27   |90                            nop
00405F28   |90                            nop
00405F29   |90                            nop
00405F2A   |90                            nop
00405F2B   |90                            nop
00405F2C   |90                            nop
00405F2D   |90                            nop
00405F2E   |90                            nop
00405F2F   |90                            nop
00405F30   |90                            nop
00405F31   |90                            nop
00405F32   |90                            nop
00405F33   |90                            nop
00405F34   |90                            nop
00405F35   |90                            nop
00405F36   |90                            nop
00405F37   |90                            nop

0043C395   /74 1B                         je short Ekd5.0043C3B2
0043C397   |8B45 FC                       mov eax,dword ptr ss:[ebp-4]
0043C39A   |25 FF000000                   and eax,0FF
0043C39F   |8B4D F4                       mov ecx,dword ptr ss:[ebp-C]
0043C3A2   |C78481 84000000 00000000      mov dword ptr ds:[ecx+eax*4+84],0
0043C3AD  ^|E9 B49BFCFF                   jmp Ekd5.00405F66
0043C3B2   \8B4D F8                       mov ecx,dword ptr ss:[ebp-8]
0043C3B5    E8 56A2FCFF                   call Ekd5.00406610
0043C3BA    25 FF000000                   and eax,0FF
0043C3BF    83F8 0B                       cmp eax,0B
0043C3C2   /75 02                         jnz short Ekd5.0043C3C6
0043C3C4  ^ EB D1                         jmp short Ekd5.0043C397
0043C3C6  ^ E9 6D9BFCFF                   jmp Ekd5.00405F38

[[i] 本帖最后由 yanguodong 于 2007-10-11 22:50 编辑 [/i]]

2007-10-9 22:19 yanguodong
绝对命中武器与兵种

0043B6AC  ^\E9 DC59FEFF                   jmp Ekd5.0042108D

0042108D    6A 2A                         push 2A(武器号)
0042108F    8B4D E0                       mov ecx,dword ptr ss:[ebp-20]
00421092    E8 7269FEFF                   call Ekd5.00407A09
00421097    85C0                          test eax,eax
00421099    74 07                         je short Ekd5.004210A2
0042109B    B0 64                         mov al,64
0042109D    E9 C2AA0100                   jmp Ekd5.0043BB64
004210A2    8B4D E0                       mov ecx,dword ptr ss:[ebp-20]
004210A5    E8 6655FEFF                   call Ekd5.00406610
004210AA    25 FF000000                   and eax,0FF
004210AF    E9 CDB20100                   jmp Ekd5.0043C381


0043C381    83F8 05                       cmp eax,5
0043C384    75 05                         jnz short Ekd5.0043C38B(兵种3B783)
0043C386  ^ E9 104DFEFF                   jmp Ekd5.0042109B
0043C38B    6A 27                         push 27
0043C38D    8B4D E0                       mov ecx,dword ptr ss:[ebp-20]
0043C390  ^ E9 1CF3FFFF                   jmp Ekd5.0043B6B1

[[i] 本帖最后由 yanguodong 于 2007-10-10 18:32 编辑 [/i]]

2007-10-9 22:22 yanguodong
辅助妨碍策略 武器特效

0043C248  ^\E9 5A50FDFF                   jmp Ekd5.004112A7
0043C24D    90                            nop
0043C24E    90                            nop

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 30                         push 30
004112C1    E9 89AF0200                   jmp Ekd5.0043C24F

2007-10-9 22:41 lincoln10
这都是针对原版的还是exe4?

2007-10-9 22:47 hadeswwy
[quote]原帖由 [i]lincoln10[/i] 于 2007-10-9 22:41 发表
这都是针对原版的还是exe4? [/quote]
上面已经都说过了,这个对于EXE的改动较大,不适合于原版的曹操传.:q```+

2007-10-9 23:01 yanguodong
回复 #33 lincoln10 的帖子

可以在曹操传上面添加,不过空白位置自己找,不能按上面的全抄,转跳空白的地址变一下就没问题了:qcool+

2007-10-9 23:08 yanguodong
辅助各类地形宝物(改了好几个道具,可选一部分添加)

0043F833  ^\E9 8D19FEFF                 jmp Ekd5.004211C5

004211C5    6A 20                       push 20(武器号205C5)
004211C7    8B55 EC                     mov edx,dword ptr ss:[ebp-14]
004211CA    8B0A                        mov ecx,dword ptr ds:[edx]
004211CC    6BC9 48                     imul ecx,ecx,48
004211CF    81C1 0000D600               add ecx,0D60000
004211D5    E8 2F68FEFF                 call Ekd5.00407A09
004211DA    85C0                        test eax,eax
004211DC    74 2E                       je short Ekd5.0042120C
004211DE    8B45 08                     mov eax,dword ptr ss:[ebp+8]
004211E1    3C 03                       cmp al,3(地形荒地,打开地形编辑器左边图标从上往下数)
004211E3    74 0C                       je short Ekd5.004211F1
004211E5    3C 04                       cmp al,4(山地)
004211E7    74 08                       je short Ekd5.004211F1
004211E9    3C 05                       cmp al,5(岩山)
004211EB    74 04                       je short Ekd5.004211F1
004211ED    3C 06                       cmp al,6(悬崖)
004211EF    75 05                       jnz short Ekd5.004211F6
004211F1    B0 01                       mov al,1(移动消耗为1)
004211F3    8945 F8                     mov dword ptr ss:[ebp-8],eax
004211F6    8B45 F0                     mov eax,dword ptr ss:[ebp-10]
004211F9    3C 03                       cmp al,3(地形荒地,打开地形编辑器左边图标从上往下数)
004211FB    75 04                       jnz short Ekd5.00421201
004211FD    B0 0C                       mov al,0B(加成120%)
004211FF    EB 08                       jmp short Ekd5.00421209
00421201    3C 04                       cmp al,4(山地)
00421203    75 07                       jnz short Ekd5.0042120C
00421205    B0 0C                       mov al,0C(加成120%)
00421207    90                          nop
00421208    90                          nop
00421209    8945 F4                     mov dword ptr ss:[ebp-C],eax
0042120C    8B45 F8                     mov eax,dword ptr ss:[ebp-8]
0042120F    8B55 F4                     mov edx,dword ptr ss:[ebp-C]
00421212    74 05                       je short Ekd5.00421219
00421214    E9 1E9B0300                 jmp Ekd5.0045AD37
00421219    6A 2F                       push 2F
0042121B    8B55 EC                     mov edx,dword ptr ss:[ebp-14]
0042121E    8B0A                        mov ecx,dword ptr ds:[edx]
00421220    6BC9 48                     imul ecx,ecx,48
00421223    81C1 0000D600               add ecx,0D60000
00421229    E8 DB67FEFF                 call Ekd5.00407A09
0042122E    85C0                        test eax,eax
00421230    74 1E                       je short Ekd5.00421250
00421232    8B45 08                     mov eax,dword ptr ss:[ebp+8]
00421235    3C 02                       cmp al,2
00421237    74 04                       je short Ekd5.0042123D
00421239    3C 1A                       cmp al,1A
0042123B    75 05                       jnz short Ekd5.00421242
0042123D    B0 01                       mov al,1
0042123F    8945 F8                     mov dword ptr ss:[ebp-8],eax
00421242    8B45 F0                     mov eax,dword ptr ss:[ebp-10]
00421245    3C 02                       cmp al,2
00421247    75 07                       jnz short Ekd5.00421250
00421249    B0 0C                       mov al,0C
0042124B    90                          nop
0042124C    90                          nop
0042124D    8945 F4                     mov dword ptr ss:[ebp-C],eax
00421250    8B45 F8                     mov eax,dword ptr ss:[ebp-8]
00421253    8B55 F4                     mov edx,dword ptr ss:[ebp-C]
00421256  ^ 0F84 A2FFFEFF               je Ekd5.004111FE
0042125C    E9 D69A0300                 jmp Ekd5.0045AD37

004111FE    6A 22                       push 22(105BF)
00411200    8B55 EC                     mov edx,dword ptr ss:[ebp-14]
00411203    8B0A                        mov ecx,dword ptr ds:[edx]
00411205    6BC9 48                     imul ecx,ecx,48
00411208    81C1 0000D600               add ecx,0D60000
0041120E    E8 F667FFFF                 call Ekd5.00407A09
00411213    85C0                        test eax,eax
00411215    74 56                       je short Ekd5.0041126D
00411217    8B45 08                     mov eax,dword ptr ss:[ebp+8]
0041121A    3C 07                       cmp al,7
0041121C    74 14                       je short Ekd5.00411232
0041121E    3C 09                       cmp al,9
00411220    74 10                       je short Ekd5.00411232
00411222    3C 0A                       cmp al,0A
00411224    74 0C                       je short Ekd5.00411232
00411226    3C 0B                       cmp al,0B
00411228    74 08                       je short Ekd5.00411232
0041122A    3C 0C                       cmp al,0C
0041122C    74 04                       je short Ekd5.00411232
0041122E    3C 0D                       cmp al,0D
00411230    75 05                       jnz short Ekd5.00411237
00411232    B0 01                       mov al,1
00411234    8945 F8                     mov dword ptr ss:[ebp-8],eax
00411237    8B45 F0                     mov eax,dword ptr ss:[ebp-10]
0041123A    3C 07                       cmp al,7
0041123C    75 04                       jnz short Ekd5.00411242
0041123E    B0 0C                       mov al,0C
00411240    EB 28                       jmp short Ekd5.0041126A
00411242    3C 09                       cmp al,9
00411244    75 04                       jnz short Ekd5.0041124A
00411246    B0 0B                       mov al,0B
00411248    EB 20                       jmp short Ekd5.0041126A
0041124A    3C 0A                       cmp al,0A
0041124C    75 04                       jnz short Ekd5.00411252
0041124E    B0 0A                       mov al,0A
00411250    EB 18                       jmp short Ekd5.0041126A
00411252    3C 0B                       cmp al,0B
00411254    75 04                       jnz short Ekd5.0041125A
00411256    B0 0A                       mov al,0A
00411258    EB 10                       jmp short Ekd5.0041126A
0041125A    3C 0C                       cmp al,0C
0041125C    75 04                       jnz short Ekd5.00411262
0041125E    B0 0B                       mov al,0B
00411260    EB 08                       jmp short Ekd5.0041126A
00411262    3C 0D                       cmp al,0D
00411264    75 07                       jnz short Ekd5.0041126D
00411266    B0 0C                       mov al,0C
00411268    90                          nop
00411269    90                          nop
0041126A    8945 F4                     mov dword ptr ss:[ebp-C],eax
0041126D    8B45 F8                     mov eax,dword ptr ss:[ebp-8]
00411270    8B55 F4                     mov edx,dword ptr ss:[ebp-C]
00411273    74 05                       je short Ekd5.0041127A
00411275    E9 BD9A0400                 jmp Ekd5.0045AD37
0041127A    6A 21                       push 21(1063B)
0041127C    8B55 EC                     mov edx,dword ptr ss:[ebp-14]
0041127F    8B0A                        mov ecx,dword ptr ds:[edx]
00411281    6BC9 48                     imul ecx,ecx,48
00411284    81C1 0000D600               add ecx,0D60000
0041128A    E8 7A67FFFF                 call Ekd5.00407A09
0041128F    85C0                        test eax,eax
00411291    74 22                       je short Ekd5.004112B5
00411293    8B45 08                     mov eax,dword ptr ss:[ebp+8]
00411296    3C 19                       cmp al,19
00411298    75 05                       jnz short Ekd5.0041129F
0041129A    B0 01                       mov al,1
0041129C    8945 F8                     mov dword ptr ss:[ebp-8],eax
0041129F    8B45 F0                     mov eax,dword ptr ss:[ebp-10]
004112A2    3C 10                       cmp al,10
004112A4    75 04                       jnz short Ekd5.004112AA
004112A6    B0 0C                       mov al,0C
004112A8    EB 08                       jmp short Ekd5.004112B2
004112AA    3C 17                       cmp al,17
004112AC    75 07                       jnz short Ekd5.004112B5
004112AE    B0 0B                       mov al,0B
004112B0    90                          nop
004112B1    90                          nop
004112B2    8945 F4                     mov dword ptr ss:[ebp-C],eax
004112B5    8B45 F8                     mov eax,dword ptr ss:[ebp-8]
004112B8    8B55 F4                     mov edx,dword ptr ss:[ebp-C]
004112BB    74 05                       je short Ekd5.004112C2
004112BD    E9 759A0400                 jmp Ekd5.0045AD37
004112C2    6A 2D                       push 2D
004112C4    8B55 EC                     mov edx,dword ptr ss:[ebp-14]
004112C7    E9 6CE50200                 jmp Ekd5.0043F838

0043F838    8B0A                        mov ecx,dword ptr ds:[edx](3EC38)
0043F83A    6BC9 48                     imul ecx,ecx,48
0043F83D    81C1 0000D600               add ecx,0D60000
0043F843    E8 C181FCFF                 call Ekd5.00407A09
0043F848    85C0                        test eax,eax
0043F84A    74 2A                       je short Ekd5.0043F876
0043F84C    8B45 08                     mov eax,dword ptr ss:[ebp+8]
0043F84F    3C 14                       cmp al,14
0043F851    74 08                       je short Ekd5.0043F85B
0043F853    3C 15                       cmp al,15
0043F855    74 04                       je short Ekd5.0043F85B
0043F857    3C 16                       cmp al,16
0043F859    75 05                       jnz short Ekd5.0043F860
0043F85B    B0 01                       mov al,1
0043F85D    8945 F8                     mov dword ptr ss:[ebp-8],eax
0043F860    8B45 F0                     mov eax,dword ptr ss:[ebp-10]
0043F863    3C 00                       cmp al,0
0043F865    75 04                       jnz short Ekd5.0043F86B
0043F867    B0 0C                       mov al,0C
0043F869    EB 08                       jmp short Ekd5.0043F873
0043F86B    3C 01                       cmp al,1
0043F86D    75 07                       jnz short Ekd5.0043F876
0043F86F    B0 0C                       mov al,0C
0043F871    90                          nop
0043F872    90                          nop
0043F873    8945 F4                     mov dword ptr ss:[ebp-C],eax
0043F876    8B45 F8                     mov eax,dword ptr ss:[ebp-8]
0043F879    8B55 EC                     mov edx,dword ptr ss:[ebp-14]
0043F87C    8B0A                        mov ecx,dword ptr ds:[edx]
0043F87E    E9 B4B40100                 jmp Ekd5.0045AD37

[[i] 本帖最后由 yanguodong 于 2007-10-9 23:10 编辑 [/i]]

2007-10-10 09:40 独行追风
谁能告诉我 减轻物理伤害30% 这个怎么写的???????????

2007-10-10 15:49 主席
看了一下,手头上最大的问题还是没有解决
似乎物免和绝对命中不能同时作为兵种特性出现:ph34r:

2007-10-10 17:29 norton
回复 #38 主席 的帖子

可以的,我早已实现.绝对命中兵种参考果冻的.

仙人物理攻击免疫
3B0B2处开始的字节:E9 3D 13 05 00
8B9F4处开始的字节:E8 77 E4 FA FF 25 FF 00 00 00 83 F8 [b]14[/b] 0F 85 B0 EC FA FF C7 45 FC 00 00 00 00 E9 62 EF FA FF

[[i] 本帖最后由 norton 于 2007-10-10 17:32 编辑 [/i]]

2007-10-10 17:34 魔狼
恕我无能,那个软件还是不会使用.哪位能告之如何转换成UE的修改法啊,拜托了.

2007-10-10 18:30 yanguodong
回复 #38 主席 的帖子

绝对攻击命中可以设为兵种的:sleep:

2007-10-10 20:27 sanke35
[quote]原帖由 [i]norton[/i] 于 2007-10-10 17:29 发表
仙人物理攻击免疫
3B0B2处开始的字节:E9 3D 13 05 00
8B9F4处开始的字节:E8 77 E4 FA FF 25 FF 00 00 00 83 F8 14 0F 85 B0 EC FA FF C7 45 FC 00 00 00 00 E9 ... [/quote]

按这段代码我在新引擎上修改后,出错了。。。。

版主可否也研究一下适合新引擎的物理攻击免疫兵种可行的代码?

2007-10-10 21:59 yanguodong
物理攻击免疫兵种

当然不能照抄啦,那是针对旧版曹操传的


0043B6AC     E9 E4B5FCFF   JMP 00406CC4
00406CC4     8B4D E8     MOV ECX,DWORD PTR SS:[EBP-18]
00406CC7     E8 44F9FFFF   CALL EKD5.00406610
00406CCC     25 FF000000   AND EAX,0FF
00406CD1     83F8 2E     CMP EAX,2E
00406CD4     75 07       JNZ SHORT EKD5.00406CDD
00406CD6     33C0       XOR EAX,EAX
00406CD8     E9 5B4A0300   JMP EKD5.0043B738
00406CDD     6A 27       PUSH 27
00406CDF     8B4D E0     MOV ECX,DWORD PTR SS:[EBP-20]
00406CE2     E9 D0F2FFFF   JMP 0043B6B1

[[i] 本帖最后由 yanguodong 于 2007-10-10 22:00 编辑 [/i]]

2007-10-11 14:31 sanke35
[quote]原帖由 [i]yanguodong[/i] 于 2007-10-10 21:59 发表
0043B6AC     E9 E4B5FCFF   JMP 00406CC4
00406CC4     8B4D E8     MOV ECX,DWORD PTR SS:
00406CC7     E8 44F9FFFF   CALL EKD5.00406610
00406CCC     25 F ... [/quote]

谢谢大人。经大人指点后修改完成,经测试该兵种确实已毫不犹豫地拒绝了一切的物理攻击影响。:handshake:

但修改后的代码和大人给出的代码有几处不相同,我怕会造成影响,不知道我哪里错了。所以请大人再过目再指点下。

0043B6AC    ^\E9 [color=red]13B6FCFF[/color]   JMP Ekd5.00406CC4

00406CC4      8B4D E8       MOV ECX,DWORD PTR SS:[EBP-18]
00406CC7 >    E8 44F9FFFF   CALL Ekd5.00406610
00406CCC      25 FF000000   AND EAX,0FF
00406CD1      83F8 2E       CMP EAX,2E
00406CD4      75 07         JNZ SHORT Ekd5.00406CDD
00406CD6      33C0          XOR EAX,EAX
00406CD8      E9 5B4A0300   JMP Ekd5.0043B738
00406CDD      6A 27         PUSH 27
00406CDF      8B4D E0       MOV ECX,DWORD PTR SS:[EBP-20]
00406CE2      [color=red]E9 CA490300[/color]   JMP Ekd5.0043B6B1

谢谢

2007-10-11 15:25 wyp2006d
国栋兄能否把每一行所所代表的意义解释一下呢?还有一些地址也不知道是什么东东的地址跳转到那又有什么意义:qoo+

2007-10-11 17:47 yanguodong
回复 #44 sanke35 的帖子

你说红字的部分吗,不同就对了,因为空白位置不一样。试一下,如果正常游戏就对了。

2007-10-11 17:59 yanguodong
回复 #45 wyp2006d 的帖子

我们要写进一些原来没有的东西,如果不找个不影响原来程序的地方写,就会把愿有的东西改没了。
所以要转跳到空白处。
JMP 00406CC4  (JMP 就是转跳  00406CC4  地址,找个空白地方)
CMP EAX,2E(将特效附给某个兵种,这里是小兵种,2E是曹操传中仙人的兵种代码)
    PUSH 27 (将特效附给某个武器,27是辅助攻击命中,这个是原来就有的在0043B6AC ,把他连同
后面的MOV ECX,DWORD PTR SS:[EBP-20]一起改成JMP 00406CC4,也就是从这里开始转跳到空白处,到后面又补写回来,最后一句是转跳回接下去的地方。)

2007-10-11 18:58 sanke35
[quote]原帖由 [i]yanguodong[/i] 于 2007-10-11 17:47 发表
你说红字的部分吗,不同就对了,因为空白位置不一样。试一下,如果正常游戏就对了。 [/quote]
谢谢,那我就放心了,游戏是正常的。:victory:
==============================
[color=blue]现在严版主越来越有水平了,研究出不少好东西出来,回答问题又热心又速度。值得冒着灌水危险赞赞,您这版主当之无愧![/color]
==============================

借此贴顺便再请教个旧问题:

大人曾在某贴上提到拆解三转兵种的方法,是将原来舞娘位置的26改为23,这样舞娘就会成为无相关的三转兵种。若想拆骑策,
则改为20,但会影响到舞娘的转职,大人提出的方法是仍改为23,再将原舞娘的兵种能力与骑策对换从而达成目的。

问题是:

这样一来,原骑策的战场形象本为敌我友三方共用。按此方法调换了舞娘跟骑策属性,战场形象的对应关系应如何处理才可以和原来一样转职自动更换S形象,敌我友三方各不同而不是使用同一形象?

==============
若以上这问题只能如此无奈的话,请问一下“物理攻击免疫”的方法,能不能改成只对大兵种中的小兵种比如骑策第三转有效,一二转正常?

2007-10-11 19:22 wyp2006d
谢谢国栋兄的指点,但是回去试验发现在反汇编跳转指令时出现了个需要标签...那是虾米情况?然后我写JE SHORT XXXXXX指令的时候又说是未允许操作数...:qoo+

2007-10-11 19:37 sanke35
[quote]原帖由 [i]wyp2006d[/i] 于 2007-10-11 19:22 发表
谢谢国栋兄的指点,但是回去试验发现在反汇编跳转指令时出现了个需要标签...那是虾米情况?然后我写JE SHORT XXXXXX指令的时候又说是未允许操作数...:qoo+ [/quote]

这问题我倒可以代严大回答,提供的代码里面若有EKD5.的字样,删掉即可。

2007-10-11 19:42 wyp2006d
谢谢LS!马上回去试:qcool+唉,做MOD不容易...破甲攻击的代码要是国栋兄能发布个就好了,准备给反派主角1装备的,那家伙是个小强类的,攻又不行,所以想给他个破甲剑玩玩呵呵...俺是不是太贪心了?:titter::titter::titter:

2007-10-11 21:50 yanguodong
回复 #48 sanke35 的帖子

舞娘与骑策的形象图片也对换即可

2007-10-11 22:02 sanke35
[quote]原帖由 [i]yanguodong[/i] 于 2007-10-11 21:50 发表
舞娘与骑策的形象图片也对换即可 [/quote]

可能是我问题没表达清楚,不好意思。
原骑策的形象一共只有三个(组),敌友我三方如果设成兵种为骑策,都会是此三个形象。

换舞娘为骑策的话,那么所有敌军友军我军如果是这兵种,便都是这个形象了。无法像原舞娘那样有貂婵与祝融的形象。

所以单单是对换的话,就少了两组形象指向。

--------------------------
另外还要请教下,“物理攻击免疫”属性能否指定兵种中的其中一转。

2007-10-11 22:22 yanguodong
防御致命一击兵种修正,保留武器

2007-10-11 22:50 yokosima
能否楼主公布下吸血攻击的代码?
新引擎的鱼子酱教学部分依然是否可以用来写代码?

2007-10-11 22:52 yanguodong
[quote]原帖由 [i]yokosima[/i] 于 2007-10-11 22:50 发表
能否楼主公布下吸血攻击的代码?
新引擎的鱼子酱教学部分依然是否可以用来写代码? [/quote]
当然可以的

2007-10-11 22:55 yanguodong
吸血攻击武器与兵种

吸血攻击武器与兵种

00406559    50                             push eax
0040655A  - E9 56650800                    jmp Ekd5.0048CAB5
0040655F    90                             nop
00406560    90                             nop
00406561    8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
00406564  - E9 83650800                    jmp Ekd5.0048CAEC

0048C9AA    55                             push ebp
0048C9AB    8BEC                           mov ebp,esp
0048C9AD    83EC 10                        sub esp,10
0048C9B0    894D FC                        mov dword ptr ss:[ebp-4],ecx
0048C9B3    33C9                           xor ecx,ecx
0048C9B5    894D F8                        mov dword ptr ss:[ebp-8],ecx
0048C9B8    6A 2C                          push 2C(武器号)
0048C9BA    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048C9BD    8B4A 08                        mov ecx,dword ptr ds:[edx+8]
0048C9C0    E8 44B0F7FF                    call Ekd5.00407A09
0048C9C5    85C0                           test eax,eax
0048C9C7    0F84 29010000                  je Ekd5.0048CAF6
0048C9CD    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048C9D0    8B4A 08                        mov ecx,dword ptr ds:[edx+8]
0048C9D3    E8 43A8F7FF                    call Ekd5.0040721B
0048C9D8    50                             push eax
0048C9D9    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048C9DC    8B4A 08                        mov ecx,dword ptr ds:[edx+8]
0048C9DF    51                             push ecx
0048C9E0    E8 98F4F7FF                    call Ekd5.0040BE7D
0048C9E5    83C4 04                        add esp,4
0048C9E8    50                             push eax
0048C9E9    E8 E81AFBFF                    call Ekd5.0043E4D6
0048C9EE    83C4 04                        add esp,4
0048C9F1    33C9                           xor ecx,ecx
0048C9F3    8AC8                           mov cl,al
0048C9F5    6BC9 24                        imul ecx,ecx,24
0048C9F8    81C1 502C4B00                  add ecx,Ekd5.004B2C50
0048C9FE    894D F0                        mov dword ptr ss:[ebp-10],ecx
0048CA01    E8 8A62FEFF                    call Ekd5.00472C90
0048CA06    8945 F8                        mov dword ptr ss:[ebp-8],eax
0048CA09    50                             push eax
0048CA0A    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048CA0D    8B0D B2BF4A00                  mov ecx,dword ptr ds:[4ABFB2]
0048CA13    51                             push ecx
0048CA14    E8 7030FFFF                    call Ekd5.0047FA89
0048CA19    83C4 0C                        add esp,0C
0048CA1C    8945 F4                        mov dword ptr ss:[ebp-C],eax
0048CA1F    2945 F8                        sub dword ptr ss:[ebp-8],eax
0048CA22    6A 01                          push 1
0048CA24    6A 00                          push 0
0048CA26    8B45 FC                        mov eax,dword ptr ss:[ebp-4]
0048CA29    8B88 2C040000                  mov ecx,dword ptr ds:[eax+42C]
0048CA2F    51                             push ecx
0048CA30    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048CA33    8B82 28040000                  mov eax,dword ptr ds:[edx+428]
0048CA39    50                             push eax
0048CA3A    6A 00                          push 0
0048CA3C    8B55 F8                        mov edx,dword ptr ss:[ebp-8]
0048CA3F    52                             push edx
0048CA40    8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0048CA43    8A51 01                        mov dl,byte ptr ds:[ecx+1]
0048CA46    52                             push edx
0048CA47    8B45 FC                        mov eax,dword ptr ss:[ebp-4]
0048CA4A    8A08                           mov cl,byte ptr ds:[eax]
0048CA4C    51                             push ecx
0048CA4D    E8 323FFCFF                    call Ekd5.00450984
0048CA52    83C4 20                        add esp,20
0048CA55    837D F8 00                     cmp dword ptr ss:[ebp-8],0
0048CA59    74 10                          je short Ekd5.0048CA6B
0048CA5B    90                             nop
0048CA5C    90                             nop
0048CA5D    90                             nop
0048CA5E    90                             nop
0048CA5F    8B45 F4                        mov eax,dword ptr ss:[ebp-C]
0048CA62    50                             push eax
0048CA63    8B4D F0                        mov ecx,dword ptr ss:[ebp-10]
0048CA66    E8 622CFBFF                    call Ekd5.0043F6CD
0048CA6B    6A 01                          push 1
0048CA6D    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048CA70    8B4A 08                        mov ecx,dword ptr ds:[edx+8]
0048CA73    E8 D89BF7FF                    call Ekd5.00406650
0048CA78    25 FF000000                    and eax,0FF
0048CA7D    8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0048CA80    0381 28040000                  add eax,dword ptr ds:[ecx+428]
0048CA86    50                             push eax
0048CA87    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048CA8A    8B4A 08                        mov ecx,dword ptr ds:[edx+8]
0048CA8D    E8 BEBEF7FF                    call Ekd5.00408950
0048CA92    8B45 FC                        mov eax,dword ptr ss:[ebp-4]
0048CA95    8B88 2C040000                  mov ecx,dword ptr ds:[eax+42C]
0048CA9B    51                             push ecx
0048CA9C    6A 00                          push 0
0048CA9E    8B55 FC                        mov edx,dword ptr ss:[ebp-4]
0048CAA1    8B4A 08                        mov ecx,dword ptr ds:[edx+8]
0048CAA4    E8 2DB8F7FF                    call Ekd5.004082D6
0048CAA9    33C9                           xor ecx,ecx
0048CAAB    890D B2BF4A00                  mov dword ptr ds:[4ABFB2],ecx
0048CAB1    8BE5                           mov esp,ebp
0048CAB3    5D                             pop ebp
0048CAB4    C3                             retn
0048CAB5    8B75 FC                        mov esi,dword ptr ss:[ebp-4]
0048CAB8    8B96 08060000                  mov edx,dword ptr ds:[esi+608]
0048CABE    83FA 00                        cmp edx,0
0048CAC1    77 0D                          ja short Ekd5.0048CAD0
0048CAC3    8B86 84000000                  mov eax,dword ptr ds:[esi+84]
0048CAC9    A3 B2BF4A00                    mov dword ptr ds:[4ABFB2],eax
0048CACE    EB 0B                          jmp short Ekd5.0048CADB
0048CAD0    A1 B2BF4A00                    mov eax,dword ptr ds:[4ABFB2]
0048CAD5    0386 84000000                  add eax,dword ptr ds:[esi+84]
0048CADB    A3 B2BF4A00                    mov dword ptr ds:[4ABFB2],eax
0048CAE0    58                             pop eax
0048CAE1    85C0                           test eax,eax
0048CAE3  - 0F85 2B9AF7FF                  jnz Ekd5.00406514
0048CAE9    8B4D FC                        mov ecx,dword ptr ss:[ebp-4]
0048CAEC    E8 B9FEFFFF                    call Ekd5.0048C9AA
0048CAF1  - E9 739AF7FF                    jmp Ekd5.00406569
0048CAF6    8B45 FC                        mov eax,dword ptr ss:[ebp-4]
0048CAF9    8B48 08                        mov ecx,dword ptr ds:[eax+8]
0048CAFC    E8 0F9BF7FF                    call Ekd5.00406610
0048CB01    25 FF000000                    and eax,0FF
0048CB06    83F8 28                        cmp eax,28(兵种)
0048CB09  ^ 0F85 13FFFFFF                  jnz Ekd5.0048CA22
0048CB0F  ^ E9 B9FEFFFF                    jmp Ekd5.0048C9CD

[[i] 本帖最后由 yanguodong 于 2008-8-26 18:28 编辑 [/i]]

2007-10-11 23:59 yokosima
谢谢LZ的代码。。。
这些地址原来的代码是做什么用的?
改后会不会出现问题。。。
如果把这么一大段代码按旁边那十六进制吵到鱼子酱教学那不知道可不可以?
(当然会修改相应的CALL和JMP地址。。。)

2007-10-12 07:11 yanguodong
以上的代码都可以找个空白位置自己写,不会对原来的有所影响。除吸血攻击外,像第一部分(转跳前)的位置不能变,放心将他改掉,后面都写在空白位置,效果只增不减

2007-10-12 11:15 yokosima
除吸血攻击外的意思是。。。
吸血攻击00405CXX、0042XXX两部分都可以找个地方来写?

页: [1] 2 3 4


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.