Переменная не сбросит, когда команда снова запускается

StackOverflow https://stackoverflow.com/questions/9321676

  •  26-10-2019
  •  | 
  •  

Вопрос

У меня есть кусок кода, который выводит общий опыт игрока.

Проблема в том, что значение 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 и обновляет переменную с новой суммой?

Это было полезно?

Решение

Глядя на expskills, кажется, что играть с опытом вместо уровней - это путь.

Так используйте setTotalExperience() а также getTotalExperience() на данный момент.

Как только вы получите все, что работает, попробуйте добавить поддержку уровней. Может быть, где -то есть конвертер, чтобы преобразовать уровни, чтобы испытать и опыт на уровне? Если нет, вот конверсионные диаграммы.

Другие советы

Если вы не обновите свой Player объект, который выглядит так, как будто он исходит sender он будет держать старые значения, поэтому я проверяю, что sender Приходит с новыми данными.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top