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

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

Ответ
Опции темы
Непрочитано 03.09.2011, 12:35   #1
Аватар для ruslanback
Пользователь

Автор темы (Топик Стартер) Создание предмета со скиллом...

Из имеющихся манулов есть только дабавление скилла в армор или персонажу.А мне надо чтобы использовался при нажатии на предмет и не нужно было надевать на себя,из инвентаря сразу.
ruslanback вне форума Отправить сообщение для ruslanback с помощью ICQ Ответить с цитированием
Непрочитано 03.09.2011, 13:15   #2
Аватар для Azagthtot
Эксперт

По умолчанию Re: Создание предмета со скиллом...

Пишите айтемхандлер
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Непрочитано 03.09.2011, 15:33   #3
Аватар для Gaikotsu
Герой

По умолчанию Re: Создание предмета со скиллом...

дык необязательно. в том же фениксе если вещь неодеваемая, но имеет активный скилл, то скилл будет в списке скиллов персонажа, пока эта вещь в инвентаре.
Gaikotsu вне форума Ответить с цитированием
Непрочитано 07.09.2011, 01:13   #4
Аватар для ruslanback
Пользователь

Автор темы (Топик Стартер) Re: Создание предмета со скиллом...

Наводку дайте как сделать скилл в итем.Где-то в xml?В базе в таблице армор есть специальная графа,но работает только при надевании на себя.
В гугле ввёл и наткнулся на свою тему только...

Добавлено через 13 часов 17 минут
Код:
Index: /java/lt/equal/gameserver/network/clientpackets/AttackRequest.java 
 =================================================================== 
 --- /java/lt/equal/gameserver/network/clientpackets/AttackRequest.java (revision 1) 
 +++ /java/lt/equal/gameserver/network/clientpackets/AttackRequest.java (revision 64) 
 @@ -68,4 +68,7 @@ 
     target.onAction(activeChar); 
    } 
 +  //Invisible Character can't attack 
 +  if (activeChar.getAppearance().getInvisible() && !activeChar.isGM()) 
 +   return;   
    else 
    { 
 Index: /java/lt/equal/gameserver/handler/itemhandlers/InvisiblePotion.java 
 =================================================================== 
 --- /java/lt/equal/gameserver/handler/itemhandlers/InvisiblePotion.java (revision 64) 
 +++ /java/lt/equal/gameserver/handler/itemhandlers/InvisiblePotion.java (revision 64) 
 @@ -0,0 +1,140 @@ 
 +/* 
 + * This program is free software: you can redistribute it and/or modify it under 
 + * the terms of the GNU General Public License as published by the Free Software 
 + * Foundation, either version 3 of the License, or (at your option) any later 
 + * version. 
 + * 
 + * This program is distributed in the hope that it will be useful, but WITHOUT 
 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
 + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 
 + * details. 
 + * 
 + * You should have received a copy of the GNU General Public License along with 
 + * this program. If not, see <http://www.gnu.org/licenses/>. 
 + */ 
 +package lt.equal.gameserver.handler.itemhandlers; 
 + 
 +import lt.equal.Config; 
 +import lt.equal.gameserver.ThreadPoolManager; 
 +import lt.equal.gameserver.handler.IItemHandler; 
 +import lt.equal.gameserver.model.L2ItemInstance; 
 +import lt.equal.gameserver.model.entity.CTF; 
 +import lt.equal.gameserver.model.actor.instance.L2PcInstance; 
 +import lt.equal.gameserver.model.actor.instance.L2PlayableInstance; 
 +import lt.equal.gameserver.network.serverpackets.ActionFailed; 
 +import lt.equal.gameserver.network.serverpackets.MagicSkillUser; 
 + 
 +/** 
 + * @author `Аллигаторы®™ 
 + * 
 + */ 
 + 
 +public class InvisiblePotion implements IItemHandler 
 +{ 
 +    private static final int[] ITEM_IDS = 
 +    { 9996 }; 
 +  
 +    private static final int INVISIBLE_POTION_SKILL = 3267; 
 +  
 +    private static final int EFFECT_DURATION = 1200000; // 20 mins 
 + 
 +    public void useItem(L2PlayableInstance playable, L2ItemInstance item) 
 +    { 
 +  if (!(playable instanceof L2PcInstance)) 
 +   return; 
 +  L2PcInstance activeChar = (L2PcInstance) playable; 
 +   if (activeChar.isHero()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isConfused()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isSilentMoving()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isDead()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isAlikeDead()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isFestivalParticipant()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isInFunEvent()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.inObserverMode()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isInOlympiadMode()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.getPvpFlag() != 0) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if (activeChar.isCastingNow()) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 +   if ((activeChar._inEventCTF && CTF._started && !Config.CTF_ALLOW_POTIONS)) 
 +   { 
 +    activeChar.sendPacket(new ActionFailed()); 
 +   } 
 + 
 +  MagicSkillUser MSU = new MagicSkillUser(playable, playable, 3267, 1, 0, 0); 
 +  activeChar.sendPacket(MSU); 
 +  activeChar.broadcastPacket(MSU); 
 + 
 +  activeChar.getAppearance().setInvisible(); 
 +  activeChar.broadcastUserInfo(); 
 +  activeChar.decayMe(); 
 +  activeChar.spawnMe(); 
 +  activeChar.sendMessage("You Are Now Invisible"); 
 +  activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false); 
 + 
 +  InvisiblePotionStop mp = new InvisiblePotionStop(playable); 
 +  ThreadPoolManager.getInstance().scheduleEffect(mp, EFFECT_DURATION); 
 +    } 
 + 
 +    public class InvisiblePotionStop implements Runnable 
 +    { 
 +  private L2PlayableInstance _playable; 
 + 
 +  public InvisiblePotionStop(L2PlayableInstance playable) 
 +  { 
 +   _playable = playable; 
 +  } 
 + 
 +  public void run() 
 +  { 
 +   try 
 +   { 
 +    if (!(_playable instanceof L2PcInstance)) 
 +     return; 
 + 
 +    ((L2PcInstance) _playable).getAppearance().setVisible(); 
 +    ((L2PcInstance) _playable).sendMessage("You Are Now Visable!"); 
 +    ((L2PcInstance) _playable).broadcastUserInfo(); 
 +   } 
 +   catch (Throwable t) 
 +   { 
 +   } 
 +  } 
 +    } 
 + 
 +    public int[] getItemIds() 
 +    { 
 +  return ITEM_IDS; 
 +    } 
 +} 
 Index: /java/lt/equal/gameserver/handler/ItemHandler.java 
 =================================================================== 
 --- /java/lt/equal/gameserver/handler/ItemHandler.java (revision 59) 
 +++ /java/lt/equal/gameserver/handler/ItemHandler.java (revision 64) 
 @@ -54,4 +54,5 @@ 
  import lt.equal.gameserver.handler.itemhandlers.SpiritShot; 
  import lt.equal.gameserver.handler.itemhandlers.SummonItems; 
 +import lt.equal.gameserver.handler.itemhandlers.InvisiblePotion; 
   
   
 @@ -134,4 +135,5 @@ 
    registerItemHandler(new HeroCustomItem()); 
    registerItemHandler(new ByLeki()); 
 +  registerItemHandler(new InvisiblePotion()); 
   
    _log.config("ItemHandler: Loaded " + _datatable.size() + " handlers.");
Нашёл код скиллана инвиз,нельзя ли полегче чтобы только ид скила указывать и ид предмета?

Добавлено через 23 часа 58 минут
Апппппппп.

Последний раз редактировалось ruslanback; 08.09.2011 в 01:11. Причина: Добавлено сообщение
ruslanback вне форума Отправить сообщение для ruslanback с помощью ICQ Ответить с цитированием
Непрочитано 09.09.2011, 11:06   #5
Аватар для ruslanback
Пользователь

Автор темы (Топик Стартер) Re: Создание предмета со скиллом...

ну напишите.
ruslanback вне форума Отправить сообщение для ruslanback с помощью ICQ Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Призыв монстра с помощью предмета Aaron Архив 4 02.07.2011 11:58
Непонятка с квестом. Вместо одного предмета, даёт 2 или 3. Rus. Работа со скриптами 2 22.01.2010 23:32
Проблема отображение иконки при переноси предмета xJlaIIax Lineage II 3 19.10.2009 23:39
Удалиние предмета ReeMiXeR World of WarCraft 1 30.06.2009 21:10
помогшите решить решить проблему со скиллом avemaria Работа со скриптами 1 23.06.2009 00:14


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

Вверх