Gta3.exe

Материал из GTAModding.ru
Перейти к: навигация, поиск

Исполняющий файл игры, содержит игровой движок - RenderWare и много различных игровых ресурсов.

Содержание

Исходные коды

Кроме собственно RenderWare, GTA3.exe содержит специализированную часть кода, написанного программистами Rockstar Games специально под нужды GTA и встречающийся исключительно в линейке видеоигр серии, начиная с GTA III.

Основные компоненты GTA CORE

  • EventList.cpp - содержит список игровых событий
  • Crime.cpp - обеспечивает работу криминальных типов
  • Ped.cpp - формирует пути пешеходов на карте из nodes
  • PedAI.cpp - задаёт пешеходам определённое поведение
  • Pedtype.cpp - обработчик PED.DAT
  • Population.cpp - обработчик PEDGRP.DAT
  • Explosion.cpp
  • ProjectileInfo.cpp
  • Weapon.cpp - отвечает за оружие в игре
  • WeaponInfo.cpp - обработчик WEAPON.DAT

GTA3Portable:

  • binarytree.cpp
  • POLRADIO.CPP
  • EmergencyPed.cpp
  • CopPed.cpp
  • combostate.cpp
  • glass.cpp
  • automobile.cpp
  • world.cpp
  • tinyxmlparser.cpp
  • fluff.cpp
  • player.cpp
  • pathrental.cpp
  • cranes.cpp
  • pedpath.cpp
  • civilianped.cpp
  • tinystr.cpp
  • localareaknowledge.cpp
  • trafficlights.cpp
  • physical.cpp
  • renderer.cpp
  • tinyxml.cpp
  • shadows.cpp
  • dummy.cpp
  • objectivefunctions.cpp
  • entity.cpp
  • streamingnew.cpp
  • vehicle.cpp
  • garage.cpp
  • fecontrollerelement.cpp
  • carctrl.cpp

GTA3Mobile:

  • cdstream-tegra.cpp
  • font.cpp
  • sprite2d.cpp
  • Touchscreen.cpp
  • samp-oal.cpp
  • MobileFrontend.cpp
  • RadarMap.cpp
  • ImplArrays.cpp
  • IOSFile.cpp
  • IOSGamepad.cpp
  • EmuCustomShader.cpp

Лимиты

Как и в любой другой игре, в GTA3 тоже существуют так называемые игровые лимиты.

Лимит - определённое ограничение, наложенное разработчиками игры на конкретные виды игровых ресурсов - модели, текстуры, автотранспорт и т.д. Выражены в числовом виде.

Отредактировать лимиты можно любым HEX-редактором, отрыв в нём gta.exe или их можно изменять непосредственно в игровой памяти посредством написания *.asi-плагинов или через использование CLEO-скриптов, но это намного сложнее.

Основные лимиты gta3 по способу хранения можно разделить на одно-байтовые и четырёх-байтовые. Четырёх-байтовые в свою очередь делятся на множество подвидов, с ними можно будет ознакомиться ниже.

Классификация

Данная классификация нестандартна, является результатом любительского подхода к изучению содержимого gta3.exe. Была получена без использования различных декомпиляторов, поэтому что-то ней может не совпадать с тем, что есть на самом деле.

Первая категория "Основные Лимиты"

"Лимит", в данном случае, - параметр, передаваемый в процедуру, которая выделяет память для нового пула, - кол-во элементов в пуле. Все адреса основных лимитов и их названия представлены ниже (база частично взята из GTA3 Limit Adjuster 1.0), в скобочках указаны их стандартные значения.

  • 00460C - Directory (512)
  • 0069D3 - Directory (128)
  • 037945 - CopPed (0)
  • 0A186F (0A177F) - PtrNode (30000) - Определяет допустимые объёмы коллизий на игровой карте
  • 0A188C (0A179C) - EntryInfoNode (5400)
  • 0A18A9 (0A17B9) - Peds (140)
  • 0A18C6 (0A17D6) - Vehicle (110)
  • 0A18E0 (0A17F0) - Buildings (5500)
  • 0A18FD (0A180D) - Treadable (1214)
  • 0A191A (0A182A) - Object (450)
  • 0A1937 (0A1847) - Dummy (2802)
  • 0A1954 (0A1864) - AudioScriptObj (256)
  • 0F54E2 (0F5432) - EmergencyPed (16)
  • OF556E (0F54BE) - EmergencyPed (17)
  • 127698 (127458) - TxdDef (850)
  • 15B6B8 (15B588) - ProjectileInfo (170)
  • 15B6DC (15B5AC) - ProjectileInfo (174)
  • 15B700 (15B5D0) - ProjectileInfo (179)

Вторая категория "Пути"

Содержит строковые значения, ссылающиеся на основные игровые ресурсы. Выложены самые интересные, являющиеся полезными для моддинга GTA3.

  • 1FD6B0 (1FD498) - fonts.txd
  • 1FDB2C (1FD914) - hud.txd
  • 1F34B0 (1F33A8) - menu.txd
  • 217C80 (217440) - txd.dir
  • 217C50 (217410) - txd.img
  • 1FFA0C (1FF7F4) - carcols.dat
  • 1F4EEC (1F4DDC) - default.dat
  • 1F57C4 (1F55AC) - gta3.dat
  • 2013D4 (2010B4) - handling.cfg
  • 1EE79C - main.scm
  • 2033FC (202CC4) - weapon.dat
  • 2035BD (202E85) - HEAD RADIO
  • 2034F5 (202DBD) - CLASSIC (DOUBLE CLEFF FM) RADIO
  • 20350E (202DD6) - KJAH RADIO
  • 203527 (202DEF) - RISE FM
  • 203540 (202E08) - LIPS 106
  • 203559 (202E21) - GAME FM
  • 203572 (202E3A) - MSX FM
  • 20358B (202E53) - FLASHBACK 95.6
  • 2035A4 (202E6C) - CHAT
  • 20F49D (20ED5D) - GTA3 USER FILES

Третья категория

Консоль debugger-а GTA CORE

Для тестирования GTA3 разработчиками использовалась консоль. В финальной версии она полностью заблокирована (оставили только кастратную возможность ввода чит-кодов без интерфейса командной строки). Текстуры консоли разработчиками были оставлены в frontend.txd и menu.txd.


Классы и структуры

CVector

0x0000 | float x
0x0004 | float y
0x0008 | float z

CScrollBar

Начало 0x62F240
Кол-во 11
Размер 0x60
0x0000 | DWORD   counter
0x0004 | char    *text               // Указатель на текущую строку
0x0008 | CVector pos                 // Координаты левого нижнего угла
0x0014 | DWORD   textCurrPos
0x0018 | DWORD   textStartPos
0x001С | float   scaleX              // Масштабирование/разворот в 2D-системе координат
0x0020 | float   scaleY              // Масштабирование/разворот в 2D-системе координат
0x0024 | float   height              // Высота
0x0028 | float   intensity           // Интенсивность, зависит от расположения камеры и влияет на значения RGB
0x002C | BYTE    renderCharsSets[40]
0x0054 | BYTE    textType            // Тип определяет комбинацию текстов, которая будет показана на бегущей строке
0x0055 | BYTE    isUpdated
0x0056 | BYTE    red
0x0057 | BYTE    green
0x0058 | BYTE    blue
0x0059 | BYTE    _pad[3]
0x005C | float   depth               // Толщина букв

CAntenna

Начало 0x664680
Кол-во 8
Размер 0x9C
0x0000 | BYTE    isExist
0x0001 | BYTE    isUpdated
0x0002 | BYTE    _pad[2]
0x0004 | DWORD   id
0x0008 | float   length     // Длина, для RcBandit равна 1.0
0x000С | CVector pointsA[6]
0x0054 | CVector pointsB[6]

CPointlight

