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

647 lines
22 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
section_main()
{
maps\_utility::add_hint_string( "swept_hint", &"FLOOD_SWEPT_MOVE", ::no_swept_hint );
maps\_utility::add_hint_string( "swept_hint_no_glyph", &"FLOOD_SWEPT_MOVE_NO_GLYPH", ::no_swept_hint );
maps\_utility::add_hint_string( "control_slide", &"FLOOD_SLIDE_HINT", ::no_swept_hint );
maps\_utility::add_hint_string( "control_slide_l", &"FLOOD_SLIDE_HINT_L", ::no_swept_hint );
maps\_utility::add_hint_string( "control_slide_gamepad", &"FLOOD_SLIDE_HINT_GAMEPAD", ::no_swept_hint );
maps\_utility::add_hint_string( "control_slide_gamepad_no_glyph", &"FLOOD_SLIDE_HINT_GAMEPAD_NO_GLYPH", ::no_swept_hint );
maps\_utility::add_hint_string( "control_slide_gamepad_l", &"FLOOD_SLIDE_HINT_GAMEPAD_L", ::no_swept_hint );
maps\_utility::add_hint_string( "control_slide_gamepad_l_no_glyph", &"FLOOD_SLIDE_HINT_GAMEPAD_L_NO_GLYPH", ::no_swept_hint );
}
section_precache()
{
precacherumble( "light_3s" );
precacherumble( "heavy_2s" );
}
section_flag_inits()
{
common_scripts\utility::flag_init( "left_pressed" );
common_scripts\utility::flag_init( "right_pressed" );
common_scripts\utility::flag_init( "swept_blending_allowed" );
common_scripts\utility::flag_init( "player_hit_vehicle" );
}
swept_start()
{
thread maps\flood_audio::swept_away_scene( "start" );
maps\flood_util::player_move_to_checkpoint_start( "swept_start" );
maps\flood_util::spawn_allies();
maps\flood_util::setup_default_weapons( 1 );
level.flood_mall_weapon_model = level.player maps\flood_util::create_world_model_from_ent_weapon( "r5rgp+reflex_sp" );
var_0 = level.player getweaponslistprimaries();
foreach ( var_2 in var_0 )
level.player takeweapon( var_2 );
level.player disableoffhandweapons();
level.cw_waterwipe_above = "waterline_above";
level.cw_waterwipe_under = "waterline_under";
}
swept()
{
level.player playrumbleonentity( "heavy_2s" );
level.player maps\_utility::ent_flag_set( "player_in_swept" );
if ( !isalive( level.allies[0] ) )
{
maps\flood_util::jkuprint( "ally 0 created" );
level.allies[0] = maps\flood_util::spawn_ally( "ally_0" );
}
if ( !isalive( level.allies[1] ) )
{
maps\flood_util::jkuprint( "ally 1 created" );
level.allies[1] = maps\flood_util::spawn_ally( "ally_1" );
}
if ( !isalive( level.allies[2] ) )
{
maps\flood_util::jkuprint( "ally 2 created" );
level.allies[2] = maps\flood_util::spawn_ally( "ally_2" );
}
level.allies[0].cw_in_rising_water = 0;
level.allies[1].cw_in_rising_water = 0;
level.allies[2].cw_in_rising_water = 0;
maps\flood_util::allies_move_to_checkpoint_start( "swept", 1 );
thread start_swept_control();
thread swept_water_toggle( "swim", "show" );
thread swept_water_toggle( "debri_bridge", "hide" );
thread maps\flood_anim::skybridge_scene_firstframe();
thread maps\flood_fx::fx_swept_amb_fx();
thread maps\flood_anim::sweptaway_spawn();
common_scripts\utility::exploder( "swept_under_fx" );
thread maps\flood_fx::set_enter_swept_vf();
var_0 = common_scripts\utility::getstruct( "vignette_sweptaway_end_b", "script_noteworthy" );
level.sweptaway_antenna_01 = maps\_utility::spawn_anim_model( "sweptaway_antenna_01" );
level.sweptaway_antenna_02 = maps\_utility::spawn_anim_model( "sweptaway_antenna_02" );
var_1 = [];
var_1["sweptaway_antenna_01"] = level.sweptaway_antenna_01;
var_1["sweptaway_antenna_02"] = level.sweptaway_antenna_02;
var_0 maps\_anim::anim_first_frame( var_1, "sweptaway_end_b" );
level.player disableoffhandweapons();
level.player allowsprint( 0 );
level.player allowprone( 0 );
level.player allowcrouch( 0 );
level.player allowmelee( 0 );
level.player disableweapons();
level.player hideviewmodel();
setsaveddvar( "ammoCounterHide", 1 );
common_scripts\utility::noself_delaycall( 0.05, ::setsaveddvar, "r_znear", 0.7 );
thread maps\flood_fx::fx_swept_dunk_bubbles();
maps\_utility::stop_exploder( "mr_sunflare" );
common_scripts\utility::exploder( "swept_sunflare" );
maps\_utility::stop_exploder( "huge_plume" );
level waittill( "swept_success" );
level.flood_mall_weapon_model delete();
level.player maps\_utility::ent_flag_clear( "player_in_swept" );
setsaveddvar( "r_znear", level.cw_znear_default );
}
swept_hint()
{
if ( isdefined( level.ps3 ) && level.ps3 || isdefined( level.ps4 ) && level.ps4 )
level.player maps\_utility::display_hint_timeout( "swept_hint_no_glyph", 3 );
else
level.player maps\_utility::display_hint_timeout( "swept_hint", 3 );
}
start_swept_control()
{
var_0 = common_scripts\utility::getstruct( "vignette_sweptaway", "script_noteworthy" );
var_1 = maps\_utility::spawn_anim_model( "swept_path_rig", var_0.origin );
var_0 maps\_anim::anim_first_frame_solo( var_1, "flood_sweptaway_player_path" );
var_2 = maps\_utility::spawn_anim_model( "player_rig", var_0.origin );
var_2.angles = var_1 gettagangles( "tag_player" );
var_3 = maps\_utility::spawn_anim_model( "swept_start_debris", var_0.origin );
level.swept_path_rig = var_1;
level.hands_rig = var_2;
var_2 linkto( var_1, "tag_player", ( 0, 0, 0 ), ( 0, 0, 0 ) );
level.player playerlinktodelta( var_2, "tag_player", 1, 25, 25, 15, 15 );
level.player springcamenabled( 1, 3.2, 1.6 );
var_0 thread maps\_anim::anim_single_solo( var_3, "flood_sweptaway_player_start_underwater" );
var_0 thread swept_path_anim( var_1, var_2 );
level.swept_hands_anim = level.hands_rig maps\_utility::getanim( "flood_sweptaway" );
var_2 setanim( level.swept_hands_anim, 1, 0 );
var_1 hide();
thread watch_input( var_1, var_2 );
thread player_play_anims( var_2 );
}
swept_path_anim( var_0, var_1 )
{
level endon( "swept_success" );
var_2 = common_scripts\utility::getstruct( "vignette_sweptaway_end_b", "script_noteworthy" );
maps\_anim::anim_single_solo( var_0, "flood_sweptaway_player_path" );
thread swept_end_player( var_2 );
thread swept_end( var_2 );
}
swept_end( var_0 )
{
level notify( "swept_end_vign_start" );
var_1 = maps\_vignette_util::vignette_vehicle_spawn( "sweptaway_man7t", "sweptaway_end_man7t" );
var_2 = maps\_vignette_util::vignette_actor_spawn( "swept_end_opfor_floater", "sweptaway_end_opfor_floater" );
var_3 = maps\_vignette_util::vignette_actor_spawn( "swept_end_opfor_pinned", "sweptaway_end_opfor_pinned" );
level.allies[1].alertlevel = "noncombat";
level.allies[1] maps\_utility::gun_remove();
var_4 = maps\_utility::spawn_anim_model( "sweptaway_end_chair" );
var_5 = maps\_utility::spawn_anim_model( "sweptaway_end_ibeam" );
var_6 = maps\_utility::spawn_anim_model( "sweptaway_end_pinned" );
if ( !isdefined( level.skybridge_model ) )
level.skybridge_model = maps\_utility::spawn_anim_model( "sweptaway_skybridge_01" );
var_7 = [];
var_7["sweptaway_antenna_01"] = level.sweptaway_antenna_01;
var_7["sweptaway_antenna_02"] = level.sweptaway_antenna_02;
var_7["sweptaway_end_man7t"] = var_1;
var_7["vignette_sweptaway_end_b_ally1"] = level.allies[0];
var_7["sweptaway_end_ibeam"] = var_5;
var_7["sweptaway_end_pinned"] = var_6;
var_7["sweptaway_end_opfor_floater"] = var_2;
var_7["sweptaway_end_opfor_pinned"] = var_3;
var_7["sweptaway_end_chair"] = var_4;
thread maps\flood_audio::audio_flood_end_logic();
level.allies[0] maps\_utility::delaythread( 0.75, ::swept_end_ally_vo );
var_0 maps\_anim::anim_single( var_7, "sweptaway_end_b" );
level.allies[0] thread maps\flood_roof_stealth::ally0_main();
var_1 maps\_vignette_util::vignette_vehicle_delete();
var_2 maps\_vignette_util::vignette_actor_delete();
var_3 maps\_vignette_util::vignette_actor_delete();
}
swept_end_player( var_0 )
{
level.player freezecontrols( 1 );
level.cw_no_waterwipe = 1;
var_1 = [];
var_1["player_rig"] = level.hands_rig;
var_0 maps\_anim::anim_single( var_1, "sweptaway_end_b" );
level notify( "swept_success" );
level notify( "swept_player_done" );
level.player unlink();
level.hands_rig delete();
level.player freezecontrols( 0 );
level.player allowsprint( 1 );
level.player allowcrouch( 1 );
level.player allowmelee( 1 );
level.player enableweapons();
level.player showviewmodel();
level.cw_no_waterwipe = 0;
maps\flood_util::jkuprint( distance2d( level.allies[1].origin, level.player.origin ) );
level.player allowsprint( 0 );
level.player common_scripts\utility::delaycall( 7.5, ::allowsprint, 1 );
level.player maps\_utility::blend_movespeedscale( 0.05 );
level.player thread maps\_utility::blend_movespeedscale_default( 7.5 );
}
swept_end_ally_vo()
{
self endon( "death" );
level endon( "stealth_attack_player" );
wait 3.35;
wait 6.3;
thread maps\_utility::dialogue_queue( "flood_vrg_grabmyhandwalker" );
wait 1.5;
thread maps\_utility::dialogue_queue( "flood_vrg_eliasigotcha" );
}
swept_end_player_test( var_0 )
{
var_1 = maps\_utility::spawn_anim_model( "player_rig" );
var_2 = [];
var_2["player_rig"] = var_1;
var_0 maps\_anim::anim_first_frame( var_2, "sweptaway_end_b" );
}
watch_input( var_0, var_1 )
{
level.player endon( "death" );
level endon( "swept_success" );
level endon( "swept_end_vign_start" );
level endon( "swept_take_control" );
level.swept_allow_movement = 0;
level.swept_path_offset = 0;
level.swept_allowed_slide = 60;
level.swept_movement_step = 0;
thread adjust_movement_step_up( 6, 5 );
for (;;)
{
var_2 = level.player getnormalizedmovement();
if ( var_2[1] >= 0.15 )
{
common_scripts\utility::flag_clear( "left_pressed" );
common_scripts\utility::flag_set( "right_pressed" );
if ( level.swept_allow_movement )
{
var_3 = anglestoright( var_0.angles );
var_4 = var_1.origin + level.swept_movement_step * var_3;
if ( distance2d( var_4, var_0.origin ) <= level.swept_allowed_slide )
{
var_1.origin = var_4;
var_1 linkto( var_0, "tag_player" );
}
}
}
else if ( var_2[1] <= -0.15 )
{
common_scripts\utility::flag_clear( "right_pressed" );
common_scripts\utility::flag_set( "left_pressed" );
if ( level.swept_allow_movement )
{
var_3 = anglestoright( var_0.angles );
var_4 = var_1.origin + level.swept_movement_step * -1 * var_3;
if ( distance2d( var_4, var_0.origin ) <= level.swept_allowed_slide )
{
var_1.origin = var_4;
var_1 linkto( var_0, "tag_player" );
}
}
}
else
{
common_scripts\utility::flag_clear( "left_pressed" );
common_scripts\utility::flag_clear( "right_pressed" );
}
common_scripts\utility::waitframe();
}
}
adjust_movement_step_up( var_0, var_1 )
{
level.player endon( "death" );
level endon( "swept_success" );
var_2 = var_1 * 20;
var_3 = 0;
var_4 = var_0 / var_2;
for ( var_5 = 0; var_5 < var_2; var_5++ )
{
level.swept_movement_step = var_3;
var_3 = var_3 + var_4;
common_scripts\utility::waitframe();
}
maps\flood_util::jkuprint( "full cs" );
common_scripts\utility::flag_set( "swept_blending_allowed" );
}
start_blend_to_endpos()
{
level.player endon( "death" );
level endon( "swept_success" );
var_0 = 1;
wait( getanimlength( level.swept_path_rig maps\_utility::getanim( "flood_sweptaway_player_path" ) ) - var_0 );
maps\flood_util::jkuprint( "no c" );
level notify( "swept_take_control" );
level.swept_allow_movement = 1;
var_1 = distance2d( level.swept_path_rig.origin, level.hands_rig.origin );
var_2 = var_1 / ( var_0 * 20 - 2 );
while ( isdefined( level.swept_path_rig ) && isdefined( level.hands_rig ) && distance2d( level.swept_path_rig.origin, level.hands_rig.origin ) > 4 )
{
var_3 = anglestoright( level.swept_path_rig.angles );
if ( level.swept_path_rig.origin[0] - level.hands_rig.origin[0] > 0 )
var_4 = level.hands_rig.origin + var_2 * -1 * var_3;
else
var_4 = level.hands_rig.origin + var_2 * var_3;
level.hands_rig.origin = var_4;
level.hands_rig linkto( level.swept_path_rig, "tag_player" );
common_scripts\utility::waitframe();
}
}
player_play_anims( var_0 )
{
level.player endon( "death" );
level endon( "swept_success" );
level endon( "swept_end_vign_start" );
level endon( "swept_take_control" );
var_1 = 0.3;
var_2 = 0.5;
for (;;)
{
if ( common_scripts\utility::flag( "left_pressed" ) && common_scripts\utility::flag( "swept_blending_allowed" ) )
{
var_0 setanim( level.hands_rig maps\_utility::getanim( "flood_sweptaway_L" ), 1, var_1 );
var_0 setanim( level.swept_hands_anim, 0.01, var_1 );
common_scripts\utility::flag_waitopen( "left_pressed" );
var_0 setanim( level.swept_hands_anim, 1, var_2 );
var_0 setanim( level.hands_rig maps\_utility::getanim( "flood_sweptaway_L" ), 0, var_2 );
}
else if ( common_scripts\utility::flag( "right_pressed" ) && common_scripts\utility::flag( "swept_blending_allowed" ) )
{
var_0 setanim( level.hands_rig maps\_utility::getanim( "flood_sweptaway_R" ), 1, var_1 );
var_0 setanim( level.swept_hands_anim, 0.01, var_1 );
common_scripts\utility::flag_waitopen( "right_pressed" );
var_0 setanim( level.swept_hands_anim, 1, var_2 );
var_0 setanim( level.hands_rig maps\_utility::getanim( "flood_sweptaway_R" ), 0, var_2 );
}
else
common_scripts\utility::flag_wait_any( "left_pressed", "right_pressed" );
common_scripts\utility::waitframe();
}
}
#using_animtree("player");
start_swept_control_old()
{
var_0 = getent( "swept_vehicle", "targetname" );
var_0 = maps\_vehicle::vehicle_spawn( var_0 );
var_1 = common_scripts\utility::spawn_tag_origin();
var_1.origin = var_0.origin;
var_1.angles = var_0.angles;
var_1 linkto( var_0, "", ( 0, 0, 0 ), ( 0, 0, 0 ) );
var_2 = common_scripts\utility::getstruct( "vignette_sweptaway", "script_noteworthy" );
var_3 = maps\_utility::spawn_anim_model( "player_rig", var_2.origin );
var_3.angles = var_2.angles;
var_3 setanim( %flood_sweptaway_player_path, 1, 0 );
var_4 = 35;
var_5 = 15;
level.player playerlinktodelta( var_3, "tag_player", 1, var_4, var_4, var_5, var_5 );
wait 0.7;
level waittill( "swept_success" );
level.player unlink();
var_3 delete();
}
watch_input_old( var_0, var_1, var_2 )
{
level.player endon( "death" );
level endon( "swept_success" );
var_3 = 121;
for (;;)
{
var_4 = level.player getnormalizedmovement();
if ( var_4[1] >= 0.15 )
{
common_scripts\utility::flag_clear( "left_pressed" );
common_scripts\utility::flag_set( "right_pressed" );
if ( distance2d( level.player.origin, var_1.origin ) <= var_3 )
{
var_5 = anglestoright( var_1.angles );
var_6 = var_0.origin + 5 * var_5;
if ( distance2d( var_6, var_1.origin ) <= var_3 )
{
var_0.origin = var_6;
var_0 linkto( var_1 );
}
}
}
else if ( var_4[1] <= -0.15 )
{
common_scripts\utility::flag_clear( "right_pressed" );
common_scripts\utility::flag_set( "left_pressed" );
if ( distance2d( level.player.origin, var_1.origin ) <= var_3 )
{
var_5 = anglestoright( var_1.angles );
var_6 = var_0.origin + -5 * var_5;
if ( distance2d( var_6, var_1.origin ) <= var_3 )
{
var_0.origin = var_6;
var_0 linkto( var_1 );
}
}
}
else
{
common_scripts\utility::flag_clear( "left_pressed" );
common_scripts\utility::flag_clear( "right_pressed" );
}
wait 0.05;
}
}
trigger_damage_car()
{
level endon( "swept_success" );
level endon( "swept_fail" );
self waittill( "trigger" );
level.player dodamage( 50, level.player.origin );
}
swept_water_toggle( var_0, var_1 )
{
var_2 = undefined;
switch ( var_0 )
{
case "swim":
var_2 = getentarray( "swept_water_swim", "targetname" );
break;
case "ending_water":
var_2 = getentarray( "ending_water", "targetname" );
break;
case "debri_bridge":
var_2 = getentarray( "debri_bridge_water", "targetname" );
break;
}
switch ( var_1 )
{
case "hide":
foreach ( var_0 in var_2 )
{
var_0 hide();
var_0 notsolid();
}
break;
case "show":
foreach ( var_0 in var_2 )
{
var_0 show();
var_0 solid();
}
break;
}
}
watch_waterlevel()
{
level endon( "swept_player_done" );
level endon( "swept_fail" );
thread maps\flood_coverwater::setup_player_view_water_fx_source();
level.player thread player_surface_blur_think( "swept_success" );
level thread waterlevel_hack();
var_0 = "none";
for (;;)
{
var_1 = level.player geteye();
var_2 = bullettrace( var_1, var_1 + ( 0, 0, 240 ), 0 );
if ( var_2["surfacetype"] == "water" && var_0 != "water" )
swept_underwater();
else if ( var_2["surfacetype"] == "none" && var_0 != "none" )
swept_abovewater();
else if ( var_2["surfacetype"] == "water" && var_0 == "water" )
{
}
else if ( var_2["surfacetype"] == "none" && var_0 == "none" )
{
}
var_0 = var_2["surfacetype"];
common_scripts\utility::waitframe();
}
}
waterlevel_hack()
{
level endon( "swept_player_done" );
level endon( "swept_fail" );
wait 31.85;
swept_abovewater();
}
swept_underwater()
{
level endon( "swept_success" );
level endon( "swept_fail" );
level.cw_fog_under = "flood_underwater_murky";
common_scripts\utility::flag_clear( "cw_player_abovewater" );
common_scripts\utility::flag_set( "cw_player_underwater" );
thread maps\flood_fx::dof_swept_away();
thread maps\flood_fx::fx_create_bokehdots_source();
killfxontag( common_scripts\utility::getfx( "bokehdots_64" ), level.flood_source_bokehdots, "tag_origin" );
common_scripts\utility::waitframe();
killfxontag( common_scripts\utility::getfx( "bokehdots_close" ), level.flood_source_bokehdots, "tag_origin" );
killfxontag( common_scripts\utility::getfx( "scrnfx_water_splash_low" ), level.cw_player_view_fx_source, "tag_origin" );
common_scripts\utility::waitframe();
if ( isdefined( level.hands_rig ) )
{
playfxontag( common_scripts\utility::getfx( "flood_hand_bubbles" ), level.hands_rig, "j_wrist_ri" );
playfxontag( common_scripts\utility::getfx( "flood_hand_bubbles" ), level.hands_rig, "j_wrist_le" );
}
}
swept_abovewater()
{
level endon( "swept_success" );
level endon( "swept_fail" );
common_scripts\utility::flag_clear( "cw_player_underwater" );
common_scripts\utility::flag_set( "cw_player_abovewater" );
level.player maps\_utility::vision_set_changes( level.cw_vision_above, 0 );
level.player maps\_utility::fog_set_changes( level.cw_fog_above, 0 );
maps\_art::dof_disable_script( 0.0 );
killfxontag( common_scripts\utility::getfx( "flood_hand_bubbles" ), level.hands_rig, "j_wrist_ri" );
killfxontag( common_scripts\utility::getfx( "flood_hand_bubbles" ), level.hands_rig, "j_wrist_le" );
level.player setwatersheeting( 1, 1 );
thread maps\flood_fx::fx_bokehdots_close();
common_scripts\utility::waitframe();
thread maps\flood_fx::fx_turn_on_bokehdots_64_player();
playfxontag( common_scripts\utility::getfx( "scrnfx_water_splash_low" ), level.cw_player_view_fx_source, "tag_origin" );
}
player_surface_blur_think( var_0 )
{
level.player endon( "death" );
level endon( var_0 );
var_1 = 1;
for (;;)
{
var_2 = level.player geteye();
var_3 = 1.5;
var_4 = 25;
var_5 = bullettrace( var_2 + ( 0, 0, var_3 ), var_2 + ( 0, 0, var_3 * -1 ), 0, self );
if ( var_5["surfacetype"] == "water" )
{
var_6 = distance( var_5["position"], var_2 ) * ( var_4 / var_3 );
setblur( var_4 - var_6, 0.05 );
var_1 = 0;
}
else if ( !var_1 )
{
setblur( 0, 0.5 );
var_1 = 1;
}
common_scripts\utility::waitframe();
}
}
no_swept_hint()
{
if ( !isalive( level.player ) )
return 1;
return 0;
}
building_slide_control_hint()
{
var_0 = getsticksconfig();
iprintln( var_0 );
if ( level.player common_scripts\utility::is_player_gamepad_enabled() )
{
if ( isdefined( level.ps3 ) && level.ps3 )
{
if ( var_0 == "thumbstick_southpaw" || var_0 == "thumbstick_legacy" )
maps\_utility::display_hint_timeout( "control_slide_gamepad_l_no_glyph", 3 );
else
maps\_utility::display_hint_timeout( "control_slide_gamepad_no_glyph", 3 );
}
else if ( var_0 == "thumbstick_southpaw" || var_0 == "thumbstick_legacy" )
maps\_utility::display_hint_timeout( "control_slide_gamepad_l", 3 );
else
maps\_utility::display_hint_timeout( "control_slide_gamepad", 3 );
}
else if ( var_0 == "thumbstick_southpaw" || var_0 == "thumbstick_legacy" )
maps\_utility::display_hint_timeout( "control_slide_l", 3 );
else
maps\_utility::display_hint_timeout( "control_slide", 3 );
}
truck_rumble( var_0 )
{
earthquake( 0.5, 1, level.player.origin, 1600 );
level.player playrumbleonentity( "heavy_2s" );
}
antenna_rumble( var_0 )
{
earthquake( 0.15, 0.5, level.player.origin, 1600 );
level.player playrumbleonentity( "light_3s" );
}
play_rumble_pole_hit( var_0 )
{
maps\flood_util::jkuprint( "playing play_rumble_pole_hit" );
playrumbleonposition( "light_1s", var_0.origin + ( 0, 0, 850 ) );
}