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

FNWE - новый редактор мира для Warcraft III

Существует до сих пор еще много людей, которые не понимают триггеры на английском языке, поэтому основной целью модификации на данный момент есть замена английских названий и описаний триггерных событий, условий, действий, функций на русские аналоги, которые будут более понятными для пользователя. Наработка будет полезна и тем, кто не желает учить Jass, так как пользователь получит в свои руки весьма мощный функционал, который будет составлен не только переведенными BJ-функциями, а и native'ками, а также новыми пользовательскими функциями.
По сравнению с предыдущими версиями редакторов, FNWE поддерживает использование локальных переменных на простых GUI-триггерах. Это облегчит создание заклинаний и поможет в решении более сложных задач, где использование глобальных переменных достаточно непрактичное.
Редактор содержит улучшенную графическую оболочку, которая поможет в создании триггеров. Согласитесь, в те времена, когда значки действий хэш-таблицы, присвоения переменной и буфера игры были одинаковы, разобраться что и где было несколько проблематично. С новой графической составляющей эта проблема решается. В дальнейшем планируется улучшить и другие однообразные иконки действий.
Помимо графики, которая призвана радовать глаз пользователя, FNWE содержит дополнительный функционал, который может быть полезен, как и обычным триггерщикам, так и Jass-программистам, поскольку и тем, и тем могут понадобиться новые функции отлова урона, работы с отслеживающимися(trackable), причем они будут доступны как и в обычном GUI, так и на коде. Также в наличии есть система выделения свободного индекса для массива, чтобы упростить работу с массивами глобальных переменных в триггерных магиях. Этот набор со временем будет дополняться ввиду востребования его пользователями.

Преимущества модификации

Далее приведен список причин, почему стоит использовать новый редактор:
  • новые native-функции, которые не модифицируют игру (т.е. карта может быть запущена у другого человека без этой модификации, но это сработает в роли защиты, если человек без нового GUI попытается открыть карту с новыми native-функциями);
  • возможность одномоментного присвоения переменных (т.е. теперь не нужно создавать объект, а потом обращаться к нему, как к последнему созданному объекту);
  • возможность использования локальных переменных;
  • возможность использования регионов (т.е. у вас появится возможность создания областей различных форм и произведения с ними различных действий);
  • возможность использования unitpool'ов и itempool'ов, как стандартных типов (т.е. можно будет задать вероятность выставления на карту случайных юнитов и предметов более удобным и понятным способом);
  • использование типа trackable, как стандартного, а также библиотека FNWETrackableAPI, которая расширяет функционал работы с ними;
  • метки для BJ-функций (это поможет составлять триггеры более грамотно);
  • динамическое создание триггеров (т.е. в игровом процессе с помощью GUI);
  • функции-аналоги стандартным BJ-функциям, которые упрощают код и делают его чище;
  • действия редактора ИИ также переведены;
  • добавление пользовательских функций в GUI с ходом обновлений;
  • содержание полезных библиотек для работы с различными объектами;
  • четкое разграничение старых функций (не отмечены звездочкой), новых (*), а также самых новых, которых в игре не было (**);
  • совместимость с JNGP (т.к. данный редактор является основной надстройки);
  • использование личного сценария не только в блоке действий, но и в блоке событий триггера, а также в блоке условий;
  • небольшая система для выделения свободного индекса в массиве (полезная вещь в создании MUI заклинаний на GUI).

Библиотеки редактора

На данный момент таких библиотек всего 5 и они содержатся в файлах:
  • fn_all.j (позволяет подключить к карте все и сразу);
  • fn_damageSystem.j (система отлова урона, которая срабатывает при событии получения какого-либо урона боевой единицей);
  • fn_localVariables.j (своеобразный движок для поддержки создания локальных переменных в среде GUI);
  • fn_trackableAPI.j (библиотека-первооткрыватель в плане новых функций для работы с объектами, в данном случае с отслеживающимися);
  • fn_main.j (содержит основные переменные и функции).
Проведу некоторый инструктаж, как их использовать. Для начала поместите файлы в папку с ваше версией JNGP. Они должны находиться в папке AdicHelper/lib. Это позволит произвести подключение библиотеки более простым способом, а именно прописав одну строку в код вашей карты:
#include ""fn_all.j"
В противном случае придется прописывать полный путь к файлу, что не есть удобным. Также каждую библиотеку можно подключать отдельно, если определенные функции вам не нужны.
Примеры использования
=
=== Перевод функций ===
Для более наглядной демонстрации возможностей и особенностей перевода данной наработки, я сделал несколько скриншотов с ее использованием. Картами, для наглядности, стали последние миссии игр Warcraft 3 ROC и TFT, а именно противостояния против Архимонда и Иллидана. Эти карты нам хорошо знакомы, а также их сложный "триггерный состав".

Локальные переменные

Также хотелось бы пролить свет на новые действия для работы с локальными переменными. В списке категорий первой можно увидеть "Локальная переменная". Она содержит ряд возможностей по объявлению локальных переменных в коде триггера. Первым, что нужно сделать, это создать глобальную переменную необходимого типа через редактор триггеров. С помощью нее мы заставим редактор триггеров и саму игру считать данную переменную локальной за счет эффекта затенения. После этого выбираете все необходимые действия, связанные якобы с "глобальной переменной", но на самом деле будет в ней видеть локальную.

Место для творчества

Можно долго перебирать различные интересные функции и их применение, но пока что ограничусь лишь на этом, так как вам предстоит их освоить и привыкнуть к новому редактору, а все самое основное и, может быть, непонятное я объяснил.

Установка модификации

Процесс установки нового редактора FNWE крайне прост. Для начала вам необходимо установить JNGP, так как установка будет происходить поверх. Далее приведен список действий после установки:
  • скачать архив и извлечь файлы;
  • разблокировать локальные файлы для Warcraft III;
Для тех, кто не знает, как это сделать
Первый способ. Найдите в редакторе вкладку "Extensions" (для обладателей JNGP) и поставьте галочку напротив пункта Enable Local Files.
Второй способ. Войдите в редактор реестра через команду "regedit" и пройдите по приблизительно такому пути HKEY_CURRENT_USER/Software/Blizzard Entertainmet/Warcraft III, после чего найдете в данной папке пункт Allow Local Files и поставьте значение 1.
  • установить папки UI и ReplaceableTextures в папку с игрой;
  • поместить библиотеки из AdicHelper/lib в соответствующие в папке с JNGP (там, где лежат обычные cj_библиотеки);
  • перезапустить редактор.
После проделанных Вами действий, данная модификация будет успешно установлена.

Дальнейшие идеи

Данные идеи формируются от пользовательской востребованности. На данный момент есть несколько путей для развития проекта. Я лично, как автор, считаю, что обычному пользователю было бы хорошо иметь некоторый дополнительный функционал для расширенного взаимодействия с объектами, как это было сделано и с отслеживающимися. Крайне необходимы базисы для определения значений из памяти Warcraft'а, а именно так называемый новый RB (return bug). Люди, которые занимаются отслеживанием памяти игры, можете написать о своих исследованиях. Они необходимы. Также было бы хорошо, если к редактору можно было присоединить JAPI (т.е. новые native-функции), но на данный момент приходится отталкиваться от стандарта и созданных библиотек.

Обратная связь и контактная информация

С целью улучшения данной модификации и внесения необходимых изменений, исправления ошибок и различных неточностей, буду признателен, если Вы, пользователи,сообщите мне о выявленных недостатках. Приму различные предложения по добавляемым функциям в новый GUI (они также могут быть нестандартными).
Вы можете связаться со мной через профиль на сайте: Пушистый или с помощью аккаунта в соц. сети ВКонтакте: new.vk.com/fluffy_777. Идейные вдохновители приветствуются.
Приятного Вам использования:)

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
7
8 лет назад
2
Пушистый, добавь в WorldEditStrings строки с именами скрытых иконок/моделей из JNGP, а то у скачавших сыпятся ошибки.
0
9
8 лет назад
0
Может быть глупый вопрос, но как подключить библиотеку?
0
48
8 лет назад
0
Наверно так:
Найдите в редакторе вкладку "Extensions" (для обладателей JNGP) и поставьте галочку напротив пункта Enable Local Files.
0
13
8 лет назад
0
0
9
8 лет назад
0
NekoriDes:
С самого начала делал так, но cJass начинает крашится. Дебагом выяснил, что это именно библиотека.
С самого начала делал так, но cJass начинает крашится. Дебагом выяснил, что это именно библиотека.
Все, понял. Октоторп лишний.
0
11
8 лет назад
0
А как делать не прямоугольные области?
0
13
8 лет назад
0
Maxim105, нестандартные области состоят из обычных областей и небольших клеток (добавить область, добавить клетку). Из клеток можно построить практически все, что угодно, но их нужно добавлять много, чтобы добиться весьма точного эффекта. После необходимых действий обращаться к региону через события.
Ige, сами эти ошибки присутствуют и во второй сборке JNGP. Впрочем, данный недостаток легко устранить. Главное - придумать название для моделей.
0
3
8 лет назад
0
а как пользоваться отловом урона?, хочу сделать крит с кд например.
0
13
8 лет назад
0
Dota_2015, общее событие отлова урона среди новых событий.
0
3
8 лет назад
Отредактирован Dota_2015
0
Пушистый:
Dota_2015, общее событие отлова урона среди новых событий.
а все нашел, надеюсь системка без багов)
2
26
7 лет назад
2
Это крутотень!!!
И какой юмор в действиях: первым делом предлагает, конечно же, ничего не делать, а вторым ввести чит-код)
Только почему у меня при открытии карты стандартной кампании экран был завален сообщениями, что такой-то объект в строке отсутствует?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.