I think i have stumbled across something cool just like in some cod4 zombies where the was different music in the background. I pulled out a music_and_dialog.gsc from ffviewer and found that mp_suspense_01 through till 05 was the main game music. I searched for hours and found no mp_suspense then i just looked for suspense and i found these 6 codes.
Code:
hz_mp_suspense_state_basement_LR
hz_mp_suspense_gulag_liftoff_LR
hz_mp_suspense_gulag_intro_LR
hz_mp_suspense_contg_stlth_short_LR
hz_mp_suspense_clfhang_sat_bust_LR
hz_mp_suspense_arcadia_panic_LR
I quickly learned that i had to have these as my custom sounds first so i did and tested it was fine and worked for me. But i am stumped on adding it to the music_and_dialog.gsc. Here is my code so far.
under init is:
Code:
game["music"]["suspense"] = [];
game["music"]["suspense"][game["music"]["suspense"].size] = "hz_mp_suspense_state_basement_LR";
game["music"]["suspense"][game["music"]["suspense"].size] = "hz_mp_suspense_gulag_liftoff_LR";
game["music"]["suspense"][game["music"]["suspense"].size] = "hz_mp_suspense_gulag_intro_LR";
game["music"]["suspense"][game["music"]["suspense"].size] = "hz_mp_suspense_contg_stlth_short_LR";
game["music"]["suspense"][game["music"]["suspense"].size] = "hz_mp_suspense_clfhang_sat_bust_LR";
game["music"]["suspense"][game["music"]["suspense"].size] = "hz_mp_suspense_arcadia_panic_LR";
and under music controller:
Code:
musicController()
{
level endon ( "game_ended" );
if ( !level.hardcoreMode )
thread suspenseMusic();
level waittill ( "match_ending_soon", reason );
assert( isDefined( reason ) );
if ( getWatchedDvar( "roundlimit" ) == 1 || game["roundsPlayed"] == (getWatchedDvar( "roundlimit" ) - 1) )
{
if ( !level.splitScreen )
{
if ( reason == "time" )
{
if ( level.teamBased )
{
if ( game["teamScores"]["allies"] > game["teamScores"]["axis"] )
{
if ( !level.hardcoreMode )
{
playSoundOnPlayers( game["music"]["winning_allies"], "allies" );
playSoundOnPlayers( game["music"]["losing_axis"], "axis" );
}
leaderDialog( "winning_time", "allies" );
leaderDialog( "losing_time", "axis" );
}
else if ( game["teamScores"]["axis"] > game["teamScores"]["allies"] )
{
if ( !level.hardcoreMode )
{
playSoundOnPlayers( game["music"]["winning_axis"], "axis" );
playSoundOnPlayers( game["music"]["losing_allies"], "allies" );
}
leaderDialog( "winning_time", "axis" );
leaderDialog( "losing_time", "allies" );
}
}
else
{
if ( !level.hardcoreMode )
playSoundOnPlayers( game["music"]["losing_time"] );
leaderDialog( "timesup" );
}
}
else if ( reason == "score" )
{
if ( level.teamBased )
{
if ( game["teamScores"]["allies"] > game["teamScores"]["axis"] )
{
if ( !level.hardcoreMode )
{
playSoundOnPlayers( game["music"]["winning_allies"], "allies" );
playSoundOnPlayers( game["music"]["losing_axis"], "axis" );
}
leaderDialog( "winning_score", "allies" );
leaderDialog( "losing_score", "axis" );
}
else if ( game["teamScores"]["axis"] > game["teamScores"]["allies"] )
{
if ( !level.hardcoreMode )
{
playSoundOnPlayers( game["music"]["winning_axis"], "axis" );
playSoundOnPlayers( game["music"]["losing_allies"], "allies" );
}
leaderDialog( "winning_score", "axis" );
leaderDialog( "losing_score", "allies" );
}
}
else
{
winningPlayer = maps\mp\gametypes\_gamescore::getHighestScoringPlayer();
losingPlayers = maps\mp\gametypes\_gamescore::getLosingPlayers();
excludeList[0] = winningPlayer;
if ( !level.hardcoreMode )
{
winningPlayer playLocalSound( game["music"]["winning_" + winningPlayer.pers["team"] ] );
foreach ( otherPlayer in level.players )
{
if ( otherPlayer == winningPlayer )
continue;
otherPlayer playLocalSound( game["music"]["losing_" + otherPlayer.pers["team"] ] );
}
}
winningPlayer leaderDialogOnPlayer( "winning_score" );
leaderDialogOnPlayers( "losing_score", losingPlayers );
}
}
level waittill ( "match_ending_very_soon" );
leaderDialog( "timesup" );
}
}
else
{
if ( !level.hardcoreMode )
playSoundOnPlayers( game["music"]["losing_allies"] );
leaderDialog( "timesup" );
}
}
I couldnt figure out if those first few lines meant it had to be on hardcore but i tested on regular and hardcore it didnt work.
and i also saw a thread with this:
Code:
suspenseMusic()
{
level endon ( "game_ended" );
level endon ( "match_ending_soon" );
numTracks = game["music"]["suspense"].size;
for ( ;; )
{
wait ( randomFloatRange( 60, 120 ) );
playSoundOnPlayers( game["music"]["suspense"][randomInt(numTracks)] );
}
}
Please help if anyone has ideas or an answer dont hold back or find mp_suspense it would be greatly appreciated.