Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Период регенерации (https://forum.zone-game.info/showthread.php?t=32801)

finfan 02.12.2013 22:51

Период регенерации
 
Хроники: 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() методы, даже тогда, когда сам реген запустился. Т.е. останавливать его, и запускать заново?

Спасибо большое!

Leonardo.od1 02.12.2013 23:07

Re: Период регенерации
 
Выставить проверку на каждый промежуток времени


Текущее время: 01:56. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot