Комментарии проекта Fly Data Processor
В связи с изменениями в рефорже и инструментах для работы с картами, эта утилита частично потеряла свою актуальность, но в то же время, возникли новые возможности по её использованию. Перед вами план дальнейшего развития с учетом новых реалий.
0
Голосов: 0
prog - 3 years ago
Edited by
0
Голосов: 0
NazarPunk, так я ушел их искать какраз, а ты уже тут как тут)

Еще есть вот такая штука, но я не знаю что там за статус разработки нынче
3
Голосов: 3
nazarpunk - 3 years ago
3
Голосов: 3
0
Голосов: 0
prog - 3 years ago
0
Голосов: 0
Drulia_san, я бы рекомендовал посмотреть поделия от назарпанка и скорпа здесь на xgm, для начала. Ну и плагин warcraft-vscode к vscode ради простоты его установки и использования. Если vscode, то к нему еще языковой сервер под Lua от sumneko, он имхо, топ среди альтернатив. Остальные сборщики мне не понравились по той или иной причине, так что я не запомнил особо где их видел.
0
Голосов: 0
Drulia_san - 3 years ago
0
Голосов: 0
А что посоветуешь из текущих публичных сборщиков?
0
Голосов: 0
prog - 3 years ago
0
Голосов: 0
Drulia_san, так новая версия Fly Data Processor пока только в планах, о чем и написан пост под которым мы комменты сейчас строчим. А сборщик я свой пока просто не выкладывал, чтоб не получилось как со старым Fly Data Processor, который был выложен слишком сырым, а потом у меня закончилось свободное время.
Будет что-то пригодное к использованию широкой аудиторией - сообщу.
0
Голосов: 0
GetLocalPlayer - 3 years ago
0
Голосов: 0
На хайве и US форумах варкрафта бурги то и дело мне раз 10 советовали именно ceres, юзабилити которого стремилась к нулю, про остальные не слышал.
Ceres давал контроль над процессом сборки через Lua, код карты и сборщика в одном файле. Идея хорошая, но автор ушел в афк.
0
Голосов: 0
Drulia_san - 3 years ago
0
Голосов: 0
prog:
Drulia_san, так фишка хорошо сделанного внешнего сборщика в том, что РО никуда не девается. Разве что кнопку для запуска проверки карты приходится нажимать не в WE, а где-то снаружи, в виде батника или кнопки в среде разработки для кода. Более того, что старая версия моей тулзы о которой этот пост, что новая - обе предназначены именно для работы с РО и кодом одновременно.
Как твоя новая тулза называется? Хочу опробовать
0
Голосов: 0
prog - 3 years ago
0
Голосов: 0
Drulia_san, так фишка хорошо сделанного внешнего сборщика в том, что РО никуда не девается. Разве что кнопку для запуска проверки карты приходится нажимать не в WE, а где-то снаружи, в виде батника или кнопки в среде разработки для кода. Более того, что старая версия моей тулзы о которой этот пост, что новая - обе предназначены именно для работы с РО и кодом одновременно.
0
Голосов: 0
Drulia_san - 3 years ago
Edited by
0
Голосов: 0
prog:
Drulia_san, ceres впервые слышу. При этом среди юзеров xgm знаю минимум 3 разных сборщика помимо моего собственного. И с десяток разных видел за пределами xgm.
Тогда извиняюсь, не слышал про остальные. На хайве и US форумах варкрафта бурги то и дело мне раз 10 советовали именно ceres, юзабилити которого стремилась к нулю, про остальные не слышал. Потому решил что нет достойных сборщиков.
Но в любом случае интегрированный редактор мне ближе к душе, потому что под рукой всегда хочется иметь РО со всеми юнитами, абилками и бафами.
0
Голосов: 0
prog - 3 years ago
0
Голосов: 0
Drulia_san, ceres впервые слышу. При этом среди юзеров xgm знаю минимум 3 разных сборщика помимо моего собственного. И с десяток разных видел за пределами xgm.
0
Голосов: 0
Drulia_san - 3 years ago
Edited by
0
Голосов: 0
в тренде внешние сборщики карты.
Это не так, например ceres wc3 насколько я знаю единственный современный внешний сборщик карт (поправьте если это не так) и он - полный кал, написан на никому ненужном и неизвестном языке rust (может где-то там он нужен и известен в своих кругах, но в нашем юзерспейс сегменте на винде привычнее удобнее и сразу запускаемые утилиты с консольным или графическим интерфейсом из .exe файла (на крайняк python скрипты), нежели то с чем большинство людей даже разобраться как запустить не сможет.
Это я к чему, это я намекаю на то что такие сборщики - просто костыль сделанный на коленке для того чтоб было хоть что-то перед тем как близы сами выкатят решение. Уверен что с выходом нового редактора появится нормальная сборка карт (уже поддерживаются проекты в виде директорий), а пока просто многим приходится довольствоваться тем что есть.
Базовые сведения о возможностях Fly Data Processor.
0
Голосов: 0
MegaBlax - 9 years ago
0
Голосов: 0
(равкоды полей можно посмотреть в РО, если JNGP настроен соответствующим образом)
Как правильно настроить WE, чтоб показывало ?

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

Для игры: Warcraft 3
Тип: Утилита
Сфера применения: работа с данными РО, базы данных
Требования: JNGP, Java 7, руки, мозг
Статус: в разработке
Автор: prog
Данная утилита интегрируется в JNGP экспериментальной сборки и затем при каждом сохранении карты…
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Без твоей тулзы нет смысла делать сборку. А та версия еще даже не бета
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Ну так делай, не жди меня. У меня сейчас туго с временем. Или можешь включить в сборку ту версию что есть сейчас, она довольно стабильная, поддерживает альтернативный синтаксис для выражений в РО и менюшки есть - можно отключить.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Ну че там?
Вон чувак уже мой мод апдейтил xgm.ru/forum/showthread.php?t=30967
думаю делать новую сборку
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Залил ту версию, о которой говорил, только допилил еще меню в ней для JNGP.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Я думаю, это будет дальше. Надо изменить данные до обращения к файлу.
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
У меня сейчас на машине ни средств отладки ни нормального компилятора нет для C/C++.
Есть вероятность что нужная нам функция окажется в storm.dll т.к. карта это по сути mpq архив и, соответственно, работать с ней вар будет как с mpq архивом.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
prog, дебажить можно с вызова msdn.microsoft.com/en-us/library/ms646927%28VS.85%29.aspx
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Для этого нужно для начала разобраться в том как оно работает, потом найти адрес в памяти WE, на который вешать хук и только после этого все возможно начнет крутиться, если только не окажется что повесить хук на момент перед открытием карты невозможно. У тебя есть на это время?
Да, кстати, на кампах исходников гриморы нет, а те что я когда-то нашел в сети могут быть сильно устаревшими и нифига не работать.
Вру, есть ссылка на svn
Могу даже сказать что интересует нас скорее всего wehack.cpp, функция DllMain, а именно та часть где объявляются хуки на функции. Ну и, конечно, нужно продебажить ВЕ чтобы выяснить на какую функцию вешать хук.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
можно попробовать перекомпилять grimoire - добавить туда эвент
и выложить новый jngp...
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Может потому что я не знаю как событие на открытие карты привязать?
Если бы я нашел как это сделать, то все было бы реализовано именно так еще в первой версии утилиты, вот только ничего применимого кроме открытия редактора, сохранения карты и работы с меню я пока не нашел, даже в коде гриморы копался, нет там такого события.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Я не понимаю, на кой черт ты паришься с копированием карты, если можно хранить сурс код wts в другом файле? например, war3mapSource.wts
При открытии карты в редакторе, wehack.lua запустит твою прогу, которая заменит war3map.wts на war3mapSource.wts.
При сохранении карты, твоя прога копирует war3map.wts в сурс, а сам файл компиляет в готовый результат.
Никаких карт не надо.
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Были бы у меня эти два дня)
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Дело в том, что этот софт пишется за 2 дня =\
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Когда физически не остается времени или сил что-то делать после основной работы и личной жизни, то но удивительно что изменений никаких нет, не находишь?
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Это всё треш какой-то, ты уже почти полгода делаешь проект =)
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Да занят я по уши, вон выложил в статьи пару мелких примеров, которые приготовил еще месяц назад и все, времени кодить нет. Бета пока есть только та что с jass кодом работает. В принципе есть еще рабочий вариант, позволяющий использовать вместо конструкции ${x} конструкцию #[x#] или #[x]# чтобы обойти неприятие редактором символа } в описаниях, могу выложить. Только файл war3map.wts надо будет вручную импортировать в карту чтобы увидеть изменения (предварительно сделав копию со старым wts чтобы не потерять шаблоны).
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Ну что там с первоначальной идеей?) когда бета будет? охото пособирать всякие сеты)
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
ScorpioT1000, теперь понял. Не полостью - проблему синтаксиса я решил, хотя и не самым красивым способом, а вот затирание шаблона при сохранении пока не позволяет считать что эта составляющая работает.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Причем тут папка, я об основной задаче:
собирает данные по всем объектам в РО и использует их для заполнения шаблонов в текстовых описаниях
Это уже работает?
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
ScorpioT1000, не совсем тебя понял. Если ты о том, что папку с данными надо было чистить вручную, то как это решить я уже придумал, осталось найти время и реализовать. Утилита получит параметр командной строки, определяющий режим работы и будет вызываться два раза, первый раз перед извлечением данных с параметром clear и второй раз после извлечения данных, на этот раз с параметром compile.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Ну как там с доставанием в одно описание данные из другого объекта?
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Absol, наверняка есть, но я не занимаюсь разработкой или распространением софта, предназначенного для взлома карт. Поддержка slk данной утилитой планируется, но это наверняка не то что вам нужно.
0
Голосов: 0
Absol - 10 years ago
0
Голосов: 0
а есть проги на подобии xdep? что бы данные из slk конвертировало
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Beta 0.2 доступна для скачивания. Также был обновлен раздел "руководство пользователя" - добавлена статья, посвященная созданию учебного примера по применению утилиты.
Небольшой пример шаблона, помогающего избежать прерывания потока из-за лимита операций при заполнении базы.
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
А вот фиг там, не делает он этого, у меня по крайней мере, но это не критично, так что я даже не включил эту директиву в спецификацию - с ней слишком много проблем. Проблема с переносами строк в том, что их генерируется слишком много практически для любого шаблона - библиотека изначально на html рассчитана.
В результате работы этого шаблона будет сгенерировано много функций, отличающихся друг от друга только индексом в имени.
Например, если в качестве тела для этого шаблона вместо комментария поставить ${i}; и ничего больше не менять, то получится несколько функций, в каждой из которых в столбик записаны равкоды не больше чем десяти юнитов (конечно это не валидный jass-код, но зато просто для понимания). На практике, естественно, тело шаблона будет более сложным.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
В данном примере используется директива <compress>, устраняющая все переносы строк и скопления пробелов.
Это не надо - это сделает vJass/cJass оптимизатор.
И выложи что в результате получится ) я немного не понимаю

changelog

  • используется .exe загрузчик, что упрощает установку
  • утилита переведена на модульную архитектуру и поддерживает плагины (на данный момент все базовые плагины собраны в один файл, в дальнейшем это будет изменено)
  • значительно ускорена обработка данных за счет отключения избыточного…
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
конечно не работает
надо <list units as unit>
я вроде эту опечатку в описании уже давно исправил, если нет - скажи где ты такую конструкцию увидел
Ну и как-бы ${ushx} вообще работать не будет - надо ${unit.ushx}, не говоря уже о том что оно не будет работать если поле ushx не было изменено в РО.
0
Голосов: 0
Темак - 10 years ago
0
Голосов: 0
Не работает:
<list units>
call RegisterUnitShadow('${unit}', ${ushx}, ${ushy}, ${ushh}, ${wshw}, "${ushu}")
</list>
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
ScorpioT1000, так и сделаю, надо только придумать чем заменить } для текстовых описаний (именно на этот символ плохо реагирует WE при загрузке файла - он просто игнорирует все что идет после него)
Но этот подход чреват неудобствами, связанными с неоднородностью синтаксиса.
0
Голосов: 0
ScorpioT1000 - 10 years ago
0
Голосов: 0
Ну сделай фильтр, который сначала переводит описания в другой формат =\
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Ввиду несовместимости формата хранения данных в файле wts и шаблонов библиотеки FreeMarker из утилиты временно убирается поддержка текстовых описаний объектов, остаются только шаблоны в коде.
Возможен переход на другую библиотеку компиляции шаблонов или изменение синтаксиса для шаблонов в текстовых описаниях.
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
обнаружен баг, убираю ссылку на скачивание до его исправления
Полная спецификация разновидностей шаблонов для Fly Data processor.
0
Голосов: 0
Темак - 10 years ago
0
Голосов: 0
а как передать рав-код юнита?
эта программа по прежнему позволяет передавать только измененные поля?
Этот раздел предназначен для выкладывания и обсуждения разрабатываемых или требующих дополнительного обдумывания идей. Здесь-же будут размещены все сообщения, касающиеся текущего состояния утилиты.
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Разработка несколько замедлена в связи с большим количеством дел и выходом третьего диабло, но не остановлена. На данный момент идет написание парсера SYLK таблиц для получения данных по стандартным боевым единицам и стандартных значений полей. Также в очередной раз может быть пересмотрена структура хранения данных в памяти и передачи их компилятору шаблонов- существующая не поддерживает ленивую загрузку данных, а загружать данные по всем стандартным юнитам просто на всякий случай не очень эффективно.
Скорее всего не будут поддерживаться стандартные значения текстовых полей или эта возможность будет добавлена позже.
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Введена в тестовом режиме приятная возможность получить доступ к объекту по его строковому равкоду, полученному из поля другого объекта.
Для начала объявим шаблонную переменную
<assign somethg = "A000">
Как видите, это строковая переменная. Ее поведение полностью соответствует ожиданиям - при использовании в выражениях будет возвращено строковое значение со всеми вытекающими последствиями.
До сегодняшнего дня попытка обратиться к полям такой переменной приводила к возникновению ошибки библиотеки FreeMarker, но с недавних пор есть возможность превратить такую строковую переменную в ссылку на соответствующий объект, что позволит обращаться к полям этого объекта. На данный момент такое преобразование происходит при использовании конструкции "категория.переменная" и выполняется успешно только при условии принадлежности объекта к категории.
Обращение к полям объекта можно производить как сразу в конструкции категория.переменная, так и записав ссылку на объект в переменную.
<assign x = "A000">
${abilities.x.name}
равнозначно
<assign x = "A000">
<assign x = abilities.x>
${x}
Пошаговое создание учебной базы данных и использующего ее заклинания с помощью Fly Data Processor.
1
Голосов: 1
prog - 10 years ago
1
Голосов: 1
horhy123, напрямую - нет, для этого нужно с помощью утилиты собрать в базу все данные по модификаторам атаки, а затем написать систему, вычисляющую атаку на основании этих данных.
0
Голосов: 0
horhy123 - 10 years ago
0
Голосов: 0
У меня возник вопрос: Можно ли во время игры узнать текущую силу атаки конкретного юнита, включая баффы и тому подобные модификаторы атаки?
0
Голосов: 0
prog - 10 years ago
0
Голосов: 0
Перерыв. Допишу завтра.