iw6-scripts/maps/factory_parking_lot.gsc
2024-02-13 13:20:49 +01:00

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();
}