Комментарии проекта Fly Data Processor
11

Статус и план дальнейшего развития утилиты

» Fly Data Processor
В связи с изменениями в рефорже и инструментах для работы с картами, эта утилита частично потеряла свою актуальность, но в то же время, возникли новые возможности по её использованию. Перед вами план дальнейшего развития с учетом новых реалий.

Читать далее...
prog #1 - 11 месяцев назад (изм. ) 0
Голосов: +0 / -0
NazarPunk, так я ушел их искать какраз, а ты уже тут как тут)

Еще есть вот такая штука, но я не знаю что там за статус разработки нынче
NazarPunk #2 - 11 месяцев назад 3
Голосов: +3 / -0
prog #3 - 11 месяцев назад 0
Голосов: +0 / -0
Drulia_san, я бы рекомендовал посмотреть поделия от назарпанка и скорпа здесь на xgm, для начала. Ну и плагин warcraft-vscode к vscode ради простоты его установки и использования. Если vscode, то к нему еще языковой сервер под Lua от sumneko, он имхо, топ среди альтернатив. Остальные сборщики мне не понравились по той или иной причине, так что я не запомнил особо где их видел.
Drulia_san #4 - 11 месяцев назад 0
Голосов: +0 / -0
А что посоветуешь из текущих публичных сборщиков?
prog #5 - 11 месяцев назад 0
Голосов: +0 / -0
Drulia_san, так новая версия Fly Data Processor пока только в планах, о чем и написан пост под которым мы комменты сейчас строчим. А сборщик я свой пока просто не выкладывал, чтоб не получилось как со старым Fly Data Processor, который был выложен слишком сырым, а потом у меня закончилось свободное время.
Будет что-то пригодное к использованию широкой аудиторией - сообщу.
GetLocalPlayer #6 - 11 месяцев назад 0
Голосов: +0 / -0
На хайве и US форумах варкрафта бурги то и дело мне раз 10 советовали именно ceres, юзабилити которого стремилась к нулю, про остальные не слышал.
Ceres давал контроль над процессом сборки через Lua, код карты и сборщика в одном файле. Идея хорошая, но автор ушел в афк.
Drulia_san #7 - 11 месяцев назад 0
Голосов: +0 / -0
prog:
Drulia_san, так фишка хорошо сделанного внешнего сборщика в том, что РО никуда не девается. Разве что кнопку для запуска проверки карты приходится нажимать не в WE, а где-то снаружи, в виде батника или кнопки в среде разработки для кода. Более того, что старая версия моей тулзы о которой этот пост, что новая - обе предназначены именно для работы с РО и кодом одновременно.
Как твоя новая тулза называется? Хочу опробовать
prog #8 - 11 месяцев назад 0
Голосов: +0 / -0
Drulia_san, так фишка хорошо сделанного внешнего сборщика в том, что РО никуда не девается. Разве что кнопку для запуска проверки карты приходится нажимать не в WE, а где-то снаружи, в виде батника или кнопки в среде разработки для кода. Более того, что старая версия моей тулзы о которой этот пост, что новая - обе предназначены именно для работы с РО и кодом одновременно.
Drulia_san #9 - 11 месяцев назад (изм. ) 0
Голосов: +0 / -0
prog:
Drulia_san, ceres впервые слышу. При этом среди юзеров xgm знаю минимум 3 разных сборщика помимо моего собственного. И с десяток разных видел за пределами xgm.
Тогда извиняюсь, не слышал про остальные. На хайве и US форумах варкрафта бурги то и дело мне раз 10 советовали именно ceres, юзабилити которого стремилась к нулю, про остальные не слышал. Потому решил что нет достойных сборщиков.
Но в любом случае интегрированный редактор мне ближе к душе, потому что под рукой всегда хочется иметь РО со всеми юнитами, абилками и бафами.
prog #10 - 11 месяцев назад 0
Голосов: +0 / -0
Drulia_san, ceres впервые слышу. При этом среди юзеров xgm знаю минимум 3 разных сборщика помимо моего собственного. И с десяток разных видел за пределами xgm.
Drulia_san #11 - 11 месяцев назад (изм. ) 0
Голосов: +0 / -0
в тренде внешние сборщики карты.
Это не так, например ceres wc3 насколько я знаю единственный современный внешний сборщик карт (поправьте если это не так) и он - полный кал, написан на никому ненужном и неизвестном языке rust (может где-то там он нужен и известен в своих кругах, но в нашем юзерспейс сегменте на винде привычнее удобнее и сразу запускаемые утилиты с консольным или графическим интерфейсом из .exe файла (на крайняк python скрипты), нежели то с чем большинство людей даже разобраться как запустить не сможет.
Это я к чему, это я намекаю на то что такие сборщики - просто костыль сделанный на коленке для того чтоб было хоть что-то перед тем как близы сами выкатят решение. Уверен что с выходом нового редактора появится нормальная сборка карт (уже поддерживаются проекты в виде директорий), а пока просто многим приходится довольствоваться тем что есть.
1

Первые шаги

» Fly Data Processor
Базовые сведения о возможностях Fly Data Processor.

Читать далее...
MegaBlax #1 - 7 лет назад 0
Голосов: +0 / -0
(равкоды полей можно посмотреть в РО, если JNGP настроен соответствующим образом)
Как правильно настроить WE, чтоб показывало ?
38

Главная страница

» Fly Data Processor

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

Для игры: Warcraft 3
Тип: Утилита
Сфера применения: работа с данными РО, базы данных
Требования: JNGP, Java 7, руки, мозг
Статус: в разработке
Автор: prog

Читать далее...
ScorpioT1000 #15 - 8 лет назад 0
Голосов: +0 / -0
Без твоей тулзы нет смысла делать сборку. А та версия еще даже не бета
prog #16 - 8 лет назад 0
Голосов: +0 / -0
Ну так делай, не жди меня. У меня сейчас туго с временем. Или можешь включить в сборку ту версию что есть сейчас, она довольно стабильная, поддерживает альтернативный синтаксис для выражений в РО и менюшки есть - можно отключить.
ScorpioT1000 #17 - 8 лет назад 0
Голосов: +0 / -0
Ну че там?
Вон чувак уже мой мод апдейтил xgm.ru/forum/showthread.php?t=30967
думаю делать новую сборку
prog #18 - 8 лет назад 0
Голосов: +0 / -0
Залил ту версию, о которой говорил, только допилил еще меню в ней для JNGP.
ScorpioT1000 #19 - 8 лет назад 0
Голосов: +0 / -0
Я думаю, это будет дальше. Надо изменить данные до обращения к файлу.
prog #20 - 8 лет назад 0
Голосов: +0 / -0
У меня сейчас на машине ни средств отладки ни нормального компилятора нет для C/C++.
Есть вероятность что нужная нам функция окажется в storm.dll т.к. карта это по сути mpq архив и, соответственно, работать с ней вар будет как с mpq архивом.
ScorpioT1000 #21 - 8 лет назад 0
Голосов: +0 / -0
prog, дебажить можно с вызова msdn.microsoft.com/en-us/library/ms646927%28VS.85%29.aspx
prog #22 - 8 лет назад 0
Голосов: +0 / -0
Для этого нужно для начала разобраться в том как оно работает, потом найти адрес в памяти WE, на который вешать хук и только после этого все возможно начнет крутиться, если только не окажется что повесить хук на момент перед открытием карты невозможно. У тебя есть на это время?
Да, кстати, на кампах исходников гриморы нет, а те что я когда-то нашел в сети могут быть сильно устаревшими и нифига не работать.
Вру, есть ссылка на svn
Могу даже сказать что интересует нас скорее всего wehack.cpp, функция DllMain, а именно та часть где объявляются хуки на функции. Ну и, конечно, нужно продебажить ВЕ чтобы выяснить на какую функцию вешать хук.
ScorpioT1000 #23 - 8 лет назад 0
Голосов: +0 / -0
можно попробовать перекомпилять grimoire - добавить туда эвент
и выложить новый jngp...
prog #24 - 8 лет назад 0
Голосов: +0 / -0
Может потому что я не знаю как событие на открытие карты привязать?
Если бы я нашел как это сделать, то все было бы реализовано именно так еще в первой версии утилиты, вот только ничего применимого кроме открытия редактора, сохранения карты и работы с меню я пока не нашел, даже в коде гриморы копался, нет там такого события.
ScorpioT1000 #25 - 8 лет назад 0
Голосов: +0 / -0
Я не понимаю, на кой черт ты паришься с копированием карты, если можно хранить сурс код wts в другом файле? например, war3mapSource.wts
При открытии карты в редакторе, wehack.lua запустит твою прогу, которая заменит war3map.wts на war3mapSource.wts.
При сохранении карты, твоя прога копирует war3map.wts в сурс, а сам файл компиляет в готовый результат.
Никаких карт не надо.
prog #26 - 8 лет назад 0
Голосов: +0 / -0
Были бы у меня эти два дня)
ScorpioT1000 #27 - 8 лет назад 0
Голосов: +0 / -0
Дело в том, что этот софт пишется за 2 дня =\
prog #28 - 8 лет назад 0
Голосов: +0 / -0
Когда физически не остается времени или сил что-то делать после основной работы и личной жизни, то но удивительно что изменений никаких нет, не находишь?
ScorpioT1000 #29 - 8 лет назад 0
Голосов: +0 / -0
Это всё треш какой-то, ты уже почти полгода делаешь проект =)
prog #30 - 8 лет назад 0
Голосов: +0 / -0
Да занят я по уши, вон выложил в статьи пару мелких примеров, которые приготовил еще месяц назад и все, времени кодить нет. Бета пока есть только та что с jass кодом работает. В принципе есть еще рабочий вариант, позволяющий использовать вместо конструкции ${x} конструкцию #[x#] или #[x]# чтобы обойти неприятие редактором символа } в описаниях, могу выложить. Только файл war3map.wts надо будет вручную импортировать в карту чтобы увидеть изменения (предварительно сделав копию со старым wts чтобы не потерять шаблоны).
ScorpioT1000 #31 - 8 лет назад 0
Голосов: +0 / -0
Ну что там с первоначальной идеей?) когда бета будет? охото пособирать всякие сеты)
prog #32 - 8 лет назад 0
Голосов: +0 / -0
ScorpioT1000, теперь понял. Не полостью - проблему синтаксиса я решил, хотя и не самым красивым способом, а вот затирание шаблона при сохранении пока не позволяет считать что эта составляющая работает.
ScorpioT1000 #33 - 8 лет назад 0
Голосов: +0 / -0
Причем тут папка, я об основной задаче:
собирает данные по всем объектам в РО и использует их для заполнения шаблонов в текстовых описаниях
Это уже работает?
prog #34 - 8 лет назад 0
Голосов: +0 / -0
ScorpioT1000, не совсем тебя понял. Если ты о том, что папку с данными надо было чистить вручную, то как это решить я уже придумал, осталось найти время и реализовать. Утилита получит параметр командной строки, определяющий режим работы и будет вызываться два раза, первый раз перед извлечением данных с параметром clear и второй раз после извлечения данных, на этот раз с параметром compile.
ScorpioT1000 #35 - 8 лет назад 0
Голосов: +0 / -0
Ну как там с доставанием в одно описание данные из другого объекта?
prog #36 - 8 лет назад 0
Голосов: +0 / -0
Absol, наверняка есть, но я не занимаюсь разработкой или распространением софта, предназначенного для взлома карт. Поддержка slk данной утилитой планируется, но это наверняка не то что вам нужно.
Absol #37 - 8 лет назад 0
Голосов: +0 / -0
а есть проги на подобии xdep? что бы данные из slk конвертировало
prog #38 - 9 лет назад 0
Голосов: +0 / -0
Beta 0.2 доступна для скачивания. Также был обновлен раздел "руководство пользователя" - добавлена статья, посвященная созданию учебного примера по применению утилиты.
2

