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

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

L2J 11.05.2014 10:26

Неуязвимость после телепорта
 
Как сделать чтобы после телепорта быть неуязвимым пока не двинешься или через 10 секунд пропадает?
player.teleToLocation(Location.coordsRandomize(a.getLocation(), 50, 250));
player.setIsInvul(true);
Code: Java
Вот setIsInvul, а как сделать на время или пока не двинешься или какое-нибудь действие не совершишь?

ANZO 11.05.2014 10:46

Re: Неуязвимость после телепорта
 
Через ThreadPoolmanager execute таска на снятие инвула.

SouthBridge 11.05.2014 15:37

Re: Неуязвимость после телепорта
 
Всё бы хорошо, но если на setIsInvul/IsInvul завязаны эффекты от скилов (типа УД), то снятие инвула по таску может плохо кончится.

По классике подобную защиту делают при помощи timestamp'ов.
прим. _protectEndTime > GameTimeController.getGameTicks()

Ro_0TT 11.05.2014 15:47

Re: Неуязвимость после телепорта
 
Цитата:

Сообщение от SouthBridge (Сообщение 362761)
Всё бы хорошо, но если на setIsInvul/IsInvul завязаны эффекты от скилов (типа УД), то снятие инвула по таску может плохо кончится.

Ну чекайте эффекты, на наличие таковых. Какой-нибудь каунтер ивнулов можно ввести. Все это кривые решения, но довольно быстрый выход из вашей ситуации.

P.s. люцера?

L2J 11.05.2014 15:52

Re: Неуязвимость после телепорта
 
Нет, овер.
А как стандартный тп сделан? Как там идет защита при тп?
Легче наверное накладывать эффект при тп какого-нибудь бафа инвула :D

Ro_0TT 11.05.2014 15:55

Re: Неуязвимость после телепорта
 
Цитата:

Сообщение от L2J (Сообщение 362763)
Нет, овер.
А как стандартный тп сделан? Как там идет защита при тп?

Ну можно добавить доп. параметр какой-нибудь к примеру. Который будет чекаться при проверке цели на атаку/каст.

 
public boolean isBlockedAttack()
{
      _lastAttackTime + Config.INVUL_AFTER_TELEPORT > System.System.currentTimeMillis();
}
 
Code: Java

SouthBridge 11.05.2014 15:58

Re: Неуязвимость после телепорта
 
Простой вариант я уже предложил. При телепорте ставить отметку времени для "снятия" инвула и никаких тасков не нужно.
Ну вот как Ro_0TT выше показал.

Можно сложнее, но надо понять сперва с чем имеешь дело.
Продемонстрируй кусок кода IsInvul, и, есть ли в статах (Stats) стат INVUL или нечто подобное?

Ro_0TT 11.05.2014 16:00

Re: Неуязвимость после телепорта
 
Invul - это эффект, в скилах, а не стат.

SouthBridge 11.05.2014 16:04

Re: Неуязвимость после телепорта
 
Цитата:

Сообщение от Ro_0TT (Сообщение 362766)
Invul - это эффект, в скилах, а не стат.

Ну в общем-то да. Мимо я. Это у меня так сделано, по хардкору, но надежно :redlol:


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

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