Среда, 24.04.2024, 13:09
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Работа с памятью игры, exe
VitalДата: Среда, 14.03.2012, 18:06 | Сообщение # 301
Группа: Проверенные
Сообщений: 206
Статус: Offline
Den_spb, surprised удивительно, но это помогло! Странно, конечно, что все параметры записываются наоборот, но теперь все работает. Спасибо!

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)
---------------------------------------------
Щас разбираю как рендерятся тени... (связано со стрим-секторами)

Прикрепления: materialProcess.txt (3.3 Kb)


Сообщение отредактировал 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
 
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Поиск: