- UID
- 781557
- 主题
- 12
- 阅读权限
- 60
- 帖子
- 363
- 精华
- 5
- 积分
- 2339
- 金钱
- 5267
- 荣誉
- 114
- 人气
- 172
- 在线时间
- 0 小时
- 评议
- 0
- 帖子
- 363
- 精华
- 5
- 积分
- 2339
- 金钱
- 5267
- 荣誉
- 114
- 人气
- 172
- 评议
- 0
|
回复 #384 ryan_knight_12 的帖子
在下找了一些代码, 看能否给ryan_knight_12 做参考.
区分伏兵与普攻伤害也许可以从这里着手.
005AFCEB - 8b 44 24 50 - mov eax,[esp+50] (1=计略, 0=普攻战法)
005AFCEF - 85 c0 - test eax,eax
005AFCF1 - b9 01 00 00 00 - mov ecx,00000001
005AFCF6 - 89 4d 7c - mov [ebp+7c],ecx
005AFCF9 - 74 14 - je 005afd0f
005AFCFB - 0f b6 86 c6 00 00 00 - movzx eax,byte ptr [esi+000000c6]= 攻方部队最高智力
005AFD02 - 83 e8 05 - sub eax,05
005AFD05 - 3b c1 - cmp eax,ecx (最高智力 – 5) (下限1)
005AFD07 - 7c 0d - jnge 005afd16
005AFD09 - 89 44 24 14 - mov [esp+14],eax
005AFD0D - eb 0b - jmp 005afd1a
005AFD0F - 0f b6 8e c9 00 00 00 - movzx ecx,byte ptr [esi+000000c9]= 攻方部队攻击力
005AFD16 - 89 4c 24 14 - mov [esp+14],ecx [esp+14]= 部队攻击力or(最高智力– 5)
或者是在伏兵伤害数据建构完成后再插入新增算式.
005B0EB3 - e8 b8 ed ff ff - call 005afc70伤害数据建构
005B0EB8 - 83 c4 1c - add esp,1c
005B0EBB - f7 de - neg esi esi=是否暴击
005B0EBD - 1b f6 - sbb esi,esi
005B0EBF - 83 e6 0a - and esi,0a
005B0EC2 - 83 c6 0a - add esi,0a
005B0EC5 - 89 77 14 - mov [edi+14],esi 减少气力量
005B0EC8 - c7 47 70 01 00 00 00 - mov [edi+70],00000001
[edi+0c]=兵力伤害量, [esp+10]=发动伏兵的部队地址.
顺便提供伏兵成功后造成混乱的概率005928C1(30%), 有无暴击都一样,
想要暴击后100%造成混乱还得加些代码, [ebp+10]=是否暴击(1=是, 0=否)
[ 本帖最后由 sergi 于 2010-5-11 20:03 编辑 ] |
-
总评分: + 2
查看全部评分
|