Приветствую Вас, Гость | RSS
Пятница, 17.05.2024, 04:56
Главная » Статьи » Мои статьи

адреса памяти для gta sa (продолжение)
0xB6F3B8 = Поинтер на цель. 
+0x79C = Нацеленный пед (структура): 
0 = Нет педа 
+0xC0 = Поинтер на последний объект, педа, машину с которым ты столкнулся. 
Handling

0xC2B9DC - Handling Block Start. Each slot has 224 bytes of data. 
+0x0 = [dword] Index/Identifier 
+0x4 = fMass 
+0x8 = 1.0 / fMass 
+0xC = fTurnMass 
+0x10 = fDragMult 
+0x14 = CentreOfMass.x 
+0x18 = CentreOfMass.y 
+0x1C = CentreOfMass.z 
+0x20 = [byte] nPercentSubmerged 
+0x24 = fMass * 8.0000001e-1 / nPercentSubmerged 
+0x28 = fTractionMultiplier 
+0x74 = [byte] TransmissionData.nDriveType 
+0x75 = [byte] TransmissionData.nEngineType 
+0x76 = [byte] TransmissionData.nNumberOfGears 
+0x7C = TransmissionData.fEngineAcceleration (Multiplied by 3.9999999e-4) 
+0x80 = TransmissionData.fEngineInertia 
+0x84 = TransmissionData.fMaxVelocity (Multiplied by 5.5555599e-3) 
+0x94 = fBrakeDeceleration (Multiplied by 3.9999999e-4) 
+0x98 = fBrakeBias 
+0x9C = [byte] bABS 
+0xA0 = fSteeringLock 
+0xA4 = fTractionLoss 
+0xA8 = fTractionBias 
+0xAC = fSuspensionForceLevel 
+0xB0 = fSuspensionDampingLevel 
+0xB4 = fSuspensionHighSpdComDamp 
+0xB8 = Suspension upper limit 
+0xBC= Suspension lower limit 
+0xC0 = Suspension bias between front and rear 
+0xC4 = Suspension anti-dive multiplier 
+0xC8 = fCollisionDamageMultiplier (multiplier not yet found) 
+0xCC = [hex] modelFlags 
+0xD0 = [hex] handlingFlags 
+0xD4 = fSeatOffsetDistance 
+0xD8 = [dword] nMonetaryValue 
+0xDC = [byte] Front lights 
+0xDD = [byte] Rear lights 
+0xDE = [byte] Vehicle anim group 
WEAPON.DAT

0xC8AAB8 - Начало блока, куда считывается информация об оружии с меткой J (оружие ближнего боя) и $ (остальное оружие). В этом блоке 0x50 элементов по 0x70 байт в каждом. Индекс элемента высчитывается по формуле: <номер оружия> + <смещение>. Смещение определяется навыком оружия skilllevel: STD - 0, POOR - 25, PRO - 36, особое (характеристики пистолета копов) - 47. Все имена взяты из заголовка оригинального weapon.dat. 
+0x0 = [dword] eFireType 
0 - MELEE 
1 - INSTANT_HIT 
2 - PROJECTILE 
3 - AREA_EFFECT 
4 - CAMERA 
5 - USE 
+0x4 = [dword] targetRange 
+0x8 = [dword] weaponRange 
+0xC = [dword] modelId1 
+0x10 = [dword] modelId2 
+0x14 = [dword] slot 
+0x18 = [dword] flags. Изменяя флаги, убедитесь, что установленная анимационная группа поддерживает все определенные действия, иначе игра будет вылетать. Массив флагов: 
0 - CANAIM. Возможность целиться из оружия. 
1 - AIMWITHARM. Сиджей, когда целится, водит рукой. 
2 - 1STPERSON. Вид от первого лица при прицеливании (как у базук и снайперской винтовки). 
3 - ONLYFREEAIM. 
4 - MOVEAIM. Возможность передвигаться при прицеливании. 
5 - MOVEFIRE. Возможность передвигаться при стрельбе. 
6 - unused. 
7 - unused. 
8 - THROW. 
9 - HEAVY. Тяжелое оружие. Когда в руках, нельзя бегать спринтом. 
10 - CONTINUOUSFIRE. 
11 - TWIN_PISTOL. Рендерить оружие в обоих руках. 
12 - RELOAD. Необходимость перезарядки. 
13 - CROUCHFIRE. Перезарядка сидя. 
14 - RELOAD2START. Перезарядка сразу после выстрела (как у дробовика). 
15 - LONG_RELOAD. 
16 - SLOWSDWN. 
17 - RANDSPEED. 
18 - EXPANDS. 
+0x1C = [dword] AssocGroupId. Некоторые анимационные группы и их идентификаторы: 
0 - 'default' 
11 - 'python' 
12 - 'pythonbad' 
13 - 'colt45' 
14 - 'colt_cop' 
15 - 'colt45pro' 
16 - 'sawnoff' 
17 - 'sawnoffpro' 
18 - 'silenced' 
19 - 'shotgun' 
20 - 'shotgunbad' 
21 - 'buddy' 
22 - 'buddybad' 
23 - 'uzi' 
24 - 'uzibad' 
25 - 'rifle' 
26 - 'riflebad' 
27 - 'sniper' 
28 - 'grenade' 
29 - 'flame' 
30 - 'rocket' 
31 - 'spraycan' 
32 - 'goggles' 
33 - 'melee_1' 
34 - 'melee_2' 
35 - 'melee_3' 
36 - 'melee_4' 
37 - 'bbbat_1' 
38 - 'gclub_1' 
39 - 'knife_1' 
40 - 'sword_1' 
41 - 'dildo_1' 
42 - 'flowers_1' 
43 - 'csaw_1' 
+0x20 = [word] ammoClip 
+0x22 = [word] damage 
+0x24 = [dword] fireOffset.x 
+0x28 = [dword] fireOffset.y 
+0x2C = [dword] fireOffset.z 
+0x30 = [dword] skillLevel 
0 - POOR 
1 - STD 
2 - PRO 
3 - особое 
+0x34 = [dword] statrequired. Уровень статистики, необходимый для получения текущего навыка владения оружием. 
+0x38 = [dword] accuracy 
+0x3C = [dword] movementspeed 
+0x40 = [dword] animLoop start 
+0x44 = [dword] animLoop end 
+0x48 = [dword] animLoop fire 
+0x4C = [dword] animLoop2 start 
+0x50 = [dword] animLoop2 end 
+0x54 = [dword] animLoop2 fire 
+0x58 = [dword] breakoutTime 
+0x5C = [dword] Скорость 
+0x60 = [dword] radius 
+0x64 = [dword] lifespan 
+0x68 = [dword] spread 
+0x6C = [word] AlignedAnimGroupID = (11 <= AssocGroupId && AssocGroupId <= 31) ? (AssocGroupId - 11) : 0; 
+0x6E = [byte] ComboID 
4 - "Руки" 
8 - "Бита" 
9 - "Нож" 
10 - "GOLFCLUB" 
11 - "Катана" 
12 - "Бензопила" 
13 - "Дилдо" 
14 - "Цветы" 
+0x6F = [byte] numCombos 

0xC8A8A8 - сюда считывается информация о смещениях прицела для анимационных групп (метка %). Состоит из 20 элементов по 0x18 байт в каждом. Индекс элемента - AlignedAnimGroupID из структуры выше. 
+0x0 = [dword] AimX 
+0x4 = [dword] AimZ 
+0x8 = [dword] DuckX 
+0xC = [dword] DuckZ 
+0x10 = [word] RLoadA 
+0x12 = [word] RLoadB 
+0x14 = [word] CrouchRLoadA 
+0x16 = [word] CrouchRLoadB 
Controls

0xB73458 - Start of controls block. 
+0x20 = [word] Accelerate: 
0 = off 
255 = on 
+0x22 = [word] Brake 
Пикапы

0x9788C0 - Начало блока пикапов. Количество элементов - 620. Размер одного элемента - 32 байта. 
+0 = [float] Текущая стоимость 
+4 = [dword] Указатель на CObject 
+8 = [dword] Количество денег/патронов 
+12 = [dword] Время восстановления 
+16 = [word] Позиция X * 8 
+18 = [word] Позиция Y * 8 
+20 = [word] Позиция Z * 8 
+22 = [word] Количество денег за день 
+24 = [word] ID модели 
+26 = [word] Уникальный индекс 
+28 = [byte] Тип 
3 - Подковы, ракушки 
4 - Оружие, которое оставляют педы после смерти 
8 - Деньги, которые оставляют педы после смерти 
20 - Фотокамеры 
+29 = [byte] Флаги 
+30 = [byte] Неизвестно 
+31 = [byte] Неизвестно 
Короны

