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

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

Ответ
Опции темы
Непрочитано 07.10.2012, 02:51   #1
Изгнанные

Автор темы (Топик Стартер) Принцип работы Disarm

Всем привет!

Кто-нибудь сталкивался с этим на ОВ сборках? Что мне хотелось бы узнать- если я хочу например ввести скил, который работал бы как дизарм, но снимал например плащ (это я так, для примера), где мне это смотреть? Просто дизарм запрещает вообще любые действия с инвентарем, а мне допустим надо для моих целей разграничение на разные типы, и скопировать эффект из дизарма с заменой типа снимаемого предмета не получится... Кто-нибудь в курсе?
FullMetal вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 07.10.2012, 03:48   #2
Аватар для Ro_0TT
Супергерой

По умолчанию Re: Принцип работы Disarm

org.mmocore.gameserver.skills.effects.EffectDisarm
	@Override
	public void onStart()
	{
		super.onStart();
		Player player = (Player) _effected;
 
		ItemInstance wpn = player.getActiveWeaponInstance();
		if(wpn != null)
		{
			player.getInventory().unEquipItem(wpn);
			player.sendDisarmMessage(wpn);
		}
		player.startWeaponEquipBlocked();
	}
 
Code: Java
Меняете под свои нужды, как вариант - можно добавить параметр эффекту и использовать его, определяя в каком скиле снимется пуха, а в каком плащ.

Без знаний, конечно, вы ничего толкового не сделаете).
__________________
Ищу работу: Java-разработчик Skype: ro_0tt
Ro_0TT вне форума Отправить сообщение для Ro_0TT с помощью ICQ Отправить сообщение для Ro_0TT с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 07.10.2012, 03:54   #3
Изгнанные

Автор темы (Топик Стартер) Re: Принцип работы Disarm

Цитата:
Сообщение от Ro_0TT Посмотреть сообщение
org.mmocore.gameserver.skills.effects.EffectDisarm
	@Override
	public void onStart()
	{
		super.onStart();
		Player player = (Player) _effected;
 
		ItemInstance wpn = player.getActiveWeaponInstance();
		if(wpn != null)
		{
			player.getInventory().unEquipItem(wpn);
			player.sendDisarmMessage(wpn);
		}
		player.startWeaponEquipBlocked();
	}
 
Code: Java
Меняете под свои нужды, как вариант - можно добавить параметр эффекту и использовать его, определяя в каком скиле снимется пуха, а в каком плащ.

Без знаний, конечно, вы ничего толкового не сделаете).
Ну я вроде писал, что в самом скиле только тип снимаемого снаряжение менять можно, а мне больше интересно как поменять условия блокировки его повторной экипировки, т.к. если это использовать, то блокируется весь инвентарь, что для моих планов ну совсем не подходит внутри Creature вроде как черным по белому написана блокировка оружия и можноЮ казалось бы, просто переписать аналогичный метод, но к сожалению все та же проблема: мы как бы блокируем отдельный тип, но на деле идет блокировка инвентаря
FullMetal вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 07.10.2012, 04:23   #4
Аватар для linliss
Герой

По умолчанию Re: Принцип работы Disarm

Цитата:
Сообщение от FullMetal Посмотреть сообщение
Ну я вроде писал, что в самом скиле только тип снимаемого снаряжение менять можно, а мне больше интересно как поменять условия блокировки его повторной экипировки, т.к. если это использовать, то блокируется весь инвентарь, что для моих планов ну совсем не подходит внутри Creature вроде как черным по белому написана блокировка оружия и можноЮ казалось бы, просто переписать аналогичный метод, но к сожалению все та же проблема: мы как бы блокируем отдельный тип, но на деле идет блокировка инвентаря
boolean can_equip_cloak = true;

при успешном прохождении еффекта can_equip_cloak = false;

при одевании шмотки

if(armorType == cloak && !can_equip_cloak)
return;

при остановке еффекта can_equip_cloak = true;

это самое простое решение
linliss вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 07.10.2012, 04:44   #5
Изгнанные

Автор темы (Топик Стартер) Re: Принцип работы Disarm

Цитата:
Сообщение от linliss Посмотреть сообщение
boolean can_equip_cloak = true;

при успешном прохождении еффекта can_equip_cloak = false;

при одевании шмотки

if(armorType == cloak && !can_equip_cloak)
return;

при остановке еффекта can_equip_cloak = true;

это самое простое решение
Блин. Надо отдохнуть, не додумался сам до этого. Спасибо)
попутно еще один вопрос - где идет непосредственная обработка одевания эквипа?
Смотрел Inventory -> onEquip() но нет, не оно.

Последний раз редактировалось FullMetal; 07.10.2012 в 05:22.
FullMetal вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 07.10.2012, 05:43   #6
Аватар для linliss
Герой

По умолчанию Re: Принцип работы Disarm

Цитата:
Сообщение от FullMetal Посмотреть сообщение
Блин. Надо отдохнуть, не додумался сам до этого. Спасибо)
попутно еще один вопрос - где идет непосредственная обработка одевания эквипа?
Смотрел Inventory -> onEquip() но нет, не оно.
клиентский пакет UseItem
linliss вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 07.10.2012, 07:24   #7
Изгнанные

Автор темы (Топик Стартер) Re: Принцип работы Disarm

Цитата:
Сообщение от linliss Посмотреть сообщение
клиентский пакет UseItem
Не совсем так, скорее вот тут EquipableItem. Сразу не нашел, т.к .искал в ядре, а он зараза в ДП

Спасибо всем кто откликнулся!

P.S. Когда нибудь я найду кнопку "спасибо"
FullMetal вне форума Ответить с цитированием
Сказали спасибо:
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
itamename-e.dat UFODriverr Lineage II 5 28.02.2021 18:17
Поиск работы. Sairus Рынок / Marketplace 0 23.01.2011 20:12
Ищу людей для работы над ядром AU. ViAl Серверная часть 8 04.08.2010 03:55
как сделать чтоб все игроки вначале стартовали в столицах qwertyuiopas World of WarCraft 4 11.07.2009 22:47


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

Вверх