You are not logged in.
Здравствуйте. Сейчас делаю "железную" приборную панель для игры, собственно, возникает вопрос, как выяснить адрес переменных, в которых хранятся значения скорости, тахометра и прочего? Или можно ли написать скрипт, который будет выводить в текстовом виде эти значения прямо на экран?
P.S. мне нужно из игры передать значения в свою программу, а затем уже в порт.
Заранее спасибо.
Offline
1.Адреса в памяти игры ( http://gtamodding.ru/wiki/Адреса_Памяти_(SA) ):
0xB6F5F0 - Указатель игрока (CPed) CPed +0x58C = [dword] Последняя или текущая машина, которую вы водили/ведёте (CarPointer) CVehicle +68 = [float] X (East-West) speed CVehicle +72 = [float] Y (North-South) speed CVehicle +76 = [float] Z (Up-Down) speed
2.Опкоды SCM:
03C0: 0@ = actor $PLAYER_ACTOR car // записывает транспорт игрока в переменную 02E3: 1@ = car 0@ speed // записывает скорость транспорта в переменную 0AB7: get_vehicle 0@ number_of_gears_to 1@ // записывает число передач машины в переменную 0AB8: get_vehicle 0@ current_gear_to 1@ // записывает номер текущей передачи в переменную
3.Пример скрипта, выводящего значение скорости транспорта игрока на экран:
{$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 02E3: 1@ = car 0@ speed 0092: 1@ = float 1@ to_integer 03F0: enable_text_draw 1 045A: draw_text_1number 5.0 335.0 GXT 'NUMBER' number 1@ // ~1~ end end
Last edited by Den_spb (08-10-2011 15:38)
Offline