0xC3E058 - Начало блока корон. Количество элементов - 64. Размер одного элемента - 60 байт. 
+0 = [float] Позиция X 
+4 = [float] Позиция Y 
+8 = [float] Позиция Z 
+12 = [dword] Идентификатор 
+16 = [dword] Указатель на структуру текстуры (RwTexture) 
+20 = [float] Радиус 
+24 = [float] Угол поворота, относительно камеры 
+28 = [float] Радиус видимости (издалека) 
+32 = [float] Радиус видимости (вблизи) 
+36 = [dword] Неизвестно 
+40 = [float] Неизвестно 
+44 = [byte] R 
+45 = [byte] G 
+46 = [byte] B 
+47 = [byte] A 
+48 = [byte] Статус затемнения 
0 - Полное затемнение 
255 - Отсутствие затемнения 
+49 = [byte] Статус создания короны в поточном фрейме 
0 - Не создана 
1 - Создана 
+50 = [byte] Тип вспышки (lensflare) 
+51 = [byte] Наличие отражения (отражения действуют при влажной погоде) 
+52 = [dword] Неизвестно 
+56 = [dword] Субьект, к которому прицеплена корона 
Тени

0xC40430 - Начало блока теней. Количество элементов - 48. Размер одного элемента - 52 байт. 
+0 = [float] Позиция X 
+4 = [float] Позиция Y 
+8 = [float] Позиция Z 
+12 = [float] Положение текстуры, CornerA X 
+16 = [float] Положение текстуры, CornerA Y 
+20 = [float] Положение текстуры, CornerB X 
+24 = [float] Положение текстуры, CornerB Y 
+28 = [float] Радиус действия по оси Z 
+32 = [float] Смещение 
+36 = [dword] Указатель на структуру текстуры (RwTexture) 
+40 = [dword] Для теней педов - уазатель на какой-то массив 
+44 = [word] Интенсивность 
+46 = [byte] Тип цветовой схемы 
1 - Чёрный цвет 
2 - RGB 
3 - Инверсия RGB 
+47 = [byte] R 
+48 = [byte] G 
+49 = [byte] B 
+50 = [word] Флаги 
Маркеры

0xC7DD58 - Начало блока маркеров. Количество элементов - 32. Размер одного элемента - 160 байт. 
+0 = [64 байта] Матрица поворота и позиции 
+48 = [float] Позиция X 
+52 = [float] Позиция Y 
+56 = [float] Позиция Z 
+64 = [dword] Неизвестно 
+68 = [dword] Неизвестно 
+72 = [dword] Указатель на RwObject 
+76 = [dword] Указатель на Material 
+80 = [word] Тип 
1 - Сфера 
5 - Конус 
6 - Конус 
+82 [dword] Статус наличия в поточном фрейме 
0 - Не создан 
1 - Создан 
+84 = [dword] Идентификатор 
+88 = [byte] R 
+89 = [byte] G 
+90 = [byte] B 
+91 = [byte] A 
+92 = [word] Интервал анимации 
+94 = [word] Скорость поворота 
+96 = [dword] Время создания 
+100 = [float] Частота анимации 
+104 = [float] Стандартный размер 
+108 = [float] Поточный размер 
+112 = [float] Яркость 
+116 = [float] Радиус видимости 
+120 = [float] Направление X 
+124 = [float] Направление Y 
+128 = [float] Направление Z 
+132 = [word] Последняя полученная координата X 
+134 = [word] Последняя полученная координата Y 
+136 = [float] Последний реультат GetGroundZ 
+140 = [float] Высота поднятия 
+144 = [float] Последняя позиция X 
+148 = [float] Последняя позиция Y 
+152 = [float] Последняя позиция Z 
+156 = [dword] Время, когда последний раз была совершена проверка IsOnScreen 
Гоночные чекпоинты

0xC7F158 - Начало блока чекпоинтов. Количество элементов - 32. Размер одного элемента - 56 байт. 
+0 = [byte] Тип 
0 - Цилиндр со стрелкой 
1 - Цилиндр с финальным флажком 
2 - Цилиндр 
3 - Кольцо 
4 - Кольцо 
5 - Кольцо 
6 - Кольцо 
7 - Кольцо 
8 - Кольцо 
+4 = [dword] SCM-хендл 
+8 = [byte] R 
+9 = [byte] G 
+10 = [byte] B 
+11 = [byte] A 
+16 = [float] Позиция X 
+20 = [float] Позиция Y 
+24 = [float] Позиция Z 
+28 = [float] Направление X 
+32 = [float] Направление Y 
+36 = [float] Направление Z 
+44 = [float] Размер 
Пули снайперской винтовки

0xC88740 - Старт блока пуль снайперской винтовки. Всего элементов в пуле - 8. Размер одного элемента - 44 байт. 
+0 = [dword] Тип оружия 
34 - Снайперская винтовка 
+4 = [dword] Адресс структуры стрелявшего 
+8 = [float] Время уничтожения (милисекунды) 
+12 = [byte] Статус пули 
0 - Не существует 
1 - Существует 
+13 = [byte] Неизвестно (0) 
+14 = [byte] Неизвестно (0) 
+15 = [byte] Неизвестно (0) 
+16 = [float] Позиция X 
+20 = [float] Позиция Y 
+24 = [float] Позиция Z 
+28 = [float] Скорость по оси X (метров за фрейм) 
+32 = [float] Скорость по оси Y (метров за фрейм) 
+36 = [float] Скорость по оси Z (метров за фрейм) 
+40 = [word] Урон (125) 
+42 = [word] Неизвестно (0) 
Снаряды

0xC891A8 - Старт пула снарядов. Всего элементов в пуле - 32. Размер одного элемента - 36 байт. 
+0 = [dword] Тип снаряда 
16 - Граната 
17 - Дымовая граната 
18 - Коктейль Молотова 
19 - Ракета 
20 - Тепловая ракета 
39 - Бомба-липучка 
58 = Светящаяся ракета 
+4 = [dword] Указатель на транспорт/педа, запустившего/кинувшего снаряд 
+8 = [dword] Указатель на нацеленную машину (для тепловых ракет) 
+12 = [dword] Неизвестно 
+16 = [byte] Статус снаряда 
0 = Не существует/Взорван 
1 = Летит 
+17 = [byte] Неизвестно 
+18 = [byte] Неизвестно 
+19 = [byte] Неизвестно 
+20 = [float] Последняя позиция X 
+24 = [float] Последняя позиция Y 
+28 = [float] Последняя позиция Z 
+32 = [dword] Неизвестно 
Гаражи и парковка

Обратите внимание, что адресса памяти для гаражей могут варьироваться в зависимости от скрипта SCM, который вы используете 

Всего в игре 50 гаражей. Каждый гараж имеет:- 
Позицию 
Детали 
Информацию об использовании 
Расположение в игре 
Расположение двери 
Ширину 
Толщину 
Высоту 
Направление 
Координаты нижнего левого угла 
Координаты высшего правого угла, 
Использование игроком 
Какому имуществу (safe house) он принадлежит 
Номер машин, в котором могут храниться эти гаражи 
Состояние двери (закрытая, открытая, открывающееся и закрывающееся дверь) 

These are found in the garage object of 212 bytes. The memory locations where the garages start are: 
0x96C048 (start of first garage) 
+0xD4 (offset for second garage - offset this much again for third garage, again for fourth, etc.) 
0x96C120 (start of final garage) 

(Tested using non-patched original v1.0 German EXE with English language option selected, and original SCM file.) 

(UZI-I Tested Player Garage and Pay'n'Spray using Hoodlum Crack EXE with an Blank SCM) 

Here is the known garage offsets: 
+0 = [float] X Coord of the Garage Lower Left corner 
+4 = [float] Y Coord of the Garage Lower Left corner 
+8 = [float] Z Coord of the Garage Lower Left corner 
+12 = [float] X Value of direction vector 1 
+16 = [float] Y Value of direction vector 1 
+20 = [float] X Value of direction vector 2 
+24 = [float] Y Value of direction vector 2 
+28 = [float] Top Z Coord. of the garage 
+32 = [float] Normalized Width of the garage 
+36 = [float] Normalized Depth of the garage 
+40 = [float] Left Border (X) corrdinate 
+44 = [float] Right Border (X) corrdinate 
+48 = [float] Front Border (Y) corrdinate 
+52 = [float] Back Border (Y) corrdinate 
+56 = [float] Garage Door Position 
+60 = [dword] unknown (Timer) 
+64 = [dword] unknown (not saved) 
+68 = [chars] Garage Name (7 bytes + nul) 
+76 = [byte] Garage Type 
+77 = [byte] Garage Door State values: 
0 = closed 
1 = open 
2 = closing 
3 = opening 
+78 = [byte] Door Flags 
0x01 used mod shop (?) 
0x02 inactive door 
0x04 used Pay'n'Spray (?) 
0x08 small door (reflective?) 
0x10 up and in door 
0x20 camera follows player 
0x40 door is closed flag 
0x80 girlfriend PnS 
+79 = [byte] Original Type 

