X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcommand%2Fcmd.qc;h=0e6781e374120ba2c964ff7edd444715cb13b729;hb=e17ff6cb06fcee6555889b108b2c2bfe3dae30fa;hp=47e94f52034bf8b1a0255c8ca76b419d9772d891;hpb=1852dd0b6c285f4c8d44e08efb6c9ea0709658eb;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/command/cmd.qc b/qcsrc/server/command/cmd.qc index 47e94f520..0e6781e37 100644 --- a/qcsrc/server/command/cmd.qc +++ b/qcsrc/server/command/cmd.qc @@ -10,13 +10,15 @@ #include "../campaign.qh" #include "../cheats.qh" +#include "../client.qh" #include "../player.qh" #include "../ipban.qh" #include "../mapvoting.qh" #include "../scores.qh" #include "../teamplay.qh" -#include "../mutators/_mod.qh" +#include +#include #ifdef SVQC #include @@ -30,7 +32,7 @@ #include #include #include -#include +#include #include @@ -40,8 +42,6 @@ #include -void ClientKill_TeamChange(entity this, float targetteam); // 0 = don't change, -1 = auto, -2 = spec - // ========================================================= // Server side networked commands code, reworked by Samual // Last updated: December 28th, 2011 @@ -165,8 +165,6 @@ void ClientCommand_mv_getpicture(entity caller, float request, float argc) // i } } -bool joinAllowed(entity this); -void Join(entity this); void ClientCommand_join(entity caller, float request) { switch (request) @@ -248,12 +246,14 @@ void ClientCommand_ready(entity caller, float request) // todo: anti-spam for t if (caller.ready) // toggle { caller.ready = false; - bprint(playername(caller, false), "^2 is ^1NOT^2 ready\n"); + if(IS_PLAYER(caller) || caller.caplayer == 1) + bprint(playername(caller, false), "^2 is ^1NOT^2 ready\n"); } else { caller.ready = true; - bprint(playername(caller, false), "^2 is ready\n"); + if(IS_PLAYER(caller) || caller.caplayer == 1) + bprint(playername(caller, false), "^2 is ready\n"); } // cannot reset the game while a timeout is active! @@ -394,13 +394,16 @@ void ClientCommand_selectteam(entity caller, float request, float argc) if ((selection != -1) && autocvar_g_balance_teams && autocvar_g_balance_teams_prevent_imbalance) { - CheckAllowedTeams(caller); - GetTeamCounts(caller); - if ((BIT(Team_TeamToNumber(selection) - 1) & FindBestTeams(caller, false)) == 0) + entity balance = TeamBalance_CheckAllowedTeams(caller); + TeamBalance_GetTeamCounts(balance, caller); + if ((Team_IndexToBit(Team_TeamToIndex(selection)) & + TeamBalance_FindBestTeams(balance, caller, false)) == 0) { Send_Notification(NOTIF_ONE, caller, MSG_INFO, INFO_TEAMCHANGE_LARGERTEAM); + TeamBalance_Destroy(balance); return; } + TeamBalance_Destroy(balance); } ClientKill_TeamChange(caller, selection); if (!IS_PLAYER(caller))