You are not logged in.
Pages: 1
[center][large]Управление фарами[/large][/center]
Вчера мною и listener'ом был разобран весьма интересный класс в движке игры, который в частности позволяет получить полный контроль над фарами машины. Сразу оговорюсь, поворотниками управлять нельзя
Через этот класс можно чинить фары машины, если они разбиты.
Передние фары (левая и правая) чинятся по отдельности, задние - только обе сразу.
Итак, как это делается.
1. Сначала получаем адрес машины в памяти
03C0: 0@ = actor $PLAYER_ACTOR car 0A97: 1@ = car 0@ struct2. Теперь получаем адрес нужного класса, путем прибавления смещения к начальному адресу машины
1@ += 0x5A03. Теперь можно чинить фары. Делается это строкой
0AA6: call_method 0x006C2100 struct 1@ num_params 2 pop 0 1 0Последние 2 цифры - параметры. Предпоследняя цифра (1) означает состояние фары (1 - разбита, 0 - не разбита
). Последняя цифра - номер фары (0 - передняя левая, 1 - передняя правая, 3 - задние фары). Другие цифры не работают.
Число 1@ - это адрес класса, который мы получили выше.Варьируя номера фар и их состояние можно получить эффект стробоскопов (выключаем левую/правую переднюю фару по очереди) (проверять нужно ночью, когда фары включены):
while true wait 250 if Player.Defined($PLAYER_CHAR) then if Actor.Driving($PLAYER_ACTOR) then 03C0: 0@ = actor $PLAYER_ACTOR car 0A97: 1@ = car 0@ struct 1@ += 0x5A0 0AA6: call_method 0x006C2100 struct 1@ num_params 2 pop 0 1 0 // выключили переднюю левую 0AA6: call_method 0x006C2100 struct 1@ num_params 2 pop 0 0 1 // включили переднюю правую wait 300 0AA6: call_method 0x006C2100 struct 1@ num_params 2 pop 0 0 0 // включили переднюю левую 0AA6: call_method 0x006C2100 struct 1@ num_params 2 pop 0 1 1 // выключили переднюю правую wait 300 end end end
а можно чтобы эффект стробоскопов включался/отключался например при нажатии кнопки U
а то у меня стоит скрипт включения/отключения фар
Охото чтобы можно было ездить и просто с горяшими фарами и со страбаскопами
Pages: 1