Невидимость - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 31.07.2015, 15:53   #1
Пользователь

Автор темы (Топик Стартер) Невидимость

Доброго дня
Может кто-нибудь сталкивался с подобной проблемой...
В общем когда устанавливаю игроку невидимость, а потом делаю опять видимым - он становится каким-то хе*** неуязвимым

Пробовал устанавливать также и setInvul(false)
Ничего не помогает...
Сборка L2jFrozen

Делаю невидимым так:
Код:
		player.getAppearance().setInvisible();
		player.broadcastUserInfo();
		player.decayMe();
		player.broadcastUserInfo();
		player.spawnMe();
		player.broadcastUserInfo();
видимым так:

Код:
		player.getAppearance().setVisible();
		player.broadcastUserInfo();
player.setIsInvul(false);
И пожалуйста подскажите назначение метода broadcastUserInfo
AndruliKxD вне форума Ответить с цитированием
Непрочитано 01.08.2015, 06:52   #2
Аватар для Gaikotsu
Герой

По умолчанию Re: Невидимость

broadcastUserInfo отправляет самому игроку UserInfo, а окружающим CharInfo
Gaikotsu вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 01.08.2015, 17:27   #3
Аватар для finfan
fin-ex.corp

По умолчанию Re: Невидимость

Цитата:
Сообщение от AndruliKxD Посмотреть сообщение
Доброго дня
Может кто-нибудь сталкивался с подобной проблемой...
В общем когда устанавливаю игроку невидимость, а потом делаю опять видимым - он становится каким-то хе*** неуязвимым

Пробовал устанавливать также и setInvul(false)
Ничего не помогает...
Сборка L2jFrozen

Делаю невидимым так:
Код:
		player.getAppearance().setInvisible();
		player.broadcastUserInfo();
		player.decayMe();
		player.broadcastUserInfo();
		player.spawnMe();
		player.broadcastUserInfo();
видимым так:

Код:
		player.getAppearance().setVisible();
		player.broadcastUserInfo();
player.setIsInvul(false);
И пожалуйста подскажите назначение метода broadcastUserInfo
Алый крестоносец! Чёрт бы меня побрал! Причём здесь инвул? ;D

Покажу пример на эффектах в методе onStart():
//проверяем будущего инвизера на состояние инвиза, если цель уже находится в таком состоянии то незачем ей его давать.
Код:
if(!getTarget().isVisible())
			return false;
//потрясный эффект стелса на инвизера
Код:
targetPlayer.stopAbnormalEffect(AbnormalEffect.STEALTH);
//присваиваем переменной invisible = true
Код:
targetPlayer.getAppearance().setInvisible();
//отсылаем пакет на делит инвизера
Код:
L2GameServerPacket del = new DeleteObject(targetPlayer);
//сбрасываем таргеты и абортим атаку у всех тех мудил, кто нас избивал и калечил
Код:
			for (L2Character target : targetPlayer.getKnownList().getKnownTypeInRadius(L2Character.class, 1000))
			{
				try
				{
					if (target.getTarget() == targetPlayer)
					{
						target.breakAttack();
						target.abortCast();
						target.setTarget(null);
						target.getAI().setIntention(CtrlIntention.IDLE);
					}
					
					if (target instanceof Player)
						target.sendPacket(del);
				}
				catch (NullPointerException e)
				{
					log.warn("Exception found in {} {}",getClass().getSimpleName(),e);
				}
			}
Тадаааааам. Не факт что я предусмотрел всё, например поулчение урона в АОЕ зоне и или Intention порядок, который по логике - тоже должен проверяться. Или ту же атаку (сброс инвиза в момент атаки цели инвизером). Но это уже явно не моё дело.

На будущее: invulnerable (корот. invul) переводится как неуязвимый. Прежде чем задействовать переменные, которые вы явно не знаете, надо посмотреть, где они хотя бы используются, ибо есть вероятность, что там где они используются - будет написан какой-нибудь комментарий, который поможет вам понять что это за переменная.
finfan вне форума Отправить сообщение для finfan с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 01.08.2015, 17:40   #4
Аватар для Zubastic
ZG troll squad

По умолчанию Re: Невидимость