Генерируем функции инициализации

» Fly Data Processor
Небольшой пример шаблона, помогающего избежать прерывания потока из-за лимита операций при заполнении базы.

Читать далее...
prog #1 - 8 лет назад 0
Голосов: +0 / -0
А вот фиг там, не делает он этого, у меня по крайней мере, но это не критично, так что я даже не включил эту директиву в спецификацию - с ней слишком много проблем. Проблема с переносами строк в том, что их генерируется слишком много практически для любого шаблона - библиотека изначально на html рассчитана.
В результате работы этого шаблона будет сгенерировано много функций, отличающихся друг от друга только индексом в имени.
Например, если в качестве тела для этого шаблона вместо комментария поставить ${i}; и ничего больше не менять, то получится несколько функций, в каждой из которых в столбик записаны равкоды не больше чем десяти юнитов (конечно это не валидный jass-код, но зато просто для понимания). На практике, естественно, тело шаблона будет более сложным.
ScorpioT1000 #2 - 8 лет назад 0
Голосов: +0 / -0
В данном примере используется директива <compress>, устраняющая все переносы строк и скопления пробелов.
Это не надо - это сделает vJass/cJass оптимизатор.
И выложи что в результате получится ) я немного не понимаю
6

Fly Data Processor beta 0.2

» Fly Data Processor

