Пятница, 29.03.2024, 16:53
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Работа с памятью игры, exe
Den_spbДата: Суббота, 21.05.2011, 19:03 | Сообщение # 181
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Вот скрипт, всё ли верно?
В написании вставки и вычислении оффсетов ошибок вроде нет. Насчёт применения метода не знаю - это надо тестировать в игре. В будущем прошу задавать более конкретные вопросы.

Quote (sexy)
А можно как то включать отключать сирену
В структуре транспорта есть смещение ( http://gtamodding.ru/wiki/Адреса_Памяти_ (SA) )
Code
+1069 = [byte] Сирена включена/отключена
По этому адресу нужно записывать определённые значения, чтобы включить или отключить сирену. Чтобы выяснить, какие значения записаны по данному смещению в структуре транспорта игрока при включенной и отключенной сирене, можно воспользоваться тестовым скриптом, выводящим значение на экран:
Code
{$CLEO}
wait 0
while true
       wait 0
       if
           not Player.Defined($PLAYER_CHAR)
       then
           continue
       end
       if
           00DF:   actor $PLAYER_ACTOR driving       
       then
           03C0: 0@ = actor $PLAYER_ACTOR car    
           0A97: 0@ = car 0@ struct
           0@ += 1069
           0A8D: 0@ = read_memory 0@ size 1 virtual_protect 0
           03F0: enable_text_draw 1    
           045A: draw_text_1number 320.0 240.0 GXT 'NUMBER' number 0@  //
       end
end
 
DK22PacДата: Суббота, 21.05.2011, 20:06 | Сообщение # 182
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Den_spb)
В написании вставки и вычислении оффсетов ошибок вроде нет. Насчёт применения метода не знаю - это надо тестировать в игре. В будущем прошу задавать более конкретные вопросы.

Да я спросил, потому что был вылет.
Потом понял, что это из-за того, что перед стартом основного цикла в 0@ уже был записан Thread pointer (проверка срабатывала и выполнялся метод для 0@)
 
sexyДата: Суббота, 21.05.2011, 21:09 | Сообщение # 183
Группа: Пользователи
Сообщений: 23
Статус: Offline
Нашел значения это 208 и 80
но игра даже не запускается сделал почти также как в том скрипте только не считывал значения, а записывал
 
Den_spbДата: Воскресенье, 22.05.2011, 18:52 | Сообщение # 184
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (sexy)
но игра даже не запускается
Код покажи. Что-то не то ты видимо сделал.
 
sexyДата: Понедельник, 23.05.2011, 07:25 | Сообщение # 185
Группа: Пользователи
Сообщений: 23
Статус: Offline
{$CLEO}
wait 0
while true
wait 0
if
not Player.Defined($PLAYER_CHAR)
then
continue
end
if
00DF: actor $PLAYER_ACTOR driving
then
03C0: 0@ = actor $PLAYER_ACTOR
car
0A97: 0@ = car 0@ struct
0@ += 1069
write memory 0@ size 1 value 208 virtual protect 0
End
end
 
Den_spbДата: Понедельник, 23.05.2011, 13:22 | Сообщение # 186
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Перед write memory должно стоять 0A8C: , других ошибок нет.
 
DK22PacДата: Вторник, 24.05.2011, 19:06 | Сообщение # 187
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Как принудительно разбить окно автомобиля?
 
Den_spbДата: Вторник, 24.05.2011, 23:27 | Сообщение # 188
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Как принудительно разбить окно автомобиля?

073C: car 0@ damage_component 1@ // versionB
Вместо 1@ подставить 10 для повреждения лобового стекла, 2 или 3 для повреждения боковых дверей вместе со стёклами.
 
DK22PacДата: Среда, 25.05.2011, 19:11 | Сообщение # 189
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Я где-то читал, что для убирания стекла двери, текстура окна убирается (то ли прозрачной делается, то ли заменяется на прозрачную). Пытался чего-то найти в IDA, искал по названию текстуры битого стекла, но поиск ничего не обнаружил.
PS ещё искал, как принудительно осуществить выстрел из оружия, начинал искать от опкода AS_actor_rotate_and_shoot, но там всё упирается в непонятный CTask, который хз как работает.
 
Den_spbДата: Среда, 25.05.2011, 19:48 | Сообщение # 190
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Я где-то читал, что для убирания стекла двери, текстура окна убирается (то ли прозрачной делается, то ли заменяется на прозрачную). Пытался чего-то найти в IDA, искал по названию текстуры битого стекла, но поиск ничего не обнаружил.
Возможно так и есть, потому что стекло двери не является отдельным компонентом, а значит, без двери не удаляется.

Quote (DK22Pac)
PS ещё искал, как принудительно осуществить выстрел из оружия, начинал искать от опкода AS_actor_rotate_and_shoot, но там всё упирается в непонятный CTask, который хз как работает.
Таски, если я не ошибаюсь, имеют отношение к анимациям педов, так что это наверное не то. Думаю стоит посмотреть опкод 06BC и методы CPed__processControl , CPlayerPed__processControl .
 
walkДата: Пятница, 27.05.2011, 04:02 | Сообщение # 191
Группа: Проверенные
Сообщений: 96
Статус: Offline
Привет всем, ребят, подскажите, как прочитать значение переменной из мэйна в клео скрипт.

p.s
В переменной находится указатель на объект

Добавлено (27.05.2011, 04:02)
---------------------------------------------
DK22Pac, по поводу стёкл, не знаю поможет тебе это или нет, но заметь, что в игре, в некоторых машинах могут отсутствовать стёкла на боковых дверях автомобилей, поэтому их можно как-то убрать, но вот как

 
DK22PacДата: Пятница, 27.05.2011, 16:02 | Сообщение # 192
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
walk, локальной или глобальной?
Глобальные имеют статистическое расположение (стат. адресса).
Локальные выщитываются как
Thread Pointer + 0x3C + Номер переменной * 4.
 
walkДата: Пятница, 27.05.2011, 16:12 | Сообщение # 193
Группа: Проверенные
Сообщений: 96
Статус: Offline
DK22Pac, глобальной, про это я знаю, ну как значение бы прочитать? smile

Добавлено (27.05.2011, 16:12)
---------------------------------------------
То есть я просто могу взять и использовать её в клео скрипте?

 
DK22PacДата: Пятница, 27.05.2011, 16:29 | Сообщение # 194
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
walk, да.
 
VitalДата: Пятница, 27.05.2011, 16:36 | Сообщение # 195
Группа: Проверенные
Сообщений: 206
Статус: Offline
walk, значения можно также записать в .ini файл, и из него считывать в любом скрипте.

SCRIPTER
 
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Поиск: