Пятница, 19.04.2024, 11:58
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Работа с памятью игры, exe
walkДата: Вторник, 04.01.2011, 16:12 | Сообщение # 91
Группа: Проверенные
Сообщений: 96
Статус: Offline
Quote (Den_spb)
А есть ли там такой указатель? Ведь треугольник над целью в VC не создаётся.

Я об этом думал, просто если прицелиться в педа, он реагирует, вот мне и хотелось узнать, может это просто ped event?
 
DK22PacДата: Среда, 05.01.2011, 00:44 | Сообщение # 92
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
После заNOPивания ф-ции, надо как-то её восстановить...
ЗаNOPивается она так
Code
0A8C: write_memory 0x58FBBF size 0x5 value 0x90 virtual_protect 1

Я поставил в начале кода
Code
0A8D: 7@ = read_memory 0x58FBBF size 4 virtual_protect 1   
0A8D: 8@ = read_memory 0x58FBC3 size 1 virtual_protect 1

И когда надо было восстановить ф-цию, делал так
Code
0A8C: write_memory 0x58FBBF size 4 value 7@ virtual_protect 1   
0A8C: write_memory 0x58FBC3 size 1 value 8@ virtual_protect 1

Всё работает, но бывает, когда начинаешь новую игру (не закрывая gta_sa.exe), всё сбивалось, ведь в 7@ и 8@ уже записывалось 0x90...
Попытался узнать значения по этим адрессам, вывести на экран (как целые числа), вышло так
Code
0A8C: write_memory 0x58FBBF size 4 value -1869574000 virtual_protect 1   
0A8C: write_memory 0x58FBC3 size 1 value 144 virtual_protect 1

Но всё равно не работает... Как быть?
 
Den_spbДата: Среда, 05.01.2011, 01:27 | Сообщение # 93
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Всё работает, но бывает, когда начинаешь новую игру (не закрывая gta_sa.exe), всё сбивалось
Ты учёл, что при перезапуске сохранения, exe в оперативную память не перезагружается (т.е. изменения, сделанные скриптом, остаются)?
 
walkДата: Среда, 05.01.2011, 06:28 | Сообщение # 94
Группа: Проверенные
Сообщений: 96
Статус: Offline
Не особо уловил один важный момент, как в такие вещи передавать параметры:

http://savepic.org/1124102.jpg ?

 
DK22PacДата: Среда, 05.01.2011, 11:14 | Сообщение # 95
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Тут два параметра - указатели на матрицу позиции и вращения.
Code
04C4: store_coords_to 0@ 1@ 2@ from_actor $Player_Actor with_offset 0.0 -1.0 2.0
3@ = 0.0   
4@ = 0.0   
5@ = 0.1   
0AC7: 6@ = var 0@ offset // указатель на матрицу позиции
0AC7:7@ = var 3@ offset // указатель на матрицу вращения

PS Вызывать данную ф-цию надо как метод.
 
walkДата: Среда, 05.01.2011, 14:52 | Сообщение # 96
Группа: Проверенные
Сообщений: 96
Статус: Offline
DK22Pac, не совсем понял, допустим туда надо былоб передать параметры, как это сделать?

Добавлено (05.01.2011, 14:52)
---------------------------------------------
Или даже допустим считывать, приведи мне полный пример

 
DK22PacДата: Среда, 05.01.2011, 15:26 | Сообщение # 97
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote
приведи мне полный пример

Я же уже его привёл.
Code
04C4: store_coords_to 0@ 1@ 2@ from_actor $Player_Actor with_offset 0.0 -1.0 2.0  
3@ = 0.0    
4@ = 0.0    
5@ = 0.1    
0AC7: 6@ = var 0@ offset // указатель на матрицу позиции  
0AC7:7@ = var 3@ offset // указатель на матрицу вращения
0AA6: call_method setPositionAndRotation struct CCamera params 2 pop 0 7@ 6@
 
walkДата: Среда, 05.01.2011, 15:34 | Сообщение # 98
Группа: Проверенные
Сообщений: 96
Статус: Offline
DK22Pac, я не о том подумал smile
 
DK22PacДата: Среда, 05.01.2011, 16:01 | Сообщение # 99
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote
Ты учёл, что при перезапуске сохранения, exe в оперативную память не перезагружается (т.е. изменения, сделанные скриптом, остаются)?

В этом и проблема.
 
Den_spbДата: Среда, 05.01.2011, 16:17 | Сообщение # 100
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
В этом и проблема.
Проблемы здесь быть не должно - надо сделать так, чтобы скрипт в начале работы записывал по адресам стандартные значения.
 
DK22PacДата: Среда, 05.01.2011, 17:05 | Сообщение # 101
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Я уже говорил... Я не знаю как стоит относиться к этим значениям... Я вывел изх на экран как целые числа, потом записывал, но это не дало результата.
 
Den_spbДата: Среда, 05.01.2011, 17:21 | Сообщение # 102
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Code
0A8C: write_memory 0x58FBBF size 4 value -1869574000 virtual_protect 1    
0A8C: write_memory 0x58FBC3 size 1 value 144 virtual_protect 1
Числа получились странные потому, что надо сначала читать 1 байт (опкод), а затем 4 байта (адрес).
 
DK22PacДата: Среда, 05.01.2011, 17:59 | Сообщение # 103
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Code
0A8C: write_memory 0x58FBBF size 1 value 0xE8 virtual_protect 1    
0A8C: write_memory 0x58FBC0 size 4 value -0x1BA4 virtual_protect 1

Всё работает=))) Спасибо. Кстати что значит опКод E8? ну а -0x1BA4, это, как я понял, смещение...
 
Den_spbДата: Среда, 05.01.2011, 18:19 | Сообщение # 104
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
E8?
call.
Для перевода hex в asm удобно иметь под рукой hex-редактор.
 
DK22PacДата: Среда, 05.01.2011, 21:48 | Сообщение # 105
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Den_spb, а реально ли найти ф-цию, которая отрисовывает три треугольника на экране (в режиме джойпад)?
 
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Поиск: