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

03A4: name_thread 'VCNHELI' 

while true
    wait 0
    if
        0256:   player $PLAYER_CHAR defined
    then
        if
            010F:   player $PLAYER_CHAR wanted_level > 3    
        then
            0247: request_model #VCNMAV            
            while 8248:   not model #VCNMAV available
                wait 0 ms
            end // while            
            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            
            while true
                if and
                    8118:   not actor 7@ dead 
                    010F:   player $PLAYER_CHAR wanted_level > 3
                jf break
                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@
                if
                    80F2:   not actor 7@ near_actor $PLAYER_ACTOR radius 30.0 30.0 sphere 0
                then
                    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
                else
                    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
                end // if    
            end // while            
            if
                0118:   actor 7@ dead    
            then
                if
                    0185:   car 6@ health >= 0
                then
                    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
                else
                    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
                end // if
            end // if
        else
            if and
                8119:   not car 6@ wrecked
                8118:   not actor 7@ dead  
            then
                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
            end // if
        end // if
    else
        if and
            8119:   not car 6@ wrecked
            8118:   not actor 7@ dead  
        then 
            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
        end // if
    end // if
end // while