24

» Fly Data Processor / Fly Data Processor

Absol, наверняка есть, но я не занимаюсь разработкой или распространением софта, предназначенного для взлома карт. Поддержка slk данной утилитой планируется, но это наверняка не то что вам нужно.
24

» DGLaboratory / Сервер

вроде отправил скайп в ЛС, но в отправленных что-то не вижу.
24

» DGLaboratory / Сервер

Какие требования к онлайну? Для тестов могу по хостить - IP белый, а вот со стабильностью канала бывают проблемы в последнее время, не говоря уже о том чтобы держать его онлайн 24/7.
По поводу хамачи - это эмулятор локальной сети через интернет, не требует белого IP.
24

» Battle Mages / Battle Mages

Onanas, не очень люблю C#, но если нужен кодер - обращайся (основной язык у меня Java, но и с C# проблем не должно быть).
24

» Fly Data Processor / Fly Data Processor beta 0.2

ScorpioT1000, так и сделаю, надо только придумать чем заменить } для текстовых описаний (именно на этот символ плохо реагирует WE при загрузке файла - он просто игнорирует все что идет после него)
Но этот подход чреват неудобствами, связанными с неоднородностью синтаксиса.
24

» Fly Data Processor / Учебный пример

horhy123, напрямую - нет, для этого нужно с помощью утилиты собрать в базу все данные по модификаторам атаки, а затем написать систему, вычисляющую атаку на основании этих данных.
24

» XGM Team / Тематики проектов

Фильры не корректно работают с переключением между режимами сортировки и страницами в списке проектов. Вернее переключение между страницами работает только с клавиатуры. В общем халтура, как по мне. На главной таких проблем нет, но перезагрузка страницы пугает - прикрутили бы аякс чтоли.
А так - нововведению жирный плюс за идею.
24

» Fly Data Processor / WIP

Введена в тестовом режиме приятная возможность получить доступ к объекту по его строковому равкоду, полученному из поля другого объекта.
Для начала объявим шаблонную переменную
<assign somethg = "A000">
Как видите, это строковая переменная. Ее поведение полностью соответствует ожиданиям - при использовании в выражениях будет возвращено строковое значение со всеми вытекающими последствиями.
До сегодняшнего дня попытка обратиться к полям такой переменной приводила к возникновению ошибки библиотеки FreeMarker, но с недавних пор есть возможность превратить такую строковую переменную в ссылку на соответствующий объект, что позволит обращаться к полям этого объекта. На данный момент такое преобразование происходит при использовании конструкции "категория.переменная" и выполняется успешно только при условии принадлежности объекта к категории.
Обращение к полям объекта можно производить как сразу в конструкции категория.переменная, так и записав ссылку на объект в переменную.
<assign x = "A000">
${abilities.x.name}
равнозначно
<assign x = "A000">
<assign x = abilities.x>
${x}
24

» Spin Deluxe / Обзор!

ScorpioT1000, с каких пор на мобильные яблочные устройства можно поставить джаву? в любом случае в магазин свой они на джаве не принимают ничего, а вот адобовцы научились компилировать AIR приложения чуть ли не в нативный код iOS и такое решение меня более чем устраивает, вопрос только в сертификации приложений при попытке их протолкнуть на продажу - когда я с этим разбирался ничего еще не было ясно на эту тему.
24

» Spin Deluxe / Обзор!

Escapist, запили на iOS что-нибудь на джаве, а я на тебя посмотрю. Ну не прижилась на яблочных девайсах эта технология.
Как вариант - я уже предлагал портировать на Flash, который в виде Adobe AIR идет на отлично (не путать с Flash Player который конфликтует с браузером), но это достаточно много геморроя.
24

» Fly Data Processor / Fly Data Processor

Beta 0.2 доступна для скачивания. Также был обновлен раздел "руководство пользователя" - добавлена статья, посвященная созданию учебного примера по применению утилиты.
24

» Fly Data Processor / Fly Data Processor beta 0.2

Ввиду несовместимости формата хранения данных в файле wts и шаблонов библиотеки FreeMarker из утилиты временно убирается поддержка текстовых описаний объектов, остаются только шаблоны в коде.
Возможен переход на другую библиотеку компиляции шаблонов или изменение синтаксиса для шаблонов в текстовых описаниях.
24

» Fly Data Processor / Fly Data Processor beta 0.2

обнаружен баг, убираю ссылку на скачивание до его исправления
24

» Fly Data Processor / Fly Data Processor

В ближайшее время выложу обновленную версию утилиты. Пока нет интерфейса, зато она стала очень быстрой и очень модульной. Заодно был наведен порядок в файлах - теперь данные вынесены в отдельную папку и не пересекаются с файлами самой утилиты.
24

» Fly Data Processor / WIP

