вот пример как включить и выключить двигатель на клео для васи
Code
{$CLEO}
0000:
while true
wait 0
if
not Player.Defined($Player_Char) //если игрок не определен (мертв или арестован или вообще не создан) то пропускаем цикл while
then
0@ = 0 //при этом присваиваем переменной 0@ 0
continue
end
if
80E1: not key_pressed 0 4 //если не нажата клавиша сменить радио в машине или ответить на звонок пешком то также пропускаем цикл while
then
0@ = 0 //здесь также присваиваем 0@ 0
continue
end
if
0@ == 1 //в результате если у нас уже есть 1 то мы пропускаем цикл while
then
continue
end
0@ = 1 // здесь ставим 1 для выполнения нижней части цикла один раз
if
2@ == 0 // проверяем какую часть включение или выключение призводить
then
if
Actor.Driving($Player_Actor)
then
03C0: 1@ = actor $Player_Actor car
05E7: 3@ = car 1@ struct //вычисляем структуру авто
3@ += 0x50 //переходим к смещению 0x50
05E0: 15@ = read_memory 3@ size 1 virtual_protect 0 //читаем это значение
05F9: 15@ = 15@ AND 7 //обрезаем информацию о текущем поведении авто
05FA: 15@ = 15@ OR 0x18 //ставим флаг торможения
05DF: write_memory 3@ size 1 value 15@ virtual_protect 0 //записываем полученное значение
05E7: 3@ = car 1@ struct
3@ += 0x1F9 //переходим к смещению 0x1F9
05E0: 15@ = read_memory 3@ size 1 virtual_protect 0 //читаем это значение
05F9: 15@ = 15@ AND 0xEF //обнуляем флаг звука двигателя
05DF: write_memory 3@ size 1 value 15@ virtual_protect 0 //записываем полученное значение
end
2@ = 1
else //здесь по аналогии выключаем торможение и включаем звук двигателя
if
Actor.Driving($Player_Actor)
then
03C0: 1@ = actor $Player_Actor car
05E7: 3@ = car 1@ struct
3@ += 0x50
05E0: 15@ = read_memory 3@ size 1 virtual_protect 0
05F9: 15@ = 15@ AND 7
05DF: write_memory 3@ size 1 value 15@ virtual_protect 0
05E7: 3@ = car 1@ struct
3@ += 0x1F9
05E0: 15@ = read_memory 3@ size 1 virtual_protect 0
05FA: 15@ = 15@ OR 0x10
05DF: write_memory 3@ size 1 value 15@ virtual_protect 0
//01E5: show_text_1number_highpriority GXT 'TMN' number 15@ time 5000 flag 1
end
2@ = 0
end
end