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

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 14.08.2014, 13:52   #1
Аватар для L2J
Пользователь

Автор темы (Топик Стартер) Снятие HAIR если сняли DHAIR

Как сделать чтобы при снятии нижнего аксессуара снимался и верхний?
Сделал в ItemFunctions
        //СВОЙСТВА
        if(item.getTemplate().isSA())
        {
            //СА можно ностиь только с акссесуаром
            if(!player.getOpenSA())
                return new SystemMessage2(SystemMsg.YOU_CANT_EQP_SA);
            if(player.getOpenSA())
                player.sendPacket(new SystemMessage2(SystemMsg.YOU_CAN_EQP_SA));
            //Если слот закрыт, снимает СА.
            if(!player.getOpenSA() && player.getInventory().setPaperdollItem(Inventory.PAPERDOLL_DHAIR, null) != null)
                return new SystemMessage2(SystemMsg.YOU_CANT_EQP_SA);
        }
Code: Java
Но не работает, точнее работает, но часть, 1 и 2 проверка работает, а 3 нет, или не так как мне надо.
L2J вне форума Ответить с цитированием
Непрочитано 14.08.2014, 14:09   #2
Аватар для xTz
Разработчик BDO Emu

По умолчанию Re: Снятие HAIR если сняли DHAIR

if(!player.getOpenSA())
return new SystemMessage2(SystemMsg.YOU_CANT_EQP_SA);
тут ретурн так какого дальше идет проверка if(!player.getOpenSA() ?
xTz вне форума Ответить с цитированием
Непрочитано 14.08.2014, 14:29   #3
Аватар для L2J
Пользователь

Автор темы (Топик Стартер) Re: Снятие HAIR если сняли DHAIR

Разве не может быть несколько ретурнов?
Вот например код не мой:
// Плащи
		if(item.getTemplate().isCloak())
		{
			// Can be worn by Knights or higher ranks who own castle
			if(item.getName().contains("Knight") && (player.getPledgeClass() < Player.RANK_KNIGHT || player.getCastle() == null))
				return new SystemMessage2(SystemMsg.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM);
 
			// Плащи для камаэлей
			if(item.getName().contains("Kamael") && player.getRace() != Race.kamael)
				return new SystemMessage2(SystemMsg.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM);
 
			// Плащи можно носить только с S80 или S84 сетом
			if(!player.getOpenCloak())
				return new SystemMessage2(SystemMsg.THE_CLOAK_CANNOT_BE_EQUIPPED_BECAUSE_A_NECESSARY_ITEM_IS_NOT_EQUIPPED);
		}
Code: Java
L2J вне форума Ответить с цитированием
Непрочитано 14.08.2014, 14:40   #4
Аватар для xTz
Разработчик BDO Emu

По умолчанию Re: Снятие HAIR если сняли DHAIR

Ретурнов может быть много но одну и тужуе проверк сувать в ретурн и после ретурна немного туповато ибо она всегда в ретурн будет уходить.

Добавлено через 2 минуты
либо последнюю проверку подымите над первой внутри ифа тогда будет логичнее

Последний раз редактировалось xTz; 14.08.2014 в 14:42. Причина: Добавлено сообщение
xTz вне форума Ответить с цитированием
Непрочитано 14.08.2014, 14:46   #5
Аватар для L2J
Пользователь

Автор темы (Топик Стартер) Re: Снятие HAIR если сняли DHAIR

Проверка не одна и та же, if(!player.getOpenSA())
return new SystemMessage2(SystemMsg.YOU_CANT_EQP_SA);
Вторая
if(player.getOpenSA())
player.sendPacket(new SystemMessage2(SystemMsg.YOU_CAN_EQP_SA));

Добавлено через 9 минут
Может нужно делать проверку не в ItemFunctions?

Добавлено через 21 минуту
Действительно, сделал через Inventory
case ItemTemplate.SLOT_DHAIR:
				pdollSlot = PAPERDOLL_DHAIR;
                setPaperdollItem(Inventory.PAPERDOLL_HAIR, null);
				break;
Code: Java

Последний раз редактировалось L2J; 14.08.2014 в 15:07. Причина: Добавлено сообщение
L2J вне форума Ответить с цитированием
Непрочитано 14.08.2014, 17:20   #6
Аватар для Donatte
Герой

По умолчанию Re: Снятие HAIR если сняли DHAIR

Цитата:
Сообщение от L2J Посмотреть сообщение
Действительно, сделал через Inventory
Так этот класс и предназначен исключительно для этого, и полностью отвечает за обработку всех событий со слотами в инвентаре.
__________________
Родился, живу и когда-нибудь умру.
Donatte вне форума Ответить с цитированием
Сказали спасибо:
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Продам] Gracia Part 2 L2Dream PaInKiLlEr Рынок / Marketplace 10 04.06.2010 00:18
Настройка Ip - адресов не работает(( HaCkiY Lineage II 25 21.02.2010 10:51
Проблема с коннектом Illum Lineage II 2 01.02.2010 20:57
ГМ команды PROGRAMMATOR Документация 44 19.12.2009 21:39
CT1 Kamael Tonchi Lineage II 4 30.01.2008 23:54


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

Вверх