Начало 0x7096D0
Кол-во 32
Размер 0x2C
0x0000 | CVector pos                  // Позиция
0x000C | CVector direction            // Направление
0x0018 | float   radius               // Радиус
0x001C | float   red                  // 0.0 - 1.0
0x0020 | float   green                // 0.0 - 1.0
0x0024 | float   blue                 // 0.0 - 1.0
0x0028 | BYTE    type                 // Тип источника света
0x0029 | BYTE    fogType              // Эффект с использованием текстуры pointlight
0x002A | BYTE    generateExtraShadows // Включить создание дополнительных теней для автомобиля игрока
0x002B | BYTE    _pad

CRegisteredShadow

Начало 0x779058
Кол-во 48
Размер 0x30
0x0000 | CVector   position
0x000C | float     rotationX1  // Эти параметры определяют разворот и размер
0x0010 | float     rotationY1
0x0014 | float     rotationX2
0x0018 | float     rotationY2
0x001C | float     zDistance   // Максимальное расстояние между позицией тени и поверхностью, на которую падает тень
0x0020 | float     scale       // Масштабирование относительно одного из углов
0x0024 | WORD      intensity
0x0026 | BYTE      type
0x0027 | BYTE      red
0x0028 | BYTE      green
0x0029 | BYTE      blue
0x002A | WORD      flags
0x002C | RwTexture *texture

Типы теней (type)

ID Описание           Source-Blend Dest-Blend
0                     5            6
1  Тень (чёрный цвет) 2            2
2  Свет (цвет RGB)    1            4

CRegisteredMotionBlurStreak

Начало 0x880A00
Кол-во 4
Размер 0x54
0x0000 | DWORD   id
0x0004 | BYTE    red
0x0005 | BYTE    green
0x0006 | BYTE    blue
0x0007 | BYTE    _pad1
0x0008 | CVector partPointsA[3]
0x002C | CVector partPointsB[3]
0x0050 | BYTE    isPartNeedsToBeRendered[3]
0x0053 | BYTE    _pad2
п · о · р
GTA III Grand Theft Auto III
Форматы файлов.b.a3d.anm.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.zon
Документацияcarcols.datCHASE.DATCULLZONE.DATcuts.imgdefault.datfistfite.datflight.datgta3.exegta3.dat
gta3.imggta3.zonhandling.cfgmain.scmmap.datmap.zonobject.datparticle.cfgped.datpedgrp.dat
pedstats.datsfx.rawsurface.datTimeCyc.DATtracks.dattrain.datwater.datwaterpro.datweapon.dat
ИнструментыCLEOClump ViewerCol-IO‎Collision File Editor IIData toolDFF Viewerdffxbox2pcG-ToolsGTA Garage Mod Manager
GXT EditorGTA3 Limit AdjusterGTA3 Mission BuilderGTA3 PatcherIMG ToolKam's Max ScriptsMap Editor
Mod GeneratorMod InstallerMoo MapperPS2 TXD ModPS2 TXD ViewerResourse HackerRotation Calculator
RW AnalyzeViceTXDWater EditorSanny BuilderTXD ToolTXD WorkshopYAIEZModeler
Туториалыраздел в разработке
Классические МодыGPS RadarBye-Bye BikiniUltimate Stunt ParkThe SphereMiss LibertyIllandoIntercity HighwayShoreside Bridge
Rockstar HeightsLighthouse BridgeBlade FunparkOrbital CityLakeside IslandLiberty PenitentiaryJEM Island
Illando HelixCliff Climbing Mountain
Глобальные МодыReal GTA3Twenty TenSnow CityFrosted WinterUltimateBeta modX-box modBad BusinessGTA3 HDUltra mod
OpenTunnelsBack to the Future
МультиплеерMulti Theft AutoLiberty Unleashed
Исходники4x48ballambulanceasukaasusbcameracar_gencatcopcardebugdemodiablofiretruckfrankgates
genstufhealthhjhoodimportintrojoeykenjiloveluigimayhemmeatpickupsrampagerayrcswitch
taxitoniusjwantedyard