Работа с памятью игры, exe
|
|
DK22Pac | Дата: Воскресенье, 17.07.2011, 16:19 | Сообщение # 241 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Верно, поправил
|
|
| |
[ED]Andr | Дата: Воскресенье, 24.07.2011, 20:55 | Сообщение # 242 |
Группа: Пользователи
Сообщений: 12
Статус: Offline
| Спасибо, буду практиковаться
|
|
| |
d88 | Дата: Пятница, 29.07.2011, 14:03 | Сообщение # 243 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Сначала использовал код 23@ = Actor.Health($PLAYER_ACTOR) и скрипт работал нормально. Но потом мне понадобилось вместо него написать максимально возможное число здоровья, и я сделал так
Code 0A96: 1@ = actor $PLAYER_ACTOR struct 1@ += 0x544 0A8D: 23@ = read_memory 1@ size 4 virtual_protect 0
И скрипт стал работать так, будто 23@ всегда равен 0
|
|
| |
DK22Pac | Дата: Пятница, 29.07.2011, 14:16 | Сообщение # 244 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Заметь что в 23@ ты получишь уже не integer, а float. Добавлено (29.07.2011, 14:16) ---------------------------------------------
Code 0A96: 1@ = actor $PLAYER_ACTOR struct 1@ += 0x544 0A8D: 23@ = read_memory 1@ size 4 virtual_protect 0 0092: 23@ = float 23@ to_integer
|
|
| |
d88 | Дата: Пятница, 29.07.2011, 14:26 | Сообщение # 245 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Quote (DK22Pac) Заметь что в 23@ ты получишь уже не integer, а float. Хм, с чего это вдруг здоровье стало в float измеряться Ладно, щас попробую.
|
|
| |
DK22Pac | Дата: Пятница, 29.07.2011, 14:32 | Сообщение # 246 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| d88, на гтамоддинге рядом с адрессом написан тип значения. Quote CPed +0x544 = [float] Максимальное здоровье
|
|
| |
d88 | Дата: Пятница, 29.07.2011, 16:28 | Сообщение # 247 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Я понял, просто здоровье вроде не может быть дробью.
|
|
| |
Den_spb | Дата: Воскресенье, 31.07.2011, 00:13 | Сообщение # 248 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| В памяти значения здоровья хранятся в формате float. Стандартные опкоды, читающие значение здоровья, переводят float в integer, а стандартные опкоды, присваивающие значение здоровья, переводят integer в float.
|
|
| |
d88 | Дата: Пятница, 19.08.2011, 12:43 | Сообщение # 249 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Хочу изменить цвет гоночного чекпоинта, но чё-то не пойму где его менять.
Quote 0xC7F158 - Начало блока чекпоинтов. Each block is 38 bytes, but theres always only two at a time.
+0 = [byte] Тип чекпоинта +2 = [byte] Цвет чекпоинта в RGBA +4 = [float] X-axis Position +8 = [float] Y-axis Position +12 = [float] Z-axis Position +16 to +24 = [float] Rotation Matrix (direction from this checkpoint to the next, all floats) +32 = [float] Checkpoint radius
И как вообще заданный цвет применить к созданному чекпоинту?
|
|
| |
DK22Pac | Дата: Пятница, 19.08.2011, 16:08 | Сообщение # 250 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Quote (d88) Хочу изменить цвет гоночного чекпоинта, но чё-то не пойму где его менять. Надо поменять цвет всех чекпойнтов или только одного?
|
|
| |
d88 | Дата: Пятница, 19.08.2011, 16:51 | Сообщение # 251 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Quote (DK22Pac) Надо поменять цвет всех чекпойнтов или только одного? Всё равно.
|
|
| |
DK22Pac | Дата: Суббота, 20.08.2011, 02:13 | Сообщение # 252 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Code 06D5: 22@ = create_racing_checkpoint_at 0.0 0.0 0.0 point_to 0.0 0.0 0.0 type 3 radius 2.0 for 31@ = 0xC7F15C to 0xC7F824 step 0x38 0A8D: 29@ = read_memory 31@ size 4 virtual_protect 0 if 003B: (check) 29@ == 22@ // (int) then 000A: 31@ += 0x4 0A8C: write_memory 31@ size 4 value 0x8000FF00 virtual_protect 0 // RGBA break end end Добавлено (20.08.2011, 02:13) --------------------------------------------- Кстати, я апдейтнул информацию на гтамоддинге, там она была неверной.
|
|
| |
d88 | Дата: Суббота, 20.08.2011, 10:12 | Сообщение # 253 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| DK22Pac, спасибо, работает
|
|
| |
izerli | Дата: Вторник, 27.09.2011, 14:01 | Сообщение # 254 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| здравствуйте. есть такой вопрос: можно ли заставить машины разъезжаться в стороны, как это происходит при движении на служебном транспорте с включенными сиренами?
|
|
| |
Den_spb | Дата: Вторник, 27.09.2011, 20:07 | Сообщение # 255 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Можно вычислить координаты точки, находящейся спереди и справа от автомобиля (store pos with offsets) и направить машину в эту точку (car drive to). Эти действия проводятся над всеми автомобилями, которые должны "уступить дорогу" (поиск транспортных средств осуществляется перебором пула с помощью опкодов КЛЕО4).
|
|
| |