mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-12 08:08:00 -05:00
170 lines
4.7 KiB
Plaintext
170 lines
4.7 KiB
Plaintext
#include maps\mp\_utility;
|
|
#include maps\mp\gametypes_zm\_hud_util;
|
|
#include maps\mp\gametypes_zm\_globallogic;
|
|
#include maps\mp\gametypes_zm\_spectating;
|
|
#include maps\mp\gametypes_zm\_globallogic_player;
|
|
#include maps\mp\gametypes_zm\_globallogic_ui;
|
|
|
|
menuautoassign( comingfrommenu )
|
|
{
|
|
teamkeys = getarraykeys( level.teams );
|
|
assignment = teamkeys[randomint( teamkeys.size )];
|
|
self closemenus();
|
|
|
|
if ( isdefined( level.forceallallies ) && level.forceallallies )
|
|
assignment = "allies";
|
|
else if ( level.teambased )
|
|
{
|
|
if ( getdvarint( "party_autoteams" ) == 1 )
|
|
{
|
|
if ( level.allow_teamchange == "1" && ( self.hasspawned || comingfrommenu ) )
|
|
assignment = "";
|
|
else
|
|
{
|
|
team = getassignedteam( self );
|
|
|
|
switch ( team )
|
|
{
|
|
case 1:
|
|
assignment = teamkeys[1];
|
|
break;
|
|
case 2:
|
|
assignment = teamkeys[0];
|
|
break;
|
|
case 3:
|
|
assignment = teamkeys[2];
|
|
break;
|
|
case 4:
|
|
if ( !isdefined( level.forceautoassign ) || !level.forceautoassign )
|
|
{
|
|
self setclientscriptmainmenu( game["menu_class"] );
|
|
return;
|
|
}
|
|
default:
|
|
assignment = "";
|
|
|
|
if ( isdefined( level.teams[team] ) )
|
|
assignment = team;
|
|
else if ( team == "spectator" && !level.forceautoassign )
|
|
{
|
|
self setclientscriptmainmenu( game["menu_class"] );
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( assignment == "" || getdvarint( "party_autoteams" ) == 0 )
|
|
{
|
|
if ( sessionmodeiszombiesgame() )
|
|
{
|
|
if (assignment == "")
|
|
{
|
|
guids = strTok(getDvar("team_axis"), " ");
|
|
foreach (guid in guids)
|
|
{
|
|
if (self getguid() == int(guid))
|
|
{
|
|
assignment = "axis";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (assignment == "")
|
|
{
|
|
guids = strTok(getDvar("team_allies"), " ");
|
|
foreach (guid in guids)
|
|
{
|
|
if (self getguid() == int(guid))
|
|
{
|
|
assignment = "allies";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (assignment == "")
|
|
{
|
|
assignment = get_lowest_team();
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( assignment == self.pers["team"] && ( self.sessionstate == "playing" || self.sessionstate == "dead" ) )
|
|
{
|
|
self beginclasschoice();
|
|
return;
|
|
}
|
|
}
|
|
else if ( getdvarint( "party_autoteams" ) == 1 )
|
|
{
|
|
if ( level.allow_teamchange != "1" || !self.hasspawned && !comingfrommenu )
|
|
{
|
|
team = getassignedteam( self );
|
|
|
|
if ( isdefined( level.teams[team] ) )
|
|
assignment = team;
|
|
else if ( team == "spectator" && !level.forceautoassign )
|
|
{
|
|
self setclientscriptmainmenu( game["menu_class"] );
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
self.pers["team"] = assignment;
|
|
self.team = assignment;
|
|
self.pers["class"] = undefined;
|
|
self.class = undefined;
|
|
self.pers["weapon"] = undefined;
|
|
self.pers["savedmodel"] = undefined;
|
|
self updateobjectivetext();
|
|
|
|
if ( level.teambased )
|
|
self.sessionteam = assignment;
|
|
else
|
|
{
|
|
self.sessionteam = "none";
|
|
self.ffateam = assignment;
|
|
}
|
|
|
|
self notify( "joined_team" );
|
|
level notify( "joined_team" );
|
|
self notify( "end_respawn" );
|
|
self beginclasschoice();
|
|
self setclientscriptmainmenu( game["menu_class"] );
|
|
}
|
|
|
|
get_lowest_team()
|
|
{
|
|
teamplayers = [];
|
|
teamplayers["axis"] = countplayers("axis");
|
|
teamplayers["allies"] = countplayers("allies");
|
|
|
|
// don't count self
|
|
teamplayers[self.team]--;
|
|
|
|
if ( teamplayers["allies"] == teamplayers["axis"] )
|
|
{
|
|
if ( randomint( 100 ) >= 50 )
|
|
{
|
|
return "axis";
|
|
}
|
|
else
|
|
{
|
|
return "allies";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ( teamplayers["allies"] > teamplayers["axis"] )
|
|
{
|
|
return "axis";
|
|
}
|
|
else
|
|
{
|
|
return "allies";
|
|
}
|
|
}
|
|
} |