252 lines
8.6 KiB
Plaintext
252 lines
8.6 KiB
Plaintext
// 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" );
|
|
thread parking_lot_blockade_vehicle_1( "blockade_vehicle_1" );
|
|
thread maps\factory_chase::car_chase_intro_car_crash_setup();
|
|
thread maps\factory_chase::chase_ally_vehicle_setup();
|
|
common_scripts\utility::flag_set( "player_near_rooftop_end" );
|
|
}
|
|
|
|
main()
|
|
{
|
|
maps\_utility::autosave_by_name( "rooftop_complete" );
|
|
var_0 = getentarray( "parking_lot_truck_blocker", "targetname" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_2 notsolid();
|
|
var_2 delete();
|
|
}
|
|
|
|
thread parking_lot_player_death_trigger();
|
|
thread parking_lot_ally_location_check();
|
|
thread load_outro_transients();
|
|
maps\_utility::wait_for_flag_or_timeout( "player_near_rooftop_end", 30 );
|
|
parking_lot_vehicle_setup();
|
|
}
|
|
|
|
load_outro_transients()
|
|
{
|
|
common_scripts\utility::flag_wait( "player_off_roof" );
|
|
maps\_utility::transient_unloadall_and_load( "factory_outro_tr" );
|
|
level waittill( "semi_trailer_entrance" );
|
|
maps\factory_util::sync_transients();
|
|
}
|
|
|
|
section_flag_init()
|
|
{
|
|
common_scripts\utility::flag_init( "allies_in_loading_dock" );
|
|
}
|
|
|
|
section_precache()
|
|
{
|
|
|
|
}
|
|
|
|
parking_lot_vehicle_setup()
|
|
{
|
|
parking_lot_blockade();
|
|
thread parking_lot_dialog();
|
|
|
|
foreach ( var_1 in level.squad )
|
|
var_1.grenadeammo = 0;
|
|
|
|
common_scripts\utility::flag_wait( "allies_in_loading_dock" );
|
|
wait 4;
|
|
level notify( "here_comes_the_truck" );
|
|
}
|
|
|
|
parking_lot_dialog()
|
|
{
|
|
level.squad["ALLY_CHARLIE"] maps\_utility::smart_dialogue( "factory_rgs_vehiclesincoming" );
|
|
level.squad["ALLY_ALPHA"] maps\_utility::smart_dialogue( "factory_bkr_gettocover2" );
|
|
common_scripts\utility::flag_wait( "allies_in_loading_dock" );
|
|
level.squad["ALLY_ALPHA"] maps\_utility::smart_dialogue( "factory_bkr_staydown" );
|
|
level.squad["ALLY_CHARLIE"] maps\_utility::smart_dialogue( "factory_hsh_arclightisstartingwheres" );
|
|
maps\_utility::smart_radio_dialogue( "factory_diz_iseeemstayclear" );
|
|
}
|
|
|
|
parking_lot_enemy_dialog()
|
|
{
|
|
level waittill( "here_comes_the_truck" );
|
|
var_0 = maps\_utility::get_living_ai_array( "blockade_enemy", "script_noteworthy" );
|
|
var_0 = common_scripts\utility::get_array_of_closest( level.player.origin, var_0 );
|
|
var_0[0] thread enemy_alive_dialog( "factory_gs1_what" );
|
|
wait 0.2;
|
|
var_0[1] thread enemy_alive_dialog( "factory_gs1_lookout" );
|
|
wait 0.1;
|
|
var_0[2] thread enemy_alive_dialog( "factory_gs1_run" );
|
|
wait 0.3;
|
|
var_0[3] thread enemy_alive_dialog( "factory_gs1_shootit" );
|
|
}
|
|
|
|
enemy_alive_dialog( var_0 )
|
|
{
|
|
if ( isdefined( self ) && isalive( self ) )
|
|
{
|
|
self.animname = "enemy";
|
|
maps\_utility::smart_dialogue( var_0 );
|
|
}
|
|
}
|
|
|
|
parking_lot_blockade()
|
|
{
|
|
wait 0.1;
|
|
thread parking_lot_blockade_vehicle_2( "blockade_vehicle_2" );
|
|
wait 0.1;
|
|
thread parking_lot_blockade_vehicle_3( "blockade_vehicle_3" );
|
|
|
|
foreach ( var_1 in level.squad )
|
|
var_1 thread parking_lot_allies_take_cover();
|
|
}
|
|
|
|
parking_lot_allies_take_cover()
|
|
{
|
|
maps\_utility::enable_sprint();
|
|
maps\_utility::disable_pain();
|
|
self.ignoresuppression = 1;
|
|
level.ai_friendlyfireblockduration = getdvarfloat( "ai_friendlyFireBlockDuration" );
|
|
setsaveddvar( "ai_friendlyFireBlockDuration", 0 );
|
|
common_scripts\utility::flag_wait( "allies_in_loading_dock" );
|
|
maps\_utility::disable_sprint();
|
|
self allowedstances( "crouch" );
|
|
}
|
|
|
|
parking_lot_ally_location_check()
|
|
{
|
|
var_0 = getent( "loading_dock_cover", "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
var_1 = var_0 maps\_utility::get_ai_touching_volume( "allies" );
|
|
|
|
if ( var_1.size == 3 )
|
|
{
|
|
common_scripts\utility::flag_set( "allies_in_loading_dock" );
|
|
break;
|
|
}
|
|
|
|
wait 0.1;
|
|
}
|
|
|
|
thread parking_lot_timeout();
|
|
}
|
|
|
|
parking_lot_timeout()
|
|
{
|
|
level endon( "player_off_roof" );
|
|
wait 10;
|
|
maps\factory_util::safe_trigger_by_targetname( "start_chase_sequence_trigger" );
|
|
level waittill( "semi_trailer_entrance" );
|
|
level notify( "player_off_roof" );
|
|
}
|
|
|
|
parking_lot_blockade_vehicle_1( var_0 )
|
|
{
|
|
level.blockade_vehicle_1 = maps\_vehicle::spawn_vehicle_from_targetname( var_0 );
|
|
level.blockade_vehicle_1 maps\_vehicle::vehicle_lights_on( "running" );
|
|
level.blockade_vehicle_1 thread maps\factory_audio::sfx_jeep_drive_up_01();
|
|
level.blockade_vehicle_1 maps\_vehicle::godon();
|
|
level.blockade_vehicle_1.animname = "first_opfor_car";
|
|
var_1 = getent( "car_chase_intro", "script_noteworthy" );
|
|
level.blockade_vehicle_1 notify( "suspend_drive_anims" );
|
|
var_1 thread maps\_anim::anim_single_solo( level.blockade_vehicle_1, "car_chase_intro_pullup" );
|
|
wait 3;
|
|
level.blockade_vehicle_1 maps\_vehicle::godoff();
|
|
level.blockade_vehicle_1 thread maps\factory_chase::vehicle_catch_fire_when_shot();
|
|
level.blockade_vehicle_1 maps\_vehicle::vehicle_unload( "all" );
|
|
level waittill( "hit_vehicle_01" );
|
|
level.blockade_vehicle_1 thread parking_lot_blockade_vehicle_death_radius();
|
|
level.factory_car_chase_intro_side_car01 thread parking_lot_blockade_vehicle_death_radius();
|
|
level.factory_car_chase_intro_side_car02 thread parking_lot_blockade_vehicle_death_radius();
|
|
}
|
|
|
|
parking_lot_blockade_vehicle_2( var_0 )
|
|
{
|
|
level.blockade_vehicle_2 = maps\_vehicle::spawn_vehicle_from_targetname( var_0 );
|
|
level.blockade_vehicle_2 maps\_vehicle::vehicle_lights_on( "running" );
|
|
level.blockade_vehicle_2 thread maps\factory_audio::sfx_jeep_drive_up_02();
|
|
level.blockade_vehicle_2 maps\_vehicle::godon();
|
|
level.blockade_vehicle_2.animname = "second_opfor_car";
|
|
var_1 = getent( "car_chase_intro", "script_noteworthy" );
|
|
level.blockade_vehicle_2 notify( "suspend_drive_anims" );
|
|
var_1 thread maps\_anim::anim_single_solo( level.blockade_vehicle_2, "car_chase_intro_pullup" );
|
|
wait 3.5;
|
|
level.blockade_vehicle_2 maps\_vehicle::godoff();
|
|
level.blockade_vehicle_2 thread maps\factory_chase::vehicle_catch_fire_when_shot();
|
|
level.blockade_vehicle_2 maps\_vehicle::vehicle_unload( "all_but_gunner" );
|
|
level waittill( "hit_vehicle_02" );
|
|
level.blockade_vehicle_2 thread parking_lot_blockade_vehicle_death_radius();
|
|
}
|
|
|
|
parking_lot_blockade_vehicle_3( var_0 )
|
|
{
|
|
level.blockade_vehicle_3 = maps\_vehicle::spawn_vehicle_from_targetname( var_0 );
|
|
level.blockade_vehicle_3 maps\_vehicle::vehicle_lights_on( "running" );
|
|
level.blockade_vehicle_3 thread maps\factory_audio::sfx_tank_drive_up();
|
|
level.blockade_vehicle_3 maps\_vehicle::godon();
|
|
level.blockade_vehicle_3.animname = "heavy_weapon_opfor_car";
|
|
var_1 = getent( "car_chase_intro", "script_noteworthy" );
|
|
level.blockade_vehicle_3 notify( "suspend_drive_anims" );
|
|
var_1 thread maps\_anim::anim_single_solo( level.blockade_vehicle_3, "car_chase_intro_pullup" );
|
|
wait 2.5;
|
|
level.blockade_vehicle_3 maps\_vehicle::godoff();
|
|
level.blockade_vehicle_3 thread maps\factory_chase::vehicle_catch_fire_when_shot();
|
|
level.blockade_vehicle_3 maps\_vehicle::vehicle_unload( "all" );
|
|
level waittill( "hit_vehicle_03" );
|
|
level.blockade_vehicle_3 thread parking_lot_blockade_vehicle_death_radius();
|
|
}
|
|
|
|
parking_lot_blockade_vehicle_death_radius()
|
|
{
|
|
level endon( "semi_stopped" );
|
|
|
|
for (;;)
|
|
{
|
|
var_0 = distance( self.origin, level.player.origin );
|
|
|
|
if ( var_0 < 256 )
|
|
{
|
|
level notify( "new_quote_string" );
|
|
setdvar( "ui_deadquote", &"FACTORY_FAIL_HIT_BY_TRAILER" );
|
|
level.player kill();
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
parking_lot_fire_hydrant_explodes()
|
|
{
|
|
var_0 = getent( "parking_lot_apc_target_02", "targetname" );
|
|
radiusdamage( var_0.origin, 100, 5000, 5000, level.player );
|
|
}
|
|
|
|
parking_lot_player_death_trigger()
|
|
{
|
|
level endon( "semi_stopped" );
|
|
maps\_utility::trigger_wait_targetname( "parking_lot_kill_trigger" );
|
|
var_0 = maps\_utility::get_living_ai_array( "blockade_enemy", "script_noteworthy" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_2.favoriteenemy = level.player;
|
|
var_2.accuracy = 10000;
|
|
}
|
|
|
|
while ( level.player.health > 25 )
|
|
{
|
|
level.player dodamage( 75, level.blockade_vehicle_1.origin, level.blockade_vehicle_1, level.blockade_vehicle_1, "MOD_RIFLE_BULLET" );
|
|
wait 0.2;
|
|
}
|
|
|
|
level.player kill();
|
|
}
|