Период регенерации
Хроники: Interlude
Доброго времени суток дорогие друзья! Вникаю в систему регенерации и нихрена толкового пока не получается понять и освоить. -Есть метод - отвечающий за период регенерации (время через которое мы будем регениться) -Он возвращает int значение 3000 (3sec) Моя задача вывести регенерационный период для персонажа отдельно от мобов, что я делаю: Фаза 1: - Создаю переменную int REGEN = 10000(10sec) - Вбиваю условие на проверку (char instanceof L2PcInstance) - Метод теперь возвращает int значение в зависимости от того, кто это: L2Character или же L2PcInstance - Всё работает. Фаза 2: Усложняю задачу с проверкой на то, сидит ли чар. Если сидит, то: [return REGEN - 7000]; //3s Если же чар стоит на месте, то: [return REGEN - 4000]; //6s - Запускаю это дело и вот тут возникает проблема. Персонаж начинает регениться, запускается метод startHpMpRegeneration(); И если я сяду, то метод startHpMpRegeneration() продолжит свой "ход" и будет продолжать регенить с той скоростью, с которой запускался. Иными словами, он игнорирует условие в метооде getRegeneratePeriod() проверку if(player.isSitting()) Вопрос: Каким путём пойти? Как заставить его обрабатывать isSitting()/isMoving() методы, даже тогда, когда сам реген запустился. Т.е. останавливать его, и запускать заново? Спасибо большое! |
Re: Период регенерации
Выставить проверку на каждый промежуток времени
|
Текущее время: 01:56. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot