lcao 发表于 2018-6-10 22:04:20

【求助】请问有办法获取战斗胜利后杀死敌人的生命值总量么?

本帖最后由 lcao 于 2018-6-10 22:05 编辑

@贤知有您 打算把战斗经验值计算方式,由与生命值挂钩,改成与战斗价值挂钩。

不知道有没有办法通过内存修改实现?谢谢。

贤知有您 发表于 2018-6-10 22:46:06

获得的经验值就是杀死敌人的生命值啊。
改成与战斗价值挂钩的话,你需要遍历一次失败方的堆栈,并依照一定的逻辑来计算杀死的个数乘以其战斗价值。至于怎么计算,你可以参考原版是怎样计算杀死个数HP(比如召唤物是否计算之类)。
要修改内部经验值,需要以下这个HOOK。
里面有个简单的例子可以参考一下。只需要在FU777722下把第三参数的内存值改成你的结果即可。至于计算过程你自己考虑。

贤知有您 发表于 2018-6-10 22:46:44

ZVSE
*更改英雄战后获得经验值HOOK byHawaiing-160102
*FU777722 [x1=战斗胜利方(0-1),x2=系统计算的经验值,x3=存储经验值的内存地址 (FU111239-FU111240)

!?BA0;
!!FU111239:P0;
!?BA1;
!!FU111239:P1;

!?FU111239;
!!SN:L^EraPlugins\erm_hooker.era^/?y1 Ay1/^SetHook^/?y2 Ay1/^UnsetHook^/?y3;
!!SN&x1=0:Ey2/1/4681852/111240; hook at 0047707C=> FU111240
!!SN&x1=1:Ey3/1/4681852;

!?FU111240;
!!SN:X?y1/1;EDI
!!UN:Cy1/4/?y11; =胜利方
!!VRy3:Sy1+8; EBP
!!UN:Cy3/4/?y13;
!!VRy40:Sy13-20;
!!UN:Cy40/4/?y41; =获得经验
!!FU777722:Py11/y41/y40;[联接到FU函数]

!?FU777722;[应用案例]
*x1=战斗胜利方(0-1)(只读)
*x2=系统计算的经验值(只读)
*x3=存储经验值的内存地址(4字节,可读写)
!!FU&x1<0:E;
!!BHx1:N?y1;[胜利方英雄编号]
!!FU&y1<0:E;[可忽略,由于是处理经验,这里必有英雄]
!!HEy1:B0/?z2 E?y2/?y3/1; 英雄名字z2,战前经验y2
!!UN:Cx3/4/1;[修改获得经验为1]
!!VRy4:Sy2+1;
!!IF:M^胜利方英雄=%Z2,战前经验=%Y2
应获得经验=%X2,修改为1,最终总经验=%Y4^;

*贤知有您 2016-01-03*

canary 发表于 2018-6-11 09:38:19

LS威武:good_job:

话说楼主是想弄指定招魂嘛?

zpx02020 发表于 2024-11-4 11:16:13

页: [1]
查看完整版本: 【求助】请问有办法获取战斗胜利后杀死敌人的生命值总量么?

捐赠