Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Период регенерации
#1
Хроники: 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() методы, даже тогда, когда сам реген запустился. Т.е. останавливать его, и запускать заново?

Спасибо большое!
Ответ
#2
Выставить проверку на каждый промежуток времени
Мечтаю о [B]-10 000[B] репы :redlol:
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  период 7 печатей/осады Kabanitos 3 1,885 10-18-2011, 09:30 PM
Последний пост: L2scripts-Guard

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)