标题:
模仿异能:可以模仿周围神兵的特效
[打印本页]
作者:
aaa132536
时间:
2011-4-27 23:56
标题:
模仿异能:可以模仿周围神兵的特效
最近在追看沧海兄写的冰之无限中的神兵玄奇那一卷,里面有看到魔兵无妄天诛的异能:模仿(可以模仿其它魔、神兵的异能),感觉有点意思,就动了在曹操传里修改出这个技能的念头,经过几天研究终于改出将其改出了。我是用毅兄的EXE改的,下面就是模仿异能的代码:
004D40B6 E8 B50F0000 call Ekd5.004D5070
004D5070 55 push ebp
004D5071 8BEC mov ebp,esp
004D5073 83EC 14 sub esp,14
004D5076 894D FC mov dword ptr ss:[ebp-4],ecx
004D5079 8B45 08 mov eax,dword ptr ss:[ebp+8]
004D507C 8945 F8 mov dword ptr ss:[ebp-8],eax
004D507F 6A 3B push 3B <---------------------特效号
004D5081 E8 FD28F3FF call Ekd5.00407983
004D5086 85C0 test eax,eax
004D5088 74 4A je short Ekd5.004D50D4
004D508A C745 F0 00000000 mov dword ptr ss:[ebp-10],0
004D5091 8B45 F0 mov eax,dword ptr ss:[ebp-10]
004D5094 E8 68F1FFFF call Ekd5.004D4201
004D5099 395D FC cmp dword ptr ss:[ebp-4],ebx
004D509C 74 05 je short Ekd5.004D50A3
004D509E FF45 F0 inc dword ptr ss:[ebp-10]
004D50A1 ^ EB EE jmp short Ekd5.004D5091
004D50A3 C745 EC 00000000 mov dword ptr ss:[ebp-14],0
004D50AA 8B45 F0 mov eax,dword ptr ss:[ebp-10]
004D50AD 8B5D EC mov ebx,dword ptr ss:[ebp-14]
004D50B0 3BC3 cmp eax,ebx
004D50B2 74 1B je short Ekd5.004D50CF
004D50B4 83FB 72 cmp ebx,72
004D50B7 77 1B ja short Ekd5.004D50D4
004D50B9 E8 BEF1FFFF call Ekd5.004D427C
004D50BE 85C0 test eax,eax
004D50C0 74 0D je short Ekd5.004D50CF
004D50C2 8B45 EC mov eax,dword ptr ss:[ebp-14]
004D50C5 E8 CEF2FFFF call Ekd5.004D4398
004D50CA 3A45 F8 cmp al,byte ptr ss:[ebp-8]
004D50CD 74 12 je short Ekd5.004D50E1
004D50CF FF45 EC inc dword ptr ss:[ebp-14]
004D50D2 ^ EB D6 jmp short Ekd5.004D50AA
004D50D4 8B4D FC mov ecx,dword ptr ss:[ebp-4]
004D50D7 FF75 F8 push dword ptr ss:[ebp-8]
004D50DA E8 A428F3FF call Ekd5.00407983
004D50DF EB 0F jmp short Ekd5.004D50F0
004D50E1 8B45 EC mov eax,dword ptr ss:[ebp-14]
004D50E4 E8 F1F2FFFF call Ekd5.004D43DA
004D50E9 8BD0 mov edx,eax
004D50EB B8 01000000 mov eax,1
004D50F0 8BE5 mov esp,ebp
004D50F2 5D pop ebp
004D50F3 C3 retn
里面有用到一些我自己写的参数
武将A的战场、DATA内存地址:
004D4201 55 push ebp
004D4202 8BEC mov ebp,esp
004D4204 25 FF000000 and eax,0FF
004D4209 6BC0 24 imul eax,eax,24
004D420C 05 502C4B00 add eax,Ekd5.004B2C50
004D4211 8B18 mov ebx,dword ptr ds:[eax]
004D4213 6BDB 48 imul ebx,ebx,48
004D4216 031D 70404D00 add ebx,dword ptr ds:[4D4070]
004D421C 8BE5 mov esp,ebp
004D421E 5D pop ebp
004D421F C3 retn
输入:eax=武将A战场编号
输出:eax=武将A战场内存地址,ebx=武将A DATA内存地址
武将A是否在武将B的九宫范围内:
004D427C 55 push ebp
004D427D 8BEC mov ebp,esp
004D427F E8 9EFFFFFF call Ekd5.004D4222
004D4284 3C 01 cmp al,1
004D4286 77 0C ja short Ekd5.004D4294
004D4288 80FB 01 cmp bl,1
004D428B 77 07 ja short Ekd5.004D4294
004D428D B8 01000000 mov eax,1
004D4292 EB 05 jmp short Ekd5.004D4299
004D4294 B8 00000000 mov eax,0
004D4299 8BE5 mov esp,ebp
004D429B 5D pop ebp
004D429C C3 retn
004D4222 55 push ebp
004D4223 8BEC mov ebp,esp
004D4225 33C9 xor ecx,ecx
004D4227 0FB6C8 movzx ecx,al
004D422A 6BC9 24 imul ecx,ecx,24
004D422D 81C1 502C4B00 add ecx,Ekd5.004B2C50
004D4233 8A41 06 mov al,byte ptr ds:[ecx+6]
004D4236 8A61 07 mov ah,byte ptr ds:[ecx+7]
004D4239 33C9 xor ecx,ecx
004D423B 0FB6CB movzx ecx,bl
004D423E 6BC9 24 imul ecx,ecx,24
004D4241 81C1 502C4B00 add ecx,Ekd5.004B2C50
004D4247 8A59 06 mov bl,byte ptr ds:[ecx+6]
004D424A 8A79 07 mov bh,byte ptr ds:[ecx+7]
004D424D 3AC3 cmp al,bl
004D424F 72 04 jb short Ekd5.004D4255
004D4251 2AC3 sub al,bl
004D4253 EB 04 jmp short Ekd5.004D4259
004D4255 2AD8 sub bl,al
004D4257 8AC3 mov al,bl
004D4259 3AE7 cmp ah,bh
004D425B 72 04 jb short Ekd5.004D4261
004D425D 2AE7 sub ah,bh
004D425F EB 04 jmp short Ekd5.004D4265
004D4261 2AFC sub bh,ah
004D4263 8AE7 mov ah,bh
004D4265 8ADC mov bl,ah
004D4267 25 FF000000 and eax,0FF
004D426C 81E3 FF000000 and ebx,0FF
004D4272 8BC8 mov ecx,eax
004D4274 03CB add ecx,ebx
004D4276 8BE5 mov esp,ebp
004D4278 5D pop ebp
004D4279 C3 retn
输入:eax=武将A战场编号,ebx=武将B战场编号
输出:eax=0(不是),1(是)
读取武将A的武器、防具、辅助品的特效号:
004D4398 55 push ebp
004D4399 8BEC mov ebp,esp
004D439B E8 D0FFFFFF call Ekd5.004D4370
004D43A0 6BC0 19 imul eax,eax,19
004D43A3 05 40114A00 add eax,Ekd5.004A1140
004D43A8 8A40 14 mov al,byte ptr ds:[eax+14]
004D43AB 25 FF000000 and eax,0FF
004D43B0 6BDB 19 imul ebx,ebx,19
004D43B3 81C3 40114A00 add ebx,Ekd5.004A1140
004D43B9 8A5B 14 mov bl,byte ptr ds:[ebx+14]
004D43BC 81E3 FF000000 and ebx,0FF
004D43C2 6BC9 19 imul ecx,ecx,19
004D43C5 81C1 40114A00 add ecx,Ekd5.004A1140
004D43CB 8A49 14 mov cl,byte ptr ds:[ecx+14]
004D43CE 81E1 FF000000 and ecx,0FF
004D43D4 8BE5 mov esp,ebp
004D43D6 5D pop ebp
004D43D7 C3 retn
004D4370 55 push ebp
004D4371 8BEC mov ebp,esp
004D4373 83EC 04 sub esp,4
004D4376 E8 86FEFFFF call Ekd5.004D4201
004D437B 33C0 xor eax,eax
004D437D 8A43 2E mov al,byte ptr ds:[ebx+2E]
004D4380 8945 FC mov dword ptr ss:[ebp-4],eax
004D4383 8BC3 mov eax,ebx
004D4385 33DB xor ebx,ebx
004D4387 33C9 xor ecx,ecx
004D4389 8A58 31 mov bl,byte ptr ds:[eax+31]
004D438C 8A48 34 mov cl,byte ptr ds:[eax+34]
004D438F 8B45 FC mov eax,dword ptr ss:[ebp-4]
004D4392 8BE5 mov esp,ebp
004D4394 5D pop ebp
004D4395 C3 retn
输入:eax=武将A战场编号
输出:eax=武器特效号,ebx=防具特效号,ecx=辅助品特效号
读取武将A的武器、防具、辅助品的效果值:
004D43DA 55 push ebp
004D43DB 8BEC mov ebp,esp
004D43DD E8 8EFFFFFF call Ekd5.004D4370
004D43E2 6BC0 19 imul eax,eax,19
004D43E5 05 40114A00 add eax,Ekd5.004A1140
004D43EA 8A40 16 mov al,byte ptr ds:[eax+16]
004D43ED 25 FF000000 and eax,0FF
004D43F2 6BDB 19 imul ebx,ebx,19
004D43F5 81C3 40114A00 add ebx,Ekd5.004A1140
004D43FB 8A5B 16 mov bl,byte ptr ds:[ebx+16]
004D43FE 81E3 FF000000 and ebx,0FF
004D4404 6BC9 19 imul ecx,ecx,19
004D4407 81C1 40114A00 add ecx,Ekd5.004A1140
004D440D 8A49 16 mov cl,byte ptr ds:[ecx+16]
004D4410 81E1 FF000000 and ecx,0FF
004D4416 8BE5 mov esp,ebp
004D4418 5D pop ebp
004D4419 C3 retn
输入:eax=武将A战场编号
输出:eax=武器效果值,ebx=防具效果值,ecx=辅助品效果值
作者:
ouyangnitian
时间:
2011-4-28 10:16
赞一个,加到瓦岗中,又多一个强大的法宝!
作者:
aaa132536
时间:
2011-4-28 10:26
瓦岗的代码地址我不熟,不好加到瓦岗中。
[
本帖最后由 aaa132536 于 2011-4-28 10:29 编辑
]
作者:
WHITESHIP
时间:
2011-4-28 10:56
也许STAR和毅大能够考虑下,的确是很好的一个特效~瓦岗的文件感觉很小,不过如果加到瓦岗中能复制特技、异术就更强了。不过感觉剧情不会让瓦岗有这么BT的角色…………
[
本帖最后由 WHITESHIP 于 2011-4-28 10:58 编辑
]
作者:
tswing
时间:
2011-4-28 17:52
看不懂,汇编忘记一干二净。
模仿?干吗不来个全策略天生的?原版的遁甲天书也可以的。
作者:
aaa132536
时间:
2011-4-28 18:05
呵呵,我这个是模仿周围武器特效的。
作者:
三国群英
时间:
2011-4-28 18:38
不会做游戏,看不懂这些是神马东西
作者:
kuoyingjie
时间:
2011-4-28 20:16
看见顶的人不多 我才来的。 这个确实是个很有用的功能。 别人不顶,我顶你
作者:
Axie89
时间:
2011-4-29 02:27
我也支持一下新特效。。。。。。
作者:
513633522
时间:
2011-4-29 08:26
支持一下新特效。。。。。。
作者:
冰麒麟
时间:
2011-4-29 11:11
有创意,顶,不过因看不懂汇编,有几个疑问。
1、不分敌我模仿吗?
2、当周围存在几个宝物时。这个模仿,是否将他们都叠加?将自身的宝物特效也叠加?如果是,这个模仿太强大了,很可能破坏平衡。另外,当存在几个冲突的特效时,会怎样算?如:二格穿透,三格穿透。
3、当周围存在几个宝物时。这个模仿,是将其续个覆盖?后面留的会是哪个?
作者:
WHITESHIP
时间:
2011-4-29 12:04
标题:
回复 #11 冰麒麟 的帖子
+1,开始我也有这个疑问准备问的,但是后来觉得好像不会覆盖,然后把所有的都叠加………………因为原理似乎和“策略模仿”一样。
作者:
aaa132536
时间:
2011-4-29 12:31
标题:
回复 #11 冰麒麟 的帖子
1.是不分敌我都模仿
2、3.只模仿武将九宫范围内的武器特效,是将几个特效都叠加,因此特效有0——8个,当存在几个冲突的特效时,最终取哪个可以参考在毅兄的EXE里将几个冲突的特效设在一起,看哪个取作用。
作者:
aaa132536
时间:
2011-4-29 12:53
我还没研究到策略模仿,因此不知道原理是否一样。平常特效是否起作用要先判断下宝物特效号是否是该特效的特效号,是才会起作用。而模仿异能的原理是当周围有人的宝物特效号是该特效的特效号,就跳过检测自己宝物特效号是否是该特效的特效号的代码,特效直接起作用。例如混乱攻击:
当装备有模仿异能宝物的武将周围有存在装备着混乱特效武器的武将,则跳过自己是否有混乱特效宝物的检测,直接发到混乱攻击。
作者:
冰麒麟
时间:
2011-4-29 13:14
标题:
回复 #13 aaa132536 的帖子
觉得这个特效还是很有意思的。
建议,设一个模仿特效上限。比如:2个。
只是还要加模仿特效的优先顺序。
MOD中,把武器的基础数值调低一点,调整宝物的平衡度。
这样的宝物,在只有在模仿2个特效时增值,而只模仿1个特效或未能模仿时,就是贬值。这样可以考验玩家的走位。
作者:
aaa132536
时间:
2011-4-29 13:38
标题:
回复 #15 冰麒麟 的帖子
模仿特效上限这个很好设,不过模仿特效的优先顺序就有点难了。你能不能提供个优先特效顺序我试着做一下。
作者:
seaseesea
时间:
2011-4-29 16:58
http://freego.uueasy.com/read-htm-tid-645.html
【三国志·魏传】已经实现相似的技能!!同时还有部分其他新的特效效果!!
可以去尝试下!!
作者:
qqww2311
时间:
2011-5-11 17:48
這個功能不錯吧~
不過計唔計埋物攻?
[
本帖最后由 qqww2311 于 2011-5-11 17:50 编辑
]
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0