225 lines
7.4 KiB
Plaintext
225 lines
7.4 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
catchup_function()
|
|
{
|
|
common_scripts\utility::flag_set( "FLAG_apache_tut_fly_dialogue_finished" );
|
|
thread maps\oilrocks_proximity_spawned_vehicles::main();
|
|
thread maps\oilrocks_proximity_spawned_ai::main();
|
|
thread maps\_utility::music_play( "mus_oilrocks_intro" );
|
|
}
|
|
|
|
start()
|
|
{
|
|
level.player setclienttriggeraudiozone( "oilrocks_heli_gunner", 0.1 );
|
|
level.player.participation = 1000;
|
|
var_0 = maps\oilrocks_code::spawn_apache_player( "apache_tutorial_fly" );
|
|
maps\oilrocks_apache_code::spawn_blackhawk_ally( "struct_blackhawk_ally_fly_in" );
|
|
maps\oilrocks_apache_code::spawn_apache_allies( "struct_apache_ally_fly_in_0" );
|
|
setsaveddvar( "vehHelicopterMaxPitch", 6.0 );
|
|
setsaveddvar( "vehHelicopterPitchOffset", var_0.heli.pitch_offset_air );
|
|
}
|
|
|
|
main()
|
|
{
|
|
thread maps\_utility::music_play( "mus_oilrocks_intro" );
|
|
thread maps\oilrocks_apache_vo::apache_mission_vo_think( maps\oilrocks_apache_vo::apache_mission_vo_tutorial );
|
|
thread maps\oilrocks_apache_hints::apache_hints_tutorial();
|
|
common_scripts\utility::flag_wait( "introscreen_complete" );
|
|
level notify( "start_opening_birds" );
|
|
thread apache_tutorial_fly_reactive_foliage();
|
|
thread apache_tutorial_fly_allies();
|
|
thread apache_tutorial_fly_move_until_input();
|
|
thread apache_tutorial_fly_player_pitch_think();
|
|
thread maps\oilrocks_proximity_spawned_vehicles::main();
|
|
thread maps\oilrocks_proximity_spawned_ai::main();
|
|
objectives();
|
|
}
|
|
|
|
objectives()
|
|
{
|
|
var_0 = maps\_utility::obj( "tutorial" );
|
|
objective_add( var_0, "active", &"OILROCKS_OBJ_TUTORIAL" );
|
|
objective_current( var_0 );
|
|
common_scripts\utility::flag_wait( "FLAG_apache_tut_fly_finished" );
|
|
maps\_utility::objective_complete( var_0 );
|
|
}
|
|
|
|
apache_tutorial_fly_reactive_foliage()
|
|
{
|
|
setsaveddvar( "r_reactiveMotionHelicopterLimit", 4 );
|
|
setsaveddvar( "r_reactiveMotionHelicopterRadius", 1200 );
|
|
setsaveddvar( "r_reactiveMotionHelicopterStrength", 30 );
|
|
common_scripts\utility::flag_wait( "FLAG_apache_tut_fly_finished" );
|
|
wait 10;
|
|
setsaveddvar( "r_reactiveMotionHelicopterLimit", 1 );
|
|
}
|
|
|
|
apache_tutorial_fly_player_pitch_think()
|
|
{
|
|
var_0 = maps\oilrocks_apache_code::get_apache_player();
|
|
var_1 = var_0.heli.owner;
|
|
var_1 endon( "death" );
|
|
common_scripts\utility::flag_wait( "FLAG_apache_tut_fly_half" );
|
|
thread maps\_utility::lerp_saveddvar( "vehHelicopterMaxPitch", var_0.heli.pitch_max, 6.0 );
|
|
}
|
|
|
|
apache_tutorial_fly_allies()
|
|
{
|
|
var_0 = common_scripts\utility::array_combine( maps\oilrocks_apache_code::get_apache_allies(), [ maps\oilrocks_apache_code::get_blackhawk_ally() ] );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_3 = undefined;
|
|
|
|
if ( issubstr( var_2.targetname, "apache" ) )
|
|
var_3 = common_scripts\utility::getstruct( "apache_ally_fly_in_path_0" + var_2 maps\oilrocks_apache_code::get_apache_ally_id(), "targetname" );
|
|
else
|
|
var_3 = common_scripts\utility::getstruct( "blackhaw_fly_in_path", "targetname" );
|
|
|
|
var_2 thread maps\oilrocks_code::chopper_boss_path_override( var_3 );
|
|
}
|
|
|
|
common_scripts\utility::array_call( var_0, ::vehicle_setspeedimmediate, 90, 90 );
|
|
wait 0.1;
|
|
common_scripts\utility::array_call( var_0, ::vehicle_setspeed, 90, 35, 35 );
|
|
common_scripts\utility::flag_wait( "FLAG_apache_tut_fly_stop_auto_pilot" );
|
|
common_scripts\utility::array_call( var_0, ::vehicle_setspeed, 90, 35, 35 );
|
|
thread apache_tutorial_fly_allies_govern_speed( var_0 );
|
|
}
|
|
|
|
apache_tutorial_fly_allies_govern_speed( var_0 )
|
|
{
|
|
level endon( "FLAG_apache_tut_fly_finished" );
|
|
thread apache_tutorial_fly_allies_govern_speed_stop( var_0, "FLAG_apache_tut_fly_finished" );
|
|
var_1 = maps\oilrocks_apache_code::get_apache_player();
|
|
var_2 = squared( 8400 );
|
|
var_3 = squared( 4800 );
|
|
var_4 = squared( 1800 );
|
|
var_5 = var_3 - var_4;
|
|
var_6 = 0.25;
|
|
var_7 = undefined;
|
|
|
|
for (;;)
|
|
{
|
|
var_8 = undefined;
|
|
|
|
foreach ( var_10 in var_0 )
|
|
{
|
|
if ( !isdefined( var_8 ) )
|
|
{
|
|
var_8 = distance2dsquared( var_1.origin, var_10.origin );
|
|
continue;
|
|
}
|
|
|
|
var_11 = distance2dsquared( var_1.origin, var_10.origin );
|
|
|
|
if ( var_11 < var_8 )
|
|
var_8 = var_11;
|
|
}
|
|
|
|
var_13 = undefined;
|
|
|
|
if ( var_8 >= var_2 )
|
|
var_13 = 0;
|
|
else
|
|
{
|
|
var_14 = clamp( var_8, var_4, var_3 );
|
|
var_15 = 1 - ( var_14 - var_4 ) / var_5;
|
|
var_13 = 40 + 80 * var_15;
|
|
}
|
|
|
|
if ( !isdefined( var_7 ) || abs( var_13 - var_7 ) / max( var_7, 0.001 ) > 0.1 )
|
|
{
|
|
common_scripts\utility::array_call( var_0, ::vehicle_setspeed, var_13, 35, 35 );
|
|
var_7 = var_13;
|
|
}
|
|
|
|
wait( var_6 );
|
|
}
|
|
}
|
|
|
|
apache_tutorial_fly_allies_govern_speed_stop( var_0, var_1 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_1 );
|
|
common_scripts\utility::array_call( var_0, ::resumespeed, 35 );
|
|
}
|
|
|
|
apache_tutorial_fly_move_until_input( var_0 )
|
|
{
|
|
var_0 = maps\oilrocks_apache_code::get_apache_player();
|
|
var_1 = var_0.heli.owner;
|
|
var_1 endon( "death" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "+toggleads_throw" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "+speed_throw" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "+speed" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "+ads_akimbo_accessible" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "-toggleads_throw" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "-speed_throw" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "-speed" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "-ads_akimbo_accessible" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "+smoke" );
|
|
var_1 notifyonplayercommand( "LISTEN_heli_movement_input", "-smoke" );
|
|
thread apache_owner_notify_on_input_camera( var_0, "LISTEN_heli_movement_input" );
|
|
thread apache_owner_notify_on_input_move( var_0, "LISTEN_heli_movement_input" );
|
|
thread apache_move_until_notify( var_0, 90, "LISTEN_heli_movement_input", "FLAG_apache_tut_fly_stop_auto_pilot" );
|
|
var_1 waittill( "LISTEN_heli_movement_input" );
|
|
common_scripts\utility::flag_set( "FLAG_apache_tut_fly_stop_control_hint" );
|
|
common_scripts\utility::flag_set( "FLAG_apache_tut_fly_stop_auto_pilot" );
|
|
}
|
|
|
|
apache_move_until_notify( var_0, var_1, var_2, var_3 )
|
|
{
|
|
if ( isdefined( var_3 ) )
|
|
level endon( var_3 );
|
|
|
|
var_4 = var_0.heli.owner;
|
|
|
|
if ( isdefined( var_2 ) )
|
|
var_4 endon( var_2 );
|
|
|
|
var_4 endon( "death" );
|
|
|
|
for (;;)
|
|
{
|
|
var_0 vehicle_setspeedimmediate( var_1, var_1, var_1 * 0.05 );
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
apache_owner_notify_on_input_camera( var_0, var_1 )
|
|
{
|
|
var_2 = var_0.heli.owner;
|
|
var_2 endon( var_1 );
|
|
|
|
for (;;)
|
|
{
|
|
var_3 = var_2 getnormalizedcameramovement();
|
|
|
|
if ( max( abs( var_3[0] ), abs( var_3[1] ) ) > 0.2 )
|
|
break;
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
var_2 notify( var_1 );
|
|
}
|
|
|
|
apache_owner_notify_on_input_move( var_0, var_1 )
|
|
{
|
|
var_2 = var_0.heli.owner;
|
|
var_2 endon( var_1 );
|
|
|
|
for (;;)
|
|
{
|
|
var_3 = var_2 getnormalizedmovement();
|
|
|
|
if ( max( abs( var_3[0] ), abs( var_3[1] ) ) > 0.2 )
|
|
break;
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
var_2 notify( var_1 );
|
|
}
|