902 lines
35 KiB
Plaintext
902 lines
35 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
enemyhq_intro_pre_load()
|
|
{
|
|
common_scripts\utility::flag_init( "intro_done" );
|
|
common_scripts\utility::flag_init( "drive_in_done" );
|
|
common_scripts\utility::flag_init( "drive_start" );
|
|
common_scripts\utility::flag_init( "FLAG_intro_truck_arrived" );
|
|
common_scripts\utility::flag_init( "FLAG_spawn_checkpoint_guys" );
|
|
common_scripts\utility::flag_init( "FLAG_blow_sticky_failsafe" );
|
|
common_scripts\utility::flag_init( "FLAG_player_bust_windshield" );
|
|
common_scripts\utility::flag_init( "FLAG_player_gun_up" );
|
|
common_scripts\utility::flag_init( "FLAG_stop_hit_reactions" );
|
|
common_scripts\utility::flag_init( "bring_up_clacker" );
|
|
common_scripts\utility::flag_init( "start_truck_flip_scene" );
|
|
common_scripts\utility::flag_init( "FLAG_clacked_the_clacker" );
|
|
common_scripts\utility::flag_init( "FLAG_truck_close_to_bash" );
|
|
common_scripts\utility::flag_init( "ally1_enter_veh" );
|
|
common_scripts\utility::flag_init( "ally2_enter_veh" );
|
|
common_scripts\utility::flag_init( "ally3_enter_veh" );
|
|
common_scripts\utility::flag_init( "ally4_enter_veh" );
|
|
common_scripts\utility::flag_init( "ally5_enter_veh" );
|
|
common_scripts\utility::flag_init( "veh_jolt" );
|
|
common_scripts\utility::flag_init( "FLAG_keegan_turn_right" );
|
|
common_scripts\utility::flag_init( "FLAG_keegan_turn_left" );
|
|
common_scripts\utility::flag_init( "FLAG_truck_exploder_start" );
|
|
common_scripts\utility::flag_init( "FLAG_blow_sticky_04" );
|
|
common_scripts\utility::flag_init( "FLAG_drive_in_startpoint" );
|
|
common_scripts\utility::flag_init( "FLAG_start_pathblockers" );
|
|
common_scripts\utility::flag_init( "FLAG_dog_bark" );
|
|
common_scripts\utility::flag_init( "FLAG_dog_bark_truck" );
|
|
common_scripts\utility::flag_init( "FLAG_player_failcase_road_overrun" );
|
|
common_scripts\utility::flag_init( "FLAG_player_failcase_road" );
|
|
common_scripts\utility::flag_init( "FLAG_ehq_give_objective" );
|
|
common_scripts\utility::flag_init( "FLAG_obj_rescueajax" );
|
|
common_scripts\utility::flag_init( "obj_rescue_obj" );
|
|
}
|
|
|
|
setup_drive_in()
|
|
{
|
|
level.start_point = "drive_in";
|
|
common_scripts\utility::flag_set( "intro_done" );
|
|
maps\enemyhq::setup_common();
|
|
waittillframeend;
|
|
spawn_player_truck();
|
|
level.allies[1] thread keegan_enter_veh();
|
|
thread dead_guys_near_truck();
|
|
thread player_failcase_road();
|
|
maps\_utility::battlechatter_off( "allies" );
|
|
maps\_utility::battlechatter_off( "axis" );
|
|
common_scripts\utility::flag_set( "picked_up_mk32" );
|
|
common_scripts\utility::flag_set( "FLAG_drive_in_startpoint" );
|
|
thread maps\enemyhq_audio::aud_check( "drive_in" );
|
|
level.dog maps\enemyhq_code::lock_player_control();
|
|
common_scripts\utility::flag_set( "merrick_done_lookat" );
|
|
}
|
|
|
|
begin_drive_in()
|
|
{
|
|
thread spawn_checkpoint_guys();
|
|
thread fly_by_01();
|
|
thread obj_getingetajaxgetout();
|
|
thread gold_door_on_player_truck();
|
|
|
|
foreach ( var_1 in level.allies )
|
|
var_1.alertlevel = "noncombat";
|
|
|
|
thread maps\_utility::autosave_now();
|
|
thread get_in_truck_nag_vo();
|
|
thread maps\enemyhq_rooftop_intro::blow_wall();
|
|
thread truck_bash_moment();
|
|
thread truck_flip_moment();
|
|
thread truck_start_driving();
|
|
thread truck_pathblockers();
|
|
thread sticky_grenade_01();
|
|
thread sticky_grenade_02();
|
|
thread sticky_grenade_03();
|
|
thread sticky_grenade_05();
|
|
thread sticky_grenade_06();
|
|
thread sticky_grenade_07();
|
|
thread truck_exploder_start_driving();
|
|
thread drive_in_handle_ps4_ssao();
|
|
setup_allies_vehicle_approach();
|
|
thread maps\enemyhq_code::player_enter_truck_progression( level.player_truck );
|
|
common_scripts\utility::flag_wait( "drive_in_done" );
|
|
}
|
|
|
|
drive_in_handle_ps4_ssao()
|
|
{
|
|
if ( !level.ps4 )
|
|
return;
|
|
|
|
common_scripts\utility::flag_wait( "FLAG_player_enter_truck" );
|
|
wait 13;
|
|
maps\_art::disable_ssao_over_time( 2 );
|
|
common_scripts\utility::flag_wait( "FLAG_stop_hit_reactions" );
|
|
maps\_art::enable_ssao_over_time( 2 );
|
|
}
|
|
|
|
fly_by_01()
|
|
{
|
|
var_0 = getent( "intro_transport_01", "targetname" );
|
|
var_1 = getent( "intro_transport_02", "targetname" );
|
|
var_2 = getent( "intro_transport_01b", "targetname" );
|
|
var_3 = getent( "intro_transport_02b", "targetname" );
|
|
var_4 = getentarray( "flyby_hide_on_load", "script_noteworthy" );
|
|
common_scripts\utility::array_call( var_4, ::show );
|
|
var_0 thread intro_transport_mover( 65000, 15 );
|
|
var_1 thread intro_transport_mover( 65000, 15 );
|
|
var_2 thread intro_transport_mover( 65000, 15 );
|
|
var_3 thread intro_transport_mover( 65000, 15 );
|
|
var_5 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "intro_escort_01" );
|
|
var_6 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "intro_escort_02" );
|
|
var_7 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "intro_escort_03" );
|
|
var_8 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "intro_escort_04" );
|
|
var_9 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "intro_escort_05" );
|
|
common_scripts\utility::exploder( 6877 );
|
|
}
|
|
|
|
intro_transport_mover( var_0, var_1 )
|
|
{
|
|
var_2 = anglestoforward( self.angles );
|
|
var_3 = self.origin + var_2 * var_0;
|
|
self moveto( var_3, var_1, 1, 1 );
|
|
wait( var_1 );
|
|
self delete();
|
|
}
|
|
|
|
get_in_truck_nag_vo()
|
|
{
|
|
level endon( "end_truck_nag" );
|
|
common_scripts\utility::flag_wait( "FLAG_intro_truck_arrived" );
|
|
wait 0.5;
|
|
level.allies[0] maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_alrightletsloadup" );
|
|
wait 7;
|
|
level.allies[0] maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_adammoveit" );
|
|
wait 10;
|
|
level.allies[0] maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_getinadamlets" );
|
|
}
|
|
|
|
dead_guys_near_truck()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "dog_scratch_truck", "targetname" );
|
|
var_1 = [];
|
|
var_2 = getent( "intro_truck_dead_guy1", "targetname" );
|
|
var_3 = getent( "intro_truck_dead_guy2", "targetname" );
|
|
var_2 thread maps\enemyhq_code::corpse_setup( var_0, "truck_enter_dead_body1", "bring_up_clacker" );
|
|
var_3 thread maps\enemyhq_code::corpse_setup( var_0, "truck_enter_dead_body2", "bring_up_clacker" );
|
|
}
|
|
|
|
gold_door_on_player_truck()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_intro_truck_arrived" );
|
|
wait 1;
|
|
level.gold_player_door = spawn( "script_model", level.player_truck.origin );
|
|
level.gold_player_door setmodel( "vehicle_man_7t_front_door_RI_obj" );
|
|
level.gold_player_door.angles = level.player_truck.angles;
|
|
level.gold_player_door linkto( level.player_truck );
|
|
common_scripts\utility::flag_wait( "FLAG_player_enter_truck" );
|
|
maps\_utility::disable_trigger_with_targetname( "TRIG_get_in_truck" );
|
|
wait 1;
|
|
level.gold_player_door delete();
|
|
}
|
|
|
|
setup_allies_vehicle_approach()
|
|
{
|
|
foreach ( var_1 in level.allies )
|
|
var_1 maps\_utility::enable_ai_color();
|
|
|
|
if ( level.start_point != "drive_in" )
|
|
{
|
|
thread maps\enemyhq_rooftop_intro::merrick_look_at_flyby();
|
|
maps\enemyhq_code::safe_activate_trigger_with_targetname( "TRIG_intro_allies_wait_for_ride" );
|
|
}
|
|
|
|
var_3 = getnode( "ally1node", "targetname" );
|
|
var_4 = getnode( "ally2node", "targetname" );
|
|
var_5 = getnode( "ally3node", "targetname" );
|
|
var_6 = getnode( "ally4node", "targetname" );
|
|
var_7 = getnode( "ally5node", "targetname" );
|
|
level.allies[0].animname = "baker";
|
|
level.allies[1].animname = "keegan";
|
|
level.allies[2].animname = "hesh";
|
|
thread merrick_goto_veh_and_enter( level.allies[0], var_3, "ally1_enter_veh" );
|
|
common_scripts\utility::flag_wait( "FLAG_intro_truck_arrived" );
|
|
level notify( "dudes_need_to_load_up" );
|
|
thread guy_goto_veh_and_enter( level.allies[2], level.player_truck, var_5, "ally3_enter_veh" );
|
|
thread dog_goto_veh_and_enter( level.dog, level.player_truck, "ally5_enter_veh" );
|
|
}
|
|
|
|
guy_goto_veh_and_enter( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_0 setgoalnode( var_2 );
|
|
var_0.goalradius = 32;
|
|
var_0 waittill( "goal" );
|
|
common_scripts\utility::flag_wait( "FLAG_player_enter_truck" );
|
|
|
|
if ( var_0.animname == "baker" )
|
|
{
|
|
wait 2;
|
|
var_0 maps\_utility::teleport_ai( var_2 );
|
|
var_0 linkto( level.player_truck, "tag_detach" );
|
|
var_1 thread maps\_anim::anim_loop_solo( var_0, "enter_truck_loop", "stop_baker_loop", "tag_detach" );
|
|
}
|
|
|
|
if ( var_0.animname == "hesh" )
|
|
{
|
|
wait 2;
|
|
var_0 maps\_utility::teleport_ai( var_2 );
|
|
var_0 linkto( level.player_truck, "tag_detach" );
|
|
var_1 thread maps\_anim::anim_loop_solo( var_0, "enter_truck_loop", "stop_hesh_loop", "tag_detach" );
|
|
}
|
|
|
|
common_scripts\utility::flag_set( var_3 );
|
|
}
|
|
|
|
merrick_goto_veh_and_enter( var_0, var_1, var_2 )
|
|
{
|
|
common_scripts\utility::flag_wait( "merrick_done_lookat" );
|
|
var_0 setgoalnode( var_1 );
|
|
var_0.goalradius = 32;
|
|
var_0 waittill( "goal" );
|
|
common_scripts\utility::flag_wait( "FLAG_player_enter_truck" );
|
|
wait 2;
|
|
var_0 maps\_utility::teleport_ai( var_1 );
|
|
var_0 linkto( level.player_truck, "tag_detach" );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( var_0, "enter_truck_loop", "stop_baker_loop", "tag_detach" );
|
|
common_scripts\utility::flag_set( var_2 );
|
|
}
|
|
|
|
keegan_enter_veh()
|
|
{
|
|
common_scripts\utility::flag_wait( "picked_up_mk32" );
|
|
self notify( "stop_intro_loop" );
|
|
level notify( "stop_intro_loop" );
|
|
maps\_utility::anim_stopanimscripted();
|
|
waittillframeend;
|
|
maps\_utility::gun_remove();
|
|
self linkto( level.player_truck, "tag_driver" );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( self, "enter_truck_loop", "stop_keegan_loop", "tag_driver" );
|
|
thread truck_starts_up();
|
|
thread keegan_additional_drivein_anims();
|
|
common_scripts\utility::flag_set( "ally2_enter_veh" );
|
|
}
|
|
|
|
truck_starts_up()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_intro_truck_arrived" );
|
|
wait 2;
|
|
level.player_truck maps\_vehicle::vehicle_lights_on( "headlightsL" );
|
|
level.player_truck maps\_vehicle::vehicle_lights_on( "headlightsR" );
|
|
thread maps\enemyhq_audio::aud_truck_start();
|
|
}
|
|
|
|
#using_animtree("generic_human");
|
|
|
|
override_ride_anims()
|
|
{
|
|
wait 0.1;
|
|
self.vehicle_idle_override = %ehq_truck_enter_loop_keegan;
|
|
}
|
|
|
|
keegan_additional_drivein_anims()
|
|
{
|
|
level endon( "stop_truck_hit_reactions" );
|
|
thread keegan_turn_left_anims();
|
|
thread keegan_turn_right_anims();
|
|
common_scripts\utility::flag_wait( "bring_up_clacker" );
|
|
common_scripts\utility::waitframe();
|
|
thread keegan_turn_right_anims_rush();
|
|
thread keegan_turn_left_anims_rush();
|
|
}
|
|
|
|
#using_animtree("vehicles");
|
|
|
|
keegan_turn_left_anims()
|
|
{
|
|
level endon( "c4_detonated" );
|
|
|
|
while ( !common_scripts\utility::flag( "FLAG_clacked_the_clacker" ) )
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_keegan_turn_left" );
|
|
common_scripts\utility::flag_clear( "FLAG_keegan_turn_left" );
|
|
common_scripts\utility::waitframe();
|
|
level.player_truck notify( "stop_keegan_loop" );
|
|
level.truck_player_arms thread maps\_anim::anim_single_solo( level.truck_player_arms, "truck_lean_left" );
|
|
level.player_truck setanim( %ehq_truck_enter_turn_left_truck );
|
|
level.player_truck maps\_anim::anim_single_solo( self, "truck_turn_left", "tag_driver" );
|
|
level.player_truck clearanim( %ehq_truck_enter_turn_left_truck, 0 );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( self, "enter_truck_loop", "stop_keegan_loop", "tag_driver" );
|
|
}
|
|
}
|
|
|
|
keegan_turn_right_anims()
|
|
{
|
|
level endon( "c4_detonated" );
|
|
|
|
while ( !common_scripts\utility::flag( "FLAG_clacked_the_clacker" ) )
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_keegan_turn_right" );
|
|
common_scripts\utility::flag_clear( "FLAG_keegan_turn_right" );
|
|
level.player_truck notify( "stop_keegan_loop" );
|
|
common_scripts\utility::waitframe();
|
|
level.truck_player_arms thread maps\_anim::anim_single_solo( level.truck_player_arms, "truck_lean_right" );
|
|
level.player_truck setanim( %ehq_truck_enter_turn_right_truck );
|
|
level.player_truck maps\_anim::anim_single_solo( self, "truck_turn_right", "tag_driver" );
|
|
level.player_truck clearanim( %ehq_truck_enter_turn_right_truck, 0 );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( self, "enter_truck_loop", "stop_keegan_loop", "tag_driver" );
|
|
}
|
|
}
|
|
|
|
keegan_and_dog_frantic_loops()
|
|
{
|
|
level.player_truck notify( "stop_keegan_loop" );
|
|
common_scripts\utility::waitframe();
|
|
level.player_truck thread maps\_anim::anim_loop_solo( level.allies[1], "enter_truck_loop_rush", "stop_keegan_loop", "tag_driver" );
|
|
level.player_truck notify( "stop_dog_loop" );
|
|
common_scripts\utility::waitframe();
|
|
level.player_truck thread maps\_anim::anim_loop_solo( level.dog, "veh_idle_frantic", "stop_dog_loop", "tag_dog" );
|
|
}
|
|
|
|
keegan_turn_right_anims_rush()
|
|
{
|
|
level endon( "stop_truck_hit_reactions" );
|
|
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_keegan_turn_right" );
|
|
common_scripts\utility::flag_clear( "FLAG_keegan_turn_right" );
|
|
level.player_truck notify( "stop_keegan_loop" );
|
|
common_scripts\utility::waitframe();
|
|
level.truck_player_arms thread maps\_anim::anim_single_solo( level.truck_player_arms, "truck_lean_right" );
|
|
level.player_truck setanim( %ehq_truck_enter_turn_right_rush_truck );
|
|
level.player_truck maps\_anim::anim_single_solo( self, "truck_turn_right_rush", "tag_driver" );
|
|
level.player_truck clearanim( %ehq_truck_enter_turn_right_rush_truck, 0 );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( self, "enter_truck_loop_rush", "stop_keegan_loop", "tag_driver" );
|
|
}
|
|
}
|
|
|
|
keegan_turn_left_anims_rush()
|
|
{
|
|
level endon( "stop_truck_hit_reactions" );
|
|
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_keegan_turn_left" );
|
|
common_scripts\utility::flag_clear( "FLAG_keegan_turn_left" );
|
|
level.player_truck notify( "stop_keegan_loop" );
|
|
common_scripts\utility::waitframe();
|
|
level.truck_player_arms thread maps\_anim::anim_single_solo( level.truck_player_arms, "truck_lean_left" );
|
|
level.player_truck setanim( %ehq_truck_enter_turn_left_rush_truck );
|
|
level.player_truck maps\_anim::anim_single_solo( self, "truck_turn_left_rush", "tag_driver" );
|
|
level.player_truck clearanim( %ehq_truck_enter_turn_left_rush_truck, 0 );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( self, "enter_truck_loop_rush", "stop_keegan_loop", "tag_driver" );
|
|
}
|
|
}
|
|
|
|
vehicle_play_scripted_single_anim( var_0 )
|
|
{
|
|
var_1 = getanimlength( level.scr_anim[self.animname][var_0] );
|
|
thread maps\_anim::anim_single_solo( self, var_0 );
|
|
wait( var_1 - 0.1 );
|
|
maps\_anim::anim_set_rate_single( self, var_0, 0 );
|
|
}
|
|
|
|
vehicle_play_scripted_loop_anim( var_0 )
|
|
{
|
|
var_1 = getanimlength( level.scr_anim[self.animname][var_0] );
|
|
thread maps\_anim::anim_single_solo( self, var_0 );
|
|
wait( var_1 - 0.1 );
|
|
maps\_anim::anim_set_rate_single( self, var_0, 0 );
|
|
}
|
|
|
|
dog_goto_veh_and_enter( var_0, var_1, var_2 )
|
|
{
|
|
var_0 thread dog_scratch_and_path();
|
|
common_scripts\utility::flag_wait( "FLAG_player_enter_truck" );
|
|
var_1 maps\_anim::anim_single_solo( var_0, "enter_truck", "tag_dog" );
|
|
var_0 linkto( level.player_truck, "tag_dog" );
|
|
var_1 thread maps\_anim::anim_loop_solo( var_0, "veh_idle", "stop_dog_loop", "tag_dog" );
|
|
common_scripts\utility::flag_set( var_2 );
|
|
}
|
|
|
|
dog_scratch_and_path()
|
|
{
|
|
level endon( "end_truck_nag" );
|
|
level.dog maps\_utility::disable_ai_color();
|
|
level.dog maps\enemyhq_code::set_dog_scripted_mode( level.player );
|
|
var_0 = common_scripts\utility::getstruct( "dog_scratch_truck", "targetname" );
|
|
var_0 maps\_anim::anim_reach_solo( self, "found_door" );
|
|
self playsound( "anml_dog_whine" );
|
|
thread maps\enemyhq_audio::aud_dog_scratch();
|
|
var_0 maps\_anim::anim_single_solo( self, "found_door" );
|
|
var_1 = getnode( "intro_dog_teleport", "targetname" );
|
|
self setgoalnode( var_1 );
|
|
}
|
|
|
|
dog_additional_drivein_anims()
|
|
{
|
|
level endon( "stop_truck_hit_reactions" );
|
|
thread stop_vehicle_hit_reactions();
|
|
|
|
while ( !common_scripts\utility::flag( "FLAG_stop_hit_reactions" ) )
|
|
{
|
|
level.player_truck waittill( "veh_jolt", var_0 );
|
|
level.player_truck notify( "stop_dog_loop" );
|
|
level.player_truck maps\_anim::anim_single_solo( self, "truck_smash", "tag_dog" );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( self, "veh_idle_frantic", "stop_dog_loop", "tag_dog" );
|
|
}
|
|
}
|
|
|
|
dog_bark_anims()
|
|
{
|
|
level.player_truck notify( "stop_dog_loop" );
|
|
level.player_truck maps\_anim::anim_single_solo( level.dog, "dog_bark_truck", "tag_dog" );
|
|
level.player_truck thread maps\_anim::anim_loop_solo( level.dog, "veh_idle_frantic", "stop_dog_loop", "tag_dog" );
|
|
}
|
|
|
|
stop_vehicle_hit_reactions()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_stop_hit_reactions" );
|
|
level notify( "stop_truck_hit_reactions" );
|
|
}
|
|
|
|
truck_start_driving()
|
|
{
|
|
ehq_intro_flag_wait_all( "ally1_enter_veh", "ally2_enter_veh", "ally3_enter_veh", "ally5_enter_veh", "FLAG_player_enter_truck" );
|
|
thread maps\enemyhq_audio::aud_truck_drive();
|
|
wait 1;
|
|
level.player_truck.dontunloadonend = 1;
|
|
common_scripts\utility::flag_set( "drive_start" );
|
|
maps\_utility::stop_exploder( 5150 );
|
|
maps\_utility::stop_exploder( 5600 );
|
|
common_scripts\utility::exploder( 5700 );
|
|
level.player enabledeathshield( 1 );
|
|
thread drive_in_vo();
|
|
var_0 = getvehiclenode( "drive_start_path", "targetname" );
|
|
level.player_truck thread maps\_vehicle::vehicle_paths( var_0 );
|
|
level.player_truck startpath( var_0 );
|
|
level.player_truck thread handle_phys_debris();
|
|
}
|
|
|
|
vehicle_drive_shake()
|
|
{
|
|
level endon( "stop_vehicle_shake_loop" );
|
|
|
|
for (;;)
|
|
{
|
|
screenshake( level.player.origin, 0.4, 0.5, 0, 0.3, 0, 0.2, 0, 4, 30, 30, 32 );
|
|
wait 0.2;
|
|
}
|
|
}
|
|
|
|
handle_phys_debris()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_VO_hang_on_again" );
|
|
maps\_utility::delaythread( 4, common_scripts\utility::flag_clear, "FLAG_VO_hang_on_again" );
|
|
var_0 = [];
|
|
var_1 = [];
|
|
var_0[0] = vectornormalize( ( 100, 0, 60 ) );
|
|
var_1[0] = 28000;
|
|
var_0[1] = vectornormalize( ( 150, 0, 20 ) );
|
|
var_1[1] = 42000;
|
|
var_0[2] = vectornormalize( ( 80, 0, 80 ) );
|
|
var_1[2] = 20000;
|
|
wait 0.2;
|
|
|
|
while ( common_scripts\utility::flag( "FLAG_VO_hang_on_again" ) )
|
|
{
|
|
var_2 = ( 275, randomintrange( -60, -10 ), 30 );
|
|
var_3 = var_0[0];
|
|
var_4 = var_1[0];
|
|
maps\enemyhq_code::physics_fountain( "ehq_seat_dyn", self, var_2, var_3, 0, 4, 1, var_4 );
|
|
var_2 = ( 275, 0, 30 );
|
|
var_3 = var_0[1];
|
|
var_4 = var_1[1];
|
|
maps\enemyhq_code::physics_fountain( "ehq_seat_dyn", self, var_2, var_3, 0, 4, 1, var_4 );
|
|
var_2 = ( 275, randomintrange( 10, 60 ), 30 );
|
|
var_3 = var_0[2];
|
|
var_4 = var_1[2];
|
|
maps\enemyhq_code::physics_fountain( "ehq_seat_dyn", self, var_2, var_3, 0, 4, 1, var_4 );
|
|
wait 0.25;
|
|
}
|
|
}
|
|
|
|
vehicle_loop_anim()
|
|
{
|
|
self setflaggedanimrestart( "vehicle_anim_flag", maps\_utility::getanim( "truck_loop" ) );
|
|
wait 12;
|
|
self clearanim( maps\_utility::getanim( "truck_loop" ), 0 );
|
|
}
|
|
|
|
drive_in_vo()
|
|
{
|
|
thread clacker_vo_failsafe();
|
|
wait 1.5;
|
|
level.allies[0] maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_herestheplanget" );
|
|
common_scripts\utility::flag_set( "FLAG_ehq_give_objective" );
|
|
wait 1;
|
|
level.allies[0] maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_wellhitemat" );
|
|
wait 2;
|
|
level.allies[0] thread maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_kgn_approachinggate" );
|
|
wait 1;
|
|
thread maps\enemyhq_code::play_rumble_seconds( "damage_light", 3 );
|
|
common_scripts\utility::flag_wait( "bring_up_clacker" );
|
|
level.allies[0] thread maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_alrightadamclackit" );
|
|
common_scripts\utility::flag_wait( "FLAG_player_gun_up" );
|
|
level.allies[0] thread maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_weaponsfree" );
|
|
common_scripts\utility::flag_wait( "FLAG_VO_cut_off1" );
|
|
level.allies[0] thread maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_detour" );
|
|
common_scripts\utility::flag_wait( "FLAG_VO_cut_off2" );
|
|
thread maps\enemyhq_audio::aud_bumpy_ride();
|
|
level.allies[0] maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_theyareboxingus" );
|
|
level.allies[0] thread maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_holdon" );
|
|
}
|
|
|
|
clacker_vo_failsafe()
|
|
{
|
|
level endon( "c4_detonated" );
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_02" );
|
|
level.allies[1] maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_loganblowitnow" );
|
|
}
|
|
|
|
player_failcase_road()
|
|
{
|
|
thread player_failcase_road_overrun();
|
|
level endon( "end_truck_nag" );
|
|
var_0 = [];
|
|
var_0[0] = "enemyhq_mrk_logangetbackhere";
|
|
var_0[1] = "enemyhq_mrk_whereareyougoing";
|
|
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_player_failcase_road" );
|
|
var_1 = 0;
|
|
|
|
while ( common_scripts\utility::flag( "FLAG_player_failcase_road" ) )
|
|
{
|
|
if ( var_1 > var_0.size - 1 )
|
|
{
|
|
setdvar( "ui_deadquote", &"ENEMY_HQ_YOU_LEFT_YOUR_TEAM_BEHIND" );
|
|
maps\_utility::missionfailedwrapper();
|
|
break;
|
|
}
|
|
|
|
level.allies[0] maps\enemyhq_code::char_dialog_add_and_go( var_0[var_1] );
|
|
var_1++;
|
|
wait( randomfloatrange( 2, 4 ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
player_failcase_road_overrun()
|
|
{
|
|
level endon( "end_truck_nag" );
|
|
common_scripts\utility::flag_wait( "FLAG_player_failcase_road_overrun" );
|
|
setdvar( "ui_deadquote", &"ENEMY_HQ_YOU_LEFT_YOUR_TEAM_BEHIND" );
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
spawn_trucks()
|
|
{
|
|
level.convoy_veh_01 = maps\_vehicle::spawn_vehicle_from_targetname( "convoy_veh_01" );
|
|
level.convoy_veh_01a = maps\_vehicle::spawn_vehicle_from_targetname( "convoy_veh_01a" );
|
|
level.convoy_veh_02 = maps\_vehicle::spawn_vehicle_from_targetname( "convoy_veh_02" );
|
|
level.convoy_veh_03 = maps\_vehicle::spawn_vehicle_from_targetname( "convoy_veh_03" );
|
|
level.convoy_veh_03a = maps\_vehicle::spawn_vehicle_from_targetname( "convoy_veh_03a" );
|
|
level.convoy_veh_05 = maps\_vehicle::spawn_vehicle_from_targetname( "convoy_veh_05" );
|
|
level.convoy_veh_07 = maps\_vehicle::spawn_vehicle_from_targetname( "convoy_veh_07" );
|
|
}
|
|
|
|
spawn_player_truck()
|
|
{
|
|
level.player_truck = maps\_vehicle::spawn_vehicle_from_targetname( "player_truck" );
|
|
|
|
if ( level.start_point == "intro" || level.start_point == "introshoot" || level.start_point == "drive_in" )
|
|
thread handle_truck_windshield_break();
|
|
}
|
|
|
|
handle_truck_windshield_break()
|
|
{
|
|
level.truck_broke_glass = getent( "mdl_truck_broken_glass", "targetname" );
|
|
level.truck_broke_glass notsolid();
|
|
level.truck_broke_glass linkto( level.player_truck, "tag_window_front_right" );
|
|
level.truck_broke_glass hide();
|
|
common_scripts\utility::flag_wait( "FLAG_truck_bash" );
|
|
level.truck_broke_glass show();
|
|
}
|
|
|
|
spawn_checkpoint_guys()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_spawn_checkpoint_guys" );
|
|
var_0 = maps\enemyhq_code::array_spawn_targetname_allow_fail( "intro_checkpoint_guys" );
|
|
level.truck_bash_guys = maps\enemyhq_code::array_spawn_targetname_allow_fail( "intro_checkpoint_guys_truck_bash" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
if ( isdefined( var_2.animation ) )
|
|
{
|
|
var_2 maps\_utility::gun_remove();
|
|
var_2 thread maps\_anim::anim_generic_loop( var_2, var_2.animation );
|
|
}
|
|
}
|
|
|
|
var_4 = [];
|
|
var_4[0] = "drivein_react1";
|
|
var_4[1] = "drivein_react2";
|
|
var_4[2] = "drivein_react3";
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_01" );
|
|
wait 0.1;
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
if ( isdefined( var_2 ) && isalive( var_2 ) )
|
|
{
|
|
var_2 maps\_utility::gun_recall();
|
|
var_2 notify( "stop_loop" );
|
|
var_2 maps\_utility::anim_stopanimscripted();
|
|
var_6 = var_4[randomint( var_4.size )];
|
|
var_2.animname = "generic";
|
|
var_2 thread maps\_anim::anim_generic( var_2, var_6 );
|
|
var_2 thread ignoreall_false_end_anim();
|
|
}
|
|
}
|
|
}
|
|
|
|
ignoreall_false_end_anim()
|
|
{
|
|
self waittillmatch( "anim single", "end" );
|
|
self.ignoreall = 0;
|
|
}
|
|
|
|
truck_exploder_start_driving()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_truck_exploder_start" );
|
|
var_0 = maps\_utility::get_ai_group_ai( "field_chaos1_guys" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
var_2 delete();
|
|
}
|
|
|
|
truck_pathblockers()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_start_pathblockers" );
|
|
var_0 = maps\enemyhq_code::array_spawn_targetname_allow_fail( "field_guys7" );
|
|
var_1 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "convoy_veh_pathblocker_2b" );
|
|
wait 2;
|
|
var_2 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "convoy_veh_pathblocker_3" );
|
|
}
|
|
|
|
sticky_grenade_01()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_01" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle_low( level.convoy_veh_01 );
|
|
level.allies[1] thread maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_mrk_detonating" );
|
|
level.player thread maps\_c4::remove_detonator();
|
|
var_0 = common_scripts\utility::getstruct( "convoy_veh_01_exp", "targetname" );
|
|
var_1 = common_scripts\utility::getstruct( "convoy_veh_02_exp", "targetname" );
|
|
physicsexplosionsphere( var_1.origin, 50, 40, 85 );
|
|
radiusdamage( level.convoy_veh_01a.origin, 50, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
playfxontag( level._effect["vfx_fire_truck"], level.convoy_veh_01a, "tag_origin" );
|
|
level.player disableweapons();
|
|
wait 1;
|
|
physicsexplosionsphere( var_0.origin, 50, 40, 85 );
|
|
radiusdamage( level.convoy_veh_01.origin, 50, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle_low( level.convoy_veh_01 );
|
|
playfxontag( level._effect["vfx_fire_truck"], level.convoy_veh_01, "tag_origin" );
|
|
wait 0.25;
|
|
thread keegan_and_dog_frantic_loops();
|
|
}
|
|
|
|
sticky_grenade_02()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_02" );
|
|
common_scripts\utility::flag_wait( "FLAG_clacked_the_clacker" );
|
|
var_0 = getent( "convoy_veh_02_blow_spot", "targetname" );
|
|
|
|
foreach ( var_2 in level.truck_bash_guys )
|
|
var_2 kill();
|
|
|
|
var_4 = getent( "truck_bash_jeep", "targetname" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle_low( var_4 );
|
|
var_5 = var_4.origin;
|
|
var_4 dodamage( 9999, var_5 );
|
|
radiusdamage( var_4.origin, 30, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
playfx( level._effect["vfx_ehq_lynxexplode"], var_4.origin );
|
|
playfxontag( level._effect["vfx_lynx_fire"], var_4, "tag_origin" );
|
|
common_scripts\utility::exploder( 356 );
|
|
var_4 setmodel( "vehicle_iveco_lynx_destroyed_iw6" );
|
|
|
|
if ( !common_scripts\utility::flag( "FLAG_truck_close_to_bash" ) )
|
|
{
|
|
var_4.animname = "intro_jeep_ram";
|
|
var_4 useanimtree( level.scr_animtree[var_4.animname] );
|
|
var_0 thread maps\_anim::anim_single_solo( var_4, "jeep_ram_long" );
|
|
}
|
|
else
|
|
{
|
|
var_4.animname = "intro_jeep_ram";
|
|
var_4 useanimtree( level.scr_animtree[var_4.animname] );
|
|
var_0 thread maps\_anim::anim_single_solo( var_4, "jeep_ram_short" );
|
|
}
|
|
|
|
var_6 = maps\enemyhq_code::array_spawn_targetname_allow_fail( "field_guys1" );
|
|
maps\_utility::stop_exploder( 9090 );
|
|
maps\_utility::stop_exploder( 8010 );
|
|
}
|
|
|
|
truck_flip_moment()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "truck_flip_blocker", "targetname" );
|
|
common_scripts\utility::flag_wait( "bring_up_clacker" );
|
|
var_1 = maps\_utility::spawn_anim_model( "flip_light_prop", var_0.origin );
|
|
var_2 = maps\_utility::spawn_anim_model( "flip_light", var_0.origin );
|
|
var_2 linkto( var_1, "J_prop_1" );
|
|
var_1.animname = "flip_light_prop";
|
|
var_0 maps\_anim::anim_first_frame_solo( var_1, "jeep_flip" );
|
|
common_scripts\utility::flag_wait( "start_truck_flip_scene" );
|
|
wait 0.3;
|
|
var_3 = getent( "flip_jeep", "targetname" );
|
|
var_3 maps\_utility::assign_animtree( "drive_jeep_flip" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle( var_3 );
|
|
var_4 = var_3.origin;
|
|
var_3 dodamage( 9999, var_4 );
|
|
radiusdamage( var_3.origin, 750, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
playfx( level._effect["vfx_ehq_lynxexplode"], var_3.origin );
|
|
playfxontag( level._effect["vfx_lynx_crash"], var_3, "tag_origin" );
|
|
playfxontag( level._effect["vfx_ehq_sparks_light"], var_1, "j_prop_2" );
|
|
common_scripts\utility::exploder( 98 );
|
|
common_scripts\utility::exploder( 99 );
|
|
thread stop_lynx_fx( var_3 );
|
|
var_3 setmodel( "vehicle_iveco_lynx_destroyed_iw6" );
|
|
var_5 = [];
|
|
var_5[0] = var_1;
|
|
var_5[1] = var_3;
|
|
thread maps\enemyhq_audio::aud_jeep_flip();
|
|
var_0 maps\_anim::anim_single( var_5, "jeep_flip" );
|
|
}
|
|
|
|
stop_lynx_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_stop_hit_reactions" );
|
|
stopfxontag( level._effect["vfx_lynx_crash"], var_0, "tag_origin" );
|
|
}
|
|
|
|
truck_bash_moment()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_truck_bash" );
|
|
|
|
if ( common_scripts\utility::flag( "FLAG_clacked_the_clacker" ) )
|
|
{
|
|
thread maps\enemyhq_code::screen_shake_vehicles();
|
|
thread maps\enemyhq_code::reaction_anims();
|
|
var_0 = getent( "convoy_veh_02_blow_spot", "targetname" );
|
|
var_1 = getent( "truck_bash_jeep", "targetname" );
|
|
var_1.animname = "intro_jeep_ram";
|
|
var_1 useanimtree( level.scr_animtree[var_1.animname] );
|
|
var_0 thread maps\_anim::anim_single_solo( var_1, "jeep_ram" );
|
|
level.player_truck thread maps\enemyhq_code::listen_player_jolt_jumps();
|
|
wait 1;
|
|
common_scripts\utility::flag_set( "FLAG_player_bust_windshield" );
|
|
}
|
|
else
|
|
{
|
|
thread maps\enemyhq_code::screen_shake_vehicles();
|
|
thread maps\enemyhq_code::reaction_anims();
|
|
var_0 = getent( "convoy_veh_02_blow_spot", "targetname" );
|
|
var_1 = getent( "truck_bash_jeep", "targetname" );
|
|
var_1.animname = "intro_jeep_ram";
|
|
var_1 useanimtree( level.scr_animtree[var_1.animname] );
|
|
var_0 thread maps\_anim::anim_single_solo( var_1, "jeep_ram" );
|
|
setdvar( "ui_deadquote", &"ENEMY_HQ_YOU_FAILED_TO_CREATE" );
|
|
common_scripts\utility::flag_set( "FLAG_clacked_the_clacker" );
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
}
|
|
|
|
silent_magic_bullet_windshield()
|
|
{
|
|
var_0 = getent( "drivein_magic_bullet_start", "targetname" );
|
|
magicbullet( "nosound_magicbullet", var_0.origin, level.player.origin );
|
|
wait 0.125;
|
|
magicbullet( "nosound_magicbullet", var_0.origin, level.player.origin );
|
|
wait 0.125;
|
|
magicbullet( "nosound_magicbullet", var_0.origin, level.player.origin );
|
|
wait 0.125;
|
|
}
|
|
|
|
sticky_grenade_03()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_03" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle( level.convoy_veh_03 );
|
|
var_0 = level.convoy_veh_03.origin;
|
|
var_1 = common_scripts\utility::getstruct( "convoy_veh_03_exp", "targetname" );
|
|
var_2 = common_scripts\utility::getstruct( "convoy_veh_03b_exp", "targetname" );
|
|
radiusdamage( level.convoy_veh_03.origin, 350, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
physicsexplosionsphere( var_1.origin, 300, 250, 34 );
|
|
common_scripts\utility::exploder( 357 );
|
|
common_scripts\utility::exploder( 31 );
|
|
wait 0.85;
|
|
thread common_scripts\utility::play_sound_in_space( "car_explode", var_2.origin );
|
|
radiusdamage( var_2.origin, 25, 1000, 100, level.player, "MOD_EXPLOSIVE" );
|
|
physicsexplosionsphere( var_2.origin, 30, 20, 15 );
|
|
common_scripts\utility::exploder( 32 );
|
|
wait 2;
|
|
var_3 = level.convoy_veh_03a.origin;
|
|
level.convoy_veh_03a dodamage( 9999, var_3 );
|
|
radiusdamage( level.convoy_veh_03a.origin, 350, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
}
|
|
|
|
sticky_grenade_04()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_04" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle( level.convoy_veh_04 );
|
|
var_0 = level.convoy_veh_04.origin;
|
|
level.convoy_veh_04 dodamage( 9999, var_0 );
|
|
radiusdamage( level.convoy_veh_04.origin, 350, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
}
|
|
|
|
sticky_grenade_05()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_05" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle( level.convoy_veh_05 );
|
|
var_0 = level.convoy_veh_05.origin;
|
|
level.convoy_veh_05 dodamage( 9999, var_0 );
|
|
radiusdamage( level.convoy_veh_05.origin, 350, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
playfxontag( level._effect["vfx_fire_truck_05"], level.convoy_veh_05, "tag_origin" );
|
|
common_scripts\utility::exploder( 99 );
|
|
maps\_utility::stop_exploder( 356 );
|
|
maps\_utility::stop_exploder( 357 );
|
|
maps\_utility::stop_exploder( 31 );
|
|
maps\_utility::stop_exploder( 32 );
|
|
thread stop_truck_05_fx( level.convoy_veh_05 );
|
|
var_1 = maps\enemyhq_code::array_spawn_targetname_allow_fail( "field_guys6" );
|
|
var_2 = maps\enemyhq_code::array_spawn_targetname_allow_fail( "field_guys6_ignore" );
|
|
|
|
foreach ( var_4 in var_2 )
|
|
var_4.ignoreall = 1;
|
|
}
|
|
|
|
stop_truck_05_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_stop_hit_reactions" );
|
|
stopfxontag( level._effect["vfx_fire_truck_05"], var_0, "tag_origin" );
|
|
maps\_utility::stop_exploder( 99 );
|
|
maps\_utility::stop_exploder( 5700 );
|
|
}
|
|
|
|
sticky_grenade_06()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_06" );
|
|
var_0 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "convoy_veh_pathblocker_2" );
|
|
}
|
|
|
|
sticky_grenade_07()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_blow_sticky_07" );
|
|
thread maps\enemyhq_audio::aud_blow_vehicle( level.convoy_veh_07 );
|
|
var_0 = level.convoy_veh_07.origin;
|
|
level.convoy_veh_07 dodamage( 9999, var_0 );
|
|
var_1 = common_scripts\utility::getstruct( "convoy_veh_07_exp", "targetname" );
|
|
physicsexplosionsphere( var_1.origin, 300, 250, 100 );
|
|
radiusdamage( level.convoy_veh_07.origin, 350, 4000, 1000, level.player, "MOD_EXPLOSIVE" );
|
|
}
|
|
|
|
ehq_intro_flag_wait_all( var_0, var_1, var_2, var_3, var_4, var_5 )
|
|
{
|
|
if ( isdefined( var_0 ) )
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
|
|
if ( isdefined( var_1 ) )
|
|
common_scripts\utility::flag_wait( var_1 );
|
|
|
|
if ( isdefined( var_2 ) )
|
|
common_scripts\utility::flag_wait( var_2 );
|
|
|
|
if ( isdefined( var_3 ) )
|
|
common_scripts\utility::flag_wait( var_3 );
|
|
|
|
if ( isdefined( var_4 ) )
|
|
common_scripts\utility::flag_wait( var_4 );
|
|
|
|
if ( isdefined( var_5 ) )
|
|
common_scripts\utility::flag_wait( var_5 );
|
|
}
|
|
|
|
obj_getingetajaxgetout()
|
|
{
|
|
common_scripts\utility::flag_wait( "FLAG_ehq_give_objective" );
|
|
level.rescueajax = maps\_utility::obj( "rescueajax" );
|
|
objective_add( level.rescueajax, "active", &"ENEMY_HQ_RESCUE_AJAX" );
|
|
objective_current( level.rescueajax );
|
|
common_scripts\utility::flag_wait( "obj_rescue_obj" );
|
|
maps\_utility::objective_complete( level.rescueajax );
|
|
}
|
|
|
|
hesh_intro_line( var_0 )
|
|
{
|
|
var_0 maps\enemyhq_code::char_dialog_add_and_go( "enemyhq_hsh_convoyincoming" );
|
|
}
|