Сообщений: 231
Тем: 68
Зарегистрирован: Jun 2013
Репутация:
654
Как сделать чтобы после телепорта быть неуязвимым пока не двинешься или через 10 секунд пропадает?
[SRC="java"]player.teleToLocation(Location.coordsRandomize(a.getLocation(), 50, 250));
player.setIsInvul(true);[/SRC]
Вот setIsInvul, а как сделать на время или пока не двинешься или какое-нибудь действие не совершишь?
Сообщений: 2,303
Тем: 24
Зарегистрирован: Sep 2010
Репутация:
5,617
Через ThreadPoolmanager execute таска на снятие инвула.
Сообщений: 226
Тем: 43
Зарегистрирован: Dec 2011
Репутация:
1,008
Всё бы хорошо, но если на setIsInvul/IsInvul завязаны эффекты от скилов (типа УД), то снятие инвула по таску может плохо кончится.
По классике подобную защиту делают при помощи timestamp'ов.
прим. _protectEndTime > GameTimeController.getGameTicks()
Сообщений: 226
Тем: 43
Зарегистрирован: Dec 2011
Репутация:
1,008
Простой вариант я уже предложил. При телепорте ставить отметку времени для "снятия" инвула и никаких тасков не нужно.
Ну вот как Ro_0TT выше показал.
Можно сложнее, но надо понять сперва с чем имеешь дело.
Продемонстрируй кусок кода IsInvul, и, есть ли в статах (Stats) стат INVUL или нечто подобное?
Сообщений: 3,968
Тем: 90
Зарегистрирован: Nov 2010
Репутация:
15,337
Invul - это эффект, в скилах, а не стат.