changelog

  • используется .exe загрузчик, что упрощает установку
  • утилита переведена на модульную архитектуру и поддерживает плагины (на данный момент все базовые плагины собраны в один файл, в дальнейшем это будет изменено)
  • значительно ускорена обработка данных за счет отключения избыточного логирования
  • окончательно выбран синтаксис доступа к многоуровневым полям
  • добавлен доступ к фактическим значениям текстовых полей
  • система пользовательских категорий(меток, тегов) дополнена возможностью задавать дополнительные параметры, что позволяет хранить метаданные для объектов и получать к ним доступ тем-же способом что и к стандартным полям объекта.
  • изменен синтаксис проверки принадлежности объекта к категории
  • упрощен принцип работы файла синонимов (alias.txt)
  • добавлена возможность получить отдельные фрагменты строк, содержащих несколько элементов, перечисленных через запятую, а также перечисление этих фрагментов с помощью директивы list

Читать далее...
prog #1 - 8 лет назад 0
Голосов: +0 / -0
конечно не работает
надо <list units as unit>
я вроде эту опечатку в описании уже давно исправил, если нет - скажи где ты такую конструкцию увидел
Ну и как-бы ${ushx} вообще работать не будет - надо ${unit.ushx}, не говоря уже о том что оно не будет работать если поле ushx не было изменено в РО.
Темак #2 - 8 лет назад 0
Голосов: +0 / -0
Не работает:
<list units>
call RegisterUnitShadow('${unit}', ${ushx}, ${ushy}, ${ushh}, ${wshw}, "${ushu}")
</list>
prog #3 - 9 лет назад 0
Голосов: +0 / -0
ScorpioT1000, так и сделаю, надо только придумать чем заменить } для текстовых описаний (именно на этот символ плохо реагирует WE при загрузке файла - он просто игнорирует все что идет после него)
Но этот подход чреват неудобствами, связанными с неоднородностью синтаксиса.
ScorpioT1000 #4 - 9 лет назад 0
Голосов: +0 / -0
Ну сделай фильтр, который сначала переводит описания в другой формат =\
prog #5 - 9 лет назад 0
Голосов: +0 / -0
Ввиду несовместимости формата хранения данных в файле wts и шаблонов библиотеки FreeMarker из утилиты временно убирается поддержка текстовых описаний объектов, остаются только шаблоны в коде.
Возможен переход на другую библиотеку компиляции шаблонов или изменение синтаксиса для шаблонов в текстовых описаниях.
prog #6 - 9 лет назад 0
Голосов: +0 / -0
обнаружен баг, убираю ссылку на скачивание до его исправления
7

