Работа с памятью игры, 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, глобальной, про это я знаю, ну как значение бы прочитать? Добавлено (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
|
|
| |