Merge pull request #15 from Arkshine/fix-cs-spectator-issue

CS: Fix spectator team index not being set in specific situation
This commit is contained in:
Vincent Herbet 2014-05-15 16:09:09 +02:00
commit c0e3509e65
2 changed files with 20 additions and 0 deletions

View File

@ -112,6 +112,20 @@ void Client_TeamInfo(void* mValue)
g_players[index].team.assign(msg); g_players[index].team.assign(msg);
g_teamsIds.registerTeam(msg, -1); g_teamsIds.registerTeam(msg, -1);
g_players[index].teamId = g_teamsIds.findTeamId(msg); g_players[index].teamId = g_teamsIds.findTeamId(msg);
/**
* CS fix for SPECTATOR team.
* -
* When a player chooses spectator, ScoreInfo is sent before TeamInfo and with 0 as index.
* This means for the first round of first spectator, SPECTATOR name is not associated with its index.
* The following fix manually sets the team index when we hit SPECTATOR team.
*/
if (g_players[index].teamId == -1 && g_bmod_cstrike && !strcmp(msg, "SPECTATOR"))
{
g_players[index].teamId = 3;
g_teamsIds.registerTeam(msg, 3);
}
break; break;
} }
} }

View File

@ -1761,8 +1761,14 @@ int MNF_SetPlayerTeamInfo(int player, int teamid, const char *teamname)
pPlayer->teamId = teamid; pPlayer->teamId = teamid;
if (teamname != NULL) if (teamname != NULL)
{
pPlayer->team.assign(teamname); pPlayer->team.assign(teamname);
// Make sure team is registered, otherwise
// natives relying on team id will return wrong result.
g_teamsIds.registerTeam(teamname, teamid);
}
return 1; return 1;
} }