L2UIUnpack
Распаковывает указанный Interface.xdat в текущую директорию во множество .xml, ожидаемых nwindow.dll.
Пока что поддерживается только CT26 p4. Исходный код доступен тут: https://github.com/07151129/L2UIUnpack Примеры команд для сборки: Код:
$ git clone https://github.com/07151129/L2UIUnpack Код:
$ ./configure Код:
$ ./configure --host=i686-w64-mingw32 --with-xml-prefix=libxml2-2.9.4/build --with-xml-exec-prefix=libxml2-2.9.4/build --enable-static --enable-static-stdlib Код:
$ make https://forum.zone-game.info/showthr...36253&page=114 Желающие могут присылать патчи сюда или на почту, указанную в git. Возможные улучшения: поддержка других версий nwindow, поддержка паковки в xdat, рефакторинг. Небольшая часть описания формата Interface.xdat позаимствована у xdat_editor acmi. |
Re: L2UIUnpack
Спасибо конечно за софт, но такой геморой это компилить на винде что просто жуть.
И остается еще такой момент с DumpSchema его можно использовать для преобразования .xdat прямо в .xsd ? Ибо то что получается из xmlbeans это полный шлак - многие параметры не верно интерпретируются( Особенно енумы, к примеру Direction получается таким Код:
<xs:complexType name="frameType"> Код:
<xs:complexType name="frameType"> Код:
<xs:simpleType name="directionType"> |
Re: L2UIUnpack
У меня не описаны в Schema.xsd значения enum'ов, т.е., например, Drawer определен так:
Код:
<xs:element name="Drawer"> xmlbeans неплохо угадывает типы с опцией -simple-content-types smart, но некоторые типы надо заменить (например, int на short). |
Re: L2UIUnpack
Цитата:
Код:
<xs:complexType name="DrawerType"> Я думаю что лучше чтобы не создавать подобные курьезы, когда одно работает совсем иначе, чем у другого - лучше взять ваш софт за базу. Поскольку в нем там все верно описано, xml получаются именно такими какие они есть в оригинале, и сделать нужно - правильную генерацию в XSD. P.S. Возможно ли увидеть пример переобразования .xdat в схему, хоть 1 элемента к примеру L2UIType Window. Как можно получить Char значение из Код:
list_children.emplace_back(new List<Window>(fdes)); Код:
<xs:complexType name="L2UIType"> Код:
auto el_list = static_cast<List<ElementBase>*>(child.get()); |
Re: L2UIUnpack
Не думаю, что проблема с SaveXML связана с определениями enum'ов в схеме. Когда я пытался экспортировать таким образом интерфейс, у меня были описаны enum'ы в схеме как simple type, но в итоге часть атрибутов типа int и string вообще не экспортировалась; иногда экспортировались синтаксически некорректные xml.
Действительно, enum'ы, определенные как string в схеме отображаются в UIEditor как строки, но сохранение/редактирование у меня по-прежнему работало корректно. Под DumpSchema подразумевался дамп конкретного xdat в набор xml. Пожалуй, стоит переименовать. В любом случае, текущая имплементация L2UIUnpack неплохо подходит для создания схемы (по конкретному xdat; в общем случае это сделать сейчас вряд ли возможно); займусь, как будет время. |
Re: L2UIUnpack
Цитата:
И на счет сохранения xml, если имеются те енумы то и сохраняется вполне сносно, есть конечно еще какие то подводные камни - но зависит от версии движка ( к примеру на GF более стабильно чем на HF). |
Re: L2UIUnpack
Посколько L2 меня давно перестала интересовать, выкладываю патчер для nwindow и схему для HF: https://gist.github.com/07151129/887...5cc494613c7f06
Возможно, патчер необходимо немного подправить. |
Re: L2UIUnpack
Сделайте для Эпилога такое.
|
Текущее время: 12:33. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot