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

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. Идейные вдохновители приветствуются.
Приятного Вам использования:)

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
16
8 лет назад
0
Где же вы были годиков семь назад?))
0
13
8 лет назад
0
z1i2p3, я не сразу начал заниматься модингом Вара. Сначала просто играл)
Тем временем я составляю обновленную версию нового GUI. Категории для функций станут несколько удобнее и практичнее в использовании, так как больше не придется искать нужную функцию в одинаковых категориях, но с разницей в названии (native). Также их отображение будет несколько систематизировано для того, чтобы сразу можно было понять, что есть новыми функциями из common.j, а какие совершенно новыми. Осталось дождаться, когда я доработаю новую версию.
0
21
8 лет назад
0
Эх, как я скучаю по всему этому.
Приятно что Варик еще жив.
0
13
8 лет назад
0
SID69, это точно, благодаря этому и начал данную разработку, чтобы можно было понимать триггеры проще, на коде то не все умеют, а так - может как-то стимулирует создателей карт.
2
17
8 лет назад
2
Пушистый, Вы серьёзно? Я вас умоляю, не ройте себе могилу. Почти все кто сейчас делают мапы, привыкли к своим текстам. Мне к примеру будет не удобно переходить на ваш текст, я уже давно изучил стандартный WE и его текст мне привычен. Да, да, тот самый бредовый руссификатор, который режет глаз сотням, а мне норм. Многие люди, которые скачали твой проект, захотели просто глянуть, но не думаю, что они сейчас в нём работают. Ладно ещё лепить карты для этой игры, но модернизировать редактор игры?
Не понимаю логику Вашу, от того, что вы сделали ничего не поменяется. Как было мало авторов, как было много криворуких - так и будет.
11
13
8 лет назад
11
Mrachny, это все равно для людей делается, а понравится им это или нет - покажет время.
6
48
8 лет назад
6
Mrachny:
Пушистый, Вы серьёзно? Я вас умоляю, не ройте себе могилу. Почти все кто сейчас делают мапы, привыкли к своим текстам. Мне к примеру будет не удобно переходить на ваш текст, я уже давно изучил стандартный WE и его текст мне привычен. Да, да, тот самый бредовый руссификатор, который режет глаз сотням, а мне норм. Многие люди, которые скачали твой проект, захотели просто глянуть, но не думаю, что они сейчас в нём работают. Ладно ещё лепить карты для этой игры, но модернизировать редактор игры?
Не понимаю логику Вашу, от того, что вы сделали ничего не поменяется. Как было мало авторов, как было много криворуких - так и будет.
на вкус и цвет товарищей нет, и не стоит судить по себе, лично я благодарен этому проекту, я на нем работаю и начинаю изучать новые функции.

Часто замечаю, что когда начинаешь работать (изменяю/удаляю/добавляю объект) в "Редакторе Объектов" сам WE вылетает.
1
13
8 лет назад
1
molot39, вылет происходит из-за отсутствия некоторых типов переменных в редакторе. В следующем обновлении, это будет исправлено.
0
11
8 лет назад
0
А слабо локальные переменные впихнуть???
0
13
8 лет назад
0
Alexander18, можно с помощью инструкции научить пользователя, как использовать функции с локальным значением. Это весьма просто и переводить на код весь триггер не нужно.
0
11
8 лет назад
0
А может попробуешь добавить GUI триггеры в редактор кампаний.
Тогда создание модификации сражения будет максимально упрощено.Создать Melee мод будет также легко, как и создание Melee карт.
(Прости.Невыполнимая задача.)
Просто решил поделится идеей.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.