帖子

Memorial Edition

查看: 24|回复: 1

求助spigot-api设置玩家最大血量的问题

[复制链接]

Lv.3 挖沙工

人气
15 点
金粒
113 粒
宝石
0 颗
爱心
0 颗
钻石
4 颗
贡献
0 点

新人勋章

发表于 昨天 21:37 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有账号?立即注册

x

正在写一个死亡扣除血量上限的功能。
当我使用方法
setPlayerMaxHealth(player, -1)
时血量一直在增加...
代码如下:
  1.     private void  setPlayerMaxHealth(Player player, int change) {
  2.         double currentValue = player.getMaxHealth();
  3.         double newBaseHealth = Math.max(MIN_MAX_HEARTS, Math.min(currentValue + change, MAX_MAX_HEARTS));
  4.         double health = Math.round(newBaseHealth*10) / 10.0;
  5.          player.setMaxHealth(health);
  6.     }
复制代码
第二种实现方法也是一样会增加血量:
  1.     private void setPlayerMaxHealth(Player player, int change) {
  2.         double currentValue = player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue();
  3.         double newBaseHealth = Math.max(MIN_MAX_HEARTS, Math.min(currentValue + change, MAX_MAX_HEARTS));
  4.         double health = Math.round(newBaseHealth*10) / 10.0;
  5.         player.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(health);
  6.     }
复制代码
求大佬解答

男同大王

人气
7 点
金粒
326 粒
宝石
0 颗
爱心
0 颗
钻石
42 颗
贡献
0 点
发表于 1 小时前 | 显示全部楼层
在低版本中,血量显示的是占比而不是真实值,真实血量以SpigotAPI显示的为准。
如果对此不舒适,可以考虑发负的伤害吸收的包,但是这属于黑魔法范畴。
插件搜索:
1000+收录/免登录/全汉化



https://plugin.started.ink/


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我们在努力扩大自己,以靠近,以触及我们自身以外的世界。

Archiver|小黑屋| MCBBS纪念版 ( 新ICP备2024014954号|兵公网安备66010002000149号 )|隐私政策| 手机版

GMT+8, 2024-12-18 11:52 , Processed in 0.096589 second(s), 17 queries , Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2024 MCBBS纪念版 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载

返回顶部