Добавлен , опубликован
Раздел:
Триггеры и объекты
Содержание:

Предисловие

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

UjAPI

UjAPI это лаунчер, который добавляет в игру много чего интересного. Почему лаунчер?
Когда была найдена уязвимость, то стал набирать обороты так называемый мемхак. Но у него была одна проблема - любой школьник мог своровать ваши пароли от интернета. Притом его каждый раз было необходимо импортировать в игру. Что затрудняло обновления и плодило несоизмеримое количество лишней работы. Ладно это две проблемы.
У лаунчера же больше возможностей для дальнейшего развития. К примеру он предотвращает запуск мемхака, что позволит сохранить в тайне вашу историю браузера.
Так как разрабатывать карты в одиночку это тяжёлый и непосильный труд, то нам понадобится Git для совместной работы, а так же .NET Framework 4.7.2 и C++ Redistributables 2012 для работы лаунчера.
После установки необходимо найти WarCraft на вашем компьютере.
У меня он находится по этому пути, вы же используйте свой, если он отличается.
D:\Warcraft III
Если мы хотим получить хоть каплю удовольствия от написаня кода, то неплохо бы использовать lua. Не будем изобретать лишние слова и создадим папку lua в корне папки с игрой.
mkdir "D:\Warcraft III\lua"
Джентельменам принято верить на слово. Только вот ребята из Майкрософт об этом не знают и астрологи предсказывают ложные срабатывания антивируса. Чтоб избежать сей участи, добавьте только что созданную папку в исключения антивируса.
Осталось дело за малым, скопировать нужные файлы из репозитория.
cd /D "D:\Warcraft III\lua"
rmdir /s /q ujapi
git clone https://github.com/nazarpunk/wc3-ujapi.git ujapi

Warcraft III - Lua

Warcraft III - Lua это модификация, назначение которой понятно из названия. И вся прелесть в том, что она прекрасно сочетается с UjAPI. Таким образом, с помощью одного лаунчера можно сразу убить нескольких зайцев.
Для того, чтоб ваша IDE понимала, с какой игрой она работает, необходимы декларации игровых функций, в простонародье называемые sdk. Так как никто не озаботился их созданием, то придётся взять дело в свои руки.
Вооружаемся Ladik's MPQ Editor, открываем файл War3x.mpq и из папки Scripts извлекаем необходимые файлы:
  • blizzard.j
  • cheats.j
  • common.ai.j
  • common.j
Файл UjAPI.j скачиваем из репозитория, кладём всё это дело в отдельную папку и натравливаем на неё cJass2Lua по этой инструкции.
Если вы успешно клонировали репозиторий, то все эти пляски можно пропустить. Нужные файлы будут находиться по адресу:
explorer "D:\Warcraft III\lua\ujapi\sdk"
Как настроить подсветку в IDE прекрасно описано в этой статье.

Как всё совместить и начать разрабатывать

На данный момент структура папки с варкрафтом выглядит как-то так:
D:\Warcraft III
├── ...
├── lua
|   ├── ujapi
|   |   └── ...
|   └── ...
├── Maps
|   └── ...
└── ...
Теперь предположим, что мы захотели создать карту MyAwesomeMap. Должно получиться нечто подобное:
D:\Warcraft III
├── ...
├── lua
|   ├── ujapi
|   |   └── ...
|   ├── MyAwesomeMap
|   |   ├── war3map.lua
|   |   ├── main.lua
|   |   └── ...
|   └── ...
├── Maps
|   ├── MyAwesomeMap.w3x
|   └── ...
└── ...
В папке D:\Warcraft III\lua\MyAwesomeMap можно смело создавать проект и выкладывать на всеобще обозрение в GitHub.
Осталось подключить lua к карте.
И тут нам открывается вся мощь Warcraft III - Lua - он умеет запускать lua из папки с игрой с включённым DevMode. То есть вы можете просто запустить игру и перезапускать карту. При каждом перезапуске в карте будут обновлённые lua файлы.
Посему почитаем о require, запишем в war3map.lua волшебные строчки и импортируем в корень карты.
-- war3map.lua
require 'lua.MyAwesomeMap.main'
Добавляем что нибудь для проверки работоспособности в main.lua.
-- D:\Warcraft III\lua\MyAwesomeMap\main.lua
print('Теперь я могу писать карты на lua!')
Осталось только настроить лаунчер уделив особое внимание графе lua settings.
Поздравляю, Вы великолепны!

Послесловие

Проекты активно разрабатываются силами всего лишь нескольких человек и они не всегда успевают вовремя вносить в них правки. Так что не стесняйтесь поддерживать авторов рублём и писать комментарии.
Ваша поддержка очень важна!

Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
1 год назад
0
Кау использовать конвертор xgm.guru/p/wc3/237543

А тфу, это тулза. Она без изъянов работает?
0
29
1 год назад
Отредактирован nazarpunk
0
Кау использовать конвертор xgm.guru/p/wc3/237543
Спс, добавил в статью.
А тфу, это тулза. Она без изъянов работает?
Одиночные либы норм конвертит, с зависимостями могут быть проблемы. Гуи конверт вообще идеально.
0
4
8 месяцев назад
0
А что за репозитория?
0
29
8 месяцев назад
0
А что за репозитория?
Где именно?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.