Воскресенье, 19.05.2024, 19:52
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Работа с памятью игры, exe
DK22PacДата: Воскресенье, 17.07.2011, 16:19 | Сообщение # 241
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Верно, поправил smile
 
[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 wacko
 
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 измеряться wink
Ладно, щас попробую.
 
DK22PacДата: Пятница, 29.07.2011, 14:32 | Сообщение # 246
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
d88, на гтамоддинге рядом с адрессом написан тип значения.
Quote
CPed +0x544 = [float] Максимальное здоровье
wink
 
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, спасибо, работает smile
 
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).
 
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Поиск: