Показать сообщение отдельно
Непрочитано 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™ Ответить с цитированием
Сказали спасибо: