{$CLEO .cs} // 4 Stars VCN Helicopter (v1.0)

:VCNHELI
03A4: name_thread 'VCNHELI' 

:VCNHELI_10
0001: wait 0 ms 
00D6: if 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @VCNHELI_623 
00D6: if 
010F:   player $PLAYER_CHAR wanted_level > 3 
004D: jump_if_false @VCNHELI_553 
0247: request_model #VCNMAV 

:VCNHELI_53
00D6: if 
8248:   not model #VCNMAV available 
004D: jump_if_false @VCNHELI_80 
0001: wait 0 ms 
0002: jump @VCNHELI_53 

:VCNHELI_80
04C4: create_coordinate 0@ 1@ 2@ from_actor $PLAYER_ACTOR offset -300.0 300.0 0.0 
02C0: set 3@ 4@ 5@ to_ped_path_coords_closest_to 0@ 1@ 2@ 
000B: 5@ += 20.0 // floating-point values 
00A5: 6@ = create_car #VCNMAV at 3@ 4@ 5@ 
02AA: set_car 6@ immune_to_nonplayer 1 
0224: set_car 6@ health_to 50000 
020A: set_car 6@ door_status_to 2 
0560: create_random_actor_in_vehicle 6@ in_driverseat_handle_as 7@ 
0376: 8@ = create_random_actor 0.0 0.0 0.0 
0337: set_actor 8@ visibility 0 
02AB: set_actor 8@ immunities BP 1 FP 1 EP 1 CP 1 MP 1 
0446: set_actor 8@ dismemberment_possible 0 
0464: put_actor 8@ into_turret_on_car 6@ at_car_offset 0.0 0.0 0.0 position 0 angle 0.0 with_weapon 0 

:VCNHELI_269
00D6: if and
8118:   not actor 7@ dead 
010F:   player $PLAYER_CHAR wanted_level > 3 
004D: jump_if_false @VCNHELI_459 
0001: wait 0 ms 
020F: actor 8@ look_at_player $PLAYER_CHAR 
0172: 12@ = actor 8@ z_angle 
04D0: force_heli 6@ looking_angle_to 12@ 
00D6: if 
80F2:   not actor 7@ near_actor $PLAYER_ACTOR radius 30.0 30.0 0 
004D: jump_if_false @VCNHELI_398 
0054: store_player $PLAYER_CHAR position_to 9@ 10@ 11@ 
000B: 11@ += 20.0 // floating-point values 
04A2: heli 6@ fly_to 9@ 10@ 11@ speed 60 
0002: jump @VCNHELI_452 

:VCNHELI_398
00AA: store_car 6@ position_to 3@ 4@ 5@ 
0054: store_player $PLAYER_CHAR position_to 9@ 10@ 11@ 
000B: 11@ += 20.0 // floating-point values 
04A2: heli 6@ fly_to 3@ 4@ 11@ speed 0 

:VCNHELI_452
0002: jump @VCNHELI_269 

:VCNHELI_459
00D6: if 
0118:   actor 7@ dead 
004D: jump_if_false @VCNHELI_546 
00D6: if 
0185:   car 6@ health >= 0 
004D: jump_if_false @VCNHELI_526 
0564: set_vehicle 6@ helicopter_simulate_crash_landing 
01C3: remove_references_to_car 6@ 
01C2: remove_references_to_actor 7@ // Like turning an actor into a random pedestrian 
01C2: remove_references_to_actor 8@ // Like turning an actor into a random pedestrian 
0249: release_model #VCNMAV 
0002: jump @VCNHELI_546 

:VCNHELI_526
01C3: remove_references_to_car 6@ 
01C2: remove_references_to_actor 7@ // Like turning an actor into a random pedestrian 
01C2: remove_references_to_actor 8@ // Like turning an actor into a random pedestrian 
0249: release_model #VCNMAV 

:VCNHELI_546
0002: jump @VCNHELI_616 

:VCNHELI_553
00D6: if and
8119:   not car 6@ wrecked 
8118:   not actor 7@ dead 
004D: jump_if_false @VCNHELI_616 
04A2: heli 6@ fly_to 0.0 0.0 100.0 speed 100 
01C3: remove_references_to_car 6@ 
01C2: remove_references_to_actor 7@ // Like turning an actor into a random pedestrian 
01C2: remove_references_to_actor 8@ // Like turning an actor into a random pedestrian 
0249: release_model #VCNMAV 

:VCNHELI_616
0002: jump @VCNHELI_664 

:VCNHELI_623
00D6: if and
8119:   not car 6@ wrecked 
8118:   not actor 7@ dead 
004D: jump_if_false @VCNHELI_664 
01C3: remove_references_to_car 6@ 
01C2: remove_references_to_actor 7@ // Like turning an actor into a random pedestrian 
01C2: remove_references_to_actor 8@ // Like turning an actor into a random pedestrian 
0249: release_model #VCNMAV 

:VCNHELI_664
0002: jump @VCNHELI_10 