Работа с памятью игры, exe
|
|
Vital | Дата: Среда, 14.03.2012, 18:06 | Сообщение # 301 |
Группа: Проверенные
Сообщений: 206
Статус: Offline
| Den_spb, удивительно, но это помогло! Странно, конечно, что все параметры записываются наоборот, но теперь все работает. Спасибо!
SCRIPTER
|
|
| |
DK22Pac | Дата: Среда, 04.04.2012, 22:49 | Сообщение # 302 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Как устанавливается цвет транспорту. http://img708.imageshack.us/img708/270/carmatsset.jpg
Вся процедураДобавлено (04.04.2012, 22:45) --------------------------------------------- 00000000 MaterialRestoreData struc ; (sizeof=0x8) 00000000 pMaterialField dd ? 00000004 OldData dd ? 00000008 MaterialRestoreData ends 00000008 00000000 ; --------------------------------------------------------------------------- 00000000 00000000 CStreamSector struc ; (sizeof=0x8) 00000000 entity dd ? ; CEntity * 00000004 nextEntity dd ? ; CEntity * 00000008 CStreamSector ends 00000008 00000000 ; --------------------------------------------------------------------------- 00000000 00000000 CHalo struc ; (sizeof=0x14) 00000000 DistanceToScreenCenter dd ? 00000004 Size dd ? 00000008 red dw ? 0000000A green dw ? 0000000C blue dw ? 0000000E alpha dw ? 00000010 numVertices? dd ? 00000014 CHalo ends 00000014 00000000 ; --------------------------------------------------------------------------- 00000000 00000000 CBone struc ; (sizeof=0x18) 00000000 field_0 dd ? 00000004 Position RwV3D ? 00000010 pQuat dd ? ; struct offset 00000014 NodeID dd ? 00000018 CBone ends 00000018 00000000 ; --------------------------------------------------------------------------- 00000000 00000000 CTrainNodePoint struc ; (sizeof=0xA) 00000000 x dw ? 00000002 y dw ? 00000004 z dw ? 00000006 distanceFromStart dw ? 00000008 field_8 dw ? 0000000A CTrainNodePoint ends Добавлено (04.04.2012, 22:49) --------------------------------------------- Щас разбираю как рендерятся тени... (связано со стрим-секторами)
Сообщение отредактировал DK22Pac - Пятница, 16.03.2012, 00:12 |
|
| |
Den_spb | Дата: Среда, 04.04.2012, 23:14 | Сообщение # 303 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| А что такое стрим-сектор?
|
|
| |
DK22Pac | Дата: Вторник, 01.05.2012, 21:54 | Сообщение # 304 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Сам пока что не понял. Добавлено (01.05.2012, 21:54) --------------------------------------------- Рассказываю) Вся територия в СА, т.е. вся карта разделена на куски. Такие куски называются секторами. Насколько помню, один кусок - это часть мапы 50х50 юнитов. Сам стрим-сектор - это как набор всех субьектов, которые находятся на этом куске мапы. struct CStreamSector sizeof()=0x8 { DWORD ptrList1; DWORD ptrList2; } PointerList - это список. который содержит указатели на CEntity.
Сообщение отредактировал DK22Pac - Воскресенье, 15.04.2012, 23:29 |
|
| |
ILYALION | Дата: Суббота, 19.05.2012, 13:51 | Сообщение # 305 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| В этой таблице: http://gtamodding.ru/wiki/Адреса_Памяти_ (SA)#.D0.A5.D0.B0.D1.80.D0.B0.D0.BA.D1.82.D0.B5.D1.80.D0.B8.D1.81.D1.82.D0.B8.D0.BA.D0.B8_.D0.BC.D0.B0.D1.88.D0.B8.D0.BD смещения необходимо прибавлять к структуре авто?
|
|
| |
Den_spb | Дата: Суббота, 19.05.2012, 19:01 | Сообщение # 306 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Нет, это структура handling - она общая для всех машин с конкретным handling-ID (т.е. изменения handling отразятся на всех существующих машинах). Адрес начала структуры можно получить двумя способами: 1) По ID-номеру модели транспорта:Code 0441: 1@ = car 0@ model 1@ *= 4 1@ += 0xA9B0C8 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 //CModel 1@ += 0x4A 0A8D: 1@ = read_memory 1@ size 2 virtual_protect 0 //handlingIndex 1@ *= 224 1@ += 0xC2B9DC 2) Прочитав значение по смещению 0x384 в структуре транспорта:Code 0A97: 2@ = car 0@ struct 2@ += 0x384 0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0
|
|
| |
ILYALION | Дата: Суббота, 19.05.2012, 20:09 | Сообщение # 307 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| А как можно запретить смену передачи в КПП? Есть скрипт "Ручная КПП", но я не знаю, как это делается там.
|
|
| |
Den_spb | Дата: Суббота, 19.05.2012, 20:32 | Сообщение # 308 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Первое, что пришло в голову - в цикле постоянно считываем скорость и номер передачи, записывая их в переменные. Если номер передачи изменился, то присваиваем автомобилю последнее значение скорости с предыдущей передачей (или отключаем кнопку газа / двигатель).
Сообщение отредактировал Den_spb - Суббота, 19.05.2012, 20:34 |
|
| |
ILYALION | Дата: Вторник, 29.05.2012, 06:57 | Сообщение # 309 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Как происходит проверка на то, является ли машина коповской? А именно, в этом кодеCode 0A97: 15@ = car 0@ struct 0AA8: call_function_method 0x6D2370 struct 15@ num_params 0 pop 0 11@ // CVehicle__IsLawEnforcementVehicle if 11@ == 0 then ... Эту проверку у меня не проходит такси(id 20), т.е. в 11@ не записан 0.
|
|
| |
Den_spb | Дата: Вторник, 29.05.2012, 09:20 | Сообщение # 310 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Посмотрел код - метод проверяет ИД-номер модели. Поэтому не удивительно, что с новым ИД эффекта нет.
|
|
| |
ILYALION | Дата: Вторник, 29.05.2012, 10:57 | Сообщение # 311 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Ой, id не 20, а 420(стандартный id такси).
|
|
| |
Den_spb | Дата: Вторник, 29.05.2012, 11:31 | Сообщение # 312 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Тогда не знаю, в чём причина. Может создатели игры решили отнести такси к спецслужбам.
|
|
| |
ILYALION | Дата: Вторник, 29.05.2012, 11:33 | Сообщение # 313 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Но ведь cabbie работает с этим кодом.
|
|
| |
Den_spb | Дата: Вторник, 29.05.2012, 11:50 | Сообщение # 314 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Значит надо искать какой-то другой способ.
|
|
| |
DK22Pac | Дата: Вторник, 29.05.2012, 13:30 | Сообщение # 315 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| С id 420 метод возвратит false.
Сообщение отредактировал DK22Pac - Вторник, 29.05.2012, 13:34 |
|
| |