Спецификация шаблонов

» Fly Data Processor
Полная спецификация разновидностей шаблонов для Fly Data processor.

Читать далее...
Темак #7 - 8 лет назад 0
Голосов: +0 / -0
а как передать рав-код юнита?
эта программа по прежнему позволяет передавать только измененные поля?
6

WIP

» Fly Data Processor
Этот раздел предназначен для выкладывания и обсуждения разрабатываемых или требующих дополнительного обдумывания идей. Здесь-же будут размещены все сообщения, касающиеся текущего состояния утилиты.
prog #5 - 8 лет назад 0
Голосов: +0 / -0
Разработка несколько замедлена в связи с большим количеством дел и выходом третьего диабло, но не остановлена. На данный момент идет написание парсера SYLK таблиц для получения данных по стандартным боевым единицам и стандартных значений полей. Также в очередной раз может быть пересмотрена структура хранения данных в памяти и передачи их компилятору шаблонов- существующая не поддерживает ленивую загрузку данных, а загружать данные по всем стандартным юнитам просто на всякий случай не очень эффективно.
Скорее всего не будут поддерживаться стандартные значения текстовых полей или эта возможность будет добавлена позже.
prog #6 - 9 лет назад 0
Голосов: +0 / -0
Введена в тестовом режиме приятная возможность получить доступ к объекту по его строковому равкоду, полученному из поля другого объекта.
Для начала объявим шаблонную переменную
<assign somethg = "A000">
Как видите, это строковая переменная. Ее поведение полностью соответствует ожиданиям - при использовании в выражениях будет возвращено строковое значение со всеми вытекающими последствиями.
До сегодняшнего дня попытка обратиться к полям такой переменной приводила к возникновению ошибки библиотеки FreeMarker, но с недавних пор есть возможность превратить такую строковую переменную в ссылку на соответствующий объект, что позволит обращаться к полям этого объекта. На данный момент такое преобразование происходит при использовании конструкции "категория.переменная" и выполняется успешно только при условии принадлежности объекта к категории.
Обращение к полям объекта можно производить как сразу в конструкции категория.переменная, так и записав ссылку на объект в переменную.
<assign x = "A000">
${abilities.x.name}
равнозначно
<assign x = "A000">
<assign x = abilities.x>
${x}
3

Учебный пример

» Fly Data Processor
Пошаговое создание учебной базы данных и использующего ее заклинания с помощью Fly Data Processor.

Читать далее...
prog #1 - 9 лет назад 1
Голосов: +1 / -0
horhy123, напрямую - нет, для этого нужно с помощью утилиты собрать в базу все данные по модификаторам атаки, а затем написать систему, вычисляющую атаку на основании этих данных.
horhy123 #2 - 9 лет назад 0
Голосов: +0 / -0
У меня возник вопрос: Можно ли во время игры узнать текущую силу атаки конкретного юнита, включая баффы и тому подобные модификаторы атаки?
prog #3 - 9 лет назад 0
Голосов: +0 / -0
Перерыв. Допишу завтра.