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

276 lines
11 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
maps\_utility::template_level( "enemyhq" );
maps\createart\enemyhq_art::main();
maps\enemyhq_fx::main();
maps\enemyhq_precache::main();
maps\enemyhq_anim::main();
setdvar( "debug_bcprint", "on" );
enemyhq_pre_load();
enemyhq_starts();
maps\_utility::set_console_status();
maps\_utility::setsaveddvar_cg_ng( "r_specularcolorscale", 2.25, 6.0 );
maps\_utility::setsaveddvar_cg_ng( "r_diffusecolorscale", 1.3, 1 );
setsaveddvar( "r_ssaofadedepth", 256 );
setsaveddvar( "r_ssaorejectdepth", 1024 );
maps\_load::main();
maps\enemyhq_audio::main();
maps\_patrol_anims::main();
maps\_patrol_anims_gundown::main();
thread maps\_teargas::initteargas();
thread lights();
maps\_c4::main();
maps\_drone_ai::init();
maps\_dog_control::init_dog_control();
maps\enemyhq_remoteturret::remote_turret_init( "player_view_controller" );
maps\_global_fx_code::global_fx( "ehq_flare_ambient_FX_origin", "vfx/ambient/props/vfx_handflare_ehq", undefined, "vfx_handflare_ehq" );
maps\enemyhq_code::init_color_trigger_listeners( "atrium_color_triggers" );
setsaveddvar( "fx_alphathreshold", 9 );
setsaveddvar( "r_hudoutlineenable", 1 );
if ( maps\_utility::is_gen4() )
setsaveddvar( "fx_alphathreshold", 2 );
else
setsaveddvar( "fx_alphathreshold", 9 );
var_0 = getentarray( "start_dog_sniffing", "targetname" );
common_scripts\utility::array_thread( var_0, maps\enemyhq_code::handle_dog_modes );
var_0 = getentarray( "stop_dog_sniffing", "targetname" );
common_scripts\utility::array_thread( var_0, maps\enemyhq_code::handle_dog_modes );
var_0 = getentarray( "start_dog_sneak", "targetname" );
common_scripts\utility::array_thread( var_0, maps\enemyhq_code::handle_dog_modes );
var_0 = getentarray( "stop_dog_sneak", "targetname" );
common_scripts\utility::array_thread( var_0, maps\enemyhq_code::handle_dog_modes );
maps\_utility::array_spawn_function_noteworthy( "delete_at_path_end", maps\enemyhq_code::delete_ai_at_path_end );
level.disable_teargas_ally_badplaces = 1;
setsaveddvar( "cg_cinematicFullScreen", "0" );
common_scripts\utility::exploder( 8011 );
common_scripts\utility::exploder( 8010 );
common_scripts\utility::exploder( 9080 );
common_scripts\utility::exploder( 9090 );
common_scripts\utility::exploder( 5150 );
}
enemyhq_starts()
{
maps\_utility::add_start( "intro", maps\enemyhq_rooftop_intro::setup_rooftop_intro, "Intro", maps\enemyhq_rooftop_intro::begin_rooftop_intro );
maps\_utility::add_start( "introroof", maps\enemyhq_rooftop_intro::setup_rooftop_shoot, "Intro shoot", maps\enemyhq_rooftop_intro::begin_rooftop_shoot );
maps\_utility::add_start( "drive_in", maps\enemyhq_intro::setup_drive_in, "Drive in", maps\enemyhq_intro::begin_drive_in );
maps\_utility::add_start( "atrium", maps\enemyhq_atrium::setup_atrium, "Atrium Combat", maps\enemyhq_atrium::begin_atrium );
maps\_utility::add_start( "vip", maps\enemyhq_vip::setup_vip, "VIP Suite", maps\enemyhq_vip::begin_vip );
maps\_utility::add_start( "traverse", maps\enemyhq_traverse::setup_traverse, "Traverse", maps\enemyhq_traverse::begin_traverse );
maps\_utility::add_start( "basement_teargas", maps\enemyhq_basement::setup_teargas, "Basement Teargas", maps\enemyhq_basement::begin_teargas );
maps\_utility::add_start( "basement_combat", maps\enemyhq_basement::setup_combat, "Basement Combat", maps\enemyhq_basement::begin_combat );
maps\_utility::add_start( "clubhouse_breach", maps\enemyhq_basement::setup_clubhouse, "Clubhouse Breach", maps\enemyhq_basement::begin_clubhouse );
maps\_utility::add_start( "hvt_rescue", maps\enemyhq_basement::setup_hvt, "HVT Rescue", maps\enemyhq_basement::begin_hvt );
maps\_utility::add_start( "new_finale", maps\enemyhq_finale::setup_new_finale, "New Finale", maps\enemyhq_finale::begin_new_finale );
}
enemyhq_pre_load()
{
maps\enemyhq_rooftop_intro::enemyhq_rooftop_intro_pre_load();
maps\enemyhq_intro::enemyhq_intro_pre_load();
maps\enemyhq_atrium::enemyhq_atrium_pre_load();
maps\enemyhq_vip::enemyhq_vip_pre_load();
maps\enemyhq_traverse::enemyhq_traverse_pre_load();
maps\enemyhq_basement::enemyhq_basement_pre_load();
maps\enemyhq_finale::enemyhq_finale_pre_load();
common_scripts\utility::flag_init( "FLAG_link_veh_crash_paths" );
common_scripts\utility::flag_init( "FLAG_player_enter_truck" );
precacheitem( "m9a1" );
precacheitem( "l115a3" );
precachemodel( "viewmodel_reddot_reflex_iw6" );
precacheitem( "teargas_grenade" );
precacheitem( "remote_sniper" );
precacheitem( "nosound_magicbullet" );
precachemodel( "pbk_flood_light_generator" );
precachemodel( "viewhands_us_rangers" );
precachemodel( "weapon_m4m203_acog" );
precachemodel( "generic_prop_raven" );
precachemodel( "weapon_us_smoke_grenade_burnt2" );
precachemodel( "hesh_stealth_head_mask" );
precachemodel( "head_hesh_stealth_z" );
precachemodel( "vehicle_man_7t_front_door_RI_obj" );
precachemodel( "vehicle_iveco_lynx_destroyed_iw6" );
precachemodel( "prop_sas_gasmask" );
precachemodel( "prop_sas_gasmask_attach" );
precacheshader( "gasmask_overlay_delta2" );
precacheshader( "hud_dog_melee" );
precacheitem( "scuba_mask_on" );
precacheitem( "scuba_mask_off" );
precachemodel( "soccer_ball" );
precachemodel( "weapon_mk14_iw6" );
precachemodel( "weapon_mp443" );
precachemodel( "viewmodel_mp443" );
precacheitem( "test_detonator_black_ice" );
precachemodel( "viewhands_player_us_rangers" );
precacherumble( "light_1s" );
precacherumble( "light_2s" );
precacherumble( "light_3s" );
maps\_vehicle::build_deathfx_override( "script_vehicle_man_7t_k9_physics", undefined, "vehicle_man_7t_k9_iw6", "vfx/moments/enemyhq/vfx_ehq_truckexp", undefined, undefined );
maps\_vehicle::build_deathfx_override( "script_vehicle_iveco_lynx_physics", undefined, "vehicle_iveco_lynx_iw6", "vfx/moments/enemyhq/vfx_ehq_truckexp", undefined, undefined );
maps\_vehicle::build_deathfx_override( "script_vehicle_man_7t_k9", undefined, "vehicle_man_7t_k9_iw6", "vfx/moments/enemyhq/vfx_ehq_truckexp", undefined, undefined );
maps\_vehicle::build_deathfx_override( "script_vehicle_iveco_lynx", undefined, "vehicle_iveco_lynx_iw6", "vfx/moments/enemyhq/vfx_ehq_truckexp", undefined, undefined );
maps\_vehicle::build_light_override( "script_vehicle_man_7t_k9", "headlight_truck_left", "tag_headlight_left", "vfx/ambient/lights/vfx_headlight_truck_ehq", "headlightsL" );
maps\_vehicle::build_light_override( "script_vehicle_man_7t_k9", "headlight_truck_right", "tag_headlight_right", "vfx/ambient/lights/vfx_headlight_truck_ehq", "headlightsR" );
maps\_utility::add_hint_string( "tear_hint", &"ENEMY_HQ_FRAG_TO_THROW_TEARGAS", maps\enemyhq_basement::teargas_hint_wait );
maps\_utility::add_hint_string( "zoom_hint", &"ENEMY_HQ_ZOOMHINT", maps\enemyhq_rooftop_intro::zoom_hint_wait );
maps\_utility::add_hint_string( "zoom_noglyph_hint", &"ENEMY_HQ_ZOOMHINT_NO_GLYPH", maps\enemyhq_rooftop_intro::zoom_hint_wait );
maps\_utility::add_hint_string( "sniperuse_hint", &"ENEMY_HQ_ACTIONSLOT_1_TO_USE_REMOTE", maps\enemyhq_code::sniperuse_hint_wait );
maps\_utility::add_hint_string( "riley_hint", &"ENEMY_HQ_PRESS_LB_TO_COMMAND", maps\enemyhq_code::dog_hint_check );
maps\_utility::add_hint_string( "blow_charges", &"ENEMY_HQ_BLOWCHARGES", maps\enemyhq_code::hint_blow_charges_wait );
maps\_utility_dogs::init_dog_pc( "a" );
}
setup_common( var_0 )
{
setup_player( var_0 );
spawn_allies( var_0 );
var_1 = getent( "finale_dead_truck_clip", "targetname" );
if ( isdefined( var_1 ) )
var_1 notsolid();
var_1 = getent( "finale_dead_truck", "targetname" );
if ( isdefined( var_1 ) )
var_1 hide();
}
setup_player( var_0 )
{
if ( isdefined( var_0 ) )
var_1 = var_0 + "_start";
else
var_1 = level.start_point + "_start";
var_2 = common_scripts\utility::getstruct( var_1, "targetname" );
if ( isdefined( var_2 ) )
{
level.player setorigin( var_2.origin );
level.player setplayerangles( var_2.angles );
}
else
iprintlnbold( "can't find startpoint for " + level.start_point );
if ( level.start_point == "atrium" )
{
level.player giveweapon( "mk32_dud+eotech_sp_mk32dud", 0, 0, 0, 1 );
thread maps\enemyhq_rooftop_intro::handle_m32_launcher();
}
}
spawn_allies( var_0 )
{
level.allies = [];
level.allies[level.allies.size] = spawn_ally( "ally1", var_0 );
level.allies[level.allies.size] = spawn_ally( "ally2", var_0 );
level.allies[level.allies.size] = spawn_ally( "ally4", var_0 );
level.allies[0].animname = "baker";
level.allies[1].animname = "keegan";
level.allies[2].animname = "hesh";
level.allies[0].npcid = "mrk";
level.allies[1].npcid = "kgn";
level.allies[2].npcid = "hsh";
foreach ( var_2 in level.allies )
self.goalradius = 25;
var_4 = spawn_ally( "dog", var_0 );
var_4 setup_dog();
level.player_dog = var_4;
level.player thread maps\_dog_control::enable_dog_control( level.dog );
if ( isdefined( level.start_point ) && level.start_point != "intro" && level.start_point != "introroof" && level.start_point != "drive_in" )
{
}
maps\_utility::delaythread( 0.05, maps\_utility::set_team_bcvoice, "allies", "taskforce" );
level.allies[2] attach( "weapon_mts_255_small", "tag_stowed_back", 1 );
}
setup_dog()
{
level.dog = self;
level.dog.animname = "dog";
level.dog.meleealwayswin = 1;
level.dog.script_stealthgroup = "dog";
level.dog.script_nobark = 1;
level.dog.script_friendname = "Riley";
level.dog.name = "Riley";
level.dog.goalradius = 512;
level.dog.goalheight = 128;
level.dog.pathenemyfightdist = level.dog.goalradius;
level.dog.fixednode = 1;
level.dog setdogattackradius( 128 );
level.dog setthreatbiasgroup( "dog" );
setthreatbias( "dog", "axis", 75 );
level.dog pushplayer( 1 );
level.dog maps\enemyhq_code::set_move_rate( 0.7 );
}
spawn_ally( var_0, var_1 )
{
var_2 = undefined;
if ( !isdefined( var_1 ) )
var_2 = level.start_point + "_" + var_0;
else
var_2 = var_1 + "_" + var_0;
var_3 = maps\enemyhq_code::spawn_targetname_at_struct_targetname( var_0, var_2 );
if ( !isdefined( var_3 ) )
return undefined;
var_3 maps\_utility::make_hero();
if ( !isdefined( var_3.magic_bullet_shield ) )
var_3 maps\_utility::magic_bullet_shield();
var_3.countryid = "US";
var_3.voice = "delta";
return var_3;
}
lights()
{
var_0 = getentarray( "flickerlight1", "targetname" );
foreach ( var_2 in var_0 )
var_2 thread flareflicker();
}
flareflicker()
{
while ( isdefined( self ) )
{
wait( randomfloatrange( 0.05, 0.1 ) );
self setlightintensity( randomfloatrange( 0.6, 1.8 ) );
}
}
flare_flicker( var_0, var_1 )
{
var_2 = getent( self.target, "targetname" );
if ( !isdefined( var_0 ) )
var_0 = 0.6;
if ( !isdefined( var_1 ) )
var_1 = 1.8;
thread common_scripts\utility::play_loop_sound_on_entity( "flare_burn_loop" );
while ( isdefined( self ) )
{
wait( randomfloatrange( 0.05, 0.1 ) );
var_2 setlightintensity( randomfloatrange( var_0, var_1 ) );
}
}