1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Скрыть объявление

Привет посетитель! У нас на форуме тебе откроются дополнительные разделы, которые скрыты от гостей! А так же ты найдёшь много полезной информации.

L2Emu Unique

Тема в разделе "Флейм", создана пользователем Soanymore, 25 мар 2017.

Метки:
Статус темы:
Закрыта.
  1. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
  2. Daan Raven

    Daan Raven Свой человек Проверенный

    Регистрация:
    7 апр 2015
    Сообщения:
    689
    Симпатии:
    316
    Баллы:
    469
    Там есть readme и usage на английском. В них расписан весь принцип действия и Quick Start Guide.
    Как она работает? Снифает пакеты и отображает их в куда более читабельном виде, используя для этого xml-схемы для каждого протокола (точнее полноценная схема там вроде одна, а остальные наследуются от нее). Ну и как результат, получается цветастый и удобный сниффер пакетов ла2.
     
    Soanymore и Psycho нравится это.
  3. Mifesto

    Mifesto Знающий Проверенный

    Регистрация:
    2 июл 2015
    Сообщения:
    328
    Симпатии:
    168
    Баллы:
    379
    В последнее время отказывается у меня работать с lineage2.com, может неверно настраиваю, но не заходит на ГС и выбивает ошибку в консоли снифера. Пришлось пилить свое, с минимальным функционалом.
    L2Emu Unique, Mifesto,1, 1, 26 мар 2017, 08:22, Форум администраторов игровых серверов, 63364, 5206, png, unknown.png
     
    Последнее редактирование модератором: 26 мар 2017
  4. Rockman

    Rockman Previously Mantra Местный

    Регистрация:
    7 окт 2015
    Сообщения:
    141
    Симпатии:
    38
    Баллы:
    237
    Я его только на фришке смог настроить(к своему проекту пробывал), к оффу чет вообще не подключает, хз что не так делаю.

    P.S я делаю так, беру самурай и потом лог с него запускаю в l2 emu и смотрю. Чтобы не заморачиваться с настройкой.
     
    Последнее редактирование: 26 мар 2017
  5. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    Поделишься?)
     
  6. Mifesto

    Mifesto Знающий Проверенный

    Регистрация:
    2 июл 2015
    Сообщения:
    328
    Симпатии:
    168
    Баллы:
    379
    а нечем, там только база, сегодня начну пилить парсеры.
     
  7. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    Я знаю ты в курсе, хроники Helios, запустил сервер, ввожу логин\пароль все ок, далее выбор сервера, выбираю и он обратно меня выкидывает на ввод логина\пароль, какой пакет за это отвечает?
     
  8. Rockman

    Rockman Previously Mantra Местный

    Регистрация:
    7 окт 2015
    Сообщения:
    141
    Симпатии:
    38
    Баллы:
    237
    Loginfail или новое его название Loginresult. Он изменялся в хелиосе.
     
  9. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    По идее у пакетника io и helios небольшая разница, он должен хотябы до выбора перса заходить с клиента Helios, но у меня почему то обратно выкидывает на окно логина
     
  10. Mifesto

    Mifesto Знающий Проверенный

    Регистрация:
    2 июл 2015
    Сообщения:
    328
    Симпатии:
    168
    Баллы:
    379
    В пакете PlayerAuthResponse необходимо добавить
    Код:
    client.sendPacket(LoginResultPacket.SUCCESS);
    перед отправкой CharacterSelectionInfoPacket

    Структуру пакета где то выкладывали:
    Код:
    public class LoginResultPacket extends L2GameServerPacket
    {
        public static L2GameServerPacket SUCCESS = new LoginResultPacket(0xFFFFFFFF, 0);
        public static L2GameServerPacket SYSTEM_ERROR_LOGIN_LATER = new LoginResultPacket(0, 1);
        public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT = new LoginResultPacket(0, 2);
        public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT2 = new LoginResultPacket(0, 3);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER = new LoginResultPacket(0, 4);
        public static L2GameServerPacket INCORRECT_ACCOUNT_INFO_CONTACT_CUSTOMER_SUPPORT = new LoginResultPacket(0, 5);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER2 = new LoginResultPacket(0, 6);
        public static L2GameServerPacket ACOUNT_ALREADY_IN_USE = new LoginResultPacket(0, 7);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER3 = new LoginResultPacket(0, 8);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER4 = new LoginResultPacket(0, 9);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER5 = new LoginResultPacket(0, 10);
    
        private final int _reason1;
        private final int _reason2;
    
        public LoginResultPacket(int reason1, int reason2)
        {
            _reason1 = reason1;
            _reason2 = reason2;
        }
    
        @Override
        protected final void writeImpl()
        {
            writeD(_reason1);
            writeD(_reason2);
        }
    }
     
    Soanymore нравится это.
  11. Rockman

    Rockman Previously Mantra Местный

    Регистрация:
    7 окт 2015
    Сообщения:
    141
    Симпатии:
    38
    Баллы:
    237
    Этот пакет не давал войти с 64 протокола. Там изменилась структура+ нужно теперь послать о успешном входе в другом пакете.

    UPD: ПОКА ОТВЕЧАЛ ОТВЕТИЛИ) ВЫШЕ
    И про опкод не задудьте, в пакете выше от вынесен.
     
    Последнее редактирование: 26 мар 2017
    Soanymore нравится это.
  12. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    Получаеться раньше Fail был, а щас result?
     
  13. Rockman

    Rockman Previously Mantra Местный

    Регистрация:
    7 окт 2015
    Сообщения:
    141
    Симпатии:
    38
    Баллы:
    237
    да, название можно не менять. Главное структуру новую.
     
    Soanymore нравится это.
  14. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    В пакете PlayerAuthResponse.java, перед
    Код:
    CharacterSelectionInfoPacket csi = new CharacterSelectionInfoPacket(client.getLogin(), client.getSessionKey().playOkID1);
    Добавил:
    Код:
    client.sendPacket(LoginFail.SUCCESS);
    При сборке ругается на:
    Код:
    client.close(new LoginFail(LoginFail.ACCESS_FAILED_TRY_LATER));
    Меняю на:
    Код:
    client.close(null);
    Все ок, теперь пытаюсь зайти:
    ERROR s2c.L2GameServerPacket: Cannot find serverpacket opcode: LoginFail!
     
  15. Rockman

    Rockman Previously Mantra Местный

    Регистрация:
    7 окт 2015
    Сообщения:
    141
    Симпатии:
    38
    Баллы:
    237
    Поменять
    client.close(new LoginFail(LoginFail.ACCESS_FAILED_TRY_LATER));
    на
    client.close(LoginFail.ACCESS_FAILED_TRY_LATER);

    насчет опкода накосячили гдето, возможно в опкодах он у вас loginfailpacket проверьте.
     
    Soanymore нравится это.
  16. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    Код:
    public class LoginFail extends L2GameServerPacket
    {
        public static L2GameServerPacket SUCCESS = new LoginFail(0xFFFFFFFF, 0);
        public static L2GameServerPacket SYSTEM_ERROR_LOGIN_LATER = new LoginFail(0, 1);
        public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT = new LoginFail(0, 2);
        public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT2 = new LoginFail(0, 3);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER = new LoginFail(0, 4);
        public static L2GameServerPacket INCORRECT_ACCOUNT_INFO_CONTACT_CUSTOMER_SUPPORT = new LoginFail(0, 5);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER2 = new LoginFail(0, 6);
        public static L2GameServerPacket ACOUNT_ALREADY_IN_USE = new LoginFail(0, 7);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER3 = new LoginFail(0, 8);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER4 = new LoginFail(0, 9);
        public static L2GameServerPacket ACCESS_FAILED_TRY_LATER5 = new LoginFail(0, 10);
    
        private final int _reason1;
        private final int _reason2;
    
        public LoginFail(int reason1, int reason2)
        {
            _reason1 = reason1;
            _reason2 = reason2;
        }
    
        @Override
        protected final void writeImpl()
        {
            writeD(_reason1);
            writeD(_reason2);
        }
    }
     
  17. Rockman

    Rockman Previously Mantra Местный

    Регистрация:
    7 окт 2015
    Сообщения:
    141
    Симпатии:
    38
    Баллы:
    237
    Если у вас не l2scripts-подобная сборка добавьте опкод

    public class LoginFail extends L2GameServerPacket
    {
    public static L2GameServerPacket SUCCESS = new LoginFail(0xFFFFFFFF, 0);
    public static L2GameServerPacket SYSTEM_ERROR_LOGIN_LATER = new LoginFail(0, 1);
    public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT = new LoginFail(0, 2);
    public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT2 = new LoginFail(0, 3);
    public static L2GameServerPacket ACCESS_FAILED_TRY_LATER = new LoginFail(0, 4);
    public static L2GameServerPacket INCORRECT_ACCOUNT_INFO_CONTACT_CUSTOMER_SUPPORT = new LoginFail(0, 5);
    public static L2GameServerPacket ACCESS_FAILED_TRY_LATER2 = new LoginFail(0, 6);
    public static L2GameServerPacket ACOUNT_ALREADY_IN_USE = new LoginFail(0, 7);
    public static L2GameServerPacket ACCESS_FAILED_TRY_LATER3 = new LoginFail(0, 8);
    public static L2GameServerPacket ACCESS_FAILED_TRY_LATER4 = new LoginFail(0, 9);
    public static L2GameServerPacket ACCESS_FAILED_TRY_LATER5 = new LoginFail(0, 10);

    private final int _reason1;
    private final int _reason2;

    public LoginFail(int reason1, int reason2)
    {
    _reason1 = reason1;
    _reason2 = reason2;
    }

    @Override
    protected final void writeImpl()
    {
    writeC(0x0a);
    writeD(_reason1);
    writeD(_reason2);
    }
    }
     
  18. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    Не все равно на опкод ругаеться
     
  19. Rockman

    Rockman Previously Mantra Местный

    Регистрация:
    7 окт 2015
    Сообщения:
    141
    Симпатии:
    38
    Баллы:
    237
    А у вас есть такой класс?
    ServerPacketOpcodes.java? Посмотрите там. Если такой класс есть?
    Сборка какая?
     
  20. Soanymore

    Soanymore Интересующийся Пользователь

    Регистрация:
    13 июл 2015
    Сообщения:
    139
    Симпатии:
    317
    Баллы:
    263
    /*0x0A*/ LoginFailPacket,
     
Похожие темы
  1. Enmity
    Ответов:
    0
    Просмотров:
    375
  2. Игорь
    Ответов:
    26
    Просмотров:
    1.010
  3. kick
    Ответов:
    10
    Просмотров:
    1.872
  4. Enmity
    Ответов:
    0
    Просмотров:
    330
  5. kick
    Ответов:
    2
    Просмотров:
    393
Загрузка...
Статус темы:
Закрыта.