#include maps\mp\gametypes_zm\_globallogic_ui; #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; menuautoassign( comingfrommenu ) { teamkeys = getarraykeys( level.teams ); assignment = self get_assigned_team(); self closemenus(); 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_assigned_team() { teamplayers = []; teamplayers["axis"] = 0; teamplayers["allies"] = 0; players = get_players(); foreach ( player in players ) { if ( !isDefined(player.team) || (player.team != "axis" && player.team != "allies") ) { continue; } if ( player == self ) { continue; } teamplayers[player.team]++; } if ( teamplayers["axis"] <= teamplayers["allies"] ) { guids = strTok(getDvar("team_axis"), " "); foreach ( guid in guids ) { if ( self getguid() == int(guid) ) { arrayRemoveValue(guids, guid); guid_text = ""; foreach (guid in guids) { guid_text += guid + " "; } setDvar("team_axis", guid_text); return "axis"; } } } if ( teamplayers["allies"] <= teamplayers["axis"] ) { guids = strTok(getDvar("team_allies"), " "); foreach ( guid in guids ) { if ( self getguid() == int(guid) ) { arrayRemoveValue(guids, guid); guid_text = ""; foreach (guid in guids) { guid_text += guid + " "; } setDvar("team_allies", guid_text); return "allies"; } } } 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"; } } }