Ввиду малого количества свободного времени работы над утилитой продвигается достаточно медленно, но все-же продвигается. К примеру, недавно был закончен плагин, отвечающий за добавление в модель категорий и категорий с параметрами.
На данный момент конструкция "категория.объект" позволяет проверить принадлежит ли объект к категории(путем неописуемых извращений стало возможным в качестве ссылки на объект использовать в этой конструкции не только равкод, но и шаблонные переменные). Дополнительные параметры, присвоенные объектам через категории, доступны обычным способом - через конструкцию "объект.категория".
Синтаксис задания категорий и параметров объекта через поле "suffixEditor" в РО выглядит так:
произвольный текст список категорий
Категории в списке могут быть разделены пробелами или заключены в квадратные скобки. Название категории от параметра отделяется двоеточием. На данный момент допускается только один параметр для каждой категории.
При попытке получить значение поля suffixEditor будет возвращен только текст до символа @, обозначающего начало списка категорий.
Также немного изменился синтаксис доступа к обычным полям объекта. Для полей, не имеющих уровня все осталось по прежнему, а вот для тех, что могут принимать различные значения на разных уровнях был принят синтаксис "объект.поле[уровень]", как для обращения к элементам массива. Также, в случае если уровень полей объекта заведомо ограничен первым, все поля первого уровня становятся доступными через обычную конструкцию для доступа к полям без уровня: "объект.поле".
Добавлена возможность получать как TRIGSTR_ версию текстовых полей, так и их подлинный текст. Для обращения к подлинному тексту используется конструкция "объект.поле_STR".
Добавлена дополнительная компиляция шаблонов при использовании циклических ссылок первого уровня вложенности. Это позволяет избежать казусов со ссылками в текстовых полях на другие текстовые поля, использующие шаблоны (в таком случае шаблоны из импортированного текстового поля не компилировались). Возможно, в дальнейшем будет введен параметр, отвечающий за глубину обработки циклических ссылок на текстовые поля, позволяющий задать больший допустимый уровень вложенности (каждый уровень вложенности это дополнительный проход по файлу в поисках шаблонов).
24

» Fly Data Processor / WIP

И так, работа с плагинами практически завершена, в частности доступ к данным в формате РО осуществляется через набор плагинов, каждый из которых отвечает за отдельный файл с данными. Более того, для основных типов плагинов разработаны абстрактные классы, содержащие базовую функциональность, что позволяет минимизировать объем кода непосредственно в классах самих плагинов.
пример класса файлового плагина
public class UnitLoader extends AbstractDataLoaderPlugin {

    private static final int PLUGIN_ID = 100;
    private static final String PLUGIN_MESSAGE = "unit loader is here";
    private static final Path FILE_PATH = FileSystems.getDefault().getPath("fly", "war3map.w3u");
    private static final DataObjectType OBJECT_TYPE = DataObjectType.UNIT;
        private static final boolean IS_EXTENDED = false;
    @Override
    public String getMessage() {
        return PLUGIN_MESSAGE;
    }

    @Override
    public int getId() {
        return PLUGIN_ID;
    }

    @Override
    public Path getPath() {
        return FILE_PATH;
    }

    @Override
    public boolean isExtended() {
        return IS_EXTENDED;
    }

    @Override
    public DataObjectType getType() {
        return OBJECT_TYPE;
    }
}
Осталось уточнить некоторые особенности формирования модели, используемой библиотекой FreeMarker при обработке шаблонов.
24

» WarCraft 3 / Базы данных

alexprey, алгоритм такой: данные вынимаются из РО на момент сохранения карты и ложатся в твою базу данных, а дальше что хочешь, то с ними и делай.
Judycaster64, JNGP тут причем?
24

» WarCraft 3 / Базы данных

alexprey, малое количество метаданных можно разместить и в существующих полях, не нарушая целостность данных объекта (естественно при условии что известен способ достать эти метаданные), а список полей в РО можно и расширить, на сколько я знаю.
24

» WarCraft 3 / Базы данных

Doc, опять не согласен - пока я не разберусь как дополнять список полей в РО, не вызывая конфликтов с UMSWE, ручками придется дописывать все поля, которые не удастся записать в РО.
24

» WarCraft 3 / Базы данных

Статья ничего так. Но было бы неплохо добавить вариант без vjass, и еще сказать пару слов о хештаблицах - при грамотном применении они будут работать быстрее чем поиск по массиву (не путать со слоупочным кешем, хештаблицы отстают от массивов по скорости обращения примерно в полтора раза, на сколько я помню - иногда одно обращение к таблице будет куда лучше чем десяток обращений к массиву и тонна арифметических операций).
П.С. Нет, я не призываю отказаться от структур и перейти на голые хештаблицы.
Doc, почему прошлый век? наоборот, грамотно построенная база данных гармонично дополняется извлечением данных из РО. Моя утилита предоставляет только инструмент, позволяющий достать данные, а как их сохранить в коде, это уже головная боль мапмейкера.
24

» WarCraft 3 / Базы данных

для автоматизации вбивания данных из РО в БД предлагаю ознакомиться со следующим инструментом: xgm.ru/p/fly-data
24

» Fly Data Processor / WIP

Распараллелил загрузку данных из файла. Стало чуть быстрее, но как-то не очень ощутимо. Попробую выпилить большую часть логирования, должно стать быстрее.
Так и есть, чертов логгер тормозил. Выпилю все лишнее логирование - будет летать.
Все, оставил только самые важные записи в логе. Срабатывает моментально. На все про все уходит меньше секунды.
Первая версия, работающая с плагинами, успешно протестирована. На очереди перенос существующего функционала в плагины.