[size=175]Предназначение
.ipl ([b]I[b]PL
Данный тип файла используется во всех играх серии GTA, начиная с третьей части (кроме GTA5), а точнее — GTA 3, GTA VC, GTA SA/CR (в текстовом и двоичном виде), GTA LCS (в двоичном виде), GTA VCS (в двоичном виде), GTA 4 (в текстовом и двоичном виде).
[i][b]Примечание.
[size=175]Структура
Файлы .ipl разделены на несколько секций. Они могут быть не обязательны, или даже могут быть пустыми. Каждая секция начинается и идентификатора секции и заканчивается ключевым словом end. Строка секции разделяется запятыми, между которыми записаны значения каждой ячейки строки. Каждая ячейка может содержать либо целое или дробное число, либо одно слово:
[code]inst
…
end
[size=125]Секция INST
Отвечает за расположение и свойства статических и динамических (object.dat) объектов карты. Имеет следующий вид:
[code]inst
ModelId, NULL, Interior, PosX, PosY, PosZ, RotX, RotY, RotZ, RotW, LOD
end
[list][*]ModelId — уникальный идентификатор модели. Должен соответствовать идентификатору в IDE файле. Тип — DWORD.
[*]NULL — пустое значение строки, игнорируется игрой. Может содержать любой мусор (обычно туда записывают имя DFF файла для совместимости с MAP_IO). Тип — string[24].
[*]PosX, PosY, PosZ — координаты объекта относительно центра карты. Тип — float.
[*]1, 1, 1 — множители для масштабирования модели в игре, движком не используются, всегда равны или .dff. Определяется как кватернион, для перевода в Эйлеровы углы необходимы довольно сложные математические вычисления. Масштабируется только сама модель, модель коллизии не масштабируется! (при этом в игре появляются глюки с камерой). Тип — float
[*]Interior — Номер интерьера, для которого используется модель (объекты с другими номерами интерьеров при этом не подгружаются на карту при попадании игрока в данный интерьер). Для основной карты номер интерьера = 0. Тип — WORD.
[*]LOD — номер строки в текущем IPL файле для LODа, принадлежащего этой модели. Первый объект прописанный в IPL это строка «0», второй объект – «1» и так далее… Значение «-1» означает что LOD не используется. Тип — DWORD
[size=125]Cекция CULL
В GTA3, GTA VC, GTA SA/CR существуют 4 таблицы с куллингами. В третей части первая таблица находится в бинарном виде в CULLZONE.DAT и содержит параметры загрузки куллингов в память и их глобальные координаты. Начинается с оффсета 0x04 и занимает в файле 6800 байт. Без редактирования exe, максимальное количество зон в первой таблице = 512 строк.
Вторую таблицу можно найти в бинарном виде в CULLZONE.DAT и в текстовом файле CULL.IPL, причём в GTA3 она грузится из бинарного, а в GTA VC и GTA SA/CR — из текстового вида. Декомпилировать первую и вторую таблицу из CULLZONE.DAT можно с помощью отечественной программы «CULLZONE COMPILER/DECOMPILER by Majestic», а можно модифицировать их вручную, через HEX-редактор (в винде это может быть HEX Editor, а ближайший аналог в Debian-подобных (Debian, Ubuntu, Mint, Kununtu, Lubuntu, Xubuntu и ещё несколько) — это gHEX).
Выглядит всё это дело вот так:
[code]cull
centerX, centerY, centerZ, 0 (какой-то поворот), Ywidth, bottomZ, Xwidth, 0 (какой-то поворот), topZ, Flag1, Flag 2
centerX, centerY, centerZ, 0 (какой-то поворот),Ywidth, bottomZ, Xwidth, 0 (какой-то поворот), topZ, Flag, Vx, Vy, Vz, Cm
end
Границы Cull зон точно соотвествуют мировым координатам.
З.Ы. Второй формат секции CULL используется в основном для зеркал.
[table=1][trow][titem][b][center] Двоичное счисление [titem][b][center] Флаг [titem][b][center] Описание
[trow][titem]1111 1111 1111 1111[titem]-1[titem]Все параметры включены
[trow][titem]0000 0000 0000 0000[titem]0[titem]Все параметры выключены
[trow][titem]0000 0000 0000 0001[titem]1[titem]Блокируется опция смены камеры для игрока и авто
[trow][titem]0000 0000 0000 0010[titem]2[titem]Камера фиксируется вне зоны и следит за игроком
[trow][titem]0000 0000 0000 0100[titem]4[titem]«Низкая» камера на игроке и авто
[trow][titem]0000 0000 0000 1000[titem]8[titem]Игнорирование погодных эффектов типа тумана и дождя
[trow][titem]0000 0000 0001 0000[titem]16[titem]Полиция не видит игрока во время уровня розыска
[trow][titem]0000 0000 0010 0000[titem]32[titem]Игнорирование блокировки путей педов
[trow][titem]0000 0000 0100 0000[titem]64[titem]Честно говоря, сам не знаю
[trow][titem]0000 0000 1000 0000[titem]128[titem]Активирует рендеринг подземных тоннелей (автомобильных и метро)
[trow][titem]0000 0001 0000 0000[titem]256[titem]Сотрудники полиции всегда выходят из своих автомобилей, если игрок находится на высоком уровне розыска
[trow][titem]0001 0000 0000 0000[titem]4096[titem]Увеличение уровня розыска до 5 звёзд
[size=125]Секция GRGE
Тут создаются гаражи для дальнейшего использования в main.scm. Используется только в San Andreas, хотя не было убрано и в Criminal Russia.
[code]grge
X1, Y1, Z1, frontX, frontY, X2, Y2, Z2, Door, Type, Name
end
[list][*]X1, Y1, Z1 — нижний левый передний угол
[*]frontX, frontY — нижний правый передний угол
[*]X2, Y2, Z2 — верхний левый задний
[*]Door — тип дверей
[*]Type — тип гаража
[*]Name — имя гаража. используется для редактирования гаражей через SCM
[size=125]Секция ENEX
Данная секция отвечает за создание соединений между интерьерами и внешним игровым пространством.
[code]enex
X1, Y1, Z1, ROT, W1, W2, C8, X2, Y2, Z2, Rot2, Int, Flag, Name, Sky, I2, Time On, Time Off
end
[list][*]X1, Y1, Z1 — месторасположение входа
[*]ROT — Поворот
[*]W1 — X Радиус входа
[*]W2 — Y Радиус выхода
[*]C8 — неизвестно. Значение всегда = 8
[*]X2, Y2, Z2 — Местоположение выхода
[*]Rot2 — вращение выхода в градусах
[*]Int — номер целевого интерьера
[*]Flag — тип маркера
[*]Name — название интерьера
[*]Sky — изменение цвета неба
[*]I2 — Неизвестный параметр выраженный целым числом, возможно связано с погодой
[*]Time On — Время включения действия маркера
[*]Time Off — Время отключения действия маркера
[table=1][trow][titem][b][center]Флаг[titem][b][center]Имя[titem][b][center]Описание
[trow][titem]1[titem]неизвестный интерьер[titem]Используется только для маркеров
[trow][titem]2[titem]unknown pairing[titem]используется только для маркеров телепорта в интерьер
[trow][titem]4[titem]Create linked pair[titem]Pair with unflagged mate during new game start
[trow][titem]8[titem]Reward interior[titem]Sets flag 0010 on pair mate when used
[trow][titem]16[titem]Used reward entrance[titem]Set by accessing reward interior
[trow][titem]32[titem]Cars and aircraft[titem]Enable for cars and aircraft
[trow][titem]64[titem]Bikes and motorcycles[titem]Enable for bikes and motorcycles
[trow][titem]128[titem]Disable on foot[titem]No foot traffic. Use for cars and/or bikes only
[trow][titem]256[titem]Accept NPC group[titem]Group members accepted at destination of pair (passengers stripped)
[trow][titem]512[titem]Food date flag[titem]Set and cleared by food date (cut-scene related)
[trow][titem]1024[titem]unknown burglary[titem]Set on Bayside and Temporary Burglary doors
[trow][titem]2048[titem]Disable exit[titem]Player can enter but cannot exit a two-way pair
[trow][titem]4096[titem]Burglary access[titem]Enabled and disabled during Burglary
[trow][titem]8192[titem]Вход без выхода[titem]Создаётся только пикап входа. См. вход в ТЦ «Анашан» (Южный район) и психиатрическую больницу в селе Батырево (Арзамасский район).
[trow][titem]16384[titem]Активирован по стандарту[titem]Активируется по стандарту; часто очищается скриптам
[trow][titem]32768[titem]Удаляется после использования[titem]Встаём на enex, он выполняет действие и исчезает
[size=125]Секция PICK
Эта секция создаёт пикапы оружия. В San Andreas использовалась лишь для огнетушителей в ресторанах фаст-фуда.
[code]pick
ID, X, Y, Z
end
[list][*]ID — ID оружия
[*]X, Y, Z — координаты пикапа
[size=125]Секция JUMP
Создаёт уникальный прыжок, заданный через минимальные и максимальные координаты для точки старта и приземления. Этот формат соответствует формату, который используется в опкоде 0814.
[code]startXmin, startYmin, startZmin, startXmax, startYmax, startZmax, landXmin, landYmin, landZmin,
landXmax, landYmax, landZmax, camX, camY, camZ, reward
[size=125]Секция TCYC
Точной информации по TCYC пока нет. Возможно, секция управляет погодными эффектами в зоне. Внутри используется объект типа BOX.
[code]tcyc
X1, Y1, Z1, X2, Y2, Z2, ?, ?, ?, ?, ?
end
[size=125]Секция AUZO
Секция создаёт в зоне музыку. См. развлекательный центр «8-BIT» (г. Южный).
[code]auzo
Name, ID, Switch, X1, Y1, Z1, X2, Y2, Z2
Name, ID, Switch, X, Y, Z, Volume
end
[list][*]Name — имя зоны
[*]ID — идентификатор музыки. С помощью него проигрывается определённая музыка в зоне.
[*]Switch — делает музыку всегда включённой или выключенной. Не может быть принуждён использованием опкода 0917.
[*]Volume — максимальная дистанция, с которой слышно музыку.
[size=125]Секция MULT
Неизвестная секция, использовавшаяся только в GTA SA/CR и 4.
[size=125]Секция CARS
Секция CARS используется для размещения автомобиля на карте. Для этого нужно вписать координаты на карте, поворот модели, информацию о цветах и прочее. В GTA San Andreas/Криминальной России для расстановки машин чаще всего регулярно используется бинарный формат .IPL. Его, понятное дело, можно открыть только HEX-редактором. А декомпиляторов, к сожалению, не существует.
[code]4b — FLOAT — Позиция X
4b — FLOAT — Позиция Y
4b — FLOAT — Позиция Z
4b — FLOAT — Угол (Вокруг оси-Z)
4b — INT32 — ID объекта
4b — INT32 — Основной цвет
4b — INT32 — Вторичный цвет
4b — INT32 — Появление автомобиля
4b — INT32 — Сигнализация
4b — INT32 — Свойство закрытых дверей
4b — INT32 — Unknown1
4b — INT32 — Unknown2
Да, и ещё. Не ройтесь слишком много в /data, всё равно ничего не найдёте. Скомпилированные .ipl сидят в архиве /models/gta3.img.