The direction vector 3 is completely left out, I think because the garages are always even to the ground. I think that is also why the Z values of the direction vectors are also left-out. Note: Direction Vectors marked above may be Quaternions. 

Here are the static Addresses of the Garage Blocks, and to which garage they belong: 
0x96C048 - Commerce Region, Loading Bay Garage (Life's a Beach) 
0x96C120 - LSPD Police Impound Garage 
0x96C1F8 - Mission Garage near El Corona (Los Desperados) 
0x96C2D0 - Eight Ball Autos near El Corona 
0x96C3A8 - Mission Garage near El Corona (Cesar Vialpando) 
0x96C480 - Player Garage: El Corona 
0x96C558 - LS Burglary Garage near Playe del Seville 
0x96C630 - LowRider Tuning Garage in Willowfield 
0x96C708 - Pay 'n' Spray in Idlewood 
0x96C7E0 - Player Garage: Johnson House 
0x96C8B8 - Pay 'n' Spray in Temple 
0x96C990 - Transfender in Temple 
0x96CA68 - Pay 'n' Spray in Santa Maria Beach 
0x96CB40 - Player Garage: Santa Maria Beach 
0x96CC18 - Player Garage: Mulholland 
0x96CCF0 - Wheel Archangels in Ocean Flats 
0x96CDC8 - Mission Garage in Ocean Flats (T-Bone Mendez) 
0x96CEA0 - Player Garage: Hashbury 
0x96CF78 - Transfender near Wang Cars in Doherty 
0x96D050 - Pay 'n' Spray near Wang Cars in Doherty 
0x96D128 - SF Burglary Garage, Loading Bay near Doherty 
0x96D200 - Player Garage: Doherty 
0x96D2D8 - Mission Garage in Doherty Garage 
0x96D3B0 - Woozie's Mission Garage in Chinatown (Ran Fa Li) 
0x96D488 - Michelle's Pay 'n' Spray in Downtown 
0x96D560 - Player Garage: Calton Heights 
0x96D638 - SFPD Police Impound Garage 
0x96D710 - Pay 'n' Spray in Juniper Hollow 
0x96D7E8 - Player Garage: Paradiso 
0x96D8C0 - LVPD Police Impound Garage 
0x96D998 - Airport Plane Garage in Las Venturas 
0x96DA70 - LV Burglary Garage near Camel's Toe 
0x96DB48 - Pay 'n' Spray near Royal Casino 
0x96DC20 - Transfender in come-a-lot 
0x96DCF8 - Player Garage: Rockshore West 
0x96DDD0 - Welding Wedding Bomb-workshop in Emerald Isle 
0x96DEA8 - Pay 'n' Spray in Redsands East 
0x96DF80 - Player Garage: Redsands West 
0x96E058 - Player Garage: Prickle Pine 
0x96E130 - Player Garage: Whitewood Estates 
0x96E208 - Pay 'n' Spray in El Quebrados 
0x96E2E0 - Pay 'n' Spray in Fort Carson 
0x96E3B8 - Player Garage: Fort Carson 
0x96E490 - Player Garage: Verdant Meadows 
0x96E568 - Mission Garage in El Castillo del Diablo (Interdiction) 
0x96E640 - Airport Garage in Verdant Meadows 
0x96E718 - Mission Garage in Angel Pine (Puncture Wounds) 
0x96E7F0 - Pay 'n' Spray in Dillimore 
0x96E8C8 - Player Garage: Palomino Creek 
0x96E9A0 - Player Garage: Dillimore 

Static Mem. Locations for garages: 
0x96ABD8 - Johnson House Car 1 
0x96AC18 - Johnson House Car 2 
0x96AC58 - Johnson House Car 3 
0x96AC98 - Johnson House Car 4 
0x96ACD8 - Santa Maria Beach Car 1 
0x96AD18 - Santa Maria Beach Car 2 
0x96AD58 - Santa Maria Beach Car 3 
0x96AD98 - Santa Maria Beach Car 4 
0x96ADD8 - Rockshore West Car 1 
0x96AE18 - Rockshore West Car 2 
0x96AE58 - Rockshore West Car 3 
0x96AE98 - Rockshore West Car 4 
0x96AED8 - Fort Carson Car 1 
0x96AF18 - Fort Carson Car 2 
0x96AF58 - Fort Carson Car 3 
0x96AF98 - Fort Carson Car 4 
0x96AFD8 - Verdant Meadows Car 1 
0x96B018 - Verdant Meadows Car 2 
0x96B058 - Verdant Meadows Car 3 
0x96B098 - Verdant Meadows Car 4 
0x96B0D8 - Dillimore Car 1 
0x96B118 - Dillimore Car 2 
0x96B158 - Dillimore Car 3 
0x96B198 - Dillimore Car 4 
0x96B1D8 - Prickle Pine Car 1 
0x96B218 - Prickle Pine Car 2 
0x96B258 - Prickle Pine Car 3 
0x96B298 - Prickle Pine Car 3 
0x96B2D8 - Whitewood Estates Car 1 
0x96B318 - Whitewood Estates Car 2 
0x96B358 - Whitewood Estates Car 3 
0x96B398 - Whitewood Estates Car 4 
0x96B3D8 - Palomino Creek Car 1 
0x96B418 - Palomino Creek Car 2 
0x96B458 - Palomino Creek Car 3 
0x96B498 - Palomino Creek Car 4 
0x96B4D8 - Redlands West Car 1 
0x96B518 - Redlands West Car 2 
0x96B558 - Redlands West Car 3 
0x96B598 - Redlands West Car 4 
0x96B5D8 - El Corona Car 1 
0x96B618 - El Corona Car 2 
0x96B658 - El Corona Car 3 
0x96B698 - El Corona Car 4 
0x96B6D8 - MulHolland Car 1 
0x96B718 - MulHolland Car 2 
0x96B758 - MulHolland Car 3 
0x96B798 - MulHolland Car 4 
0x96B7D8 - LSPD Impound Car 1 
0x96B818 - LSPD Impound Car 2 
0x96B858 - LSPD Impound Car 3 
0x96B898 - LSPD Impound unused 
0x96B8D8 - SFPD Impound Car 1 
0x96B918 - SFPD Impound Car 2 
0x96B958 - SFPD Impound Car 3 
0x96B998 - SFPD Impound unused 
0x96B9D8 - LVPD Impound Car 1 
0x96BA18 - LVPD Impound Car 2 
0x96BA58 - LVPD Impound Car 3 
0x96BA98 - LVPD Impound usued 
0x96BAD8 - Calton Heights Car 1 
0x96BB18 - Calton Heights Car 2 
0x96BB58 - Calton Heights Car 3 
0x96BB98 - Calton Heights Car 4 
0x96BBD8 - Paradiso Car 1 
0x96BC18 - Paradiso Car 2 
0x96BC58 - Paradiso Car 3 
0x96BC98 - Paradiso Car 4 
0x96BCD8 - Doherty Car 1 
0x96BD18 - Doherty Car 2 
0x96BD58 - Doherty Car 3 
0x96BD98 - Doherty Car 4 
0x96BDD8 - Hashbury Car 1 
0x96BE18 - Hashbury Car 2 
0x96BE58 - Hashbury Car 3 
0x96BE98 - Hashbury Car 4 
0x96BED8 - Verdant Meadows Airport Car 1 
0x96BF18 - Verdant Meadows Airport Car 2 
0x96BF58 - Verdant Meadows Airport Car 3 
0x96BF98 - Verdant Meadows Airport Car 4 
Интерфейс
0xBAB22C - [byte] Строка здоровья/цвет противника/красный маркер/любой красный текст (RGBA, 4 байта) 
0xBAB230 - [byte] Цвет денег/цвет названия машины/любой зелёный текст (RGBA, 4 байта) 
0xBAB238 - [byte] Белый цвет (RGBA, 4 байта) 
0xBAB240 - [byte] Main menu title border (RGBA, 4 байта) 
0xBAB244 - [byte] Уровень розыска/жёлтый цвет (RGBA, 4 байта) 
0xBAB24C - [byte] Цвет названия радиостанции (RGBA, 4 байта) 

Примечание: изменяется интерфейс в хекс, поэтому значение необходимо писать так: 
0xFFFFFFFF


Меню

0xBA6748 - Base address. 
+0x15D = [byte] ID текущего меню 
+0x78D = [byte] Show menu item hover 
+0x54 = [dword] Selected menu item 
+0xE9 = [byte] Main menu switch (startup menu/menu when playing) 
+0x84 = [dword] Язык 
+0x15F = [byte] Selected savegame 
+0x24 = [dword] Режим радара 
+0x64 = [float] Размер карты 
+0x68 = [float] Позиция х карты 
+0x6C = [float] Позиция у карты 
+0x5C = [byte] Player in menu? 
Идентификаторы меню - (IDs)

Известные идентификаторы (IDs) меню (получить ID можно по адресу 0xBA68A5): 
0 = Статус 
1 = Запуск игры 
2 = Резюме 
3 = Настройки звука 
4 = Настройки экрана 
5 = Карта 
6 = Вопрос начала новой игры 
7 = Выбор игры 
8 = Вопрос загрузки миссион пака 
9 = Загрузить игру 
10 = Удалить игру 
11 = Вопрос о загрузке файла сохранения 
12 = Вопрос о удалении файла сохранения 
13 = Загрузить первое сохранение?? *Вылет 
14 = Удаление выполнено 
15 = Удаление выполнено 
16 = Сохранение игры 
17 = Вопрос о записи файла сохранения 
18 = Сохранение выполнено 
19 = Сохранение выполнено 
20 = Игра успешно сохранена 
21 = Игра успешно загружена 
22 = Игра повреждена, не сохраняйте 
23 = Отобразить настройки по умолчанию 
24 = Настройки аудио по умолчанию 
25 = Настройки контроллера по умолчанию 
26 = Опции треков пользователя 
28 = Языки 
29 = Сохранение игры прошло успешно 
30 = Сохранение игры прошло не успешно 
31 = Загрузка игры (запись сохранения не удачна) 
32 = Загрузка не успешна, файл повреждён 
33 = Опции 
34 = Главное меню 
35 = Выйти из игры 
36 = Настройка контроллера 
37 = Пересмотр контроля 
38 = Контроль ходьбы/автомобиля 
39 = Настройка мыши 
40 = Настройки джойстика 
41 = Игра под управлением главного меню 
42 = Выйти из игры 
43 = Пусто 
SCM related 
0xA49960 - Start of the SCM block (0xA49960 + (4 * varnumber) is that particular variable) 
0xA7A6A0 - Start of the mission block (69000 bytes) 
0x464080 - GetOpcodeParameters() 
0xA447F4 - Command count 
00469F00 - CRunningScript_ProcessOneCommand 
0x464080 - CRunningScript_CollectParameters 
0x4859D0 - CRunningScript_UpdateCompareFlag 
0x469390 - Game_Script_Thread struct 
0xA43C78 - Where the routine above stores opcode parameters values. Max 16 paramters for an opcode it seems 
0x8A6168 - "Master" jumptable, each dword points to one of 27 different functions, each one handling approx 100 opcodes 
0x466C50 - Opcodes 0000 - 0063. Array of dword, each pointing to the function for that opcode 
0x468364 - Opcodes 0064 - 00C4. Array of dword, each pointing to the function for that opcode 
0x469E4C - Opcodes 00D6 - 0129. Array of byte, each byte is an index for the array of dword at 0x469DD4, which points to the opcode function 
0x47D1B4 - Opcodes 0137 - 018F. Array of byte, each byte is an index for the array of dword at 0x47D0F4, which points to the opcode function 
0x47DFE0 - Opcodes 0190 - 01F3. Array of byte, each byte is an index for the array of dword at 0x47DF58, which points to the opcode function 
0x47F304 - Opcodes 01F4 - 0256. Array of byte, each byte is an index for the array of dword at 0x47F24C, which points to the opcode function 
0x47FA04 - Opcodes 0292 - 02B8. Array of byte, each byte is an index for the array of dword at 0x47F9BC, which points to the opcode function 
0x480FD8 - Opcodes 02BE - 031D. Array of byte, each byte is an index for the array of dword at 0x480F10, which points to the opcode function 
0x4836B8 - Opcodes 0320 - 0382. Array of byte, each byte is an index for the array of dword at 0x483600, which points to the opcode function 

(Нет времени закончить сейчас, закончим позже) 
Threads

0xA8B430 - Старт пула потоков. There are two queues: the active threads and inactive ones.
0xA8B42C - Поинтер к первому активному СКМ потоку.
0xA8B428 - Поинтер к первому неактивному скрипту. 

Each thread has size of 224 (0xE0) bytes. 
+0 = [void*] Pointer to the next thread in a queue 
+4 = [void*] Pointer to the previous thread in a queue 
+8 = [char] Thread name given by the opcode 03A4, char 8 
+16 = [dword] Thread base IP (used in the missions and external scripts to calculate a global address of a local jump offset) 
+20 = [dword] Current IP 
+24 = [dword] Return stack (stores the current IP when a gosub executed, dword 8) 
+56 = [word] Last item index of the return stack 
+60 = [dword] Local variables array, dword 32 
+188 = [dword] Automatically incrementing timers, dword 2 
+196 = [boolean] Thread active flag 
+197 = [boolean] Условие IF 
+198 = [boolean] Mission flag 
+199 = [boolean] External script flag 
+200 = [boolean] Unknown flag (in menu?). Used in 03E5 
+201 = [boolean] Unknown flag (ID of an assigned script?) 
+204 = [dword] Wakeup time (set by 0001) 
+208 = [word] IF number (set by 00D6) 
+210 = [boolean] Not flag (if a condition to check is negative â€" any opcodes higher than 0x7FFF) 
+211 = [boolean] Wasted or busted check enabled flag (set by 0111); only for missions 
+212 = [boolean] Игрок задержан или убит; только для миссий 
+216 = [dword] Skip scene IP (used by opcodes 0707, 0701) 
+220 = [boolean] Флаг миссии 
Информация о внешних скриптах

0xA47B60 â€" Start of the external scripts info pool. There are 82 elements with 32 bytes of size each 
+0 = [dword] Script IP 
+4 = [word] Status (can be obtained by 0926) 
+6 = [word] Index in SCM (a number as defined in the scm header) 
+8 = [char] Name, char 20 
+28 = [dword] Размер 

0xA485A0 â€" [dword] Размер последнего внешнего скрипта
0xA485A4 â€" [dword] Общее количество скриптов 
Другое

0xA4892C â€" Start of the pool stored the flipped vehicles handles. There are 6 elements in there, with each of them: 
+0 = [dword] Vehicle handle to check if it flipped. Stored by opcode 0190. 
+4 = [dword] Time in ms passed from the moment a vehicle flipped. Used by opcode 018F 

00A90850 â€" Start of the mission cleanup list. This list keeps the handles of any entities created during a mission. When the opcode 00D8 executed (normally it happens at the end of any mission), the game reads this list and destroys everything being stored there. Maximum of the items in the list is 75. Each item has the following structure: 
+0 = [byte] Entity type: 
1 - vehicle 
2 - actor 
3 - object 
4 - particle 
5 â€" group (062F) 
7 â€" AS_origin (061D) 
8 - action_sequence 
9 - decision maker 
11 - searchlight 
13 - txd_dictionary 
+4 = [dword] entity handle (an index in the proper pool) 
Weather Codes

0xC81318 - [word] Закрепить погоду (нашел AlienX).
0xC8131C - [word] Следущая погода.
0xC81320 - [word] Текущая погода.

The following values tie up with the sections in data/timecycp.dat. There are several different kinds of weathers (including underwater), and the current weather affects viewing distance, sky colour, fog intensity, and other things like that. The appearance of each weather is time-dependent too. 

Weather Values: 
0 = EXTRASUNNY_LA 
1 = SUNNY_LA 
2 = EXTRASUNNY_SMOG_LA 
3 = SUNNY_SMOG_LA 
4 = CLOUDY_LA 
5 = SUNNY_SF 
6 = EXTRASUNNY_SF 
7 = CLOUDY_SF 
8 = RAINY_SF 
9 = FOGGY_SF 
10 = SUNNY_VEGAS 
11 = EXTRASUNNY_VEGAS (heat waves) 
12 = CLOUDY_VEGAS 
13 = EXTRASUNNY_COUNTRYSIDE 
14 = SUNNY_COUNTRYSIDE 
15 = CLOUDY_COUNTRYSIDE 
16 = RAINY_COUNTRYSIDE 
17 = EXTRASUNNY_DESERT 
18 = SUNNY_DESERT 
19 = SANDSTORM_DESERT 
20 = Под водой 
21 = EXTRACOLOURS_1 (very dark, gradiented skyline, purple) Used for interiors? 
22 = EXTRACOLOURS_2 (very dark, gradiented skyline, green) Used for interiors? 


The following are not mentioned in that file, make of them what you will: 
23 to 26 = variations of pale orange 
27 to 29 = variations of fresh blue 
30 to 32 = variations of dark, cloudy, teal 
33 = dark, cloudy, brown 
34 = blue/purple, regular 
35 = dull brown 
36 to 38 = bright, foggy, orange 
39 = extremely bright 
40 to 42 = blue/purple cloudy 
43 = dark toxic clouds 
44 = Черное/белое небо 
45 = black/purple sky 

Категория: Мои статьи | Добавил: 444andrei444 (27.08.2011)
Просмотров: 4228 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024 | Сделать бесплатный сайт с uCoz