WoG-英雄无敌III 中文论坛

 找回密码
 英雄注册|Register

QQ登录

只需一步,快速开始

查看: 77|回复: 3

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

[复制链接]
字体大小: 正常 放大

该用户从未签到

发表于 2018-6-10 22:04:20 | 显示全部楼层 |阅读模式
网易微博分享 搜狐微博

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?英雄注册|Register

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

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

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

签到天数: 52 天

连续签到: 1 天

[LV.5]祭司

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

签到天数: 52 天

连续签到: 1 天

[LV.5]祭司

发表于 2018-6-10 22:46:44 | 显示全部楼层
  1. ZVSE
  2. *更改英雄战后获得经验值HOOK byHawaiing-160102
  3. *FU777722 [x1=战斗胜利方(0-1),x2=系统计算的经验值,x3=存储经验值的内存地址 (FU111239-FU111240)

  4. !?BA0;
  5. !!FU111239:P0;
  6. !?BA1;
  7. !!FU111239:P1;

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

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

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

  32. *贤知有您 2016-01-03*
复制代码

签到天数: 367 天

连续签到: 1 天

[LV.9]圣天使

发表于 2018-6-11 09:38:19 | 显示全部楼层
LS威武

话说楼主是想弄指定招魂嘛?
您需要登录后才可以回帖 登录 | 英雄注册|Register

本版积分规则

Archiver|手机版|小黑屋|帮助|WoG英雄无敌中文站|WoG Chinese Fans Forum ( 京ICP备11045332号   

GMT+8, 2018-6-21 23:56 , Processed in 0.187128 second(s), 30 queries , Gzip On, Eaccelerator On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表