- 355
- 2
- 17
Добро. Чет совсем голову сломал. Необходимо заспунить моба в определенное время, если он мертв, к примеру в 15:30, если он мертв - призвать, и начать отсчет к следующим 15:30.
Но тут возникло несколько проблема, первая, это определение времени, к примеру можно получить так:
И к примеру, как только left становится ниже или равно 0 = спаунить.
Но в этом же и идёт проблема, что на сегодняшний день, если его убьют, то время так и будет в минусе. Можно было бы булом проверять спаун на сегодня, но это тоже не оптимально, хочется какое-то универсальное решение.
Но тут возникло несколько проблема, первая, это определение времени, к примеру можно получить так:
Java:
Calendar calendar = Calendar.getInstance();
long respawnTime = TimeUnit.HOURS.toMillis(15) + TimeUnit.MINUTES.toMillis(30);
long currentTime = TimeUnit.HOURS.toMillis(calendar.get(Calendar.HOUR_OF_DAY)) + TimeUnit.MINUTES.toMillis(calendar.get(Calendar.MINUTE)) + TimeUnit.SECONDS.toMillis(calendar.get(Calendar.SECOND));
long left = respawnTime - currentTime;
log("Time left %02d:%02d:%02d (%s)",
TimeUnit.MILLISECONDS.toHours(left),
TimeUnit.MILLISECONDS.toMinutes(left) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(left)),
TimeUnit.MILLISECONDS.toSeconds(left) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(left)), left);
И к примеру, как только left становится ниже или равно 0 = спаунить.
Но в этом же и идёт проблема, что на сегодняшний день, если его убьют, то время так и будет в минусе. Можно было бы булом проверять спаун на сегодня, но это тоже не оптимально, хочется какое-то универсальное решение.