DTZ — различия между версиями
Материал из GTAModding.ru
Строка 324: | Строка 324: | ||
=== weapons data === | === weapons data === | ||
− | + | Состоит из двух CWeaponModelInfo. Чтение происходит напрямую из заголовка DaTa Zlib. | |
==== Структура версии LCS ==== | ==== Структура версии LCS ==== | ||
− | + | ===== Заголовок ===== | |
+ | <source lang="cpp">typedef struct Weapon_lcs_header | ||
+ | { | ||
+ | offset CWeaponModelInfo1; | ||
+ | offset CWeaponModelInfo2; | ||
+ | };</source> | ||
+ | |||
+ | Общее число записей: 38 | ||
<source lang="cpp"> | <source lang="cpp"> | ||
Строка 419: | Строка 426: | ||
==== Структура версии LCS ==== | ==== Структура версии LCS ==== | ||
− | + | ===== Заголовок ===== | |
− | На PS2 разделены на три фрагмента: 15+18+9=42 | + | Размер массива адресов: 42. Чтение происходит напрямую из заголовка DaTa Zlib. |
+ | <source lang="cpp">typedef struct pedstat_lcs_header | ||
+ | { | ||
+ | offset Pedstat_offset; | ||
+ | };</source> | ||
+ | |||
+ | ===== данные pedstats ===== | ||
+ | |||
+ | На PS2 разделены на три фрагмента: 15+18+9=42. | ||
+ | Общее число записей: 42. | ||
<source lang="cpp">typedef struct pedstat_lcs{ | <source lang="cpp">typedef struct pedstat_lcs{ | ||
Строка 464: | Строка 480: | ||
==== Структура версии LCS ==== | ==== Структура версии LCS ==== | ||
+ | |||
+ | ===== Заголовок ===== | ||
+ | |||
+ | Чтение происходит напрямую из заголовка DaTa Zlib. | ||
+ | <source lang="cpp">typedef struct lcs_handling_header | ||
+ | { | ||
+ | float unknow; | ||
+ | float unknow; | ||
+ | float unknow; | ||
+ | float unknow; | ||
+ | float unknow; | ||
+ | float null; | ||
+ | float null; | ||
+ | float null; | ||
+ | }; | ||
+ | </source> | ||
+ | |||
+ | ===== данные handling ===== | ||
Общее число записей: 81. | Общее число записей: 81. | ||
Строка 543: | Строка 577: | ||
==== Структура версии LCS ==== | ==== Структура версии LCS ==== | ||
− | Общее число записей: 82. | + | Общее число записей: 82. Заголовок секции отсутствует. Чтение происходит напрямую из заголовка DaTa Zlib. |
<source lang="cpp">typedef struct particle | <source lang="cpp">typedef struct particle | ||
{ | { | ||
Строка 602: | Строка 636: | ||
===== Секция col ===== | ===== Секция col ===== | ||
− | Общее число записей: 1 | + | Общее число записей: 1. Заголовок секции отсутствует. Чтение происходит напрямую из заголовка DaTa Zlib. |
+ | |||
Размер массива данных: 102. Лимит: 256 (кушает в памяти 1024 байт) | Размер массива данных: 102. Лимит: 256 (кушает в памяти 1024 байт) | ||
<source lang="cpp">typedef struct colors | <source lang="cpp">typedef struct colors | ||
Строка 614: | Строка 649: | ||
===== Секция car ===== | ===== Секция car ===== | ||
− | Общее число записей: равно количеству автотранспорта в игре. Является частью [[IDE]] | + | Общее число записей: равно количеству автотранспорта в игре. Является частью структуры [[IDE]] секции cars. |
+ | |||
Размер массива данных: 14. | Размер массива данных: 14. | ||
<source lang="cpp">typedef struct carcols | <source lang="cpp">typedef struct carcols |
Версия 20:26, 22 июня 2013
*.dtz
- дамп памяти консоли, содержащий основные игровые ресурсы GTA LCS и GTA VCS. Файл GAME.dtz
упакован при помощи алгоритма сжатия deflate/zlib.
Данный файл представляет особый интерес в силу того, что что в нем содержатся конфигурационные данные, а также элементы интерфейса и модели некоторых игровых объектов (в основном это бинарные аналоги текстовых файлов в папке data и моделей с текстурными архивами в папке models из GTA VC).
Содержание |
Краткое описание содержимого
В текущий момент известно, что в GAME.dtz
содержатся следующие данные:
Описание | Аналогия из предыдущих частей серии | Оффсет на ресурс | Комментарии |
---|---|---|---|
Текстуры | |||
текстуры меню | frontend.txd | LCS PS2: 0x4E4A30
LCS PSP: VCS PS2: VCS PSP: |
директория с текстурами меню, запакована deflate/zlib алгоритмом (*) |
текстуры шрифтов (fonts.chk) | fonts.txd | LCS PS2: 0x4EF4D8
LCS PSP: VCS PS2: VCS PSP: |
директория с текстурами шрифтов, запакована deflate/zlib алгоритмом (*) |
текстуры particle-эффектов | particle.txd | LCS PS2: 0x4A1C28
LCS PSP: VCS PS2: VCS PSP: |
содержит все текстуры particle-эффектов (*) |
generic-текстуры | generic.txd, wheels.txd, vehicle.txd | LCS PS2: 0x4A1BFC
LCS PSP: VCS PS2: VCS PSP: |
содержит общие текстуры для автотранспорта и все текстуры колес (*) |
значки радара | hud.txd | LCS PS2: 0x4A1BE4
LCS PSP: VCS PS2: VCS PSP: |
содержит текстуры для hud-а (*) |
текстуры радара | radarNN.txd | - | несколько файлов, только в GTA VCS |
Анимация | |||
? | ped.ifp | ||
? | swim.ifp | только в GTA VCS | |
? | fight.ifp | только в GTA VCS | |
? | driveby.ifp | только в GTA VCS | |
Коллизия | |||
коллизии пешеходов | peds.col | ||
коллизии автотранспорта | vehicles.col | ||
коллизии оружия | weapons.col | ||
Модели | |||
стрелка | Shape .dff | LCS PS2: 30643F | |
цилиндр | zonecylb.dff | LCS PS2: 64EA3F | |
стрелка 2 | arrow.dff | LCS PS2: 800643 | |
ЛОДы колес | wheels.dff | LCS PS2: 800643
E8C249 50C349 B8C349 ECC349 88C449 94EB49 |
|
колесо 1 | wheels.dff | LCS PS2: 80С249 | |
колесо 2 | wheels.dff | LCS PS2: B4C249 | |
колесо 3 | wheels.dff | LCS PS2: 1CC349 | |
колесо 4 | wheels.dff | LCS PS2: 84C349 | |
колесо 5 | wheels.dff | LCS PS2: 20C449 | |
колесо 6 | wheels.dff | LCS PS2: 54C449 | |
крылатый карандаш | air_vlo.dff | LCS PS2: 2CEB49 | |
колесо 7 | wheels.dff | LCS PS2: 60EB49 | |
IDE / IPL / DAT | |||
аналог IDE | *.ide | содержит все имена моделей и текстур | |
аналог IPL | *.ipl | содержит все координаты для расстановки коллизий в игре | |
цвета автомобилей | carcols.dat | ||
цвета пешеходов | peds.dat | только в GTA VCS | |
cullzone data | cullzone.dat | ||
fistfite data | fistfite.dat | ||
handling data | handling.dat | LCS PS2: 0x1647A0
LCS PSP: VCS PS2: VCS PSP: |
в LCS и VCS структуры отличаются |
info.zon | |||
map.zon | |||
object data | object.dat | ||
particle data | particle.cfg | LCS PS2: 0x3917D0
|
характеристики спецэффектов |
pedstats data | pedstats.dat | LCS PS2:
часть 1 - часть 2 - часть 3 - LCS PSP:
VCS PS2: часть 1 - часть 2 - VCS PSP:
|
характеристики пешеходов, в PS2-версиях разделены на части
LCS PS2: часть 1 - 15 items часть 2 - 18 items часть 3 - 9 items LCS PSP: 42 items VCS PS2: часть 1 - 6 items часть 2 - 36 items VCS PSP: 42 items |
timecyc data | timecyc.dat | характеристики погоды | |
waterpro data | waterpro.dat | данные водных поверхностей | |
weapon data | weapon.dat | LCS PS2:0x40A980 VCS PS2: |
|
Разное | |||
SDT-файлы. | LCS:0x377720
|
только в PSP-версиях |
Внимание!
- Оффсеты указаны для распакованного game.dtz.
- Данные, помеченные (*) открываются при помощи GTA Stories Texture Explorer.
Структуры
Ниже представлены некоторые структуры описанных выше данных.
weapons data
Состоит из двух CWeaponModelInfo. Чтение происходит напрямую из заголовка DaTa Zlib.
Структура версии LCS
Заголовок
typedef struct Weapon_lcs_header { offset CWeaponModelInfo1; offset CWeaponModelInfo2; };
Общее число записей: 38
typedef struct vFireOffset{ float x; float y; float z; }; typedef struct vTimeStrc{ float a; float b; float c; }; typedef struct weapondata{ int iFireType; float fRange; int iFiringRate; int iReload; int iAmountOfAmmunition; int iDamage; float fSpeed; float fRadius; float fLifeSpan; float fSpread; DWORD dwPadding1; DWORD dwPadding2; vFireOffset FireOffset; DWORD dwZero; DWORD dwAnim_id; vTimeStrc time1; vTimeStrc time2; float unk; DWORD dwModelID; DWORD dwModelID2; DWORD dwweapon_slot; DWORD dwFlags <format=hex>; };
Структура версии VCS
Общее число записей: 40
typedef struct vFireOffset{ float x; float y; float z; }; typedef struct vTimeStrc{ float a; float b; float c; }; typedef struct weapondata{ DWORD dwType; int iFireType; float fRange; int iFiringRate; int iReload; int iAmountOfAmmunition; int iDamage; float fSpeed; float fRadius; float fLifeSpan; float fSpread; DWORD dwPadding; //padding (0xAA) vFireOffset m_vFireOffset; //вектор DWORD _f3C; //всегда нуль DWORD _f40; //целочисленное значение DWORD _f44; //DWORD ? unknown vTimeStrc m_vTimeStrc; vTimeStrc m_vTimeStrc; float unk; DWORD dwModelID; DWORD dwModel2ID; DWORD dwWeaponSlot DWORD _f6C; //padding (0xAA) };
pedstats data
Структура версии LCS
Заголовок
Размер массива адресов: 42. Чтение происходит напрямую из заголовка DaTa Zlib.
typedef struct pedstat_lcs_header { offset Pedstat_offset; };
данные pedstats
На PS2 разделены на три фрагмента: 15+18+9=42. Общее число записей: 42.
typedef struct pedstat_lcs{ int iNumber; char name[24]; float fFleeDistance; float fHeadingChangeRate; byte btFear; byte btTemper; byte btLawfullness; byte btView; float fAttackStrength; float fDefendWeakness; WORD btStatFlags; byte padding[2]; };
Структура версии VCS
Общее число записей: 42.
На PS2 разделены на два фрагмента: 6+36=42
typedef struct pedstat_vcs{ int iNumber; float fFleeDistance; float fHeadingChangeRate; float fAttackStrength; float fDefendWeakness; byte btStatFlags; byte btZero; byte btFear; byte btTemper; byte btLawfullness; byte btView; char name[26]; };
handling data
Структура версии LCS
Заголовок
Чтение происходит напрямую из заголовка DaTa Zlib.
typedef struct lcs_handling_header { float unknow; float unknow; float unknow; float unknow; float unknow; float null; float null; float null; };
данные handling
Общее число записей: 81.
typedef struct lcs_handling_item { float fMass; float fTurnMass; float fTractionMultiplier; float _fC; DWORD dwId; float _f14; float fDragMult; float _f1C; float CentreOfMassX; float CentreOfMassY; float CentreOfMassZ; float _f2C; int nPercentSubmerged float _f34; float _f38; float _f3C; float _f40; float _f44; float _f48; float _f4C; float _f50; float _f54; float _f58; float _f5C; float _f60; float _f64; float _f68; float _f6C; float _f70; float _f74; float _f78; float _f7C; char cDriveType_TransmissionData; char cEngineType_TransmissionData; byte nNumberOfGears_TransmissionData; byte _f83; //bABS? float _f84; float fEngineInertia; float _f8C; float _f90; float _f94; float _f98; float _f9C; float fBrakeBias; float _fA4; float fSteeringLock; float fTractionLoss; float fTractionBias; float _fB4; //fSuspensionHighSpdComDamp? (всегда ноль) float fSuspensionForceLevel; float fSuspensionDampingLevel; float fSuspensionUpperLimit; float fSuspensionLowerLimit; float fSuspensionBias; float fSuspensionAntiDive; DWORD dwflags <format=hex>; float fSeatOffsetDistance; DWORD dwMonetaryValue; byte bFrontLights; //(0 = long, 1 = small, 2 = big, 3 = tall) byte bRearLights; //(0 = long, 1 = small, 2 = big, 3 = tall) byte padding[18]; };
Бинарный аналог handling.dat, декомпилированную с помощью Stories WRLD Tool версию можно cкачать из архива gtamodding.ru.
Структура версии VCS
particle data
Структура версии LCS
Общее число записей: 82. Заголовок секции отсутствует. Чтение происходит напрямую из заголовка DaTa Zlib.
typedef struct particle { DWORD dwID; char Name[20]; //A; float CreateRange; //CR; float DefInitRadius; //E; float ExpRate; //F; word InitAngle; //GZA; word ChangeTimeA; //IZA; word AngleChangeAmount; //HZA; word InitZRadius; //HZR; float ChangeTimeZ; //GZR; float ZRadiusChangeAmount; //IZR; word FadeTime; //H; word InitInten; //G; word FadeAmount; //I; word InitIntenA; //GA; word FadeTimeA; //HA; word FadeAmountA; //IA; byte StartAnimFr; //K; byte FinalAnimFr; //L; word AnimSpeed; //J; int RotSpeed; //M; float GravitAccel; //N; int DragFrictDeccel; //O; int DefLifeSpan; //P; float PosRandomError; //Q; float VelRandomError; //R; float ExpRateError; //S; int RotRateError; //T; int LSErrorShape; //U; float TrailLengthMult; //V; int Flags <format=hex>; //Z; byte ColourR; //B; byte ColourG; //C; word ColourB; //D; byte InitColourVar; //CV; byte FadeColourR; //B2; byte FadeColourG; //C2; byte FadeColourB; //D2; DWORD unk1; int ColourFadeTime; //FT; float StretchTexX; //WX; float StretchTexY; //WY; float WindFactor; //WI; DWORD unk2; };
Структура версии VCS
carcols data
Структура версии LCS
Секция col
Общее число записей: 1. Заголовок секции отсутствует. Чтение происходит напрямую из заголовка DaTa Zlib.
Размер массива данных: 102. Лимит: 256 (кушает в памяти 1024 байт)
typedef struct colors { byte Red; //Kрасный цвет; byte Grey; //Зелёный цвет; byte Blue; //Синий цвет; byte Alpha; //Альфа канал цвета; };
Секция car
Общее число записей: равно количеству автотранспорта в игре. Является частью структуры IDE секции cars.
Размер массива данных: 14.
typedef struct carcols { byte ColorID1; //Номер первого цвета; byte ColorID2; //Номер второго цвета; };