cod5-sdk/raw/maps/pby_fly_amb.gsc
2008-11-20 00:00:00 +00:00

428 lines
No EOL
12 KiB
Text

#include maps\_ambientpackage;
#include maps\_busing;
#include maps\_utility;
main()
{
//declare an ambientpackage, and populate it with elements
//mandatory parameters are <package name>, <alias name>, <spawnMin>, <spawnMax>
//followed by optional parameters <distMin>, <distMax>, <angleMin>, <angleMax>
declareAmbientPackage( "default" );
addAmbientElement( "default", "bomb_far_falloff", 5, 20,100, 300 );
addAmbientElement( "default", "amb_metal", 1, 10,50, 1200 );
declareAmbientPackage( "at_sea" );
addAmbientElement( "at_sea", "bomb_far_falloff", 5, 20,100, 300 );
addAmbientElement( "default", "amb_metal", 5, 15,50, 800 );
declareAmbientRoom( "default" );
setAmbientRoomTone( "default", "plane_interor" );
setAmbientRoomReverb( "default", "plain", 1, 1);
declareAmbientRoom( "at_sea" );
setAmbientRoomTone( "at_sea", "at_sea" );
setAmbientRoomReverb( "at_sea", "plain", 1, 1);
activateAmbientRoom( "default", 0 );
activateAmbientPackage( "default", 0 );
//************************************
// Start Scripts
//************************************
//level thread start_music_intro();
//level thread start_merchant_ship_siren();
//-- Edit by glocke::2/15
//level thread start_plane_landed_sounds();
setbusstate("SHHH_PROJECTILES");
level.zeroflyby = [];
level.zeroflyby[0]["sound"] = "intro_plane1";
level.zeroflyby[0]["length"] = 5;
level.zeroflyby[1]["sound"] = "intro_plane2";
level.zeroflyby[1]["length"] = 3;
level.zeroflyby[2]["sound"] = "intro_plane3";
level.zeroflyby[2]["length"] = 4;
level.zeroflyby[3]["sound"] = "intro_plane4";
level.zeroflyby[3]["length"] = 3;
level.zeroflyby[4]["sound"] = "intro_plane1";
level.zeroflyby[4]["length"] = 5;
level.zeroflyby[5]["sound"] = "intro_plane2";
level.zeroflyby[5]["length"] = 3;
level.zeroflyby[6]["sound"] = "intro_plane3";
level.zeroflyby[6]["length"] = 4;
level.zeroflyby[7]["sound"] = "intro_plane4";
level.zeroflyby[7]["length"] = 3;
level.zeroflyby[8]["sound"] = "intro_plane8";
level.zeroflyby[8]["length"] = 5;
level thread start_planes_sounds();
}
start_planes_sounds()
{
wait(5);
players = get_players();
for(i = 0; i < players.size; i++)
{
players[i] playsound("pby_engines_streamed");
}
}
start_music_intro()
{
level endon("start strafing music special");
//wait(5.0);
//start playing "In The Clouds" -- Sean Murray
playsoundatposition("in_the_clouds",(21928, 42504, -32));
wait(130);
//start playing "Strafing Run" --- Sean Murray
playsoundatposition("strafing_run",(21928, 42504, -32));
}
start_music_intro_m()
{
level notify("start strafing music special");
//start playing "Strafing Run" --- Sean Murray
playsoundatposition("strafing_run",(21928, 42504, -32));
}
start_merchant_ship_siren()
{
//-- this plays on the 2nd merchant ship
//wait(3);
level.alarm_struct = GetEnt("merch_ship_alarm", "targetname");
level.alarm_struct playloopsound("merch_ship_alarm");
}
start_merchant_ship_klaxon()
{
//-- play on ship 1
level.klaxon_struct = GetEnt("merch_ship_klaxon", "targetname");
level.klaxon_struct playloopsound("merch_ship_klaxon");
level.bell_struct = GetEnt("merch_ship_bell", "targetname");
level.bell_struct playloopsound("merch_ship_bell");
}
start_merchant_ship_coll()
{
level.coll_struct = GetEnt("merch_ship_coll", "targetname");
level.coll_struct playloopsound("merch_ship_collision");
}
start_merchant_ship_pa()
{
level.pa_struct = GetEnt("merch_ship_pa", "targetname");
PlaySoundAtPosition("merch_ship_pa", level.pa_struct.origin);
}
stop_merchant_ship_siren()
{
level.alarm_struct StopLoopSound(2);
wait(2.5);
level.alarm_struct Delete();
}
stop_merchant_ship_klaxon()
{
level.klaxon_struct StopLoopSound(2);
level.bell_struct StopLoopSound(2);
wait(2.5);
level.klaxon_struct Delete();
level.bell_struct Delete();
}
stop_merchant_ship_coll()
{
level.coll_struct StopLoopSound(2);
wait(2.5);
level.coll_struct Delete();
}
//-- Edit by glocke::2/15
start_plane_landed_sound()
{
playsoundatposition("plane_land", self.origin);
//level waittill("audio_plane_landing");
//wait(8);
//playsoundatposition("plane_land", (21928, 42504, -32));
}
//-- START JUST THE PLANE PROP SOUNDS
start_plane_prop_sounds()
{
self.audio_node_propl = Spawn("script_model", self.origin);
self.audio_node_propl SetModel("tag_origin");
self.audio_node_propl LinkTo(self, "prop_left_jnt", (0,0,0), (0,0,0));
// self.audio_node_prop1 PlayLoopSound("pby_engines_streamed");
//self.audio_node_propl PlayLoopSound("pby_propeller");
self.audio_node_propl playsound("pby_propeller_left");
self.audio_node_propr = Spawn("script_model", self.origin);
self.audio_node_propr SetModel("tag_origin");
self.audio_node_propr LinkTo(self, "prop_right_jnt", (0,0,0), (0,0,0));
//self.audio_node_propr PlayLoopSound("pby_propeller");
self.audio_node_propr playsound("pby_propeller_right");
self.audio_node_propl_ramp = Spawn("script_origin", self.audio_node_propl.origin);
self.audio_node_propl_ramp SetModel("tag_origin");
self.audio_node_propl_ramp LinkTo(self, "prop_left_jnt", (0,0,0), (0,0,0));
self.audio_node_propl_ramp playsound ("pby_engine_ramp_up", "sound_done");
self.audio_node_propr_ramp = Spawn("script_origin", self.audio_node_propr.origin);
self.audio_node_propr_ramp SetModel("tag_origin");
self.audio_node_propr_ramp LinkTo(self, "prop_right_jnt", (0,0,0), (0,0,0));
self.audio_node_propr_ramp playsound ("pby_engine_ramp_up", "sound_done");
self.audio_node_propl waittill("sound_done");
self.audio_node_propr_ramp delete();
self.audio_node_propl_ramp delete();
}
//-- STOP THE PROP ENGINE SOUNDS
stop_plane_prop_sounds()
{
self thread stop_prop_sound_with_ramp(true);
self thread stop_prop_sound_with_ramp(false);
}
stop_prop_sound_with_ramp(right)
{
if(!right)
{
if(IsDefined(self.audio_node_propl))
{
self.audio_node_propl_ramp = Spawn("script_origin", self.audio_node_propl.origin);
self.audio_node_propl_ramp SetModel("tag_origin");
self.audio_node_propl_ramp LinkTo(self, "prop_left_jnt", (0,0,0), (0,0,0));
self.audio_node_propl_ramp playsound ("pby_engine_ramp_down", "sound_done");
self.audio_node_propl stoploopsound(2);
self.audio_node_propl waittill("sound_done");
self.audio_node_propl delete();
self.audio_node_propl_ramp delete();
}
return;
}
if(right)
{
if(IsDefined(self.audio_node_propr))
{
self.audio_node_propr_ramp = Spawn("script_origin", self.audio_node_propr.origin);
self.audio_node_propr_ramp SetModel("tag_origin");
self.audio_node_propr_ramp LinkTo(self, "prop_right_jnt", (0,0,0), (0,0,0));
self.audio_node_propr_ramp playsound ("pby_engine_ramp_down_other", "sound_done");
self.audio_node_propr stoploopsound(2);
self.audio_node_propr waittill("sound_done");
self.audio_node_propr delete();
self.audio_node_propr_ramp delete();
}
return;
}
}
//-- STOP THE WIND SOUNDS PLAYED ON ALL 4 BARRELS
stop_plane_wind_sounds()
{
if(IsDefined(self.audio_node_nose))
{
self.audio_node_nose stoploopsound();
self.audio_node_nose delete();
}
if(IsDefined(self.audio_node_left))
{
self.audio_node_left stoploopsound();
self.audio_node_left delete();
}
if(IsDefined(self.audio_node_right))
{
self.audio_node_right stoploopsound();
self.audio_node_right delete();
}
if(IsDefined(self.audio_node_ventral))
{
self.audio_node_ventral stoploopsound();
self.audio_node_ventral delete();
}
}
setup_plane_sounds(player)
{
if(!player)
{
//-- 3D sounds for ambient plane
maps\_utility::ok_to_spawn(5.0);
self.audio_node_nose3p = Spawn("script_model", self.origin);
self.audio_node_nose3p SetModel("tag_origin");
self.audio_node_nose3p LinkTo(self, "tag_gunner_barrel1", (0,0,0), (0,0,0));
self.audio_node_nose3p PlayLoopSound("pby_3p");
}
else if(player)
{
//-- Sounds for player's plane
//Plane interior is from the Ambient System
//Propellers are using the tags below
// "prop_left_jnt"
// "prop_right_jnt"
maps\pby_fly::pby_ok_to_spawn();
self.audio_node_propl = Spawn("script_model", self.origin);
self.audio_node_propl SetModel("tag_origin");
self.audio_node_propl LinkTo(self, "prop_left_jnt", (0,0,0), (0,0,0));
self.audio_node_propl PlayLoopSound("pby_propeller");
self.audio_node_propl playloopsound("pby_propeller_left");
maps\pby_fly::pby_ok_to_spawn();
self.audio_node_propr = Spawn("script_model", self.origin);
self.audio_node_propr SetModel("tag_origin");
self.audio_node_propr LinkTo(self, "prop_right_jnt", (0,0,0), (0,0,0));
//self.audio_node_propr PlayLoopSound("pby_propeller");
self.audio_node_propr playloopsound("pby_propeller_right");
//-- Wind Sound (glocke)
//"tag_gunner_barrel1" -- Nose
//"tag_gunner_barrel2" -- Left Blister
//"tag_gunner_barrel3" -- Right Blister
//"tag_gunner_barrel4" -- Ventral
maps\pby_fly::pby_ok_to_spawn();
self.audio_node_nose = Spawn("script_model", self.origin);
self.audio_node_nose SetModel("tag_origin");
self.audio_node_nose LinkTo(self, "tag_gunner_barrel1", (0,0,0), (0,0,0));
self.audio_node_nose PlayLoopSound("wind_mono");
maps\pby_fly::pby_ok_to_spawn();
self.audio_node_left = Spawn("script_model", self.origin);
self.audio_node_left SetModel("tag_origin");
self.audio_node_left LinkTo(self, "tag_gunner_barrel2", (0,0,0), (0,0,0));
self.audio_node_left PlayLoopSound("wind_mono");
maps\pby_fly::pby_ok_to_spawn();
self.audio_node_right = Spawn("script_model", self.origin);
self.audio_node_right SetModel("tag_origin");
self.audio_node_right LinkTo(self, "tag_gunner_barrel3", (0,0,0), (0,0,0));
self.audio_node_right PlayLoopSound("wind_mono");
maps\pby_fly::pby_ok_to_spawn();
self.audio_node_ventral = Spawn("script_model", self.origin);
self.audio_node_ventral SetModel("tag_origin");
self.audio_node_ventral LinkTo(self, "tag_gunner_barrel4", (0,0,0), (0,0,0));
self.audio_node_ventral PlayLoopSound("wind_mono");
}
}
//-- Plays the Zero's engine and preps the passby sound
play_zero_sounds(target, target_b)
{
self endon("death");
wait(0.1);
plane_dist_a = 0;
plane_dist_b = 0;
//--TODO: make this actually random
rand_num = RandomInt(level.zeroflyby.size);
random_sound = level.zeroflyby[rand_num];
distance_to_play_sound = mph_to_ups( self GetSpeedMPH(), random_sound["length"] );
while(distancesquared(self.origin, target.origin) > distance_to_play_sound * distance_to_play_sound)
{
wait( 0.1 );
}
self playsound(random_sound["sound"]);
//self thread play_plane_passby(random_sound);
}
mph_to_ups(mph, seconds_before_plane_overhead)
{
miles = mph;
units = miles * 63360;
seconds_per_hour = 3600;
ups = units / seconds_per_hour;
//seconds_before_plane_overhead = 6;
distance_to_play_sound = ups * seconds_before_plane_overhead;
return(distance_to_play_sound);
}
play_plane_passby( my_sound )
{
//play random passby sound
//self.audio_node_propzero playsound(sound_ids[RandomInt(sound_ids.size)]);
}
destroyer1_alarm()
{
level.destroyer1_alarm = GetEnt("destroyer1", "targetname");
level.destroyer1_alarm playloopsound("fleet_alarm1");
}
destroyer2_alarm()
{
level.destroyer2_alarm = GetEnt("destroyer2", "targetname");
level.destroyer2_alarm playloopsound("fleet_alarm2");
org = spawn("script_origin", level.destroyer2_alarm.origin);
org playloopsound("fires_and_screams");
}
destroyer3_alarm()
{
level.destroyer3_alarm = GetEnt("sinking_ship", "targetname");
level.destroyer3_alarm playloopsound("fleet_gq");
}
play_zeros_track()
{
players = get_players();
for( i = 0; i < players.size; i++ )
{
players[i] playloopsound("zero_track_loop");
level waittill("LANDING");
players[i] stoploopsound(3);
}
}