Раздел:
Основы

Конфигурация игровой сессии Warcraft III

Файл .wgc может быть загружен игрой так же как и карта, параметром "-loadfile testconfig.wgc". Такой файл генерируется редактором карт для тестирования ИИ, и самая крутая его возможность в установке скорости игры выше 100% (вроде ограничения на скорость никакого нет).
Заметка:
Reforged использует Unicode версию WinAPI, потому пути могут содержать не только ASCII символы, а и русские буквы тоже.
Старые версии (тестировала 1.27) с Unicode совладать в путях не могут (в т.ч. указанных внутри файла), поэтому для них надо использовать только символы ASCII (английские буквы).

Структура файла .wgc:

byte - 1 байт
short - 2 байта Little Endian
int - 4 байта Little Endian (здесь все беззнаковые, unsigned)
float - IEEE 32bit Little Endian
char - однобайтовый символ
string - порядок байтов, заканчивающийся на '\0' (обыкновенная Си строка)
Тип Описание Объяснение
int версия формата 1.27, 1.32 = 1
int метки бит 0x1: Туман войны (1=выкл.) и бит 0x2: Условия победы/поражения (1=выкл.)
int базовая скорость игры всё замрет = 0, а 100% = 1, а 400% = 4
string относительный путь до карты Maps\(2)HillsOfGlory.w3m или ..\..\..\(3)Nighthaven.w3m. Для старых версий: корневая папка - это папка с игрой. Для Reforged: корневая папка - это _retail_ или _ptr_ (working directory)
int кол-во игроков следующее далее переменная i
i раз, см. информацию об игроке для каждого описанного слота: ...

Информация об игроке

Тип Описание Объяснение
int номер слота Начинается с нуля. Пустые слоты вообще не пишутся в файл.
int команда (force) Начинается с нуля, для зрителя всегда 0
int раса 0x01 = Альянс / 0x02 = Орда / 0x04 = Ночные эльфы / 0x08 = Нежить / 0x20 = Случайно / Для зрителей раса игнорируется (даже не меняется интерфейс)
int цвет Начинается с нуля (красный). Игроки могут иметь один и тот же цвет. Зрители всегда 0.
int гандикап Жизнь юнитов игрока. Целочисленное 50-100, означает 50-100%.
int метки слота бит 0x01 = пользователь (1) или компьютер (0) / бит 0x02 = зритель (1) или игрок (0) / бит 0x04 = загрузить другой файл ИИ (1) или использовать стандартный (0) / бит 0x08 = путь к файлу ИИ относительный (0) или полный (1)
int сложность ИИ* Для ИИ: 0=слабый, 1=средний, 2=сложный (значения выше не работают) / Для пользователей/зрителей: бит 0x01 должен быть 1, иначе карта не загрузится
string путь до своего файла ИИ Полный путь: C:\wc3\_retail_\AI Scripts\my.ai / Относительный путь: AI Scripts\my.ai (две точки работают как должны) / Иначе пустая строка

См. также:

Обновление 2022-10-04: Неправильное значение для относительного/полного пути к AI файлу. 0 и 1 были поменяны местами, бит 0x08.
`
ОЖИДАНИЕ РЕКЛАМЫ...