- Баллы
- 103
Когда игрок атакует моба, его полоска экспы опускается до нуля, а потом со временем набирается полностью. Всё отлично работает, когда игрок на сервере один, но если, допустим, я ударю моба, а потом через 1 секунду другой игрок ударит моба, то когда моя полоска наберётся, то его остановится на месте, где она была, так никогда и не дойдя до конца. Что делать? Вот код scheduler'a:
Код:
int countdown;
public void setCooldown(final Player p, final double t)
{
p.setExp((float)0.0);
countdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable()
{
@Override
public void run()
{
if(p.getExp() < (float)0.99)
{
p.setExp((float) (p.getExp() + (1F /(t * 20))));
}
else
{
p.setExp((float)0.99);
Bukkit.getScheduler().cancelTask(countdown);
}
}
}, 1, 1);
}