From: TimePath Date: Thu, 24 Dec 2015 00:56:28 +0000 (+0000) Subject: Merge branch 'terencehill/connection_msg_fix' into 'master' X-Git-Tag: xonotic-v0.8.2~1428 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=f2741730af3cbdb03dc3a3e1bd10c1b881f5a75d;hp=-c Merge branch 'terencehill/connection_msg_fix' into 'master' connection msg fix See merge request !269 --- f2741730af3cbdb03dc3a3e1bd10c1b881f5a75d diff --combined qcsrc/server/teamplay.qc index 15d33f5341,60116bada2..1cd11b6854 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@@ -308,24 -308,26 +308,24 @@@ float PlayerValue(entity p // teams that are allowed will now have their player counts stored in c1...c4 void GetTeamCounts(entity ignore) { - entity head; float value, bvalue; // now count how many players are on each team already // FIXME: also find and memorize the lowest-scoring bot on each team (in case players must be shuffled around) // also remember the lowest-scoring player - FOR_EACH_CLIENT(head) - { + FOREACH_CLIENT(true, LAMBDA( float t; - if(IS_PLAYER(head) || head.caplayer) - t = head.team; - else if(head.team_forced > 0) - t = head.team_forced; // reserve the spot + if(IS_PLAYER(it) || it.caplayer) + t = it.team; + else if(it.team_forced > 0) + t = it.team_forced; // reserve the spot else continue; - if(head != ignore)// && head.netname != "") + if(it != ignore)// && it.netname != "") { - value = PlayerValue(head); - if(IS_BOT_CLIENT(head)) + value = PlayerValue(it); + if(IS_BOT_CLIENT(it)) bvalue = value; else bvalue = 0; @@@ -362,7 -364,7 +362,7 @@@ } } } - } + )); // if the player who has a forced team has not joined yet, reserve the spot if(autocvar_g_campaign) @@@ -581,11 -583,19 +581,19 @@@ void SV_ChangeTeam(float _color float scolor, dcolor, steam, dteam; //, dbotcount, scount, dcount; // in normal deathmatch we can just apply the color and we're done - if(!teamplay) { + if(!teamplay) SetPlayerColors(self, _color); + + if(!IS_CLIENT(self)) + { + // since this is an engine function, and gamecode doesn't have any calls earlier than this, do the connecting message here + Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_CONNECTING, self.netname); return; } + if(!teamplay) + return; + scolor = self.clientcolors & 0x0F; dcolor = _color & 0x0F; @@@ -645,10 -655,6 +653,6 @@@ TeamchangeFrags(self); } - // since this is an engine function, and gamecode doesn't have any calls earlier than this, do the connecting message here - if(!IS_CLIENT(self)) - Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_CONNECTING, self.netname); - MUTATOR_CALLHOOK(Player_ChangeTeam, self, steam, dteam); SetPlayerTeam(self, dteam, steam, !IS_CLIENT(self));