Добавляем Preview для Warcraft III Classic 1.26+
Начнём с самого простого, что уже было описано в других ранних статьях бесчисленное число раз.
Чтобы добавить в карту своё превью, которое будет корректно отображаться в старых версиях клиента Warcraft III (до 1.31), достаточно импортировать в карту файл этой картинки с именем и форматом war3mapPreview.tga. Обязательно размер картинки должен быть 256x256 пикселей. Допустимая спецификация tga: Изображения с палитрой или TrueColor (24 или 32 бит на пиксель). Этот файл должен лежать в корневой директории импорта карты:
Добавляем Preview для Warcraft III Reforged 1.32+
В Reforged описанный выше метод перестал работать. Здесь больше нельзя установить по умолчанию свою картинку-превью. Её роль здесь играет изображение игровой карты, которое можно задать импортом файла с именем и форматом war3mapMap.dds. Далее, для того, чтобы сделать обратную замену preview на истинное изображение карты, при инициализации вызывается функция:
call BlzChangeMinimapTerrainTex("war3mapMapTrue.dds")
Здесь "war3mapMapTrue.dds" - полный путь к созданному вами изображению игровой карты (название файла произвольно).
Как самому создать изображение игровой карты
В редакторе открываем меню Файл -> Экспорт мини-карты. Далее в открывшейся вкладке можно задать отображение рельефа, воды, декораций и прочего, по желанию. Полученный файл tga переводим в формат dds. Для этого можно например использовать свободный графический редактор GIMP www.gimp.org с установленным dds plugin .
Проблема этого метода в том, что он не совместим с Warcraft III Classic 1.26+, так как там нет функции BlzChangeMinimapTerrainTex(). При её добавление непосредственно в код карты, при сохранении в старом редакторе будет ошибка компиляции.
Обойти эту ошибку можно использовав функцию
Preloader("ChangeMinimap.pld")
Эта функция выполняет функцию PreloadFiles из импортированного и предварительно созданного файла предзагрузки "ChangeMinimap.pld". Воспользуемся здесь тем свойством этой команды, что при синтаксической ошибке в этой функции, она просто игнорируется (а не вызывает вылет игры с ошибкой).
С помощью блокнота создаём новый файл с названием и разрешением ChangeMinimap.pld и вставляем туда следующий текст:
function PreloadFiles takes nothing returns nothing
call BlzChangeMinimapTerrainTex("war3mapMapTrue.dds")
endfunction
Файл ChangeMinimap.pld сохраняем и импортируем в карту. Добавляем Preloader("ChangeMinimap.pld") в функцию инициализации (можно через GUI):
Всё готово. Итого были импортированы следующие файлы:
Проверяем карту на наличие превью и корректность изображения миникарты для Classic и Reforged:
Пример полученной карты скачать здесь.
Ред. Берги