десериализация PropertyType.Matrix - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Игровой клиент

Игровой клиент Есть вопросы по поводу редактирования dat, utx и других файлов клиента, пожалуйста, задавайте их здесь.

Ответ
Опции темы
Непрочитано 08.07.2015, 00:19   #1
Аватар для i_am_kisly
Пользователь

Автор темы (Топик Стартер) десериализация PropertyType.Matrix

Нашел у себя ошибку десериализации PropertyType.Matrix, выдает совсем не те результаты, что в L2PE.
В текущей реализации читается подряд 1xMatrix = 4 Plane = 16 Float, но или где-то должен быть offset или хз

Код:
"TerrainMatrix": {
          "XPlane": {
            "V": {
              "X": 14981480000000,
              "Y": 0,
              "Z": 0
            },
            "W": 0
          },
          "YPlane": {
            "V": {
              "X": 0.0078125,
              "Y": 0,
              "Z": 0
            },
            "W": 0
          },
          "ZPlane": {
            "V": {
              "X": 0,
              "Y": 0,
              "Z": 0
            },
            "W": 2
          },
          "WPlane": {
            "V": {
              "X": 0,
              "Y": 0,
              "Z": 0.0078125
            },
            "W": 0
          }
        }
а должно быть



Есть мысли ?
__________________
Минусуя карму, пишите коммент
i_am_kisly вне форума Ответить с цитированием
Непрочитано 08.07.2015, 00:23   #2
Аватар для KID
Пользователь

По умолчанию Re: десериализация PropertyType.Matrix

Код:
{
    "TerrainMatrix": {
        "XPlane": {
            "V": {
                "X": 14981480000000,
                "Y": 0,
                "Z": 0
            },
            "W": 0
        },
        "YPlane": {
            "V": {
                "X": 0.0078125,
                "Y": 0,
                "Z": 0
            },
            "W": 0
        },
        "ZPlane": {
            "V": {
                "X": 0,
                "Y": 0,
                "Z": 0
            },
            "W": 2
        },
        "WPlane": {
            "V": {
                "X": 0,
                "Y": 0,
                "Z": 0.0078125
            },
            "W": 0
        }
    }
}
http://jsonlint.com/
KID вне форума Отправить сообщение для KID с помощью Skype™ Ответить с цитированием
Непрочитано 08.07.2015, 00:38   #3
Аватар для i_am_kisly
Пользователь

Автор темы (Топик Стартер) Re: десериализация PropertyType.Matrix

KID, Смысловое содержание где ? Ну сменил оформление с цитаты на код. Сомневаюсь, что кому-то легче стало
__________________
Минусуя карму, пишите коммент
i_am_kisly вне форума Ответить с цитированием
Непрочитано 08.07.2015, 01:20   #4
Изгнанные

По умолчанию Re: десериализация PropertyType.Matrix

А почему вы не предоставили свой метод чтения Float, возможно у вас ошибка там.
DrHolmes вне форума Ответить с цитированием
Непрочитано 08.07.2015, 09:52   #5
Аватар для KID
Пользователь

По умолчанию Re: десериализация PropertyType.Matrix

i_am_kisly, клоун. сериализуй свой "код" и мой "код" на указанном сайте
KID вне форума Отправить сообщение для KID с помощью Skype™ Ответить с цитированием
Непрочитано 08.07.2015, 09:57   #6
Аватар для i_am_kisly
Пользователь

Автор темы (Топик Стартер) Re: десериализация PropertyType.Matrix

Фишка в том, что эта проблема касается только вложенных свойств.
case PropertyType.Matrix:
- - - - - - - - - - - - {
- - - - - - - - - - - - - - string xPlane = DeserializeDefaultPropertyValue(PropertyType.Plane, ref deserializeFlags);
- - - - - - - - - - - - - - string yPlane = DeserializeDefaultPropertyValue(PropertyType.Plane, ref deserializeFlags);
- - - - - - - - - - - - - - string zPlane = DeserializeDefaultPropertyValue(PropertyType.Plane, ref deserializeFlags);
- - - - - - - - - - - - - - string wPlane = DeserializeDefaultPropertyValue(PropertyType.Plane, ref deserializeFlags);
- - - - - - - - - - - - - - propertyValue += "\"XPlane\":{" + xPlane + "}" +
- - - - - - - - - - - - - - - - ",\"YPlane\":{" + yPlane + "}" +
- - - - - - - - - - - - - - - - ",\"ZPlane\":{" + zPlane + "}" +
- - - - - - - - - - - - - - - - ",\"WPlane\":{" + wPlane + "}";
- - - - - - - - - - - - - - break;
- - - - - - - - - - - - }
- - - - - - - - - - case PropertyType.Plane:
- - - - - - - - - - - - {
- - - - - - - - - - - - - - string w = DeserializeDefaultPropertyValue(PropertyType.FloatProperty, ref deserializeFlags);
- - - - - - - - - - - - - - string v = DeserializeDefaultPropertyValue(PropertyType.Vector, ref deserializeFlags);
- - - - - - - - - - - - - - //string w = DeserializeDefaultPropertyValue(PropertyType.FloatProperty, ref deserializeFlags);
 
- - - - - - - - - - - - - - propertyValue += "\"V\":{" + v + "},\"W\":" + w;
- - - - - - - - - - - - - - break;
- - - - - - - - - - - - }
 
- - - - - - - - - - case PropertyType.Vector:
- - - - - - - - - - - - {
- - - - - - - - - - - - - - string x = DeserializeDefaultPropertyValue(PropertyType.FloatProperty, ref deserializeFlags);
- - - - - - - - - - - - - - string y = DeserializeDefaultPropertyValue(PropertyType.FloatProperty, ref deserializeFlags);
- - - - - - - - - - - - - - string z = DeserializeDefaultPropertyValue(PropertyType.FloatProperty, ref deserializeFlags);
 
- - - - - - - - - - - - - - propertyValue += "\"X\":" + x +
- - - - - - - - - - - - - - - - ",\"Y\":" + y +
- - - - - - - - - - - - - - - - ",\"Z\":" + z;
- - - - - - - - - - - - - - break;
- - - - - - - - - - - - }
 
 
- - - - - - - - - - case PropertyType.FloatProperty:
- - - - - - - - - - - - propertyValue = _Buffer.ReadFloat().ToUFloat();
- - - - - - - - - - - - break;
Code: C#
Добавлено через 3 минуты
_Buffer.ReadFloat() сводится к BinaryReader.ReadSingle()

Добавлено через 56 минут
Цитата:
Сообщение от KID Посмотреть сообщение
i_am_kisly, клоун. сериализуй свой "код" и мой "код" на указанном сайте
Я смотрю ты испытываешь жгучую анальную боль от невалидного json который к делу относится чуть больше, чем никак. И ещё кое что. Это валидация , а не сериализация. Клоун.
__________________
Минусуя карму, пишите коммент

Последний раз редактировалось i_am_kisly; 08.07.2015 в 10:54. Причина: Добавлено сообщение
i_am_kisly вне форума Ответить с цитированием
Ответ


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

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

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

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


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

Вверх