All is about "Switch" thing. That switch you have in "round_end" event, is messy, and is not accurate. Use this instead.
Code:
public swap_teams()
{
new players[32], num;
get_players(players, num);
new player;
for(new i = 0; i < num; i++)
{
player = players[i];
if(!is_user_connected(player))
continue;
if(cs_get_user_team(player) == CS_TEAM_T)
cs_set_user_team(player, CS_TEAM_CT);
else if(cs_get_user_team(player) == CS_TEAM_CT)
cs_set_user_team(player, CS_TEAM_T);
}
}
__________________