Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Принцип работы Disarm
#1
Всем привет!

Кто-нибудь сталкивался с этим на ОВ сборках? Что мне хотелось бы узнать- если я хочу например ввести скил, который работал бы как дизарм, но снимал например плащ (это я так, для примера), где мне это смотреть? Просто дизарм запрещает вообще любые действия с инвентарем, а мне допустим надо для моих целей разграничение на разные типы, и скопировать эффект из дизарма с заменой типа снимаемого предмета не получится... Кто-нибудь в курсе?:Olen':
Ответ
#2
org.mmocore.gameserver.skills.effects.EffectDisarm
[SRC="java"] @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();
}
[/SRC]

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

Без знаний, конечно, вы ничего толкового не сделаете).
Ответ
#3
Ro_0TT Написал:org.mmocore.gameserver.skills.effects.EffectDisarm
[SRC="java"] @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();
}
[/SRC]

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

Без знаний, конечно, вы ничего толкового не сделаете).

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

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

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

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

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

это самое простое решение
Ответ
#5
linliss Написал:boolean can_equip_cloak = true;

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

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

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

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

это самое простое решение
Блин. Надо отдохнуть, не додумался сам до этого. Спасибо)
попутно еще один вопрос - где идет непосредственная обработка одевания эквипа?
Смотрел Inventory -> onEquip() но нет, не оно.
Ответ
#6
FullMetal Написал:Блин. Надо отдохнуть, не додумался сам до этого. Спасибо)
попутно еще один вопрос - где идет непосредственная обработка одевания эквипа?
Смотрел Inventory -> onEquip() но нет, не оно.
клиентский пакет UseItem
Ответ
#7
linliss Написал:клиентский пакет UseItem

Не совсем так, скорее вот тут EquipableItem. Сразу не нашел, т.к .искал в ядре, а он зараза в ДП Smile

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

P.S. Когда нибудь я найду кнопку "спасибо"
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)