0x936910 - [float] - Mouse X movement
0x936914 - [float] - Mouse Y movement
0x7E49C0 - [pointer] - Player's car pointer
+0x5B0 - [float] - Rhino & Fire truck Cannon horisontal angle
+0x5B4 - [float] - Fire truck Cannon vertical angle
Еще интересует где хранится модель в памяти, если есть указатель на авто, можно ли сместиться на его модель?Скорее всего, может быть так:
Авторы: DCS Ка-50: Чёрная акула
Конверт и доработка в GTA San Andreas:
s762x39s (s762x39s@mail.ru)
alkashbutovo (alkashbutovo@bk.ru)
0x5864F4 (float) - смещение центра вращения башни от центра танка (windscreen_dummy.Y = -1.394)
0x586518 (float) - смещение выстрела от центра танка вперед (barrel_dummy.Y = 2.95)
0x586523 (float) - смещение выстрела по высоте башни (barrel_dummy.Z? = 2.97)
Sanek777, я всё расписал по гусеницам.Это хорошо :)
thread 'HP_DRFT'
:HP_DRFT_12
wait 0
if and
Player.Defined($PLAYER_CHAR)
00E0: player $PLAYER_CHAR driving
jf @HP_DRFT_12
if and
84AA: not player $PLAYER_CHAR driving_heli
84A8: not player $PLAYER_CHAR driving_boat
84C9: not player $PLAYER_CHAR driving_plane
jf @HP_DRFT_12
03C1: 0@ = player $PLAYER_CHAR car_no_save
13@ = 0 // integer values
:HP_DRFT_78
if
not Car.Wrecked(0@)
jf @HP_DRFT_12
if
is_player_driving $PLAYER_CHAR 0@
jf @HP_DRFT_12
if and
82BF: not car 0@ sunk
020D: car 0@ flipped
81F3: not car 0@ airborne
jf @HP_DRFT_12
Car.StorePos(0@, 2@, 3@, 4@)
05E7: 12@ = car 0@ struct
0084: 14@ = 12@ // integer values and handles
0084: 15@ = 12@ // integer values and handles
12@ += 112 // integer values
14@ += 116 // integer values
15@ += 132 // integer values
05E0: 12@ = read_memory 12@ size 4 virtual_protect 0
05E0: 14@ = read_memory 14@ size 4 virtual_protect 0
05E0: 15@ = read_memory 15@ size 4 virtual_protect 0
wait 0
if
not Car.Wrecked(0@)
jf @HP_DRFT_12
if
is_player_driving $PLAYER_CHAR 0@
jf @HP_DRFT_12
if and
82BF: not car 0@ sunk
020D: car 0@ flipped
81F3: not car 0@ airborne
jf @HP_DRFT_12
02E3: 1@ = car 0@ speed
if and
1@ > 10.6 // floating-point values
00E1: player 0 pressed_button 16
jf @HP_DRFT_12
Car.StorePos(0@, 5@, 6@, 4@)
0407: create_coordinate 8@ 9@ 4@ from_car 0@ offset 0.0 0.1 0.0
0067: 8@ -= 5@ // floating-point values
0067: 9@ -= 6@ // floating-point values
0067: 5@ -= 2@ // floating-point values
0067: 6@ -= 3@ // floating-point values
05A4: get_angle_between_vectors_origin_to 5@ 6@ and_origin_to 8@ 9@ store_to 11@ // never used in VC
Car.StorePos(0@, 5@, 6@, 4@)
0407: create_coordinate 8@ 9@ 4@ from_car 0@ offset -0.02 0.1 0.0
0067: 8@ -= 5@ // floating-point values
0067: 9@ -= 6@ // floating-point values
0067: 5@ -= 2@ // floating-point values
0067: 6@ -= 3@ // floating-point values
05A4: get_angle_between_vectors_origin_to 5@ 6@ and_origin_to 8@ 9@ store_to 7@ // never used in VC
Car.StorePos(0@, 5@, 6@, 4@)
0407: create_coordinate 8@ 9@ 4@ from_car 0@ offset 0.02 0.1 0.0
0067: 8@ -= 5@ // floating-point values
0067: 9@ -= 6@ // floating-point values
0067: 5@ -= 2@ // floating-point values
0067: 6@ -= 3@ // floating-point values
05A4: get_angle_between_vectors_origin_to 5@ 6@ and_origin_to 8@ 9@ store_to 10@ // never used in VC
11@ *= 1000.0 // floating-point values (never used in VC or GTA 3)
7@ *= 1000.0 // floating-point values (never used in VC or GTA 3)
10@ *= 1000.0 // floating-point values (never used in VC or GTA 3)
if and
996.0 > 11@ // floating-point values
11@ > 25.0 // floating-point values
jf @HP_DRFT_12
13@ += 1 // integer values
if
13@ > 3 // integer values
jf @HP_DRFT_78
if and
80E1: not player 0 pressed_button 10
80E1: not player 0 pressed_button 11
jf @HP_DRFT_956
:HP_DRFT_720
05E7: 1@ = car 0@ struct
0084: 2@ = 1@ // integer values and handles
0084: 3@ = 1@ // integer values and handles
1@ += 112 // integer values
2@ += 116 // integer values
3@ += 132 // integer values
05E0: 4@ = read_memory 1@ size 4 virtual_protect 0
05E0: 5@ = read_memory 2@ size 4 virtual_protect 0
05E0: 6@ = read_memory 3@ size 4 virtual_protect 0
0063: 12@ -= 4@ // floating-point values (never used in VC or GTA 3)
0063: 14@ -= 5@ // floating-point values (never used in VC or GTA 3)
12@ *= 0.2 // floating-point values (never used in VC or GTA 3)
14@ *= 0.2 // floating-point values (never used in VC or GTA 3)
6@ *= 0.95 // floating-point values (never used in VC or GTA 3)
005B: 4@ += 12@ // floating-point values (never used in VC or GTA 3)
005B: 5@ += 14@ // floating-point values (never used in VC or GTA 3)
02E3: 8@ = car 0@ speed
if
30.0 > 8@ // floating-point values
jf @HP_DRFT_913
4@ *= 1.008 // floating-point values (never used in VC or GTA 3)
5@ *= 1.008 // floating-point values (never used in VC or GTA 3)
:HP_DRFT_913
05DF: write_memory 3@ size 4 value 6@ virtual_protect 0
05DF: write_memory 1@ size 4 value 4@ virtual_protect 0
05DF: write_memory 2@ size 4 value 5@ virtual_protect 0
jump @HP_DRFT_78
:HP_DRFT_956
if and
00E1: player 0 pressed_button 10
80E1: not player 0 pressed_button 11
jf @HP_DRFT_1013
if and
0025: 7@ > 11@ // floating-point values (never used in VC or GTA 3)
0025: 11@ > 10@ // floating-point values (never used in VC or GTA 3)
jf @HP_DRFT_720
jump @HP_DRFT_1063
:HP_DRFT_1013
if and
80E1: not player 0 pressed_button 10
00E1: player 0 pressed_button 11
jf @HP_DRFT_720
if and
0025: 10@ > 11@ // floating-point values (never used in VC or GTA 3)
0025: 11@ > 7@ // floating-point values (never used in VC or GTA 3)
jf @HP_DRFT_720
:HP_DRFT_1063
05E7: 1@ = car 0@ struct
0084: 2@ = 1@ // integer values and handles
0084: 3@ = 1@ // integer values and handles
1@ += 112 // integer values
2@ += 116 // integer values
3@ += 132 // integer values
05E0: 4@ = read_memory 1@ size 4 virtual_protect 0
05E0: 5@ = read_memory 2@ size 4 virtual_protect 0
05E0: 6@ = read_memory 3@ size 4 virtual_protect 0
0063: 12@ -= 4@ // floating-point values (never used in VC or GTA 3)
0063: 14@ -= 5@ // floating-point values (never used in VC or GTA 3)
0063: 15@ -= 6@ // floating-point values (never used in VC or GTA 3)
12@ *= 0.05 // floating-point values (never used in VC or GTA 3)
14@ *= 0.05 // floating-point values (never used in VC or GTA 3)
15@ *= 0.02 // floating-point values (never used in VC or GTA 3)
005B: 4@ += 12@ // floating-point values (never used in VC or GTA 3)
005B: 5@ += 14@ // floating-point values (never used in VC or GTA 3)
005B: 6@ += 15@ // floating-point values (never used in VC or GTA 3)
02E3: 8@ = car 0@ speed
if
30.0 > 8@ // floating-point values
jf @HP_DRFT_1272
4@ *= 1.002 // floating-point values (never used in VC or GTA 3)
5@ *= 1.002 // floating-point values (never used in VC or GTA 3)
:HP_DRFT_1272
05DF: write_memory 3@ size 4 value 6@ virtual_protect 0
05DF: write_memory 1@ size 4 value 4@ virtual_protect 0
05DF: write_memory 2@ size 4 value 5@ virtual_protect 0
jump @HP_DRFT_78
Вот пример использования - стабилизация автомобиля при дрифте(чтобы не разворачивало):По моему это выглядит круто! Хороший мод.
делали танк, там был разворот на месте и соответствующее движение гусениц, катков и колес в "Раздрай"
в общем у совр. танков с ГОП на нейтралке при повороте рулевого колеса(к примеру) и нажатии на педаль газа тоже гусеницы в раздрай идут
Но ты не любишь скриптинг ???, а я просто не могу делать что-то более-менее серьезное в asiОсобой разницы в этом плане не будет, скрипт можно потом переписать в си-код, и наоборот код в скрипт если понадобится, работа только с адресами и опкодами.