Перейти к содержанию

Redon

Постоялец
  • Публикаций

    202
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент Redon

  1. Кто бы подсказал что я не так сделал не компилица просто Index: /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java =================================================================== --- /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java (revision 12) +++ /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java (revision 12) @@ -0,0 +1,71 @@ +/* + * 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 net.sf.l2j.gameserver.handler; + +import gnu.trove.map.hash.TIntObjectHashMap; + +import java.util.logging.Logger; + +import net.sf.l2j.Config; + +public class VoicedCommandHandler +{ + private static Logger _log = Logger.getLogger(ItemHandler.class.getName()); + + private final TIntObjectHashMap<IVoicedCommandHandler> _datatable; + + public static VoicedCommandHandler getInstance() + { + return SingletonHolder._instance; + } + + protected VoicedCommandHandler() + { + _datatable = new TIntObjectHashMap<>(); + } + + public void registerHandler(IVoicedCommandHandler handler) + { + String[] ids = handler.getVoicedCommandList(); + for (int i = 0; i < ids.length; i++) + { + if (Config.DEBUG) + _log.fine("Adding handler for command " + ids[i]); + _datatable.put(ids[i].hashCode(), handler); + } + } + + public IVoicedCommandHandler getHandler(String voicedCommand) + { + String command = voicedCommand; + if (voicedCommand.indexOf(" ") != -1) + { + command = voicedCommand.substring(0, voicedCommand.indexOf(" ")); + } + if (Config.DEBUG) + _log.fine("getting handler for command: " + command + " -> " + (_datatable.get(command.hashCode()) != null)); + return _datatable.get(command.hashCode()); + } + + public int size() + { + return _datatable.size(); + } + + private static class SingletonHolder + { + protected static final VoicedCommandHandler _instance = new VoicedCommandHandler(); + } +} Index: /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/IVoicedCommandHandler.java =================================================================== --- /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/IVoicedCommandHandler.java (revision 12) +++ /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/IVoicedCommandHandler.java (revision 12) @@ -0,0 +1,28 @@ +/* + * 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 net.sf.l2j.gameserver.handler; + +import java.util.logging.Logger; + +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; + +public interface IVoicedCommandHandler +{ + public static Logger _log = Logger.getLogger(IVoicedCommandHandler.class.getName()); + + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params); + + public String[] getVoicedCommandList(); +} Index: /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/chathandlers/ChatAll.java =================================================================== --- /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/chathandlers/ChatAll.java (revision 11) +++ /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/handler/chathandlers/ChatAll.java (revision 12) @@ -15,5 +15,9 @@ package net.sf.l2j.gameserver.handler.chathandlers; +import java.util.StringTokenizer; + import net.sf.l2j.gameserver.handler.IChatHandler; +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; +import net.sf.l2j.gameserver.handler.VoicedCommandHandler; import net.sf.l2j.gameserver.model.BlockList; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; @@ -38,13 +42,41 @@ public void handleChat(int type, L2PcInstance activeChar, String params, String text) { - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); - - for (L2PcInstance player : activeChar.getKnownList().getKnownPlayers()) - { - if (activeChar.isInsideRadius(player, 1250, false, true) && !BlockList.isBlocked(player, activeChar)) - player.sendPacket(cs); - } - - activeChar.sendPacket(cs); + boolean vcd_used = false; + if (text.startsWith(".")) + { + StringTokenizer st = new StringTokenizer(text); + IVoicedCommandHandler vch; + String command = ""; + + if (st.countTokens() > 1) + { + command = st.nextToken().substring(1); + params = text.substring(command.length() + 2); + vch = VoicedCommandHandler.getInstance().getHandler(command); + } + else + { + command = text.substring(1); + vch = VoicedCommandHandler.getInstance().getHandler(command); + } + + if (vch != null) + { + vch.useVoicedCommand(command, activeChar, params); + vcd_used = true; + } + } + if (!vcd_used) + { + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + + for (L2PcInstance player : activeChar.getKnownList().getKnownPlayers()) + { + if (activeChar.isInsideRadius(player, 1250, false, true) && !BlockList.isBlocked(player, activeChar)) + player.sendPacket(cs); + } + + activeChar.sendPacket(cs); + } } Index: /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/GameServer.java (revision 11) +++ /trunk/aCis_gameserver/java/net/sf/l2j/gameserver/GameServer.java (revision 12) @@ -63,4 +63,5 @@ import net.sf.l2j.gameserver.handler.SkillHandler; import net.sf.l2j.gameserver.handler.UserCommandHandler; +import net.sf.l2j.gameserver.handler.VoicedCommandHandler; import net.sf.l2j.gameserver.idfactory.IdFactory; import net.sf.l2j.gameserver.instancemanager.AuctionManager; @@ -271,4 +272,5 @@ _log.config("SkillHandler: Loaded " + SkillHandler.getInstance().size() + " handlers."); _log.config("UserCommandHandler: Loaded " + UserCommandHandler.getInstance().size() + " handlers."); + _log.config("VoicedCommandHandler: Loaded " + VoicedCommandHandler.getInstance().size() + " handlers."); if (Config.ALLOW_WEDDING)
  2. Какая из команд использовала aCis 310+ и реализовала VoicedCommandHandler а то уже перебрал все возможные варианты
  3. Да круто сказал разверни чужой код а примера нету мне нужна только схема реализации на aCis
  4. Добрый вечер господа не кто не может как реализовать команду типа .menu или .info для aCis
  5. С Соглашусь с данным постом более существенные доказательства! И не надо я паспорт покажу копию сделаю.
  6. Нужны люди для разработки дополнений возможно фиксы Разработка будет вестись на 2-ух типах сборок PTS и Java PTS Будет под классику Java под всякие моды Выбор Исходника сейчас склоняюсь к frozen но могу выслушать и ваше предложения. Interlude Выбираю потому что более сбалансирован в скилах, если есть доводы о других хрониках могу выслушать 95% работы это разработка дополнений по техническому заданию! Языки программирования: python, Java, SQL, другие языки приветствуется з/п сдельная (от выполненных работ) либо процент от дохода выбирать вам!
  7. Если я сейчас скажу что за проект, то тут 90% начнут такое реализовывать!
  8. Требуются люди для разработки игрового проекта в частности Lineage 2 сайт делать буду сам на 1С-Битрикс Нужно 1-2 человека с опытом написания дополнений для серверов la2 ( также Aion, WoW, и.т.д) з/п сдельная (от выполненных работ) либо процент от дохода решать вам Проживание г. Москва Анкета. Имя: Возраст: Опыт: (проекты в которых участвовали) Знание языков программирования:
  9. Правой кнопкой на проект ---> Team ---> Apply Patch Но советую ручками так как строки могут не совпасть! ​Да я думаю все так посоветуют
  10. Redon

    Услуги В Сфере Lineage 2

    http://the-server.ru/ Ув. Посетители! Команда the-server.ru решила уйти из услуг lineage 2, и поэтому мы решили продать данную студию. Что в ходит в сумму: Доменное имя которое зарегистрированный в компании: m-hoster.com Дизайн разработанный студией: o-sentence.com Верстка дизайна: студия закрытая Для покупки обращаться по следующим контактом: ICQ: 20907493 Skype: the-server.ru E-mail: The-Server@bk.ru Так же можем отдать аккаунты от наших контактных данных (ICQ, Skype, E-mail) С вами может остаться рабочий ZeroKill - Евгений (на ваше усмотрение), человек знающий Цена: Договорная Дата:15.11.2012 Автор: Support
  11. Redon

    Услуги В Сфере Lineage 2

    Я на всех форумах про информил что они кидалы
  12. Да это я понимаю я так и сделал просто говорю чтоб знали
  13. Есть не большой баг. Чарам то пользоваться нельзя но вот вещи выкинуть на землю можно!
  14. Так она не работает качай исходы этой защиты и делай под себя есть в шаре исходы полные
  15. Redon

    Услуги В Сфере Lineage 2

    Ну тебе повезло больше!
  16. Redon

    Обвязка

    причем тут sql запрос в сайте есть скрипт под фрозен?
  17. Redon

    Услуги В Сфере Lineage 2

    Что ты у них заказал?
  18. Redon

    Услуги В Сфере Lineage 2

    В данный момент жду от них работу но что то на кидало во похоже посмотрим что будет!! Если до завтрашнего вечера не пришлют то с ними все ясно
  19. Redon

    Lucera 1

    А исходник взять не судьба
  20. Redon

    Сборка

    Есть 2 выхода 1 брать исходы любой команды и переделывать или купить люцеру очень стабильная сборка + Тех поддержка так как над ней еще работают
  21. Redon

    Сборка

    Lucera самый оптимальный вариант
  22. В основном такие ошибки из за не каректной работы клиента Но если сомневаешься вот тебе XML <?xml version='1.0' encoding='utf-8'?> <list maintainEnchantment="true"> <item id="1"> <ingredient id="4037" count="1000"/> <production id="9737" count="1"/> </item> <item id="2"> <ingredient id="6673" count="1000"/> <production id="9738" count="1"/> </item> </list>
×
×
  • Создать...