Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Point Blank (Piercing Blow) (https://forum.zone-game.info/forumdisplay.php?f=204)
-   -   Структура PROTOCOL_LOGIN_ACK (https://forum.zone-game.info/showthread.php?t=39931)

Sojang 19.01.2016 22:18

Структура PROTOCOL_LOGIN_ACK
 
Хей.
Подскажите структуру пакета PROTOCOL_LOGIN_ACK
:)

PROGRAMMATOR 19.01.2016 22:32

Re: Структура PROTOCOL_LOGIN_ACK
 
Код:

/**
 * h // ? (0)
 * d // authState
 * d // ? (0)
 *
 * Q // accountId
 * c // accountLoginLength
 * S // accountLogin
 * c // ? (0)
 * c // unknownStringLength (7)
 * S // unknownString (1204021)
 * c // ? (0)
 */

    public enum AuthState : uint
    {
        LOGGED_IN_OK = 0,
        ID_IS_ALREADY_LOGGED_IN = 0x80000101,
        ACCOUNT_IS_STILL_LOGGING_OUT = 0x80000104,
        FAILED_TO_LOGIN = 0x80000106,
        LONG_TIME_IS_INACTIVE = 0x80000107,
        ID_OR_PASSWORD_INCORRECT = 0x80000117,
        PASSWORD_MISMATCH = 0x80000118,
        DELETED_ACCOUNT = 0x80000119,
        UNCONFIRMED_EMAIL = 0x80000120,
        RESTRICTED_REGION = 0x80000123,
    }
 
Code: C#

Принимаю дополнения. :)

Sojang 19.01.2016 22:35

Re: Структура PROTOCOL_LOGIN_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 405558)
Код:

/**
 * h // ? (0)
 * d // authState
 * d // ? (0)
 *
 * Q // accountId
 * c // accountLoginLength
 * S // accountLogin
 * c // ? (0)
 * c // unknownStringLength (7)
 * S // unknownString (1204021)
 * c // ? (0)
 */

    public enum AuthState : uint
    {
        LOGGED_IN_OK = 0,
        ID_IS_ALREADY_LOGGED_IN = 0x80000101,
        ACCOUNT_IS_STILL_LOGGING_OUT = 0x80000104,
        FAILED_TO_LOGIN = 0x80000106,
        LONG_TIME_IS_INACTIVE = 0x80000107,
        ID_OR_PASSWORD_INCORRECT = 0x80000117,
        PASSWORD_MISMATCH = 0x80000118,
        DELETED_ACCOUNT = 0x80000119,
        UNCONFIRMED_EMAIL = 0x80000120,
        RESTRICTED_REGION = 0x80000123,
    }
 
Code: C#

Принимаю дополнения. :)

Спасибо!Разве
Код:

* d // authState
 * d // ? (0)

authState это не long?

PROGRAMMATOR 19.01.2016 22:38

Re: Структура PROTOCOL_LOGIN_ACK
 
0x80000123 - uint, так что думаю не зачем. Другое дело, что писали корейцы, а там может быть всякое.

В ПБ я встречал ulong только в accountId, perkMask и objectId у предметов инвентаря. В Piercing Blow появился ещё NewbieGuideIsDone (это те монетки, что в интерфейсе).

Sojang 19.01.2016 22:45

Re: Структура PROTOCOL_LOGIN_ACK
 
Отправляю клиенту данные:
 
            // opcode 258
            WriteH(0);
            WriteQ(0); // authState
 
            WriteQ(1); // accountId
            WriteC(4); // accountLoginLength
            WriteS("test");
            WriteC(0);
            WriteC(7); // unknownStringLength (7)
            WriteS("1204021");
            WriteC(0);
 
Code: C#
А он ничем не отвечает и так и весит окно в клиенте "Подключение к серверу"

PROGRAMMATOR 19.01.2016 22:59

Re: Структура PROTOCOL_LOGIN_ACK
 
Версия последняя? Да и возможно клиент уже просит другой пакет, например следующий по-счету.

Код:

21:01:10 [Debug] [S:1] PROTOCOL_BASE_CONNECT_ACK [514]
21:01:10 [Debug] [C:1] PROTOCOL_BASE_LOGIN_REQ [257]
21:01:11 [Debug] [S:1] PROTOCOL_MESSENGER_NOTE_LIST_ACK [933]
21:01:11 [Debug] [S:1] PROTOCOL_BASE_LOGIN_ACK [259]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_SYSTEM_INFO_REQ [522] <<
21:01:14 [Debug] [S:1] PROTOCOL_BASE_NOTICE_ACK [663]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_SYSTEM_INFO_ACK [523]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_OPTION_REQ [528]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_OPTION_ACK [529]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_USER_INFO_REQ [524]
21:01:14 [Debug] [S:1] PROTOCOL_SET_REFRESH_MEDAL_SET_ACK [4620]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_USER_INFO_ACK [525]
21:01:14 [Debug] [S:1] PROTOCOL_AUTH_FRIEND_INFO_ACK [786]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_INVEN_INFO_REQ [526]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_INVEN_INFO_ACK [527]
21:01:14 [Debug] [C:1] PROTOCOL_AUTH_GET_POINT_CASH_REQ [1057]
21:01:14 [Debug] [S:1] PROTOCOL_AUTH_GET_POINT_CASH_ACK [1058]
21:01:16 [Debug] [C:1] PROTOCOL_BASE_LOGOUT_REQ [515]
21:01:16 [Debug] [S:1] PROTOCOL_BASE_LOGOUT_ACK [516]


Sojang 19.01.2016 23:03

Re: Структура PROTOCOL_LOGIN_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 405563)
Версия последняя? Да и возможно клиент уже просит другой пакет, например следующий по-счету.

Код:

21:01:10 [Debug] [S:1] PROTOCOL_BASE_CONNECT_ACK [514]
21:01:10 [Debug] [C:1] PROTOCOL_BASE_LOGIN_REQ [257]
21:01:11 [Debug] [S:1] PROTOCOL_MESSENGER_NOTE_LIST_ACK [933]
21:01:11 [Debug] [S:1] PROTOCOL_BASE_LOGIN_ACK [259]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_SYSTEM_INFO_REQ [522] <<
21:01:14 [Debug] [S:1] PROTOCOL_BASE_NOTICE_ACK [663]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_SYSTEM_INFO_ACK [523]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_OPTION_REQ [528]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_OPTION_ACK [529]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_USER_INFO_REQ [524]
21:01:14 [Debug] [S:1] PROTOCOL_SET_REFRESH_MEDAL_SET_ACK [4620]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_USER_INFO_ACK [525]
21:01:14 [Debug] [S:1] PROTOCOL_AUTH_FRIEND_INFO_ACK [786]
21:01:14 [Debug] [C:1] PROTOCOL_BASE_GET_INVEN_INFO_REQ [526]
21:01:14 [Debug] [S:1] PROTOCOL_BASE_GET_INVEN_INFO_ACK [527]
21:01:14 [Debug] [C:1] PROTOCOL_AUTH_GET_POINT_CASH_REQ [1057]
21:01:14 [Debug] [S:1] PROTOCOL_AUTH_GET_POINT_CASH_ACK [1058]
21:01:16 [Debug] [C:1] PROTOCOL_BASE_LOGOUT_REQ [515]
21:01:16 [Debug] [S:1] PROTOCOL_BASE_LOGOUT_ACK [516]


Клиент не последний.Версия немного отличается GAME VER : 2.12.18.151123010.Он вроде не должен просить следующий пакет ибо я отправил пакет коннекта и он запрашивает пакет 257 я ему отвечаю,а он молчит(

PROGRAMMATOR 19.01.2016 23:10

Re: Структура PROTOCOL_LOGIN_ACK
 
Значит ошибка в ответе 259.

Sojang 19.01.2016 23:24

Re: Структура PROTOCOL_LOGIN_ACK
 
Оказалось дело в опкоде,но вот захожу на сервер и приходит пустой пакет
[Info] PacketId = 0 Length = 2116
Это что ещё такое?

PROGRAMMATOR 19.01.2016 23:31

Re: Структура PROTOCOL_LOGIN_ACK
 
А это уже проблема в чтении. Как и раньше, может прилететь несколько пакетов в одном, и например, если там было 2 пакета подряд, вы их декрипнули как один, тогда у второго уже данные будут неверными.

while (received >= 6)
{
    int length = BitConverter.ToUInt16(buffer, 0) & 0x7FFF;
 
    byte[] temp = new byte[length + 2];
    Buffer.BlockCopy(buffer, 2, temp, 0, temp.Length);
 
    BitwiseHelper.Unshift(temp, bits);
 
    packetQueue.Enqueue(new ReceivePacketFrame(this, temp));
    received -= length + 4;
 
    Buffer.BlockCopy(buffer, length + 4, buffer, 0, received); // << Копируем оставшиеся данные в начало буфера
}
 
Code: C#


Текущее время: 23:56. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot