Неуязвимость после телепорта
Как сделать чтобы после телепорта быть неуязвимым пока не двинешься или через 10 секунд пропадает?
player.teleToLocation(Location.coordsRandomize(a.getLocation(), 50, 250)); player.setIsInvul(true);Вот setIsInvul, а как сделать на время или пока не двинешься или какое-нибудь действие не совершишь? |
Re: Неуязвимость после телепорта
Через ThreadPoolmanager execute таска на снятие инвула.
|
Re: Неуязвимость после телепорта
Всё бы хорошо, но если на setIsInvul/IsInvul завязаны эффекты от скилов (типа УД), то снятие инвула по таску может плохо кончится.
По классике подобную защиту делают при помощи timestamp'ов. прим. _protectEndTime > GameTimeController.getGameTicks() |
Re: Неуязвимость после телепорта
Цитата:
P.s. люцера? |
Re: Неуязвимость после телепорта
Нет, овер.
А как стандартный тп сделан? Как там идет защита при тп? Легче наверное накладывать эффект при тп какого-нибудь бафа инвула :D |
Re: Неуязвимость после телепорта
Цитата:
public boolean isBlockedAttack() { _lastAttackTime + Config.INVUL_AFTER_TELEPORT > System.System.currentTimeMillis(); } |
Re: Неуязвимость после телепорта
Простой вариант я уже предложил. При телепорте ставить отметку времени для "снятия" инвула и никаких тасков не нужно.
Ну вот как Ro_0TT выше показал. Можно сложнее, но надо понять сперва с чем имеешь дело. Продемонстрируй кусок кода IsInvul |
Re: Неуязвимость после телепорта
Invul - это эффект, в скилах, а не стат.
|
Re: Неуязвимость после телепорта
Цитата:
|
Текущее время: 16:51. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot