Куда кидать файлы ipl самп

Обновлено: 01.07.2024

В этом укроке мы напишем два скрипта, которые будут использовать ini-файл. Первый будет записывать данные в файл, другой - считывать.

Очень часто скриптеры хранят какие-то данные в файле. Например: я в моде NFS GTA RACE хранил стартера для миссий, а также текущую модель, уважение в ini-файле.

Рассмотрим основные опкоды. Сначала, обычно, проверяют на существование файла опкодом:

Дальше, обычно, если файла не найден, то скриптеры завершают поток, чтобы скрипт без файла не работал. Если файл найден - то можно.

Первый наш скрипт будет записывать данные. Давайте в файле будет хранится состояние жизни и брони CЖ. Другой скрипт будет считывать с того же самого файла данные и выводить их на экран.

Но сначала рассмотрим структуру ini-файла. Обычно он делится на секции - текст, написанный в квадратных скобках:

Количество секций неограниченно; а могут и вовсе отсутствовать.

В каждой секции имеются ключевые слова, которым заданы значения типа "int", "float", "string" ( целое, дробное, строка ). Сначала пишем ключевое слово, затем символ =, а потом само значение. Каждое ключевое слово пишется с новой строки.

Сложив всё вместе, мы получим полную структуру ini-файла:

Примеры INI-файлов:
Пример 1Пример 2

Как и в Санни Билдере, в ini-файлах есть комментарии. Всё что находится после символа ; будет игнорироваться. Вроде, с этим не должно возникнуть проблем, поэтому рассмотрим опкоды для записи значений в ini-файл:

Теперь считывание с ini-файла:

Для строк всегда возле переменных указывайте префикс v. Опкоды рассмотрели, теперь к примерам :) Скрипт, который будет записывать состояние жизни и брони СЖ в ini-файл:

Скрипт, которые считывает данные из файла и выводит на экран состояние жизни и брони CJ:

Результат, как всегда, положительный :) Всё работает как часики, и на экран выводится состояние CJ:

Документация по IPL

IPL (Item Placement) – файл отвечающий за положения объекта на карте, размещение пикапов транспорта и оружия и много чего еще.
Файл поделен на секции, каждая из которых начинается названием секции, и оканчивается параметром «End» Пример:

Есть 2 вида IPL файлов. Обычные (находятся в папке DATA > Maps) и бинарные (находятся в gta3.img). Для редактирования первых можно использовать обычный блокнот (notepad). Редактирование же бинарных IPL затрудняется только тем, что они скомпилированы. Для редактирования нужно применить Binary IPL Decompiler либо выудить содержимое прямо из архива помощью программы Game Archive Viewer.

Данная секция отвечает за размещение объектов.

ID – уникальный идентификатор объекта. Must match in IDE file identifier. (Целое число)

Name – Обычно имеет то же название что и файл .dff модели, без расширения.

Int – номер интерьера. Ноль, если с наружи. (Целое число)

x, y, z – Координаты положения объекта. (число с запятой [2543.460938])

rx, ry, rz, rw - Вращение объекта. Определяется как кватернион, для перевода в эйлеровы углы необходимы довольно сложные математические вычисления. Для того чтобы отредактировать этот параметр, воспользуйтесь редактором карты.

Lod –Это номер строки в текущем IPL файле для LODа, принадлежащего этой модели. Первый объект прописанный в IPL это строка «0», второй объект – «1» и так далее… Значение «-1» означает что LOD не используется. (Целое число)

CODE
7880, vgswstbbllgrnd, 0, 1415.46875, 2184.664063, 8.8125, 0, 0, 0, 1, 332
CODE
2785.88, -1944.41, 12.5291, 0, 33.7751, 12.5291, 2.5, 0, 15.5291, 8, 0

Создает пути для транспорта. В SanAndreas не использовано. Используйте nodes.dat.

GRGE
Данная секция отвечает за создание гаражей для использования в main.scm

X1, Y1, Z1, frontX, frontY, X2, Y2, Z2, Flag, Type, Name

frontX, frontY - Координаты x, y и z нижнего левого угла спереди.

X2, Y2, Z2 - Координаты x, y, z верхней левой точки сзади.

Door - вид двери

Type – тип гаража

Name – Используется дл того, чтобы редактировать параметры из Main.scm.

QUOTE (Виды дверей гаражей)

ID Описание
1 Дверь вращается и въезжает в глубь гаража.
2 Дверь разворачивается вверх и вниз.
QUOTE (Виды гаражей)

ID Описание
1 Обычный гараж
2 Устанавливает бомбу с 5-и секундным детонатором.
3 Устанавливает бомбу, которая сдетанирует при запуске двигателя после того как вы вышли из машины.
4 Устанавливает бомбу с дистанционным детонатором, как взрывной ранец.
5 Гараж восстановительных работ
CODE
2002.96, 2303.72, 9.61706, 2010.36, 2303.72, 2002.96, 2317.59, 13.9914, 1, 2, blob2

Данная секция отвечает за создание соединений между интерьерами и внешним игровым пространством.

CODE
X1, Y1, Z1, ROT, R1, R2, C8, X2, Y2, Z2, Rot2, Int, Mark, Name, Sky, I2, Time On, Time Off

X1, Y1, Z1 – местоположение входа

R1 - X радиус входа

R2 - Y радиус входа

C8 – постоянно 8

X2, Y2, Z2 – местоположение выхода

Rot2 – вращение выхода в градусах

Int – Номер целевого интерьера

Mark – Тип маркера

Name - interior name, used to find the counterpart and to identify via mission script

Sky – изменение цвета неба

I2 – неизвестный параметр выраженный целым числом, возможно связано с погодой

Time On – время включения действия таймера

Time Off – время отключения действия маркера.

В данной секции прописаны пикапы оружия.

X, Y, Z – координаты пикапа

Weapon ID – ID оружия. Его вы можете посмотреть в ниже приведенной таблице

QUOTE (список ID оружия)

ID Название оружия
4 Кастет
5 Дубинка полицейского
6 Нож
7 * Ничего*
8 * Ничего*
9 Клюшка для гольфа
10 бейсбольная бита
11 Совок
12 Кий
13 Катана
14 Цепная пила
15 Коктейль Молотова
16 Гранаты
17 подрывной ранец
18 Пистолет 9mm
19 9mm (С глушителем)
20 Desert Eagle(Орел Пустыни)
21 Ружье
22 SPAS Shotgun
23 Tec 9
24 Micro SMG
25 MP5
26 AK47
27 M4
28 Винтовка
29 Снайперская винтовка
30 *Ничего*
31 Огнемет
32 Minigun
33 Большой Фиолетовый Пенис
34 Маленький Белый Пенис
35 Большой белый вибратор
36 Маленький черный вибратор
37 Цветы
38 Тростник
39 Ringbox
40 Necklace Box
41 Мобильный телефон
42 *Ничего*
43 газовая граната
44 Minigun (Копия)
45 SPAS Shotgun (Копия)
46 Гранатомет
47 Гранатомет с датчиком тепла
48 Детонатор
49 Баллончик с краской
50 Огнетушитель
51 Камера
52 Очки ночного виденья
53 Инфракрасные очки
54 Реактивный Ранец
55 Парашют

В данной секции прописаны манипуляции камерой при совершении трюков

CODE
X1, Y1, Z1, rX, rY, rZ, X2, Y2, Z2, rX2, rY2, rZ2, cX, cY, cZ, reward

X1, Y1, Z1 – Координаты старта

rX, rY, rZ – Радиус старта

X2, Y2, Z2 - Координаты приземления

rX2, rY2, rZ2 – Радиус места приземления

cX, cY, cZ – координаты камеры

reward – награда, сумма денег выплачиваемая за выполнение трюка.

CODE
1.0, -3.44711, 0.0, 0.85, 0.75, 0.8, 0.0, 2.04034, 0.0, 0.5, 0.5, 0.5, -2.39865, -1.0, 1.0, 0

Создает зоны, при входе в которые создается темное небо. Этот эффект применен для всех городов в пригороде. Возможно это специализированная погода.

В данной секции прописываются аудиозоны.

Name – имя зоны

ID – звук, проигрываемый в зоне

Switch – делает зону постоянно включенной или выключенной. Может быть отрегулировано из main.scm.[/b]

Name, ID, Switch, X, Y, Z, Volume

Name - имя зоны

ID - звук, проигрываемый в зоне

Switch - делает зону постоянно включенной или выключенной. Может быть отрегулировано из main.scm.

Volume – дистанция, на протяжении которой будет слышен воспроизводимый звук

Данная секция ни разу не использовалась в игре, поэтому, за что она отвечает пока не известно, а может быть не будет известно никогда.

Ради эксперимента вы можете добавить в эту секцию любой текст. Игра будет загружаться как обычно. Это означает, то данная секция игнорируется движком игры.

Данная секция позволяет расставлять транспорт на карте. Обычно использовано только в бинарных IPL. Может быть использовано и в обычных.

CODE
X, Y, Z, angle, id, pc, sc, bool?, alarm, dl, radio?, appearance delay?

X, Y, Z[/b] – координаты размещения транспортного средства.

Angle – угл поворота транспортного средства

Id – ID транспортного средства

Pc – первичный цвет

Sc – вторичный цвет

Bool – (необходимо тестирование)

Alarm – сигнализация

Dl - блокировка дверей

Radio – возможно включает радиостанцию необходимую пользователю (необходимо тестирование)

appearance delay – (необходимо тестирование)

CODE
700.37201, -1571.03003, 13.32930, 314.16, -1, -1, -1, 0, 0, 0, -1, -1

Окклюзия – это один из способов уменьшения нагрузки на движок игры. Данный эффект смягчает ход игры. Окклюзии созданы при помощи невидимых коробок. Данные коробки создают зоны, модели вне которой не визуализируются. Данный способ оптимизации не дает ощутимого эффекта и Rockstar не слишком часто использует его в игре. Особых усовершенствований в этой секции, так что она не слишком отличается от Vice City.

X, Y, Zцентр коробки окклюзии в координатах X и Y

Z– координаты основания коробки

wX, wY - ширина коробки окклюзии

height – высота от основания до верха коробки

R – угл поворота в градусах

X1, Y1, Z1 = нижний левый угл коробки
X2, Y2, Z2 = верхний, правый угл коробки

Доброго времени суток. В этой статье я Вам расскажу о том, как же устроен .ipl-файл в GTA San Andreas (Криминальная Россия) и для чего он предназначен.
Предназначение
.ipl (Item PLacement) предназначен для расстановки объектов на игровой карте, а также определяет зоны, пути, гаражи, маркеры интерьеров и многое другое. Если IPL файл находится в текстовом виде, то его можно открыть и отредактировать в любом текстовом редакторе, например в Блокноте. А если он находится в бинарном (скомпилированном) виде, то, понятное дело, для его изменения (если не хочется танцевать с бубном) уже используют специальные редакторы, либо программы, конвертирующие двоичные IPL в текстовые и обратно. Ну, или как вариант, HEX-редактор в руки и пошли в шахту!
Данный тип файла используется во всех играх серии GTA, начиная с третьей части (кроме GTA5), а точнее - GTA 3, GTA VC, GTA SA/CR (в текстовом и двоичном виде), GTA LCS (в двоичном виде), GTA VCS (в двоичном виде), GTA 4 (в текстовом и двоичном виде).
Примечание. Двоичный .ipl-файл в GTA4 имеет расширение .wpl, однако ни строение, ни предназначение не изменились.
Структура
Файлы .ipl разделены на несколько секций. Они могут быть не обязательны, или даже могут быть пустыми. Каждая секция начинается и идентификатора секции и заканчивается ключевым словом end. Строка секции разделяется запятыми, между которыми записаны значения каждой ячейки строки. Каждая ячейка может содержать либо целое или дробное число, либо одно слово:

Секция INST
Отвечает за расположение и свойства статических и динамических (object.dat) объектов карты. Имеет следующий вид:

  • 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
  • X1, Y1, Z1 - нижний левый передний угол
  • frontX, frontY - нижний правый передний угол
  • X2, Y2, Z2 - верхний левый задний
  • Door - тип дверей
  • Type - тип гаража
  • Name - имя гаража. используется для редактирования гаражей через SCM
  • X1, Y1, Z1 - месторасположение входа
  • ROT - Поворот
  • W1 - X Радиус входа
  • W2 - Y Радиус выхода
  • C8 - неизвестно. Значение всегда = 8
  • X2, Y2, Z2 - Местоположение выхода
  • Rot2 - вращение выхода в градусах
  • Int - номер целевого интерьера
  • Flag - тип маркера
  • Name - название интерьера
  • Sky - изменение цвета неба
  • I2 - Неизвестный параметр выраженный целым числом, возможно связано с погодой
  • Time On - Время включения действия маркера
  • Time Off - Время отключения действия маркера
  • ID - ID оружия
  • X, Y, Z - координаты пикапа

Секция TCYC
Точной информации по TCYC пока нет. Возможно, секция управляет погодными эффектами в зоне. Внутри используется объект типа BOX.

  • Name - имя зоны
  • ID - идентификатор музыки. С помощью него проигрывается определённая музыка в зоне.
  • Switch - делает музыку всегда включённой или выключенной. Не может быть принуждён использованием опкода 0917.
  • Volume - максимальная дистанция, с которой слышно музыку.

Да, и ещё. Не ройтесь слишком много в /data, всё равно ничего не найдёте. Скомпилированные .ipl сидят в архиве /models/gta3.img.

Читайте также: