首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给玩家经验

给玩家经验
EN

Stack Overflow用户
提问于 2018-08-07 01:25:00
回答 1查看 840关注 0票数 1

当一个玩家获得一半的经验时,我试着在魔法中编码。因此,无论他们是什么级别,他们将得到xp,使他们一半的方式到下一个水平。

我试过使用player.setExp(50);,但这不起作用,有时它会在一边创建第二个xp条,看起来有点故障。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-07 02:26:11

从API中,我强调:

​(浮点exp) 将玩家当前的经验点设置到下一个级别。 ,这是一个百分比值。0是“没有进展”,1是“下一个级别”。 参数: exp -新体验点

因此,如果您想将玩家设置为半级体验,那么请使用:player.setExp(0.5f);

编辑以解决来自Kerooker的评论:

你的问题还不太清楚,但如果你想要恢复在施咒时所使用的经验的一半,那么就这样做吧:

代码语言:javascript
复制
//On the enchantment event use this to find the total cost of the enchant:
int originalCost = event.getExpLevelCost();

//Now update the cost to be half of that and you are all done:
event.setExpLevelCost​(int originalCost / 2);

有许多不同的方法可以做到这一点,例如,您可以使用int totalEXP = player.getTotalExperience();之前的附魔,然后使用player.giveExp​((totalEXP - player.getTotalExperience()) /2);后,以回馈准确一半的经验使用。请参阅下面的两个API链接。

来源:

https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Player.html

https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/enchantment/EnchantItemEvent.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51717587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档