我有一段代码可以输出玩家的总体经验。
问题在于,如果实际XP的话,它输出的XP值不会改变。 例如,在50,000级,XP为2,147,483,647。当等级降至4时,XP值保持不变。
if (cmd.getName().equalsIgnoreCase("checkxp")) {
// If person is null, it's not a player!
if (person == null) {
sender.sendMessage("This command can only be used by a player, sorry!");
return false;
} else {
int curxp;
Player player = (Player) sender;
curxp = player.getTotalExperience();
sender.sendMessage("You currently have: " + curxp + " XP!");
return true;
}
}
如何在运行后重置此值,以便重新检查XP并使用新的金额更新变量?
答案 0 :(得分:2)
如果您不更新Player
来自sender
的{{1}}对象,它将保留旧值,因此我会检查sender
是否有新数据。
答案 1 :(得分:1)
看看ExpSkills,看起来玩经验而不是水平是可行的。
现在暂时使用setTotalExperience()
和getTotalExperience()
。
一旦您完成所有工作,请尝试添加对级别的支持。 也许有一个转换器可以将水平转换为经验和体验到水平? 如果没有,这里是conversion charts。