Программы
Предназначение:
Работа с картами

Лаунчер Варкрафта через .wgc

Эта программа создает файл .wgc (Warcraft 3 Game Configuration) по вашим настройкам и запускает с ним игру для тестирования карт.
WorldEditor пользуется этим способом только для тестирования ИИ скриптов (через Редактор ИИ), но имеет ограничение, разрешая только обычные карты сражения (melee). Более того, в Reforged эта функционалость похоже вообще никак не работает (на примере 1.32.10).

Что умеет:

  • выставить любую скорость игры (даже выше 25x)
  • тестирование карты в один клик (не надо вручную запускать карту или игру)
  • работает (в отличие от Reforged)
  • запуск любых карт (WC3 допускает только сражения)
  • тестовая карта может быть в любой папке (WC3 запускает только из папки с игрой)
  • поддержка старых версий и Reforged
  • полностью настраиваема, можно выставить:
    • слот игрока, команду, расу, цвет, здоровье (гандикап), сложность ИИ и свой скрипт ИИ
    • свой путь к папке с WC3 (параллельно запустить 1.26 и Реф)
    • дополнительные параметры запуска игры (напр. -windowed, в WE такого нет)
    • вкл./выкл. туман войны и условия победы/поражения
    • скорость игры

Использование:

Примечание: Windows принимает как обратные так и обычные косые черты (перечертки):
C:\folder\ то же что и C:/folder/. Советую писать везде C:/folder/ во избежание ошибок и ситуаций, когда обратная косая черта имеет другое значение (экранирование символов)
  • --gameroot <полный путь к корневой папке игры>
    • C:/folder/Warcraft III Reforged/_retail_/
    • C:/folder/Warcraft III Classic/
  • --gameexe <полный путь к запускаемому .exe>
    • C:/folder/Warcraft III Reforged/_retail_/x86_64/Warcraft III.exe
    • C:/folder/Warcraft III Classic/War3.exe
  • --map <полный путь к тестируемой карте>
  • --gameargs <доп. параметры для запуска игры>
    • Reforged-у обязательно нужен -launch для запуска.
  • --gamespeed <0-n>
    • По-умолчанию скорость 1, т.е. 100% от стандартной.
  • --disable-victory / --enable-victory
    • Условия победы/поражения включены по умолчанию.
  • --disable-fow / --enable-fow
    • Туман войны включен по умолчанию
  • --slot <настройка слота> (повторить N раз для каждого игрока)
    • Эту опцию можно использовать несколько раз для описания более одного слота для тестирования. --slot описывается следующей структурой
    • --slot slotЧисло,teamЧисло,raceНАЗВАНИЕ,colorЧисло,healthЧисло,ТИП_СЛОТА[,ПУТЬ_К_ФАЙЛУ_ИИ.ai]
      • Число - это целочисленное, начинается с нуля.
      • Номер слота: 0-11 / 0-23 (Classic/Reforged), 0="красный" игрок
      • Номер команды: 0-n
      • Название расы:
        • human
        • orc
        • nightelf
        • undead
        • random
      • Номер цвета: 0-11 / 0-23 (Classic/Reforged), 0=красный
      • Число здоровья: 50-100 (гандикап, 50 означает, у юнитов игрока будет 50% hp от обычного)
      • ТИП_СЛОТА:
        • human (ты будешь игроком)
        • observer (ты будешь наблюдателем)
        • aiЧисло (обычный ИИ с сложностью равной Числу)
        • customaiЧисло,scriptpath (свой ИИ со сложностью Число и полным путем к файлу .ai)
Сложность ИИ: 0 = слабый, 1 = средний, 2 = сильный.

Примечание: Эта программа не накладывает ограничений на введенные здесь параметры. Можете вводить любые числа, если захотите. Но неправильная конфигурация приведет к тому, что карта не будет грузиться или с ошибками.
=Только для разработки:=
  • --print
    • Требует наличие имплементации text = table.serialize(strTableName, tabl).
    • Которая загружается через table.serialize = require("serialize")
  • --wgc <путь к wgc>
    • Вместе с --print показывает содержимое .wgc в текстовом виде (вывод в STDOUT).
    • Иначе это тот путь, куда сгенерируется новый файл .wgc.

Примеры:

OSX / Linux / *nix

Для Shell (Bash) создай новый текстовый файл start-map.sh с таким содержимым:
Код .sh
lua ./wgc-launch.lua \
--gameroot 'D:/War3-v127' \
--gameexe 'D:/War3-v127/war3.exe' \
--map 'D:/War3-v127/Maps/(2)HillsOfGlory.w3m' \
--slot slot0,team0,raceRandom,color0,health100,ai1 \
--slot slot1,team1,raceHuman,color1,health70,ai0 \
--slot slot2,team0,raceRandom,color2,health100,observer \
--gameargs "-windowed -launch" \
--gamespeed 64
Для запуска надо два раза щёлкнуть. А чтобы это можно было сделать, надо дать файлу разрешение на запуск, например chmod +x start-map.sh.

Windows

Можно использовать и Cygwin для консоли с Bash, но и командная строка CMD тоже сойдет.
Для CMD создай текстовый файл start-map.bat с таким содержимым:
.bat
lua.exe .\wgc-launch.lua ^
--gameroot "D:\\War3-v127\\" ^
--gameexe "D:/War3-v127/war3.exe" ^
--map "D:\\War3-v127\\Maps\\(2)HillsOfGlory.w3m" ^
--slot slot0,team0,raceRandom,color0,health100,ai1 ^
--slot slot1,team1,raceHuman,color1,health70,ai0 ^
--slot slot2,team0,raceRandom,color2,health100,observer ^
--gameargs "-windowed -launch" ^
--gamespeed 64
Теперь можно тестировать карту после двойного нажатия на .bat-файл.

Пример вывода:

Вывод
Creating directory:
mkdir: cannot create directory ‘D:/War3-v127/map-wgc-test’: File exists
Writing .wgc file: 'D:\War3-v127/map-wgc-test/(2)HillsOfGlory-playtest.wgc'
Copying map from -> to:
D:/War3-v127/Maps/(2)HillsOfGlory.w3m
D:/War3-v127/map-wgc-test/(2)HillsOfGlory.w3m
testing map path: 'D:/War3-v127/Maps/(2)HillsOfGlory.w3m'
temp map copy: 'map-wgc-test/(2)HillsOfGlory.w3m'
wgc path: 'map-wgc-test/(2)HillsOfGlory-playtest.wgc'
game speed: 64x
game flags: 0 (decimal)
launching: 'cd "D:/War3-v127" &&  "D:/War3-v127/war3.exe"  -loadfile "map-wgc-test/(2)HillsOfGlory-playtest.wgc" -windowed'

Установка:

  • Требуется Lua 5.3 или новее. Для пользователей проприетарной ОС Windows уже идет в комплекте. вам же все равно какой код запускать?
  • Эта программа должна мочь писать в папку <корневая папка игры>/map-wgc-test/ и создавать там новые файлы
    • Можно запускать под администратором, а можно самому создать папку с нужными разрешениями. Или же создать на месте папки символьную ссылку в какое-нибудь другое место. Это ограничение Warcraft.

Конец

`
ОЖИДАНИЕ РЕКЛАМЫ...