Тема: [Piercing Blow] PROTOCOL_LOBBY_CHATTING_ACK
Показать сообщение отдельно
Непрочитано 25.07.2016, 20:36   #6
Аватар для Sojang
Пользователь

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

Цитата:
Сообщение от Awiion Посмотреть сообщение
Boris2105, Смотри лучше.
Во первых, в Unicode один символ, равен двум.

Во вторых, включи рассудок,

Код:
   WriteH(_message.Length);
   WriteUnicode(_message, _message.Length);
Код:
Write<ushort>(Text.Leneth)
WriteUnicode(Text);
У тебя первый указывает массив, второй столбец записывает.
Записываешь ты не правильно, WriteUnicode по этому используешь +1

Код:
  [OpCode(3087)]
    class SM_LOBBY_CHATTING : WriterPacket
    {
        private Player player;
        private ChatType type;
        private string text;

        public SM_LOBBY_CHATTING(Player player, ChatType type, string text)
        {
            this.player = player;
            this.type = type;
            this.text = text;
        }

        public override WriteImpl()
        {
            Write<int>(player.Id);
            Write<byte>(player.Name.Length);
            WriteUnicode(player.Name);
            Write<byte>(player.Color);
            Write<byte>(type);
            Write<ushort>(text.Length);
            WriteUnicode(text);
        }
    }
оффтоп:
Свернуть ↑Развернуть ↓
Sojang вне форума Ответить с цитированием