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.