#1 08-10-2011 13:45

gryphon
Registered: 08-10-2011
Posts: 1

Вопрос по "вытаскиванию" значений скорости и тахометра

Здравствуйте. Сейчас делаю "железную" приборную панель для игры, собственно, возникает вопрос, как выяснить адрес переменных, в которых хранятся значения скорости, тахометра и прочего? Или можно ли написать скрипт, который будет выводить в текстовом виде эти значения прямо на экран?
P.S. мне нужно из игры передать значения в свою программу, а затем уже в порт.
Заранее спасибо.

Offline

#2 08-10-2011 14:28

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 937
Website

Re: Вопрос по "вытаскиванию" значений скорости и тахометра

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

Board footer

Powered by FluxBB