|
副题:转生人物实现HP'=HP+HP/10+1和MP'=MP+MP/10+1
两个地方需要需要修改
1部分:
原来:004C0A92 668B80C8010000
替换:004C0A92 E829BC0400 call 0050C6C0
004C0A97 90 nop
004C0A98 90 nop
解释:
在:004C0A92加了一个CALL--子程序(实现HP'=HP+HP/10+1和MP'=MP+MP/10+1的)
为什么加在这里呢??? 而不能加在其他地方, 这个是关键 :)
我的基础一般,所以就这样大概说一下:
~~~~~~~~~~~~~~这里省略N个字节~~~~~~~~~
:004C0A59 8B45FC mov eax, dword ptr [ebp-04]
:004C0A5C 668B4044 mov ax, word ptr [eax+44]
:004C0A60 8B55FC mov edx, dword ptr [ebp-04]
:004C0A63 660382C0010000 add ax, word ptr [edx+000001C0]
:004C0A6A 8B55FC mov edx, dword ptr [ebp-04]
:004C0A6D 668982A8010000 mov word ptr [edx+000001A8], ax --- HP
:004C0A74 8B45FC mov eax, dword ptr [ebp-04]
:004C0A77 668B4046 mov ax, word ptr [eax+46]
:004C0A7B 8B55FC mov edx, dword ptr [ebp-04] 内容来自dedecms
:004C0A7E 660382C2010000 add ax, word ptr [edx+000001C2]
:004C0A85 8B55FC mov edx, dword ptr [ebp-04]
:004C0A88 668982AA010000 mov word ptr [edx+000001AA], ax --- MP
:004C0A8F 8B45FC mov eax, dword ptr [ebp-04] ---
我估计上面是读人物数据HP,MP的,
原来不改的M2在这段代码后面还有很多因素影响HP和MP......
所以就在这里加,偶基础差,也没时间去学分析,有的话,我相信自己的能力。
马马乎乎测试了一下,带"魔血类","护身"的,吃苹果....都很正常~~~
:004C0A92 E829BC0400 call 0050C6C0 --- (就是下面的代码)
:004C0A97 90 nop
:004C0A98 90 nop
2部分:(实现HP'=HP+HP/10+1和MP'=MP+MP/10+1的CALL,已经发过相关详细的帖子,就简单说一下)
0050C6C0-80783501 cmp byte ptr [eax+35],01 --- 转生判断
0050C6C4-754A JNE 0050C710 --- 未转,跳正常
0050C6C6-8B45FC mov eax, dword ptr [ebp-04]
0050C6C9-0FB780A8010000 movzx eax, word ptr [eax+1A8]
0050C6D0-B90A000000 mov ecx, 0000000A --- HP的被除数,变量,可以自己定,这里是16进制0A(既10) 本文来自织梦
0050C6D5-33D2 xor edx, edx
0050C6D7-F7F1 div ecx
0050C6D9-40 inc eax
0050C6DA-8945D0 mov dword ptr [ebp-30], eax
0050C6DD-8B45FC mov eax, dword ptr [ebp-04]
0050C6E0-668B55D0 mov dx, word ptr [ebp-30] --- 这里[ebp-30]作临时寄存器,可多次调用(猫猫教的)
0050C6E4-660190A8010000 add word ptr [eax+1A8], dx --- 以上完成:HP'=HP+HP/10+1,如:转生了的46级武士,HP'=856+856/10+1=942 (856/10运算只取商,余数不要), MP的忘记原来是多少,反正不会错
0050C6EB-8B45FC mov eax, dword ptr [ebp-04] MP的,同上~~~~~~~~
0050C6EE-0FB780AA010000 movzx eax, word ptr [eax+1AA]
0050C6F5-B90A000000 mov ecx, 0000000A
0050C6FA-33D2 xor edx, edx
0050C6FC-F7F1 div ecx
0050C6FE-40 inc eax
0050C6FF-8945D0 mov dword ptr [ebp-30], eax
0050C702-8B45FC mov eax, dword ptr [ebp-04]
0050C705-668B55D0 mov dx, word ptr [ebp-30] --- 这里[ebp-30]作临时寄存器
0050C709-660190AA010000 add word ptr [eax+1AA], dx --- 以上HP段以后的完成了:MP'=MP+MP/10+1 本文来自织梦
0050C710-8B45FC mov eax, dword ptr [ebp-04]
0050C713-668B80C8010000 mov ax, word ptr [eax+1C8]
0050C71A-C3 RET --- 返回
UE:
1:(OFFSET:004C0A6A)
查找:668B80C8010000
替换:E829BC04009090
2:(OFFSET:0106AC0)
查找:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
替换:80783501754A8B45FC0FB780A8010000B90A00000033D2F7F1408945D08B45FC668B55D0660190A80100008B45FC0FB780AA010000B90A00000033D2F7F1408945D08B45FC668B55D0660190AA0100008B45FC668B80C8010000C3 |
上一篇:人形怪物样子的appy的探究下一篇:飞到任意在线玩家身边的GM命令(汇编)+UE改法
|