GhostRider 14 Опубликовано 24 июня, 2011 Привет, вот нечего мне делать и вот я решил подымать под Форум - Ядро Начну с простого.Голосовая команда вида [.pmoff/.pmon] в игре.Кто не догадался - это блокировка ПМ сообщений в игре. Сделано под L2J-Frozen. И так....пожалуй начнем?Буду делать пошагово, что бы новички поняли что к чему и куда ) Я использую компилятор Eclipse.Исходник уже залит. 1.Идем в: /com/l2jfrozen/gameserver/handler/voicedcommandhandlers - Здесь будет размещен как бы самая команда; 2.Добавляем новый файл pmoff.java // теперь путь должен быть такой /com/l2jfrozen/gameserver/handler/voicedcommandhandlers/pmoff.java 3.Добавим сам код в файл pmoff.java (Смотрите спойлер) Скрытый текст package com.l2jfrozen.gameserver.handler.voicedcommandhandlers; import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; /** * L2Maxi.ru * True Portal */ public class pmoff implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { "pmoff", "pmon" }; public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if (command.startsWith("pmoff")) { activeChar.setMessageRefusal(true); activeChar.sendMessage("ПМ Заблокирован"); } if (command.startsWith("pmon")) { activeChar.setMessageRefusal(false); activeChar.sendMessage("ПМ Разблокирован"); } return true; } public String[] getVoicedCommandList() { return VOICED_COMMANDS; } } Ага, если у Вас другая сборка просто смените импотры. 4.Идем дальше?? Теперь идем по пути: /com/l2jfrozen/gameserver/handler Открываем и видим файлик: VoicedCommandHandler.java - конечно же зайдем в него. Добавляем в иморты строчку: import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.pmoff; Теперь перед строчкой _log.config("VoicedCommandHandler: Loaded " + _datatable.size() + " handlers."); Просто пропишем: registerVoicedCommandHandler(new pmoff()); 5.Вроде бы все.Компилируем, пробуем в игре. Напомню, что написал специально для новичков.Ежели есть ошибки прошу исправить Если что то непонятно, пишите, все опишу 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
kartes12 259 Опубликовано 17 декабря, 2013 ахахаххаха =) а команду .online запилть не смог П.С. знаю что говорю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GhostRider 14 Опубликовано 17 декабря, 2013 ахахаххаха =) а команду .online запилть не смог П.С. знаю что говорю для таких как ты пилить не буду) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 18 декабря, 2013 Может нужно еще добавит кон-фиг? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 18 декабря, 2013 Ну и Может нужно еще добавит кон-фиг? Нужно не в конфиги добавлять, а еще 2 метода в ПсИнтсанс и переменную + проверку на входящие сообщения делать. А тут только команда, которая не будет работать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
kanutoiiika 17 Опубликовано 18 декабря, 2013 (изменено) И так....пожалуй начнем?Буду делать пошагово, что бы новички поняли что к чему и куда ) Я использую компилятор Eclipse.Исходник уже залит. что бы новички поняли Eclipse компилятор... что бы новички поняли Eclipse компилятор... что бы новички поняли Eclipse компилятор.... что бы новички поняли Eclipse компилятор... Изменено 18 декабря, 2013 пользователем kanutoiiika Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 18 декабря, 2013 Ну и Нужно не в конфиги добавлять, а еще 2 метода в ПсИнтсанс и переменную + проверку на входящие сообщения делать. А тут только команда, которая не будет работать. activeChar.setMessageRefusal() А Это тогда что ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 18 декабря, 2013 activeChar.setMessageRefusal() А Это тогда что ? Именно его и нужно будет добавить + getMessageRefusal(), на получение переменной ну и объявить саму булевскую переменную в классе. Дальше нам нужно найти класс в котором будем делать запрет, логичнее всего в пакетах это сделать и добавляем проверку на ИД чата и getMessageRefusal. А то что тут написано, всего лишь реализация хандлера, который будет понимать сервер, но ничего делать не будет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 18 декабря, 2013 (изменено) Именно его и нужно будет добавить + getMessageRefusal(), на получение переменной ну и объявить саму булевскую переменную в классе. Дальше нам нужно найти класс в котором будем делать запрет, логичнее всего в пакетах это сделать и добавляем проверку на ИД чата и getMessageRefusal. А то что тут написано, всего лишь реализация хандлера, который будет понимать сервер, но ничего делать не будет. ВЫ НЕПРАВЫ! Данный Код полностью работоспособен. Изменено 18 декабря, 2013 пользователем LifeGame32 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 18 декабря, 2013 ВЫ НЕПРАВЫ! Данный Код полностью работоспособен. Вы хотите со мной поспорить? Давайте я вам исходы дам, а вы реализуете команду по этому "мануалу"? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 18 декабря, 2013 Мне ваши исходы не нужны ! Есть лыжа L2J. И данный код станет как родной +- мелочь. Даже сборку компилировать не придерется. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 18 декабря, 2013 Мне ваши исходы не нужны ! Есть лыжа L2J. И данный код станет как родной +- мелочь. Даже сборку компилировать не придерется. Есть и палка, а что дальше? Вы упёрлись, что это весь код который нужен. Так сделайте мне по мануалу, я даже заплачу вам, но на моих исходах=) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 18 декабря, 2013 Есть и палка, а что дальше? Вы упёрлись, что это весь код который нужен. Так сделайте мне по мануалу, я даже заплачу вам, но на моих исходах=) Вы начинаете съезжать ТС написал мануал и указал конкретно сборку и как сделать. И если данный код не станет на другую сборку это уже ваши проблемы. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 18 декабря, 2013 Вы начинаете съезжать ТС написал мануал и указал конкретно сборку и как сделать. И если данный код не станет на другую сборку это уже ваши проблемы. А это к чему тогда? Ага, если у Вас другая сборка просто смените импотры. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 18 декабря, 2013 (изменено) А это к чему тогда? Ага, если у Вас другая сборка просто смените импотры. Мда эти слова ТС я упустил . Вобщем все упирается в реализацию метода MessageRefusal в сборке. Изменено 18 декабря, 2013 пользователем LifeGame32 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 18 декабря, 2013 Мда эти слова ТС я упустил . Я всё понимаю, но под мануалом подрузамевается универсальная инструкция, которая подходить под 90% продукта. А это можно назвать наработкой. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты