PROTOCOL_BASE_GET_USER_INFO_ACK - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Point Blank (Piercing Blow)

Point Blank (Piercing Blow)
Общие вопросы по написанию эмулятора. General questions on developing emulator. При поддержке: Lucera 2 - разработка Java Interlude

Описание темы:MyInfo

Ответ
Опции темы
Непрочитано 21.04.2016, 23:58   #1
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) PROTOCOL_BASE_GET_USER_INFO_ACK

При разборе пакета MyInfo , появляется куча ошибок.
Он не видит ранг и имя клана отображается криво , точнее пара символов.
Код:
Код:
writeBS("000000000000e100030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000200b20000030008000004000800000500000001000000030000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000d0000000000000000000000000000000073007500700070006c0065006d0065006e0074003a0041007000720020003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e25000000d0149d5fd7199f5f00000000000000000113c4ba0a000000000177c4ba0a0000000001b075890900000000015873890900000000014c758909000000000188d55c080000000001824f9d00000000000113c4ba0a000000000177c4ba0a0000000001b075890900000000015873890900000000014c758909000000000188d55c0800000000014c509d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002500000006060200480d57ca6e519e5f00015fe516005fe516405c00000000000000000000000000003700000037000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000040000000800000000000000920000001a0000008d0000000c00000092000000040000000c000000040000000800000000000000920000001a0000008d0000000c0000009200000004000000");
WriteUnicode("GM!Kirito", 33);
WriteD(35);
WriteD(35);
writeBS("59b001008b56000000000000011ffac0f0f000000000000000000000000000bdb600000100000000000000000000000000");
WriteUnicode("Test",16);
writeBS("00000000000000000024");
Boris2105 вне форума Ответить с цитированием
Непрочитано 22.04.2016, 01:22   #2
Пользователь

По умолчанию Re: MyInfo

Цитата:
Сообщение от Boris2105 Посмотреть сообщение
При разборе пакета MyInfo , появляется куча ошибок.
Он не видит ранг и имя клана отображается криво , точнее пара символов.
Код:
Код:
writeBS("000000000000e100030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000200b20000030008000004000800000500000001000000030000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000d0000000000000000000000000000000073007500700070006c0065006d0065006e0074003a0041007000720020003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e25000000d0149d5fd7199f5f00000000000000000113c4ba0a000000000177c4ba0a0000000001b075890900000000015873890900000000014c758909000000000188d55c080000000001824f9d00000000000113c4ba0a000000000177c4ba0a0000000001b075890900000000015873890900000000014c758909000000000188d55c0800000000014c509d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002500000006060200480d57ca6e519e5f00015fe516005fe516405c00000000000000000000000000003700000037000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000040000000800000000000000920000001a0000008d0000000c00000092000000040000000c000000040000000800000000000000920000001a0000008d0000000c0000009200000004000000");
WriteUnicode("GM!Kirito", 33);
WriteD(35);
WriteD(35);
writeBS("59b001008b56000000000000011ffac0f0f000000000000000000000000000bdb600000100000000000000000000000000");
WriteUnicode("Test",16);
writeBS("00000000000000000024");
NICKNAME_LENGTH = OldLength * 2

Encoding = Unicode
Length = _stringLength - _stringText.Length

Код:
protected internal void WriteUnicode(string _stringText, int _stringLength)
        {
            if (_stringText != null)
            {
                WriteB(Encoding.Unicode.GetBytes(_stringText));
                WriteB(new byte[_stringLength - _stringText.Length]);
            }
        }
WriteUnicode("GM!Kirito", 33 * 2);
Aluucard вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 22.04.2016, 02:37   #3
Аватар для Awiion

По умолчанию Re: MyInfo

Все что была в Ascii. В Unicode *2 (связана с тем что на один символ, там 2 байта минимум)

ClanSize 34
NameSize 66
RoomSize 46
PasswordSize 8
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 22.04.2016, 09:39   #4
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: MyInfo

Цитата:
Сообщение от Awiion Посмотреть сообщение
Все что была в Ascii. В Unicode *2 (связана с тем что на один символ, там 2 байта минимум)

ClanSize 34
NameSize 66
RoomSize 46
PasswordSize 8
Спасибо это я понял.
Но исправить все равно не получается.

Код:
  
WriteH(31);
WriteUnicode("Приветствую на тестовом сервере", 31);
WriteH(32);
WriteUnicode("Приветствую на тестовом сервере!", 32);

public void WriteUnicode(string text, int count)
{
    if (text != null)
       {
          writeB(Encoding.GetEncoding(1200).GetBytes(text));
          writeB(new byte[count - (text.Length)]);
}
Но вот так анонсер замечательно работает , без всяких ошибок.

Код:
WriteUnicode("GM!Kirito", 33);
Ник работает , но на символов 12 смещается имя клана и вся остальная информация, что ниже ника.

Код:
WriteUnicode("GM!Kirito", 33 * 2);
А вот этот вариант смещает вообще всю информацию в этом пакете.
Boris2105 вне форума Ответить с цитированием
Непрочитано 22.04.2016, 18:21   #5
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: MyInfo

Потому что GM!Kirito - 9 байт, а пишешь ты его в unicode - 18 байт.

byte[] bytes = Encoding.Unicode.GetBytes(text);
 
writeB(bytes);
writeB(new byte[count - bytes.Length]);
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 22.04.2016, 19:01   #6
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: MyInfo

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Потому что GM!Kirito - 9 байт, а пишешь ты его в unicode - 18 байт.

byte[] bytes = Encoding.Unicode.GetBytes(text);
 
writeB(bytes);
writeB(new byte[count - bytes.Length]);
 
Code: C#
а не мог бы дать структуру, мб я тогда где то ошибся.
Так как вроде все должно работать.
Boris2105 вне форума Ответить с цитированием
Непрочитано 22.04.2016, 20:01   #7
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: MyInfo

Всё как всегда.

WriteUnicode(account.Nickname, AccountModel.NicknameLength);
Write<uint>(account.Rank);
Write<uint>(account.FakeRank);
Write<uint>(account.Point);
Write<uint>(account.Exp);
Write<uint>(0); // ?
Write<byte>(0); // ?
Write<long>(account.NewbieGuideIsDone);
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 22.04.2016, 20:05   #8
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: MyInfo

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Всё как всегда.

WriteUnicode(account.Nickname, AccountModel.NicknameLength);
Write<uint>(account.Rank);
Write<uint>(account.FakeRank);
Write<uint>(account.Point);
Write<uint>(account.Exp);
Write<uint>(0); // ?
Write<byte>(0); // ?
Write<long>(account.NewbieGuideIsDone);
 
Code: C#
а длина ника у тебя тут 33 или 66?
Boris2105 вне форума Ответить с цитированием
Непрочитано 22.04.2016, 20:31   #9
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: PROTOCOL_BASE_GET_USER_INFO_ACK

66 конечно же.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PROTOCOL_BASE_GET_USER_INFO_ACK Aluucard Point Blank (Piercing Blow) 1 16.02.2016 20:08
PROTOCOL_BASE_GET_USER_INFO_ACK Aluucard Point Blank (Piercing Blow) 2 13.02.2016 21:54


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

Вверх