You are not logged in.
Я уже вижу как минимум один существенный недостаток - глобальные переменные.
ААааааааа..... семён, семёныч! ТАК вот почему у меня два скрипта смены камеры друг друга гасят! У обоих используется глобальная переменная $CAM которую я задавал....
Так отсда вопрос: а как задать глобальную переменную ТАК, чтобы она была не из цифр, а из букв? не всмысле string, а всмысле name.. типа $cam и cam@ вместо 123456789@
На всякий случай укажу, какие модели используются в GTT.
Красный цвет - Стандартные поезда
Синий цвет - Специальный поезда
Model.Destroy(449) // tram
Model.Destroy(537) // freighter
Model.Destroy(536) // freight reverse
Model.Destroy(590) // freight box
Model.Destroy(569) // freight flat
Model.Destroy(538) // streak
Model.Destroy(607) // streak tail
Model.Destroy(606) // streak c alternative
Model.Destroy(570) // streak c
Ссылок на GTT давать не буду ибо будет рекламой (ищите сами)
ВНИМАНИЕ!!! новая версия...
МАШИНИСТ.
характеристики:
* выбор станции (6 штук, в т.ч. трамвайное депо)
* выбор направления (по часовой стрелке или против)
* конструктор состава (выбор любой комбинации вагонов)
* поддержка gtt*** моделей
* поддержка выполнения миссий
* активация по CTRL+T (как на улице, так и в помещении)
нововведения:
* устранена ошибка размещения на запасных путях
* возможность выбрать начальную станцию
* улучшен интерфейс выбора
* можно переключатся (компилятором) между обычной и gtt версией
* машинист более не выкидывает игрока из кабины
* глобальные переменные заменены на локальные
* др. мелкие. корректировки
плюсы над оригинальной игрой:
* не надо ждать пока приедет поезд
* можно собрать состав из любых вагонов
* можно покататься на трамвае (в качестве машиниста)
плюсы над исходным скриптом
* отсутствие глюка повторного нажатия
* а так же всё, что указано выше в нововведениях
файл MACHINIST.CS
// advanced train operator script
// by AlphaOmega
// v2.0
{$CLEO .cs}
//-------------MAIN---------------
:start
thread 'MACHINIST'
0000: NOP
:check
wait 0
if and
0AB0: key_pressed 0x11 // ctrl
0AB0: key_pressed 0x54 // t
jf @check
02A3: toggle_widescreen 1
Player.CanMove($PLAYER_CHAR) = False
0340: set_text_draw_RGBA 180 180 180 255
033F: set_text_draw_letter_size 0.5 2.5
03E4: enable_text_draw_align_right 0
0341: unknown_text_draw_flag 0
0342: enable_text_draw_centered 0
0343: set_text_draw_linewidth 200.0
0348: enable_text_draw_proportional 1
0345: enable_text_draw_background 0
0343: set_text_draw_linewidth 680.0
08D4: 10@ = create_panel_with_title 'TRAINS' position 50.0 110.0 width 277.0 columns 1 interactive 1 background 1 alignment 1
08DB: set_panel 10@ column 0 header 'DUMMY' data 'TRAINA' 'TRAINB' 'TRAINC' 'TRAIND' 'TRAINE' 'TRAINF' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
090E: set_panel 10@ active_row 0
:routeA
wait 0
if
00E1: player 0 pressed_key 15 // return
jf @routeZ
jump @menuEND
:routeZ
if
00E1: player 0 pressed_key 16 // select
jf @routeA
03E6: remove_text_box
08D7: 11@ = panel 10@ active_row
08DA: remove_panel 10@
03E6: remove_text_box
00BE: text_clear_all
:pathA
if
0039: 11@ == 0
jf @pathB
0007: 1@ = -1943.678
0007: 2@ = 137.810
0007: 3@ = 26.0
jump @pathOK
:pathB
if
0039: 11@ == 1
jf @pathC
0007: 1@ = 1433.51
0007: 2@ = 2632.61
0007: 3@ = 11.0
jump @pathOK
:pathC
if
0039: 11@ == 2
jf @pathD
0007: 1@ = 2865.93
0007: 2@ = 1290.672
0007: 3@ = 11.0
jump @pathOK
:pathD
if
0039: 11@ == 3
jf @pathE
0007: 1@ = 1719.752
0007: 2@ = -1954.3
0007: 3@ = 14.0
jump @pathOK
:pathE
if
0039: 11@ == 4
jf @pathF
0007: 1@ = 817.583
0007: 2@ = -1368.526
0007: 3@ = -2.0
jump @pathOK
:pathF
0007: 1@ = -2264.773
0007: 2@ = 527.44
0007: 3@ = 35.280
jump @pathOK
:pathOK
06D7: enable_train_traffic 0
select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
04E4: unknown_refresh_game_renderer_at 1@ 2@
Actor.PutAt($PLAYER_ACTOR, 1@, 2@, 3@)
29@ = -381995
&0(29@,1i) = 538
29@ = -381994
:clear0
&0(29@,1i) = 0
29@ += 1
29@ > -381980
jf @clear0
Model.Load(449) // tram
Model.Load(537) // freighter
Model.Load(536) // freight reverse
Model.Load(590) // freight box
Model.Load(569) // freight flat
Model.Load(538) // streak
Model.Load(607) // streak tail
Model.Load(606) // streak c alternative
Model.Load(570) // streak c
038B: load_requested_models
:preLOAD
wait 0
if and
Model.Available(449)
Model.Available(537)
Model.Available(536)
Model.Available(590)
Model.Available(569)
Model.Available(538)
Model.Available(607)
Model.Available(606)
Model.Available(570)
jf @preLOAD
08D4: 10@ = create_panel_with_title 'TRAINX' position 50.0 110.0 width 210.0 columns 1 interactive 1 background 1 alignment 1
08DB: set_panel 10@ column 0 header 'DUMMY' data 'TRAINY' 'TRAINZ' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
090E: set_panel 10@ active_row 0
wait 500
:directionA
wait 0
if
00E1: player 0 pressed_key 15 // return
jf @directionZ
jump @menuEND
:directionZ
if
00E1: player 0 pressed_key 16 // select
jf @directionA
03E6: remove_text_box
08D7: 11@ = panel 10@ active_row
08DA: remove_panel 10@
03E6: remove_text_box
00BE: text_clear_all
4@ = 0 // direction
if
11@ == 0
jf @ready
4@ = 1
:ready
0006: 9@ = 15 // max carriages count
0006: 6@ = 0 // current carriages count
08D4: 10@ = create_panel_with_title 'TRAINV' position 50.0 110.0 width 155.0 columns 1 interactive 1 background 1 alignment 1
/////////////////////////////////////////////////////
08DB: set_panel 10@ column 0 header 'DUMMY' data 'TRAIN1' 'DUMMY' 'TRAIN3' 'DUMMY' 'TRAIN5' 'DUMMY' 'TRAIN7' 'TRAIN8' 'TRAIN9' 'DUMMY' 'DUMMY' 'DUMMY'
/////////////////////////////////////////////////////
090E: set_panel 10@ active_row 0
wait 500
:carsA
wait 0
if
001D: 9@ > 6@
jf @carsOK
01E3: show_text_1number_styled GXT 'TRAINN' number 6@ time 200 style 5
if
00E1: player 0 pressed_key 15 // cancel (enter)
004D: jump_if_false @carsB
jump @carsX
:carsB
if
00E1: player 0 pressed_key 16 // select (shift)
004D: jump_if_false @carsA
6@ += 1
0089: 30@ = 6@
wait 250
08D7: 11@ = panel 10@ active_row
0085: 29@ = 30@
29@ -= 381995
if
11@ == 0
jf @carsC
&0(29@,1i) = 538
:carsC
if
11@ == 1
jf @carsD
&0(29@,1i) = 607
:carsD
if
11@ == 2
jf @carsE
&0(29@,1i) = 570
:carsE
if
11@ == 3
jf @carsF
&0(29@,1i) = 606
:carsF
if
11@ == 4
jf @carsG
&0(29@,1i) = 537
:carsG
if
11@ == 5
jf @carsH
&0(29@,1i) = 536
:carsH
if
11@ == 6
jf @carsI
&0(29@,1i) = 590
:carsI
if
11@ == 7
jf @carsJ
&0(29@,1i) = 569
:carsJ
if
11@ == 8
jf @carsK
&0(29@,1i) = 449
:carsK
jump @carsA
:carsX
if
6@ == 0
jf @carsOK
jump @menuEND
:carsOK
wait 250
0012: 4@ *= -1
06D8: 0@ = create_train_at 1@ 2@ 3@ type 15 direction 4@
07C7: put_train 0@ at 1@ 2@ 3@
046C: 5@ = car 0@ driver
009B: destroy_actor 5@
Player.CanMove($PLAYER_CHAR) = True
036A: put_actor $PLAYER_ACTOR in_car 0@
wait 10
06DD: set_train 0@ speed 0.0
06DC: set_train 0@ acc 0.0
015A: restore_camera
09AD: vehicle_camera_mode 1
0373: set_camera_directly_behind_player
08DA: remove_panel 10@
02A3: toggle_widescreen 0
03E6: remove_text_box
00BE: text_clear_all
:clear1
wait 1000
if
8449: not actor $PLAYER_ACTOR in_a_car
jf @clear1
29@ = -381995
&0(29@,1i) = 538
29@ = -381994
:clear2
&0(29@,1i) = 0
29@ += 1
29@ > -381980
jf @clear2
Model.Destroy(449) // tram
Model.Destroy(537) // freighter
Model.Destroy(536) // freight reverse
Model.Destroy(590) // freight box
Model.Destroy(569) // freight flat
Model.Destroy(538) // streak
Model.Destroy(607) // streak tail
Model.Destroy(606) // streak c alternative
Model.Destroy(570) // streak c
07BE: remove_references_to_train 0@
Camera.Restore
:menuEND
wait 500
Player.CanMove($PLAYER_CHAR) = True
015A: restore_camera
08DA: remove_panel 10@
06D7: enable_train_traffic 1
02A3: toggle_widescreen 0
03E6: remove_text_box
00BE: text_clear_all
wait 2500;
jump @checkфайл MACHINIST.FXT
TRAINS Train Station TRAINA Cranberry (San Fierro East) TRAINB Yellow Bell (Las Venturas North) TRAINC Linden (Las Venturas East) TRAIND Unity (Los Santos South) TRAINE Market (Los Santos West) TRAINF Tram (San Fierro Central) TRAINX Train Direction TRAINY ~>~ ClockWise TRAINZ ~<~ CouterClockWise TRAINV Train Cars TRAIN1 Electric TRAIN2 Electric tail TRAIN3 Passanger odd TRAIN4 Passanger even TRAIN5 Freighter TRAIN6 Freighter reverse TRAIN7 Passenger car TRAIN8 Goods car TRAIN9 Tram TRAINN ~y~~1~
[small]ещё раз напоминаю, что это НЕ МОДИФИКАЦИЯ старого скрипта, а ПОЛНОСТЬЮ ПЕРЕПИСАННЫЙ скрипт![/small]
Для переключения между обычной и gtt* версиями достаточно заменить одну строку:
для GTT версии (приатаченный cs файл):
///////////////////////////////////////////////////// 08DB: set_panel 10@ column 0 header 'DUMMY' data 'TRAIN1' 'TRAIN2' 'TRAIN3' 'TRAIN4' 'TRAIN5' 'TRAIN6' 'TRAIN7' 'TRAIN8' 'TRAIN9' 'DUMMY' 'DUMMY' 'DUMMY' /////////////////////////////////////////////////////
для обычной версии (приведённый cs скрипт):
///////////////////////////////////////////////////// 08DB: set_panel 10@ column 0 header 'DUMMY' data 'TRAIN1' 'DUMMY' 'TRAIN3' 'DUMMY' 'TRAIN5' 'DUMMY' 'TRAIN7' 'TRAIN8' 'TRAIN9' 'DUMMY' 'DUMMY' 'DUMMY' /////////////////////////////////////////////////////
________________________________
* gtt поезда - это поезда, распространяемый на сайте Grand Theft Trains Club`а - особенность заключается в том, что помимо стандартных моделей поездов, добавляются ещё и особые вариации, например: головной и хвостовой вагон (развёрнутые в разные стороны), чётные и нечётные вагоны (например с пантографом и без), главный и дополнительный тепловоз и т.д...
AlphaOmega мне кажеться это особенность сей модели
Ну ведь как-то можно убрать все шасси... наверняка можно....
кстати, а как кодом проверить, выпущены ли шасси? очень полезно было бы...
Я создал файл traffic.cs с бесконечным циклом, в котором давались деньги игроку. В другом скрипте вызвал 0ABA: end_custom_thread_named 'TRAFFIC'. Деньги прекратили капать => поток Traffic прекратился.
Приведи скрипт с твоим трафиком - посмотрю как он у тебя задан там поток...
в файле nuclear.cs прописываю где надо
0ABA: end_custom_thread_named 'TRAFFIC'
второй называется traffic.cs
вылетает 
перепроверил опкод еще раз - у меня работает. Покажи свой код.
Дело в том, что у меня ДВА СКРИПТА. Я из ПЕРВОГО хочу завершить ВТОРОЙ.
Код завершения - одна строчка как у тебя в цитате, только с именем THREAD которая заана во втором скрипте.
допустим, есть два клео скрипта с двумя thread`ами (по одному в каждом).
как их объединитьзадача не ясна. Зачем их объединять?
Ну если нельзя из одного script1.cs остановить thread второго script2.cs - тогда нужно их объединить чтобы можно было завершить thread....
p.s.: скрипт два - один регулирует траффик по времени суток, а другой - ядерный взрыв после которого в радиусе нескольких километров плотность трафика становится равным нулю..... да вот только первый скрипт мешает второму 
не работает извне. возможно только изнутри 
0ABA: end_custom_thread_named 'BENZIN'Если будут ошибки в новой версии - пишите.
Пишу -
когда доходит до этого опкода - гта са вылетает.
возможно будет работать если эта THREAD будет в том же скрипте, но если в другом - то вылетает 
кстати вопрос в тему: допустим, есть два клео скрипта с двумя thread`ами (по одному в каждом).
как их объединить (что нужно в начале общего скрипта написать) чтобы не пришлось ничего переписывать чтобы не запутаться
?
Меня интересует следующий вопрос: как можно из одного клео скрипта, воздействовать на другой? Например, остановить его вообще? сам скрипт, либо thread в нём. Такое возможно? как?
Если заменить самолёт nevada каким-нибудь современным (например боингом или аэробусом), то при убирании шасси, передняя стойка остаётся выпущенной (ибо у невады убираются только шасси на крыльях, а передняя стойка, которая сзади - нет). Так вот - как прописать скриптом чтобы и передняя стойка шасси убиралась? можно по любой клавише (не обязательно SUBMISSION)
Seemann, спасибо - то, что нужно.
Кстати, заметил такую особенность - если в hud.txd первую текстуру (сам радар) сделать цветной, то она всё равно будет чёрнобелой
хотя на каких-то скриншотах я видел цветную. Не знаешь, может цвет на самом деле достигнут за счёт загрузки дополнительной картинки на место радара?
Yarik, спасибо. Действительно именно 4-ый компонент - стёкла. Только чтобы их окончательно разбить, нужно эту команду прописать от трёх до десяти раз.
возвращаясь к предыдущему вопросу - как перекрасить элементы HUDа типа денег, времени и уровня жизни?
Получилось!
Вообщем после долгих мучений вот что вышло:
// first person camera advanced by AlphaOmega
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
:start
thread 'CAM'
1@ = 0
2@ = 0
0000: NOP
0005: 3@ = 0.0
0005: 4@ = 0.0
0005: 5@ = 0.0
:begin
wait 0
0005: 6@ = 0.0
0005: 7@ = -.1
0005: 8@ = .69
if
Actor.Driving($PLAYER_ACTOR)
jf @check
:mode1check
if
0039: 1@ == 1
jf @mode1key
jump @mode1view
:mode1key
if and
00E1: key_pressed 0 13
0AB0: key_pressed 0x11
Actor.Driving($PLAYER_ACTOR)
jf @begin
jump @mode1on
:mode1on
1@ = 1
0059: 6@ += 3@
0059: 7@ += 4@
0059: 8@ += 5@
067C: put_camera_on_actor $PLAYER_ACTOR with_offset 6@ 7@ 8@ rotation 0.0 90.0 0.0 0.0 2
//0494: get_joystick 0 data_to 10@ 11@ 12@ 13@
//0093: 11@ = integer 11@ to_float
//0093: 12@ = integer 12@ to_float
//0093: 13@ = integer 13@ to_float
//0017: 11@ /= 2000.0
//0017: 12@ /= 2000.0
//0017: 13@ /= 2000.0
//005B: 16@ += 12@ // @ += @ (float)
//0063: 17@ -= 11@ // @ -= @ (float)
//005B: 18@ += 13@ // @ += @ (float)
2@ = 0
if
00E1: key_pressed 0 13
jf @begin
wait 500
jump @begin
:mode1view
if and
80E1: not player 0 pressed_key 5
80E1: not player 0 pressed_key 7
jf @mode1side
if
0039: 2@ == 1
jf @mode1correction
2@ = 0
jump @mode1on
:mode1side
if
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
jf @begin
015A: restore_camera
09AD: vehicle_camera_mode 0
2@ = 1
jump @begin
:mode1off
if and
00E1: key_pressed 0 13 // change camera button
jf @begin
02EB: restore_camera_with_jumpcut
09AD: vehicle_camera_mode 2
1@ = 0
jump @begin
:check
if
0039: 1@ == 1
jf @begin
015A: restore_camera
09AD: vehicle_camera_mode 2
0373: set_camera_directly_behind_player
1@ = 0
jump @begin
:mode1correction
wait 0
jump @mode1corrXup
:mode1corrXup
if and
0AB0: key_pressed 0x12
0AB0: key_pressed 0x26
Actor.Driving($PLAYER_ACTOR)
jf @mode1corrXdn
5@ += 0.1
jump @mode1on
:mode1corrXdn
if and
0AB0: key_pressed 0x12
0AB0: key_pressed 0x28
Actor.Driving($PLAYER_ACTOR)
jf @mode1corrYup
5@ -= 0.1
jump @mode1on
:mode1corrYup
if and
0AB0: key_pressed 0x11
0AB0: key_pressed 0x26
Actor.Driving($PLAYER_ACTOR)
jf @mode1corrYdn
4@ += 0.1
jump @mode1on
:mode1corrYdn
if and
0AB0: key_pressed 0x11
0AB0: key_pressed 0x28
Actor.Driving($PLAYER_ACTOR)
jf @mode1corrZup
4@ -= 0.1
jump @mode1on
:mode1corrZup
if and
0AB0: key_pressed 0x11
0AB0: key_pressed 0x25
Actor.Driving($PLAYER_ACTOR)
jf @mode1corrZdn
3@ -= 0.1
jump @mode1on
:mode1corrZdn
if and
0AB0: key_pressed 0x11
0AB0: key_pressed 0x27
Actor.Driving($PLAYER_ACTOR)
jf @nowindow
3@ += 0.1
jump @mode1on
:nowindow
if and
0AB0: key_pressed 0x11
0AB0: key_pressed 0x65
Actor.Driving($PLAYER_ACTOR)
jf @mode1off
03C0: 9@ = actor $PLAYER_ACTOR car
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
0730: car 9@ damage_component 4
jump @mode1on
end_threadВключается и в машине, и в самолёте и во всех средствах передвижения.
Кнопка CTRL+КАМЕРА (контрль и кнопка, назначенная на смену вида камеры).
Отключается просто кнопкой КАМЕРА
Можно двигать точку просмотра:
CTRL+ВПРАВО - правее
CTRL+ВЛЕВО - левее
CTRL+ВВЕРХ - ближе
CTRL+ВНИЗ - дальше
ALT+ВВЕРХ - выше
ALT+ВНИЗ - ниже
При выходе из авто - режим отключается.
p.s.: ещё сделал скрипт включения/выключения камеры как в гта один (http://sannybuilder.com/forums/viewtopi … 3812#p3812)
p.p.s. (админам): в принципе, можно спокойно переносить тему в раздел с модификациями
p.p.p.s.: скрипт обновлён - произведено избавление от глобальных переменных в пользу локальных
ну так можно кодом стёкла разбить?
+ новый вопрос: как перекрасить элементы HUD (деньги, уровень жизни, время, звёзды)?
Seemann, спасибо, понял и нашёл )
новая задачка - вообщем если поставить камеру на водительское сидение, то в некоторое "время суток" (судя по всему зависет от погоды) через лобовое стекло перестаёт быть видно светофоры. точнее их цвета. если выйти из машины и разбить стекло - всё становится видно.
Может есть способ кодом разбить стекло?
вопрос ещё один..
вот номера клавиш нажимаемых обыно соответствуют старндартной таблице virtual key codes в винде, но вот первые два-три десятка, судя по всему, имеют собственные значения в гта (типа 10 и 11 это кнопки назначенные на действие Y (Принять) и N (отказать)) . где взглянуть?
Вот - нашёл на сайте мод интересный. Делает камеру как в первой и второй частях гта.
CODE
// mod originally posted by Alex at http://www.gtaforums.com/index.php?showtopic=354881
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
03A4: name_thread 'TDFcam'
:TDFcam_11
0001: wait 0 ms
015A: restore_camera
00D6: if
0256: player $PLAYER_CHAR defined
004D: jump_if_false @TDFcam_11
00D6: if
80DF: not actor $PLAYER_ACTOR driving
004D: jump_if_false @TDFcam_98
067C: put_camera_on_actor $PLAYER_ACTOR with_offset 0.0 0.0 30.0 rotation 0.0 6.0 0.0 1.0 2
0002: jump @TDFcam_11
:TDFcam_98
0679: put_camera_on_car 5@ with_offset 0.0 0.0 37.0 rotation 0.0 10.0 0.0 0.0 2
0002: jump @TDFcam_11В принципе, работает неплохо, однако камера дёргается сильно при поворотах, как при пешей прогулке, так и при поездке.
Может кто-то знает как успокоить камеру?
новый вопрос.
как задавать положение рисуещегося текста чтобы координаты отсчитывались не сверху, а снизу?
приведите пример кода рисующего текст с 1ой числовой переменной СНИЗУ СЛЕВА под радаром. Плиз...
AlphaOmega: лучше копипастом с оригинала
Не выходит. Копилятор брыкается на строку
0006: 49@ = 0 ;; integer values
говорит что локальная переменная 49 вне допустимых границ и макс. значение -33@
может поможешь?
копипастом сделай и откомпиль скрипт таксимода на кнопку, например 0х33 (цифра 3) и на тачку STRETCH... пилз... я пока тоже попробую помудрить...
А если взять коорд игрока в транспорте и коорд самого транспорта в один и тотже момент, отнять одно от второго и вставить как оффсеты в какой-то:
0679: put_camera_on_car 161@ with_offset 0.0 -2.0 $Z_CAMERA rotation 0.0 0.0 204@ 0.0 2
067A: put_camera_on_car 186@ with_offset 15.0 15.0 10.0 point_to_car 34@ tilt 15.0 2
067B: put_camera_on_car $1238 with_offset -1.5 1.5 1.5 point_to_actor $1237 tilt 6.0 2
???
мне кажется что этот код заставит смотреть совсем в другую сторону. ведь и у игрока его координаты берутся не от головы, а от пояса.... жесть будет - кадр на уровне пояса и смотрящий ему в штаны - ужос!
ну значит будем писать с нуля...
прошу привести фрагменты кодов на следующие события (будем по-шагово делать):
* создать в радиусе ХХ человека (случайного) с маркером
** если подъехать к ниму - он садится в машину
** если отменить миссию - исчезает маркер, а не сам человек (то есть без kill/release/unload/remove)
Если надо номер то поищи среди мисий где были взрывы (в main.scm)
В том то и трабла, что при беглой просмотры взрывы создаются, но они сами по себе содержат звук... а вот как отдельно воспроизвести звук взрыва (без самого взрыва) - не нашёл... подскажите плиз...
3 Как я понимаю под car всегда имеется в виду транспорт (любой)
Удивительно, но код реагирует только на машины. Даже мотоциклы не учитываются 
Опкодов, проверяющих включены ли фары или мигалка НЕТ.
Только что интереса ради залез в код, который включает и выключает фары. Если я правильно понял, то он когда их первый раз включает, записывает булеан своей переменной... именно так он и знает когда лампы включать, а когда нет... но кто знает...
Seemann, описание там в иероглифах... а кнопки которые там написаны нажимать пробовал и по очереди и в разной последовательности даже вместе - не помогает. Судя по картинкам и видео - это то, что нужно, но судя по всему для всей игры. точнее для всего игрового времени.
Вот есть опкод типа "поставить камеру за актёром" - вот если бы можно было узнать положение его глаз и туда впихнуть бы камеру.....