Работа с памятью игры, exe
|
|
izerli | Дата: Пятница, 09.12.2011, 19:06 | Сообщение # 271 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| сейчас попробую разобраться с процедурой. Quote (Den_spb) Попробуй проверить смещения 0x49C [float], 0x964 [float]. если это смещения в структуре авто, то не то(Добавлено (09.12.2011, 19:06) --------------------------------------------- нашел смещение, по которому записываются обороты двигателя
|
|
| |
Den_spb | Дата: Пятница, 09.12.2011, 19:34 | Сообщение # 272 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (izerli) нашел смещение, по которому записываются обороты двигателя
|
|
| |
DK22Pac | Дата: Пятница, 09.12.2011, 21:26 | Сообщение # 273 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Quote (Den_spb) Какой-то массив. Судя по названию, имеет отношение к надписям, выводимым на экран. Структуры TextDrawers - опкодами туда записываются параметры текста для вывода на экран, потом какая-то процедура пробегается по этим структурам и рендерит.
|
|
| |
Den_spb | Дата: Суббота, 31.12.2011, 01:00 | Сообщение # 274 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Испытал плагин, повышающий лимит корон до 1000 штук - работает. Из большого количества корон можно сделать экран для отображения картинок, правда при этом подтормаживает игра. Иллюстрация такого эксперимента и исходник кода прикреплены к сообщению.
|
|
| |
DK22Pac | Дата: Суббота, 31.12.2011, 03:39 | Сообщение # 275 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Хм, это просто дамп bmp? Вот бы конвертироать данные из bmp в RwTexture... Но там вроде бы не всё так просто, по-моему, надо отдельно создавать и палитру, и индексы пикселей (в структуре растра). + Кучу флагов выставить. Сложно, зато какой эффект...
|
|
| |
Аксиома | Дата: Суббота, 31.12.2011, 10:31 | Сообщение # 276 |
Группа: Заблокированные
Сообщений: 81
Статус: Offline
| DK22Pac, У меня есть палитра хороших цветов не скрипт а bmp файл
|
|
| |
Den_spb | Дата: Суббота, 31.12.2011, 13:27 | Сообщение # 277 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (DK22Pac) Хм, это просто дамп bmp? Да. С коронами - это просто эксперимент, для создания экранов конечно больше подошла бы функция Draw_handman_texture.
|
|
| |
DK22Pac | Дата: Суббота, 31.12.2011, 23:28 | Сообщение # 278 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Отключение стандартных стоп-сигналов: Code {$CLEO} 0A8C: 0x6E1996 4 0x858624 1 // change fZero to fOne 0A93:
Добавлено (31.12.2011, 15:49) --------------------------------------------- loc_6E17B5: ... 6E18DA Вот здесь игра считает, надо ли создавать короны, в зависимости от того, как развернута камера относительно автомобиля. Всё заканчивается проверкой Code fcomp ds:fZero ; 0.0f
Добавлено (31.12.2011, 23:28) --------------------------------------------- Сможешь посмотреть что за алгоритм? Понятно, что не сегодня.
Сообщение отредактировал DK22Pac - Суббота, 31.12.2011, 23:28 |
|
| |
Den_spb | Дата: Воскресенье, 01.01.2012, 00:17 | Сообщение # 279 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Посмотрю.
|
|
| |
Vital | Дата: Понедельник, 02.01.2012, 18:51 | Сообщение # 280 |
Группа: Проверенные
Сообщений: 206
Статус: Offline
| Всем привет. Можете подсказать кое-что? Как получить хендл машины, на которую идет наведение тепловой ракетой игрока? Я пробовал работать с этими адресами памяти, но не получалось. Вот адрес, с которым я работал: 0xC891A8 - Rocket pool start +8 = [dword] Pointer to target vehicle (when heatseeking), 0 otherwise Я перевел на русский, выходит, что так надо находить указатель на цель (машину, транспорт). Но вылетает... Что делать и как работать с этим указателем, который ищется в этом адресе.
SCRIPTER
|
|
| |
Den_spb | Дата: Понедельник, 02.01.2012, 19:45 | Сообщение # 281 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Code 2@ = -1 for 0@ = 0 to 31 // перебираем массив снарядов (в массиве 32 элемента) 0A90: 1@ = 0@ * 36 // умножаем номер снаряда на размер структуры снаряда 1@ += 0xC891A8 // прибавляем адрес начала массива - получаем адрес начала структуры данного снаряда 1@ += 8 // прибавляем смещение в структуре снаряда 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 if 1@ > 0 // если указатель на структуру машины больше 0 then 0AEB: 2@ = car_struct 1@ handle // то переводим указатель в хэндл break // и выходим из цикла end end if 2@ <> -1 then // действия над машиной end
|
|
| |
Vital | Дата: Понедельник, 02.01.2012, 22:53 | Сообщение # 282 |
Группа: Проверенные
Сообщений: 206
Статус: Offline
| Den_spb, спасибо большое! Попробую. Если все выйдет нормально, получится отличный скрипт. Может, я и сюда его выложу.
SCRIPTER
|
|
| |
izerli | Дата: Суббота, 07.01.2012, 20:36 | Сообщение # 283 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Денис, а как можно узнать угол поворота стандартного компонента (например двери)? Попробовал посмотреть в базе опкод 08A6, но к сожалению мне пока не понятно...
Сообщение отредактировал izerli - Суббота, 07.01.2012, 20:37 |
|
| |
Den_spb | Дата: Суббота, 07.01.2012, 22:12 | Сообщение # 284 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Иван, надо вычислить угол, на который повёрнута одна из локальных осей компонента (какую ось выбрать - зависит от направления вращения). В случае с дверью можно взять вектор X (Right) или Y (Top). Удобнее взять Y:Code 0A97: 1@ = car 0@ struct 1@ += 0x668 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 // получили структуру компонента if 1@ <> 0 then 1@ += 0x10 // получили адрес локальной матрицы компонента 0A8E: 2@ = 1@ + 0x10 // TopX 0A8E: 3@ = 1@ + 0x14 // TopY 0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 0A8D: 3@ = read_memory 3@ size 4 virtual_protect 0 0604: get_angle_between_vectors_{a,b} 2@ 3@ and_{0,1}_store_to 4@ // получили значение угла .... end
|
|
| |
izerli | Дата: Суббота, 07.01.2012, 22:20 | Сообщение # 285 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Денис, спасибо! Как то и не сообразил что можно через вектора.
|
|
| |