// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool start() { maps\factory_util::actor_teleport( level.squad["ALLY_ALPHA"], "parking_lot_start_alpha" ); maps\factory_util::actor_teleport( level.squad["ALLY_BRAVO"], "parking_lot_start_bravo" ); maps\factory_util::actor_teleport( level.squad["ALLY_CHARLIE"], "parking_lot_start_charlie" ); level.player maps\factory_util::move_player_to_start_point( "playerstart_parking_lot" ); level.blockade_vehicle_1 = maps\_vehicle::spawn_vehicle_from_targetname( "blockade_vehicle_1" ); level.blockade_vehicle_1 maps\_vehicle::vehicle_lights_on( "headlights" ); level.blockade_vehicle_1.animname = "first_opfor_car"; level.blockade_vehicle_2 = maps\_vignette_util::vignette_vehicle_spawn( "blockade_vehicle_2", "second_opfor_car" ); level.blockade_vehicle_3 = maps\_vignette_util::vignette_vehicle_spawn( "blockade_vehicle_3", "heavy_weapon_opfor_car" ); level.blockade_vehicle_2 maps\_vehicle::vehicle_lights_on( "headlights" ); level.blockade_vehicle_3 maps\_vehicle::vehicle_lights_on( "headlights" ); level.blockade_vehicle_1 thread vehicle_catch_fire_when_shot(); level.blockade_vehicle_2 thread vehicle_catch_fire_when_shot(); level.blockade_vehicle_3 thread vehicle_catch_fire_when_shot(); thread chase_scripted_flyovers(); foreach ( var_1 in level.squad ) var_1.grenadeammo = 0; thread chase_ally_vehicle_setup(); thread car_chase_intro_car_crash_setup(); thread maps\factory_intro::train_cleanup(); } #using_animtree("generic_human"); main() { common_scripts\utility::flag_wait( "chase_start_done" ); maps\_utility::battlechatter_off( "allies" ); thread chase_dialog(); level notify( "semi_trailer_entrance" ); thread car_chase_intro_car_crash(); level waittill( "player_switch" ); level.drone_anims["axis"]["stand"]["run"] = %run_lowready_f_relative; thread chase_spawn_drone_group( "chase_enemy_trigger_1", "chase_first_turn_drone_spawner", "chase_enemy_trigger_2" ); thread chase_spawn_drone_group( "chase_enemy_trigger_2", "chase_drone_spawner_2", "chase_delete_drone_group_2" ); thread maps\factory_audio::audio_sfx_car_chase_sequence(); wait 40; common_scripts\utility::flag_set( "car_chase_complete" ); level.player freezecontrols( 1 ); wait 1; setsaveddvar( "cg_drawCrosshair", 0 ); setsaveddvar( "compass", 0 ); setsaveddvar( "hud_showStance", 0 ); setsaveddvar( "ammoCounterHide", 1 ); level.player mission_fade_out( 1, "black" ); wait 5; maps\_utility::nextmission(); } mission_fade_out( var_0, var_1 ) { var_2 = maps\_hud_util::get_optional_overlay( var_1 ); if ( var_0 > 0 ) var_2 fadeovertime( var_0 ); var_2.alpha = 1; var_2.foreground = 0; var_2.sort = 205; wait( var_0 ); } section_flag_init() { common_scripts\utility::flag_init( "player_mount_vehicle_start" ); common_scripts\utility::flag_init( "player_mount_vehicle_done" ); common_scripts\utility::flag_init( "car_chase_complete" ); common_scripts\utility::flag_init( "chase_start_done" ); } section_precache() { precachemodel( "ch_crate64x64" ); precachemodel( "shipping_frame_boxes" ); } setup_trailer_platform() { thread chase_player_mount_moving_trailer(); var_0 = getent( "trailer_platform", "targetname" ); var_0.origin = level.ally_vehicle_trailer.origin + ( 395, 0, 112 ); var_0.angles = level.ally_vehicle_trailer.angles + ( 0, 180, 0 ); var_0 linkto( level.ally_vehicle_trailer ); var_1 = getentarray( "trailer_platform_wheel_death_trigger", "targetname" ); foreach ( var_3 in var_1 ) { var_3 enablelinkto(); var_3 linkto( level.ally_vehicle_trailer ); } var_5 = getentarray( "trailer_node", "script_noteworthy" ); foreach ( var_7 in var_5 ) var_7 linkto( level.ally_vehicle_trailer, "body_anim_jnt" ); thread semi_trailer_death_trigger(); var_9 = getentarray( "trailer_side_rail", "targetname" ); foreach ( var_11 in var_9 ) var_11 linkto( level.ally_vehicle_trailer, "body_anim_jnt" ); common_scripts\utility::flag_wait( "player_mount_vehicle_start" ); thread maps\factory_audio::audio_play_ending_scene(); common_scripts\utility::flag_set( "music_chase_ending" ); setsaveddvar( "player_sprintUnlimited", "0" ); foreach ( var_3 in var_1 ) var_3 delete(); } chase_player_mount_moving_trailer() { var_0 = getent( "get_in_vehicle_trigger", "targetname" ); var_0 enablelinkto(); var_0 linkto( level.ally_vehicle_trailer ); waittillframeend; level waittill( "start_mount" ); common_scripts\utility::flag_set( "factory_rooftop_wind_gust_moment" ); var_0 common_scripts\utility::trigger_on(); thread chase_airstrike_kills_player(); thread chase_player_falls_off_trailer(); for (;;) { if ( abs( abs( level.player.angles[1] ) - level.ally_vehicle_trailer.angles[1] ) < 45 && common_scripts\utility::flag( "player_near_trailer_rear" ) && !level.player isthrowinggrenade() && !level.player ismeleeing() ) break; wait 0.05; } level.player.active_anim = 1; level.player disableweapons(); level.player freezecontrols( 1 ); level.player allowprone( 0 ); level.player allowcrouch( 0 ); level.player setstance( "stand" ); var_1 = level.player getvelocity(); var_2 = length( var_1 ); common_scripts\utility::flag_set( "player_mount_vehicle_start" ); var_3 = maps\_utility::spawn_anim_model( "player_rig" ); var_4 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_ally_pulls_up_player_b201" ); var_5 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_ally_pulls_up_player_b202" ); var_6 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_ally_pulls_up_player_b203" ); var_3 hide(); var_7 = getent( "car_chase_intro", "script_noteworthy" ); var_8 = []; var_8["factory_car_chase_intro_ally_pulls_up_player_b201"] = var_4; var_8["factory_car_chase_intro_ally_pulls_up_player_b202"] = var_5; var_8["factory_car_chase_intro_ally_pulls_up_player_b203"] = var_6; var_8["factory_car_chase_intro_ally_pulls_up_player_b201"] thread chase_looped_afterburner_faint(); var_8["factory_car_chase_intro_ally_pulls_up_player_b202"] thread chase_looped_afterburner_faint(); var_8["factory_car_chase_intro_ally_pulls_up_player_b203"] thread chase_looped_afterburner_faint(); var_3 linkto( level.ally_vehicle_trailer, "body_anim_jnt" ); level.ally_vehicle_trailer notify( "stop_loop" ); var_7 thread maps\_anim::anim_single( var_8, "factory_car_chase_intro_ally_pulls_up_player" ); var_9 = []; var_9["ally_alpha"] = level.squad["ALLY_ALPHA"]; var_9["ally_bravo"] = level.squad["ALLY_BRAVO"]; var_9["ally_charlie"] = level.squad["ALLY_CHARLIE"]; foreach ( var_11 in var_9 ) var_11 linkto( level.ally_vehicle_trailer, "body_anim_jnt" ); level.ally_vehicle_trailer thread maps\_anim::anim_single( var_9, "factory_car_chase_intro_ally_pulls_up_player", "body_anim_jnt" ); level.ally_vehicle_trailer thread maps\_anim::anim_single_solo( var_3, "factory_car_chase_intro_ally_pulls_up_player", "body_anim_jnt" ); var_13 = 0.75; var_14 = 0; level.player playerlinktoblend( var_3, "tag_player", var_13, 0.25, 0.25 ); wait( var_13 ); level.player playerlinktodelta( var_3, "tag_player", 0, var_14, var_14, var_14, var_14, 1 ); var_3 show(); maps\_utility::autosave_by_name( "chase" ); wait( getanimlength( var_3 maps\_utility::getanim( "factory_car_chase_intro_ally_pulls_up_player" ) ) - var_13 ); var_3 delete(); common_scripts\utility::flag_set( "player_mount_vehicle_done" ); level.player enableweapons(); level.player setmovingplatformplayerturnrate( 0.75 ); level.player setstance( "crouch" ); var_1 = level.player getvelocity(); level.player unlink(); level.player setvelocity( var_1 ); wait 1; if ( level.player.thermal ) level.player maps\factory_util::thermal_disable(); level.player.active_anim = 0; common_scripts\utility::flag_set( "factory_rooftop_wind_gust_moment" ); level.player freezecontrols( 0 ); level.player setmovespeedscale( 0.5 ); level.player allowprone( 1 ); level.player allowcrouch( 1 ); } chase_scripted_flyovers() { wait 4; maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "rooftop_bomber" ); chase_airstrike_explosion( "rooftop_airstrike_explosion" ); common_scripts\utility::flag_wait( "player_mount_vehicle_start" ); chase_wait_for_semi_touch( "chase_enemy_trigger_2" ); maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "smokestack_bomber" ); } chase_looped_afterburner() { playfxontag( level._effect["afterburner_contrail"], self, "tag_engine_right" ); common_scripts\utility::waitframe(); playfxontag( level._effect["afterburner_contrail"], self, "tag_engine_left" ); } chase_looped_afterburner_faint() { playfxontag( level._effect["afterburner_contrail_faint"], self, "tag_engine_right" ); common_scripts\utility::waitframe(); playfxontag( level._effect["afterburner_contrail_faint"], self, "tag_engine_left" ); } chase_airstrike_explosion( var_0 ) { var_1 = getent( var_0, "targetname" ); playfx( common_scripts\utility::getfx( var_1.script_fxid ), var_1.origin, var_1.angles ); level notify( var_0 ); } chase_airstrike_kills_player() { level.player endon( "death" ); level endon( "player_mount_vehicle_start" ); maps\_utility::wait_for_flag_or_timeout( "player_left_parking_lot", 6 ); level notify( "new_quote_string" ); setdvar( "ui_deadquote", &"FACTORY_FAIL_ESCAPE" ); level.player playsound( "scn_factory_end_exp11_lr" ); playfx( level._effect["101ton_bomb"], level.player.origin ); level.player kill(); maps\_utility::missionfailedwrapper(); } chase_player_falls_off_trailer() { var_0 = getent( "chase_kill_trigger", "targetname" ); var_0 common_scripts\utility::trigger_off(); common_scripts\utility::flag_wait( "player_mount_vehicle_done" ); var_0 common_scripts\utility::trigger_on(); common_scripts\utility::flag_wait( "player_fell_off_trailer" ); level notify( "new_quote_string" ); setdvar( "ui_deadquote", &"FACTORY_FAIL_FELL_OFF_TRAILER" ); playfx( level._effect["101ton_bomb"], level.player.origin ); level.player kill(); maps\_utility::missionfailedwrapper(); } chase_dialog() { level waittill( "hit_vehicle_01" ); level.player thread maps\factory_util::thermal_disable(); level waittill( "hit_vehicle_02" ); level.squad["ALLY_ALPHA"] maps\_utility::smart_dialogue( "factory_mrk_getonthetrailer" ); chase_wait_for_semi_touch( "chase_enemy_trigger_1" ); chase_wait_for_semi_touch( "chase_delete_warehouse_drones" ); level.squad["ALLY_CHARLIE"] maps\_utility::smart_dialogue( "factory_hsh_ohhhhshit" ); level.squad["ALLY_ALPHA"] maps\_utility::smart_dialogue( "factory_mrk_wegotproblemsback" ); maps\_utility::smart_radio_dialogue( "factory_oby_pedalstothemetal" ); maps\_utility::smart_radio_dialogue( "factory_oby_hangon" ); chase_wait_for_semi_touch( "chase_clear" ); maps\_utility::smart_radio_dialogue( "factory_kck_wereclear" ); level.squad["ALLY_BRAVO"] thread maps\_utility::smart_dialogue( "factory_kgn_nicedrivingkick" ); wait 6; if ( maps\_utility::is_gen4() ) wait 1.0; level.squad["ALLY_ALPHA"] maps\_utility::smart_dialogue( "factory_mrk_wellthereaintgonna" ); wait 0.4; level.squad["ALLY_ALPHA"] maps\_utility::smart_dialogue( "factory_mrk_jsocwillgiveus" ); wait 1.0; level.squad["ALLY_ALPHA"] maps\_utility::smart_dialogue( "factory_mrk_timetoheadhome" ); } chase_ally_vehicle_setup() { level.ally_vehicle = maps\_vignette_util::vignette_vehicle_spawn( "chase_ally_vehicle", "het_cab" ); level.ally_vehicle_trailer = maps\_vignette_util::vignette_vehicle_spawn( "chase_ally_vehicle_trailer", "het_trailer" ); level.ally_vehicle maps\_vehicle::godon(); level.ally_vehicle_trailer maps\_vehicle::godon(); var_0 = getent( "trailer_airstrike_kill_trigger", "targetname" ); var_0 enablelinkto(); var_0 linkto( level.ally_vehicle ); thread setup_trailer_platform(); waittillframeend; var_1 = getent( "car_chase_intro", "script_noteworthy" ); var_1 maps\_anim::anim_first_frame_solo( level.ally_vehicle, "car_chase_intro_car_crash" ); var_1 maps\_anim::anim_first_frame_solo( level.ally_vehicle_trailer, "car_chase_intro_car_crash" ); common_scripts\utility::flag_set( "chase_start_done" ); level waittill( "semi_trailer_entrance" ); level.ally_vehicle thread maps\_utility::play_sound_on_tag( "scn_factory_horn_short", "tag_origin" ); level.ally_vehicle_front = spawn( "script_origin", level.ally_vehicle gettagorigin( "tag_engine_right" ) ); level.ally_vehicle_front linkto( level.ally_vehicle ); var_2 = vectornormalize( anglestoforward( level.ally_vehicle.angles ) ); var_3 = var_2 * 192; var_4 = spawn( "script_model", level.ally_vehicle.origin + ( 0, 0, 56 ) + var_3 ); var_4.angles = level.ally_vehicle.angles; var_4 setmodel( "tag_origin" ); var_4 linkto( level.ally_vehicle ); playfxontag( level._effect["factory_het_cab_headlight_full"], var_4, "tag_origin" ); level.ally_vehicle_trailer thread maps\_vehicle::vehicle_lights_on( "running" ); level.ally_vehicle maps\_vehicle::vehicle_lights_on( "running" ); thread chase_headlight_fx_swap( var_4 ); } chase_headlight_fx_swap( var_0 ) { common_scripts\utility::flag_wait( "player_mount_vehicle_start" ); stopfxontag( level._effect["factory_het_cab_headlight_full"], var_0, "tag_origin" ); waittillframeend; playfxontag( level._effect["cheap_spot"], var_0, "tag_origin" ); } chase_blockade_crash() { foreach ( var_1 in level.squad ) var_1.ignoreme = 1; level.player.ignoreme = 1; var_3 = maps\_utility::get_living_ai_array( "blockade_enemy", "script_noteworthy" ); foreach ( var_1 in var_3 ) { var_1 setentitytarget( level.ally_vehicle ); var_1.maxsightdistsqrd = 67108864; var_5 = var_1 getturret(); if ( isdefined( var_5 ) ) var_5 settargetentity( level.ally_vehicle ); } wait 1; foreach ( var_1 in level.squad ) { var_1 maps\_utility::disable_pain(); var_1.ignoresuppression = 1; setsaveddvar( "ai_friendlyFireBlockDuration", 0 ); } maps\_utility::activate_trigger_with_targetname( "p_b_r_ally_move_602" ); wait 2; foreach ( var_1 in level.squad ) var_1.ignoreall = 1; level.ally_vehicle thread maps\_utility::play_sound_on_tag( "scn_factory_horn_long", "tag_origin" ); var_3 = maps\_utility::get_living_ai_array( "blockade_enemy", "script_noteworthy" ); foreach ( var_12 in var_3 ) { var_12.ignoreall = 1; wait 0.1; var_12 cleargoalvolume(); var_12 setgoalpos( level.blockade_vehicle_3.origin ); } level waittill( "hit_vehicle_01" ); var_3 = maps\_utility::get_living_ai_array( "blockade_enemy", "script_noteworthy" ); foreach ( var_12 in var_3 ) { var_12 thread maps\_utility::disable_long_death(); var_12 kill( ( -462, 55, 40 ) ); } level.player.ignoreme = 0; } ally_reach_curb_hop( var_0 ) { self.goalradius = 8; var_1 = getent( "car_chase_intro_proxy", "targetname" ); var_1 maps\_anim::anim_reach_and_approach_solo( self, var_0 ); self setgoalpos( self.origin ); } car_chase_intro_car_crash_setup() { var_0 = []; level.factory_car_chase_intro_broken_awning01 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_broken_awning01" ); level.factory_car_chase_intro_broken_awning02 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_broken_awning02" ); level.factory_car_chase_intro_broken_awning03 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_broken_awning03" ); level.factory_car_chase_intro_broken_awning04 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_broken_awning04" ); level.factory_car_chase_intro_broken_fence01 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_broken_fence01" ); level.factory_car_chase_intro_broken_fence02 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_broken_fence02" ); level.factory_car_chase_intro_broken_light_post = maps\_utility::spawn_anim_model( "factory_car_chase_intro_broken_light_post" ); level.factory_car_chase_intro_side_car01 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_side_car01_crash" ); level.factory_car_chase_intro_side_car02 = maps\_utility::spawn_anim_model( "factory_car_chase_intro_side_car02_crash" ); level.third_opfor_car = maps\_vignette_util::vignette_vehicle_spawn( "parking_lot_stationary_vehicle", "third_opfor_car" ); level.third_opfor_car thread vehicle_catch_fire_when_shot(); var_0["factory_car_chase_intro_broken_awning01"] = level.factory_car_chase_intro_broken_awning01; var_0["factory_car_chase_intro_broken_awning02"] = level.factory_car_chase_intro_broken_awning02; var_0["factory_car_chase_intro_broken_awning03"] = level.factory_car_chase_intro_broken_awning03; var_0["factory_car_chase_intro_broken_awning04"] = level.factory_car_chase_intro_broken_awning04; var_0["factory_car_chase_intro_broken_fence01"] = level.factory_car_chase_intro_broken_fence01; var_0["factory_car_chase_intro_broken_fence02"] = level.factory_car_chase_intro_broken_fence02; var_0["factory_car_chase_intro_broken_light_post"] = level.factory_car_chase_intro_broken_light_post; var_0["factory_car_chase_intro_side_car01_crash"] = level.factory_car_chase_intro_side_car01; var_0["factory_car_chase_intro_side_car02_crash"] = level.factory_car_chase_intro_side_car02; var_1 = getent( "car_chase_intro", "script_noteworthy" ); var_1 maps\_anim::anim_first_frame( var_0, "car_chase_intro_car_crash" ); var_1 maps\_anim::anim_first_frame_solo( level.third_opfor_car, "factory_car_chase" ); var_2 = getent( "parking_lot_trucks_at_rest_blocker", "targetname" ); var_2 connectpaths(); var_2 notsolid(); var_3 = getent( "parking_lot_fence_blocker", "targetname" ); var_3 connectpaths(); var_3 notsolid(); } car_chase_intro_car_crash() { var_0 = []; var_0["factory_car_chase_intro_broken_awning01"] = level.factory_car_chase_intro_broken_awning01; var_0["factory_car_chase_intro_broken_awning02"] = level.factory_car_chase_intro_broken_awning02; var_0["factory_car_chase_intro_broken_awning03"] = level.factory_car_chase_intro_broken_awning03; var_0["factory_car_chase_intro_broken_awning04"] = level.factory_car_chase_intro_broken_awning04; var_0["factory_car_chase_intro_broken_fence01"] = level.factory_car_chase_intro_broken_fence01; var_0["factory_car_chase_intro_broken_fence02"] = level.factory_car_chase_intro_broken_fence02; var_0["factory_car_chase_intro_broken_light_post"] = level.factory_car_chase_intro_broken_light_post; var_0["first_opfor_car"] = level.blockade_vehicle_1; var_0["second_opfor_car"] = level.blockade_vehicle_2; var_0["factory_car_chase_intro_side_car01_crash"] = level.factory_car_chase_intro_side_car01; var_0["factory_car_chase_intro_side_car02_crash"] = level.factory_car_chase_intro_side_car02; var_1 = getent( "car_chase_intro", "script_noteworthy" ); var_1 thread maps\_anim::anim_single( var_0, "car_chase_intro_car_crash" ); var_2 = []; var_2["heavy_weapon_opfor_car"] = level.blockade_vehicle_3; var_2["het_cab"] = level.ally_vehicle; var_2["het_trailer"] = level.ally_vehicle_trailer; thread chase_blockade_crash(); thread car_crash_slowmo(); level.ally_vehicle thread maps\factory_parking_lot::parking_lot_blockade_vehicle_death_radius(); level.ally_vehicle notify( "suspend_drive_anims" ); level.ally_vehicle_trailer notify( "suspend_drive_anims" ); level.ally_vehicle thread maps\factory_audio::sfx_play_crash_scene(); var_1 thread maps\_anim::anim_single( var_2, "car_chase_intro_car_crash" ); level waittill( "player_switch" ); level.player playrumbleonentity( "light_1s" ); common_scripts\utility::exploder( "building_corner_01_exploder" ); thread maps\factory_anim::factory_car_chase_spawn(); chase_wait_for_semi_touch( "chase_entering_warehouse" ); var_0[var_0.size] = level.third_opfor_car; var_0[var_0.size] = level.blockade_vehicle_3; var_0[var_0.size] = level.factory_car_chase_intro_side_car03_blowup; foreach ( var_4 in var_0 ) var_4 delete(); } car_crash_slowmo() { wait 5.3333; earthquake( 0.5, 1.5, level.player.origin, 2500 ); level.player playrumbleonentity( "artillery_rumble" ); } semi_trailer_death_trigger() { level endon( "semi_stopped" ); var_0 = getent( "trailer_intro_kill_trigger", "targetname" ); var_0 enablelinkto(); var_0 linkto( level.ally_vehicle_trailer ); var_0 thread semi_trailer_death_trigger_delete(); common_scripts\utility::flag_wait( "flag_trailer_intro_kill" ); level notify( "new_quote_string" ); setdvar( "ui_deadquote", &"FACTORY_FAIL_HIT_BY_TRAILER" ); level.player kill(); maps\_utility::missionfailedwrapper(); } semi_trailer_death_trigger_delete() { level waittill( "semi_stopped" ); self delete(); } chase_wait_for_semi_touch( var_0 ) { var_1 = getent( var_0, "targetname" ); while ( !level.ally_vehicle_front istouching( var_1 ) ) wait 0.05; } chase_spawn_drone_group( var_0, var_1, var_2 ) { chase_wait_for_semi_touch( var_0 ); var_3 = maps\_utility::array_spawn_targetname( var_1 ); if ( isdefined( var_2 ) ) { chase_wait_for_semi_touch( var_2 ); foreach ( var_5 in var_3 ) var_5 delete(); } } enemy_vehicle_twitch() { self endon( "death" ); self endon( "non_physics_vehicle" ); if ( !self vehicle_isphysveh() ) level notify( "non_physics_vehicle" ); for (;;) { self waittill( "damage" ); physicsjolt( self.origin, 20, 20, ( 1, 1, 1 ) ); } } vehicle_catch_fire_when_shot() { self endon( "death" ); self.vehicle_stays_alive = 1; var_0 = ( self.maxhealth - self.healthbuffer ) * 0.5; while ( self.health - self.healthbuffer > var_0 ) { self waittill( "damage" ); waittillframeend; } playfxontag( level._effect["factory_car_fire_runner"], self, "tag_origin" ); while ( self.health > 0 ) { self waittill( "damage" ); waittillframeend; if ( self.health < self.healthbuffer ) break; } maps\_vehicle::godon(); if ( self vehicle_isphysveh() ) { var_1 = self.origin; wait 0.1; var_2 = self.origin - var_1; self stopanimscripted(); self vehicle_teleport( self.origin + ( 0, 0, 10 ), self.angles ); self vehphys_setspeed( 60.0 ); var_3 = 4 * var_2 + ( 0, 0, randomintrange( 200, 250 ) ); self vehphys_crash(); } playfx( level._effect["lynxexplode"], self.origin, anglestoup( self.angles ) ); self playsound( "car_explode_factory" ); maps\_vehicle::vehicle_lights_off( "headlights" ); self setmodel( "vehicle_iveco_lynx_destroyed_iw6" ); common_scripts\utility::array_thread( self.riders, ::vehicle_crash_guy, self ); } vehicle_crash_guy( var_0 ) { if ( !isdefined( self ) || self.vehicle_position == 0 ) return; else { self.deathanim = undefined; self.noragdoll = undefined; var_0.riders = common_scripts\utility::array_remove( var_0.riders, self ); self.ragdoll_immediate = 1; if ( isdefined( self ) ) { if ( !isdefined( self.magic_bullet_shield ) ) self kill(); } } var_0 vehicle_crash_launch_guys(); } vehicle_crash_launch_guys() { wait 0.1; if ( isdefined( self ) ) { var_0 = self gettagorigin( "tag_guy1" ); physicsexplosioncylinder( var_0, 300, 300, 0.25 ); } }