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

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

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

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

PROGRAMMATOR.
У меня как то странно работает данный пакет.
Структура у меня получилось такая.
Код:
10 байт
writeH(); 2 байта длина сообщения в чате
writeS();Само сообщений
writeH();2 байта для анонсера
writeS();Сам анонсер
при этом он у меня выводит какие то иероглифы.
И не можешь подсказать как сменить кадировку на новом клиенте?
Boris2105 вне форума Ответить с цитированием
Непрочитано 18.04.2016, 19:03   #2
Аватар для Awiion

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

Открой иду\олю набери "Arial".... увидишь Unicode
Тык >Unicode<
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Непрочитано 18.04.2016, 20:09   #3
Аватар для PROGRAMMATOR
Администратор

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

Boris2105, не нужно её менять, он понимает Unicode. У тебя просто структура не правильная.

namespace PiercingBlow.Auth.Network.Send
{
    class PROTOCOL_BASE_NOTICE_ACK : Packet
    {
        ServerNotice notice;
 
        public PROTOCOL_BASE_NOTICE_ACK(ServerNotice notice)
        {
            this.notice = notice;
        }
 
        public override void WriteImpl()
        {
            Write<ushort>(0);
            Write<int>(notice.Greeting.Color); 
            Write<int>(notice.Announcement.Color);
            Write<ushort>(notice.Greeting.Text.Length);
            WriteUnicode(notice.Greeting.Text);
            Write<ushort>(notice.Announcement.Text.Length);
            WriteUnicode(notice.Announcement.Text);
        }
    }
}
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 19.04.2016, 13:30   #4
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Boris2105, не нужно её менять, он понимает Unicode. У тебя просто структура не правильная.

namespace PiercingBlow.Auth.Network.Send
{
    class PROTOCOL_BASE_NOTICE_ACK : Packet
    {
        ServerNotice notice;
 
        public PROTOCOL_BASE_NOTICE_ACK(ServerNotice notice)
        {
            this.notice = notice;
        }
 
        public override void WriteImpl()
        {
            Write<ushort>(0);
            Write<int>(notice.Greeting.Color); 
            Write<int>(notice.Announcement.Color);
            Write<ushort>(notice.Greeting.Text.Length);
            WriteUnicode(notice.Greeting.Text);
            Write<ushort>(notice.Announcement.Text.Length);
            WriteUnicode(notice.Announcement.Text);
        }
    }
}
 
Code: C#
не помогло(
Boris2105 вне форума Ответить с цитированием
Непрочитано 19.04.2016, 13:44   #5
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Packet PROTOCOL_BASE_NOTICE_ACK(662)





Скинь код метода WriteS.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 19.04.2016, 14:15   #6
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение




Скинь код метода WriteS.
Код:
protected internal void writeS(string name, int count)
        {
            if (name != null)
            {
                writeB(Encoding.GetEncoding(1251).GetBytes(name));
                writeB(new byte[count - name.Length]);
            }
        }
Boris2105 вне форума Ответить с цитированием
Непрочитано 19.04.2016, 14:18   #7
Аватар для Awiion

По умолчанию Re: Packet PROTOCOL_BASE_NOTICE_ACK(662)

Ну тут типо того

Код:
   public void WriteUnicode(string text, int count)
        {
            if (text != null)
            {
                WriteB(Encoding.GetEncoding(1200).GetBytes(text));
                WriteB(new byte[count - (text.Length * 2)]);
            }
        }
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 19.04.2016, 14:27   #8
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от Awiion Посмотреть сообщение
Ну тут типо того

Код:
   public void WriteUnicode(string text, int count)
        {
            if (text != null)
            {
                WriteB(Encoding.GetEncoding(1200).GetBytes(text));
                WriteB(new byte[count - (text.Length * 2)]);
            }
        }
Спасибо , все работает)
Boris2105 вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Packet Login Boris2105 Point Blank (Piercing Blow) 8 09.04.2016 16:42
Packet structure ManuelDev Point Blank (Piercing Blow) 0 01.04.2016 18:17
Clan members packet nikolen Point Blank (Piercing Blow) 0 24.03.2016 11:09
LoginFail packet linliss Lineage II 10 17.05.2012 15:38
packet samurai shocked Aion 7 17.12.2011 00:00


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

Вверх