Добавлен Prot,
опубликован
Раздел:
Работа с MPQ и импортом
Внутреннее устройство файла w3m (карты).
Архив содержит следующие файлы:
- (listfile)
- (attributes)
- war3map.w3e
- war3map.w3i
- war3map.wtg
- war3map.wct
- war3map.wts
- war3map.j
- war3map.shd
- war3mapMap.blp
- war3map.mmp
- war3map.wpm
- war3map.doo
- war3mapUnits.doo
- war3map.w3r
- war3map.w3c
- war3map.w3u
- war3mapImported (папка)
Назначение файлов:
(listfile)
Список всех входящих в архив файлов, представлен в обычном текстовом виде.
war3map.j
Здесь, на языке JASS2, который придумали в Blizzard, записаны все тригеры, которые есть в карте. Для получения информации о синтаксисе языка читайте статью Sergey-я о текстовых тригерах.
war3map.w3e
Здесь содержится информация о текстурировании поверхности. В этом и остальных последующих файлах для редактирования надо открыть не обычным блокнотом (он покажет всякую ерунду), а в шестнадцатеричной кодировке (Hex). Вся поверхность разбивается на одинаковые квадраты и каждой из четырёх точек квадрата присваивается определённый тип текстуры. При этом точка отвечает за прилегающую к ней четверть квадрата. Заголовок:
Тип | Значение | Описание |
---|---|---|
символ | W3E! | символьное значение, обязательный элемент, обозначающий тип файла |
целое | 0B 00 00 00 | версия формата 11 (целое число всегда занимает 4 байта) |
символ | главная текстура. Возможны следующие варианты: | |
A | Ashenvale | |
B | Barrens | |
C | Felwood | |
D | Dungeon | |
F | Lordaeron Fall | |
G | Underground | |
L | Lordaeron Summer | |
N | Northrend | |
Q | Village Fall | |
V | Village | |
W | Lordaeron Winter | |
X | Dalaran | |
Y | Cityscape | |
целое | 0 или 1 | используются ли custom tilesets |
целое | 1..16 | количество используемых текстур земли |
строка | ID используемых текстур земли. Например "Ldrt" означает "Lordaeron Summer Dirt". Для получения полного списка ID текстур земли, откройте файл Terrain.slk, находящийся в директории TerrainArt в war3.mpq. | |
целое | 1..16 | количество используемых текстур утёсов |
строка | ID используемых текстур утёсов. Например "CLdi" означает "Lordaeron Cliff Dirt". Для получения полного списка ID текстур утёсов, откройте файл CliffTypes.slk, находящийся в директории TerrainArt в war3.mpq. | |
целое | ширина карты + 1 | |
целое | высота карты + 1 | |
дробное десятичное | смещение центра карты по X | |
дробное десятичное | смещение центра карты по Y | |
Эти параметры определяют местоположение центра карты, который нужен для технических целей. Начало координат находится в нижнем левом углу. По умолчанию центр координат сдвигается в геометрический центр карты. |
Далее идёт непосредственно сама информация о текстурировании карты. Там в принципе ничего интересного нет, так как всё, что можно сделать вручную в этом файле, можно сделать и в самом редакторе.
war3map.shd
Не содержит заголовка, только рабочую информацию. Размер файла = 16x<ширина_карты>x<высота_карты>. Один байт может иметь значение: 00 - нет тени, FF - есть тень. Каждый квадрат текстуры (земли или утёса) содержит 16 квадратов тени (4*4).
war3map.wpm
Обозначает на карте места с разной степенью проходимости. На каждый текстурный квадрат приходится по 16 квадратов проходимости. Заголовок:
Тип | Значение | Описание |
---|---|---|
символ | MP3W | символьное значение, обязательный элемент, обозначающий тип файла |
целое | версия файла | |
целое | <ширина_текстурной_карты>x4 | ширина карты проходимости |
целое | <высота_текстурной_карты>x4 | высота карты проходимости |
В главной части один за одним идут байты, соответствующие квадратам проходимости. Их значениям соответствуют:
- 00 - мост
- 08 - неглубокая вода
- 0A - глубокая вода
- 40 - нормальная земля
- 48 - места, где нельзя строить
- CA - места, где нельзя ходить и строить
- CE - граница карты
war3map.doo
Информация по деревьям.
war3mapUnits.doo
Информация по предметам и дудадам.
war3map.w3i
Различная информация по карте, которая задаётся в едиторе в разделе сценарий.
war3map.wts
Здесь хранятся строковые значения введённые в некоторых полях тригеров.
war3mapMap.blp
Изображение миникарты.
war3map.mmp
The menu minimap - оформление значками миникарты, появляющейся при загрузке карты. Заголовок:
Тип | Значение | Описание |
---|---|---|
целое | 0 | неизвестно, что означает, но обычно = 0 |
целое | количество значков |
Главная часть. На каждый значок приходится по 16 байт:
Тип | Значение | Описание |
---|---|---|
целое | тип значка | |
00 | золотая шахта | |
01 | нейтральное здание | |
02 | стартовая точка игрока | |
целое | коодината значка по Х | |
целое | коодината значка по Y | |
Примеры: | ||
10, 10 | сверху слева | |
80, 80 | по центру | |
F0, F0 | снизу справа | |
целое | Последние 4 байта блока первого значка - цвет в формате СС ЗЗ КК АА = синий, зелёный, красный, альфа канал. | |
03 03 FF FF | красный | |
FF 42 00 FF | синий | |
B9 E6 1C FF | голубой | |
81 00 54 FF | пурпурный | |
00 FC FF FF | жёлтый | |
0E 8A FE FF | оранжевый | |
00 C0 20 FF | зелёный | |
B0 5B E5 FF | розовый | |
97 96 95 FF | светло серый | |
F1 BF 7E FF | светло голубой | |
46 62 10 FF | голубой | |
04 2A 49 FF | коричневый | |
FF FF FF FF | нет цвета |
war3map.w3u
Здесь хранятся данные о всех самодельных юнитах (custom units).
war3map.wtg
Здесь хранятся все внутренние имена тригеров и переменных, которые редактор автоматически генерирует.
war3map.w3c
Здесь задаются все те параметры камеры, которые доступны в редакторе при открытии свойств камеры.
war3map.w3r
Параметры регионов. Тоже ничего новенького, интересного или чего-то такого, чего нельзя было бы задать через редактор.
war3map.w3s
Задаются звуки. Стандартные параметры.
war3map.wct
Здесь записываются текстовые тригеры. Так как они отличаются по своей структуре от обычных тригеров, то для их описания был создан специальный файл - это он. В текстовом виде они и задаются в этом файле. Или что-то в этом роде.
war3map.imp
А вот этот файл уже кое-чем интересен. Он появляется внутри архива w3m только если в едиторе был экспортирован в карту хотя бы один звук или музыка. Если это было сделано, то в w3m появляется экспортированный файл в папке war3mapImported, а также создаётся файл war3map.imp, в котором делается запись об экспортированном объекте. Структура записи:
Тип | Значение | Описание |
---|---|---|
целое | 0 или 1 | версия файла, это несущественный параметр, дающий только информацию для пользователя (не так уж и нужную на мой взгляд). |
целое | количество импортированных файлов. |
Главная часть.
Тип | Значение | Описание |
---|---|---|
целое | 5, 8, 10, 13 | Если 5 или 8, то файл имеет стандартный путь war3mapImported\<имя_файла>, если 10 или 13, то нестандартный. |
строка | Путь к импортированному файлу. | |
символ | #0 | в конце строки нулевой символ. |
Автор оригинала: Zepir
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Там на все целочисленные значения уделяется 4 байта?
Этот не ловкий момент когда ты ноль в английском...
Отредактирован alexprey
Отредактирован awesomesk1ll
Каждая точка ландшафта (tilepoint) состоит из блока 7 байтов.
Число таких блоков еквивалентно Mx*My. (число всех тайлов в карте)
2000h: высота равная нулю (ground level 0)
3FFFh: максимальная высота (+16383)
short int - Это короткая целочисленная
Короткие целочисленные размещаются используя 2 байта в "Little Endian" (зеркальном или хм.. перевёрнутом?) порядке.
Они близки к C++ "signed short" типу но их диапазон чисел от -16384 до 16383. Имеется ввиду что 2 верхних бита свободны для использования под флаг, например.
пример little endian - число 0x2151 в хексе представляется как 51 21
Вообще информация довольно интересная).
Пришлите мне в лс свои имена (или ники) которые можно будет вставить в благодарности генератора.