Структура пакета SystemMsg (531 Lindvior) - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 12.02.2017, 11:24   #1
Пользователь

Автор темы (Топик Стартер) Структура пакета SystemMsg (531 Lindvior)

Застрял на данном пакете. Ковыряясь в разных сурсах понял что структура следующая.
Код:
        public MsgParams[] Params { get; set; } - Тут храним параметры
        public struct MsgParams
        {
            public MsgParams(ParamType paramType, object firstValue, object secondValue, object thirdValue)
            {
                ParamType = paramType;
                FirstValue = firstValue;
                SecondValue = secondValue;
                ThirdValue = thirdValue;
            }
            public ParamType ParamType { get; }
            private object FirstValue { get; }
            private object SecondValue { get; }
            private object ThirdValue { get; }
            public int GetTargetObjId => (int) FirstValue;
            public int GetObjId => (int) SecondValue;
            public int GetDmg => (int)ThirdValue;
            public string GetStringValue() => (string)FirstValue;
            public int GetIntValue => (int)FirstValue;
            public long GetLongValue => (long)FirstValue;
            public int[] GetIntArrayValue => (int[])FirstValue;
        }

        public enum ParamType:byte
        {
            Text = 0, Number = 1, NpcName = 2,
            ItemName = 3, SkillName = 4,
            CastleName = 5, ItemCount = 6,
            ZoneName = 7, ItemNameWithAugmentation = 8,
            ElementName = 9, InstanceName = 10,
            StaticObjectName = 11, PlayerName = 12,
            SystemString = 13
        }
------ структура пакета -----------------

WByte(Opcode); пример: 0x62
WInt((int)_msgId); - пример: 53  Присвоено: $s1 ($s2 шт.)
WInt(Params.Length);пример: 2 //Кол-во параметров 
            foreach (var param in Params)
            {
                WByte((byte)param.ParamType);
                // ReSharper disable once SwitchStatementMissingSomeCases
                switch (param.ParamType)
                {
<часть кейсов убрано. интересует только ItemCount и ItemName>
                    case ParamType.ItemCount:
                        WLong(param.GetLongValue);
                        break;
                    case ParamType.ItemName:
                        WInt(param.GetIntValue);
                        break;
                }
Дебаггером смотрел все данные, ид предмета и кол-во записываются в пакет верно и в правильном порядке, но клиент все равно их не видит.
вывод клиента Присвоено: ( шт.).
Уже 4й час мучаю данный пакет и никак не могу понять где я ошибся.

добавляю к пакету параметры следующими методами
Код:
        public static MsgParams GetParamItemName(int itemId)
        {
            return new MsgParams(ParamType.ItemName, itemId, null, null);
        }
        public static MsgParams GetParamItemCount(long itemCount)
        {
            return new MsgParams(ParamType.ItemCount, itemCount, null, null);
        }
Добавлено через 16 минут
Вот почему как только стоит создать тему сразу находишь ошибку... Бред тему можно закрыть
WByte((byte)param.ParamType); заменить на WInt((int)param.ParamType);

Последний раз редактировалось Alay; 12.02.2017 в 11:40. Причина: Добавлено сообщение
Alay вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
systemmsg проблема Emperor Игровой клиент 5 10.09.2016 14:15
Структура пакета Mousepro Lineage II 7 02.04.2014 15:51
systemmsg-e.dat JloJlKa Игровой клиент 23 15.12.2011 20:55
Структура пакета DiagoD Работа со скриптами 0 30.05.2010 18:44
Редактирование systemmsg-e в CT1+ Nytrex Lineage II 19 09.02.2009 00:35


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

Вверх