Добавлен , опубликован

Краткие сведения

Для игры: Warcraft 3
Тип: Утилита
Сфера применения: работа с данными РО, базы данных
Требования: JNGP, Java 7, руки, мозг
Статус: в разработке
Автор: prog
Данная утилита интегрируется в JNGP экспериментальной сборки и затем при каждом сохранении карты автоматически делает свое грязное дело, а именно собирает данные по всем объектам в РО и использует их для заполнения шаблонов в текстовых описаниях и коде карты.
В частности, эта утилита может быть использована как мощный препроцессор описаний в Редакторе Объектов. А также, как инструмент для автоматической генерации баз данных по объектам в jass-коде.

Общая информация

Принцип работы

Работу утилиты можно условно разделить на четыре этапа:
  • подготовка данных
  • считывание и анализ данных
  • подстановка данных
  • упаковка результатов
Первый и последний пункты возложены на плечи других составляющих JNGP и представляют из себя всего-навсего извлечение из архива карты нужных файлов и помещение измененных файлов обратно в архив карты.
Считывание и анализ данных это расшифровка формата данных об объектах Warcraft 3 и размещение этих данных в памяти утилиты. На этом этапе также происходит категоризация объектов.
А вот подстановка данных представляет из себя достаточно занятный процесс - ранее извлеченные файлы с кодом и строками карты передаются в качестве шаблонов библиотеке FreeMarker, которая и отвечает за всю эту магию.

Ограничения

  • Утилита рассчитана на предоставление ей всех нужных файлов в готовом виде и не занимается их извлечением или обратной упаковкой, поэтому использование ее вне JNGP требует написания обертки, выполняющей все операции с архивом карты.
  • Утилита разрабатывалась без учета возможности работы с кампаниями и не может должным образом функционировать в такой среде.
  • На данный момент утилита адекватно работает только с шаблонами в коде карты, шаблоны в текстовых строках теряются при сохранении, поэтому импорт обработанного файла строк был временно отключен, но его можно импортировать вручную или снять комментарий со строк импорта файла строк в Fly.lua и перезапустить WE.
  • На данный момент отсутствует визуализация процесса обработки данных утилитой.
  • На данный момент нет никакой возможности настроить либо отключить утилиту через меню.
  • На данный момент не гарантируется сохранность данных при использовании утилиты.
  • На данный момент утилите доступны только значения полей, которые отличаются от стандартных.
  • Множество других недоработок

Установка

Подробное описание процедуры установки содержится в руководстве пользователя в соответствующем разделе.

Ссылки

Скачать Java 7
Для нужд обычного пользователя, не занимающегося разработкой на Java с головой хватит JRE.

Благодарности

ScorpioT1000 - за активное участие в обсуждении и помощь с извлечением файлов из архива карты.
Doc - за идею завернуть .jar в .exe для удобства.
А также всем, благодаря кому стала доступной спецификация файлов из архива карты:
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
24
12 лет назад
0
Руководство дополнено разделом с достаточно подробной спецификацией шаблонов. На очереди карта-пример и несколько трюков, не упомянутых в спецификации.
0
24
12 лет назад
0
Запилил exe-враппер. Записи в Path вроде не требует, работает как лаунчер, без включения jar-ника в exe. Не обошлось без побочных эффектов - теперь во время работы утилиты отображается консоль с выводом текста от логгера. Убрать это можно, но пока оставлю как есть - это лучше чем зависание редактора без видимых признаков работы на время обработки данных утилитой.
0
24
12 лет назад
0
В ближайшее время выложу обновленную версию утилиты. Пока нет интерфейса, зато она стала очень быстрой и очень модульной. Заодно был наведен порядок в файлах - теперь данные вынесены в отдельную папку и не пересекаются с файлами самой утилиты.
0
24
12 лет назад
0
Beta 0.2 доступна для скачивания. Также был обновлен раздел "руководство пользователя" - добавлена статья, посвященная созданию учебного примера по применению утилиты.
0
7
12 лет назад
0
а есть проги на подобии xdep? что бы данные из slk конвертировало
0
24
12 лет назад
0
Absol, наверняка есть, но я не занимаюсь разработкой или распространением софта, предназначенного для взлома карт. Поддержка slk данной утилитой планируется, но это наверняка не то что вам нужно.
0
37
12 лет назад
0
Ну как там с доставанием в одно описание данные из другого объекта?
0
24
12 лет назад
0
ScorpioT1000, не совсем тебя понял. Если ты о том, что папку с данными надо было чистить вручную, то как это решить я уже придумал, осталось найти время и реализовать. Утилита получит параметр командной строки, определяющий режим работы и будет вызываться два раза, первый раз перед извлечением данных с параметром clear и второй раз после извлечения данных, на этот раз с параметром compile.
0
37
12 лет назад
0
Причем тут папка, я об основной задаче:
собирает данные по всем объектам в РО и использует их для заполнения шаблонов в текстовых описаниях
Это уже работает?
0
24
12 лет назад
0
ScorpioT1000, теперь понял. Не полостью - проблему синтаксиса я решил, хотя и не самым красивым способом, а вот затирание шаблона при сохранении пока не позволяет считать что эта составляющая работает.
0
37
12 лет назад
0
Ну что там с первоначальной идеей?) когда бета будет? охото пособирать всякие сеты)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.