mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-07-03 18:39:34 -05:00
Encounter: change spawn point on team change during pregame
Encounter: add ready up for team change option
This commit is contained in:
@ -129,7 +129,6 @@ menuautoassign( comingfrommenu )
|
|||||||
self.ffateam = assignment;
|
self.ffateam = assignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.joined_team = true;
|
|
||||||
self notify( "joined_team" );
|
self notify( "joined_team" );
|
||||||
level notify( "joined_team" );
|
level notify( "joined_team" );
|
||||||
self notify( "end_respawn" );
|
self notify( "end_respawn" );
|
||||||
|
@ -565,7 +565,7 @@ fade_out_intro_screen_zm( hold_black_time, fade_out_time, destroyed_afterwards )
|
|||||||
if ( isDedicated() && isDefined( level.pregame_minplayers ) )
|
if ( isDedicated() && isDefined( level.pregame_minplayers ) )
|
||||||
{
|
{
|
||||||
pregame_hud = createServerFontString( "objective", 1.5 );
|
pregame_hud = createServerFontString( "objective", 1.5 );
|
||||||
pregame_hud setPoint( "CENTER", "CENTER", 0, -40 );
|
pregame_hud setPoint( "CENTER", "CENTER", 0, -100 );
|
||||||
pregame_hud.foreground = 1;
|
pregame_hud.foreground = 1;
|
||||||
pregame_hud.color = ( 1, 1, 1 );
|
pregame_hud.color = ( 1, 1, 1 );
|
||||||
pregame_hud.hidewheninmenu = true;
|
pregame_hud.hidewheninmenu = true;
|
||||||
@ -573,6 +573,12 @@ fade_out_intro_screen_zm( hold_black_time, fade_out_time, destroyed_afterwards )
|
|||||||
num_players = get_number_of_valid_players();
|
num_players = get_number_of_valid_players();
|
||||||
while ( num_players < level.pregame_minplayers )
|
while ( num_players < level.pregame_minplayers )
|
||||||
{
|
{
|
||||||
|
players = get_players();
|
||||||
|
for ( i = 0; i < players.size; i++ )
|
||||||
|
{
|
||||||
|
players[i] freezecontrols( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
num_waiting_for = level.pregame_minplayers - num_players;
|
num_waiting_for = level.pregame_minplayers - num_players;
|
||||||
|
|
||||||
if (level.intermission)
|
if (level.intermission)
|
||||||
@ -593,12 +599,60 @@ fade_out_intro_screen_zm( hold_black_time, fade_out_time, destroyed_afterwards )
|
|||||||
num_players = get_number_of_valid_players();
|
num_players = get_number_of_valid_players();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( level.allow_teamchange )
|
||||||
|
{
|
||||||
|
ready_up_hud = createServerFontString( "objective", 1.5 );
|
||||||
|
ready_up_hud setPoint( "CENTER", "CENTER", 0, -120 );
|
||||||
|
ready_up_hud.foreground = 1;
|
||||||
|
ready_up_hud.color = ( 1, 1, 1 );
|
||||||
|
ready_up_hud.hidewheninmenu = true;
|
||||||
|
ready_up_hud setText("PRESS ^3[{+gostand}]^7 OR ^3[{+activate}]^7 TO READY UP");
|
||||||
|
|
||||||
|
num_ready = 0;
|
||||||
|
players = get_players();
|
||||||
|
while ( num_ready < players.size )
|
||||||
|
{
|
||||||
|
for ( i = 0; i < players.size; i++ )
|
||||||
|
{
|
||||||
|
players[i] freezecontrols( 1 );
|
||||||
|
|
||||||
|
if ( players[i] jumpbuttonpressed() || players[i] usebuttonpressed() )
|
||||||
|
{
|
||||||
|
players[i].ready = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( is_true(players[i].ready) )
|
||||||
|
{
|
||||||
|
num_ready++;
|
||||||
|
players[i].statusicon = "menu_mp_killstreak_select";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
players[i].statusicon = "menu_mp_contract_expired";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
num_waiting_for = players.size - num_ready;
|
||||||
|
|
||||||
|
pregame_hud setText("WAITING FOR " + num_waiting_for + " PLAYERS TO BE READY [" + num_ready + "/" + players.size + "]");
|
||||||
|
|
||||||
|
wait 0.05;
|
||||||
|
|
||||||
|
num_ready = 0;
|
||||||
|
players = get_players();
|
||||||
|
}
|
||||||
|
|
||||||
|
ready_up_hud destroy();
|
||||||
|
}
|
||||||
|
|
||||||
pregame_hud destroy();
|
pregame_hud destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
players = get_players();
|
players = get_players();
|
||||||
for ( i = 0; i < players.size; i++ )
|
for ( i = 0; i < players.size; i++ )
|
||||||
{
|
{
|
||||||
|
players[i].statusicon = "";
|
||||||
|
|
||||||
if ( !( isdefined( level.host_ended_game ) && level.host_ended_game ) )
|
if ( !( isdefined( level.host_ended_game ) && level.host_ended_game ) )
|
||||||
{
|
{
|
||||||
if ( isdefined( level.player_movement_suppressed ) )
|
if ( isdefined( level.player_movement_suppressed ) )
|
||||||
@ -1055,7 +1109,7 @@ getfreespawnpoint( spawnpoints, player )
|
|||||||
if ( !isdefined( self.playernum ) )
|
if ( !isdefined( self.playernum ) )
|
||||||
{
|
{
|
||||||
num = 0;
|
num = 0;
|
||||||
players = get_players();
|
players = get_players(self.team);
|
||||||
|
|
||||||
for(num = 0; num < 4; num++)
|
for(num = 0; num < 4; num++)
|
||||||
{
|
{
|
||||||
@ -1063,7 +1117,7 @@ getfreespawnpoint( spawnpoints, player )
|
|||||||
|
|
||||||
foreach(player in players)
|
foreach(player in players)
|
||||||
{
|
{
|
||||||
if(is_true(player.joined_team) && player != self && player.team == self.team && player.playernum == num)
|
if(player != self && isdefined(player.playernum) && player.playernum == num)
|
||||||
{
|
{
|
||||||
valid_num = false;
|
valid_num = false;
|
||||||
break;
|
break;
|
||||||
|
@ -233,21 +233,7 @@ menu_onmenuresponse()
|
|||||||
{
|
{
|
||||||
self closemenu();
|
self closemenu();
|
||||||
self closeingamemenu();
|
self closeingamemenu();
|
||||||
|
self thread do_team_change();
|
||||||
if ( !level.allow_teamchange )
|
|
||||||
{
|
|
||||||
teamplayers = countplayers( self.pers["team"] );
|
|
||||||
otherteamplayers = countplayers( getotherteam( self.pers["team"] ) );
|
|
||||||
|
|
||||||
if ( teamplayers - 1 <= otherteamplayers )
|
|
||||||
{
|
|
||||||
self iprintln( "Can only change teams if unbalanced." );
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
set_team( getotherteam( self.pers["team"] ) );
|
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -386,6 +372,68 @@ menu_onmenuresponse()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do_team_change()
|
||||||
|
{
|
||||||
|
if ( !level.allow_teamchange )
|
||||||
|
{
|
||||||
|
teamplayers = countplayers( self.pers["team"] );
|
||||||
|
otherteamplayers = countplayers( getotherteam( self.pers["team"] ) );
|
||||||
|
|
||||||
|
if ( teamplayers - 1 <= otherteamplayers )
|
||||||
|
{
|
||||||
|
self iprintln( "Can only change teams if unbalanced." );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.playernum = undefined;
|
||||||
|
|
||||||
|
level notify( "team_change", self.pers["team"] );
|
||||||
|
|
||||||
|
num = 0;
|
||||||
|
valid_num = false;
|
||||||
|
other_team = getotherteam(self.pers["team"]);
|
||||||
|
players = get_players(other_team);
|
||||||
|
|
||||||
|
for(num = 0; num < 4; num++)
|
||||||
|
{
|
||||||
|
valid_num = true;
|
||||||
|
|
||||||
|
foreach(player in players)
|
||||||
|
{
|
||||||
|
if(isdefined(player.playernum) && player.playernum == num)
|
||||||
|
{
|
||||||
|
valid_num = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(valid_num)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!valid_num)
|
||||||
|
{
|
||||||
|
self iprintln( "Waiting for other player to change teams." );
|
||||||
|
|
||||||
|
level waittill( "team_change", team );
|
||||||
|
|
||||||
|
if (team == self.pers["team"])
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set_team( getotherteam( self.pers["team"] ) );
|
||||||
|
|
||||||
|
if ( !flag( "initial_blackscreen_passed" ) )
|
||||||
|
{
|
||||||
|
self [[ level.spawnplayer ]]();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
set_team(team)
|
set_team(team)
|
||||||
{
|
{
|
||||||
if ( team == "axis" )
|
if ( team == "axis" )
|
||||||
|
@ -54,6 +54,9 @@ init()
|
|||||||
level.player_spawn_sound = "zmb_spawn_powerup";
|
level.player_spawn_sound = "zmb_spawn_powerup";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
precacheStatusIcon( "menu_mp_killstreak_select" );
|
||||||
|
precacheStatusIcon( "menu_mp_contract_expired" );
|
||||||
|
|
||||||
setDvar("ui_scorelimit", 1);
|
setDvar("ui_scorelimit", 1);
|
||||||
|
|
||||||
setteamscore("axis", 0);
|
setteamscore("axis", 0);
|
||||||
|
Reference in New Issue
Block a user