Цитата:
Сообщение от AndruliKxD Посмотреть сообщение
Ничего не помогает...
Цитата:
Сообщение от AndruliKxD Посмотреть сообщение
Сборка L2jFrozen
Вам уже точно ничего не поможет впринципе.
__________________
Zubastic вне форума Ответить с цитированием
Непрочитано 01.08.2015, 17:53   #5
Аватар для KID
Пользователь

По умолчанию Re: Невидимость

Цитата:
Сообщение от Zubastic Посмотреть сообщение
Вам уже точно ничего не поможет впринципе.
почему-же, поможет. посмотреть как реализована команда //invis, должно как минимум натолкнуть на путь истинный. или на путь копи-паста.
KID вне форума Отправить сообщение для KID с помощью Skype™ Ответить с цитированием
Непрочитано 02.08.2015, 03:33   #6
Пользователь

Автор темы (Топик Стартер) Re: Невидимость

Цитата:
broadcastUserInfo отправляет самому игроку UserInfo, а окружающим CharInfo
А можно пожалуйста чуточку подробнее о broadcastUsetinfo / CharInfo?

Цитата:
Сообщение от KID Посмотреть сообщение
почему-же, поможет. посмотреть как реализована команда //invis, должно как минимум натолкнуть на путь истинный. или на путь копи-паста.
В том то и проблема, что в сборке //invis реализован именно так как я написал в первом посте.


Спасибо finfan.
AndruliKxD вне форума Ответить с цитированием
Непрочитано 02.08.2015, 04:49   #7
Пользователь

По умолчанию Re: Невидимость

Попробовал по вашим советам сделать!

У меня сейчас игрок полностью исчезает.. и даже хоть он и в игре, после setVisible() ничего не происходит, он невидимый в прямом смысле этого слова)

А вот как быть с возвращением назад, в видимое состояние - по сути дела в этом и была проблема ранее.. игрок становился уязвимым после того как его опять делал видимым (способом из первого поста).

Последний раз редактировалось slayer48; 02.08.2015 в 06:35.
slayer48 вне форума Отправить сообщение для slayer48 с помощью Skype™ Ответить с цитированием
Непрочитано 02.08.2015, 05:16   #8
Аватар для finfan
fin-ex.corp

По умолчанию Re: Невидимость

Цитата:
Сообщение от slayer48 Посмотреть сообщение
С тем как сделать невидимым разобрался по вашим советам!

А вот как быть с возвращением назад, в видимое состояние - по сути дела в этом и была проблема ранее.. игрок становился уязвимым после того как его опять делал видимым (способом из первого поста).
Код:
targetPlayer.getAppearance().setVisible();
targetPlayer.stopAbnormalEffect(AbnormalEffect.STEALTH);
finfan вне форума Отправить сообщение для finfan с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 02.08.2015, 06:34   #9
Пользователь

По умолчанию Re: Невидимость

Цитата:
Сообщение от finfan Посмотреть сообщение
Код:
targetPlayer.getAppearance().setVisible();
targetPlayer.stopAbnormalEffect(AbnormalEffect.STEALTH);
Не работает...

Я подозреваю что после DeleteObject, должна быть какая-нибудь обратная процедура...
Если сделать тп к игроку который якобы уже вышел из инвиза - его физически просто нет. Он вроде бы должен стоять в этой точке но его нет.

По идее не хватает каких-то вещательных пакетов, которые делают игрока видимым для всех...

Последний раз редактировалось slayer48; 02.08.2015 в 07:43.
slayer48 вне форума Отправить сообщение для slayer48 с помощью Skype™ Ответить с цитированием
Непрочитано 02.08.2015, 17:29   #10
Аватар для n3k0nation
Antihero

По умолчанию Re: Невидимость

Цитата:
Сообщение от slayer48 Посмотреть сообщение
Не работает...

Я подозреваю что после DeleteObject, должна быть какая-нибудь обратная процедура...
Если сделать тп к игроку который якобы уже вышел из инвиза - его физически просто нет. Он вроде бы должен стоять в этой точке но его нет.

По идее не хватает каких-то вещательных пакетов, которые делают игрока видимым для всех...
broadcastCharInfo после того как уберете флаг невидимости.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макросы Itachi Игровой клиент 0 25.07.2010 22:23


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 01:59. Часовой пояс GMT +3.

Вверх