热点推荐

小喇叭+ 发布

01-16 02:17
01-16 02:04
01-13 17:30
查看: 835|回复: 0

[脚本示例] NPC加血加魔的UE修改方法

[复制链接]
avatar

签到天数: 350 天

[LV.8]以坛为家I

7651

主题

255

回帖

31万

积分

司徒主管

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

UID
1
司徒币
260203
传世币
3000
元宝
0
在线时间
266 小时

最佳新人灌水之王

QQ
online_admin 发表于 2022-3-26 04:49:09 | 显示全部楼层 |阅读模式
副题:转生人物实现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改法
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【乱回复灌水将给予禁言处理】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则