}
if(score)
if(teamscores_label(scorefield) != "")
- s.SendFlags |= (2 ** scorefield);
+ s.SendFlags |= BIT(scorefield);
return (s.(teamscores(scorefield)) += score);
}
WriteString(MSG_ENTITY, teamscores_label(i));
WriteByte(MSG_ENTITY, teamscores_flags(i));
}
+ // prevent sending the welcome message again when score types are sent again because the scoring system has changed
+ // it can happen in some game modes like Race when the qualyfing session ends and the race starts
+ bool welcome_msg_too = (!CS(to) || time < CS(to).jointime + 5);
+ WriteByte(MSG_ENTITY, welcome_msg_too);
+ // welcome message is sent here because it needs to know the gametype
+ if (welcome_msg_too)
+ SendWelcomeMessage(to, MSG_ENTITY);
return true;
}
FOREACH(Scores, true, {
if(sk.(scores(it)) != 0)
if(scores_label(it) != "")
- sk.SendFlags |= (2 ** (i % 16));
+ sk.SendFlags |= BIT(i % 16);
if(i != SP_ELO.m_id)
sk.(scores(it)) = 0;
});
FOREACH(Scores, true, {
if(sk.(scores(it)) != 0)
if(scores_label(it) != "")
- sk.SendFlags |= (2 ** (i % 16));
+ sk.SendFlags |= BIT(i % 16);
if(i != SP_ELO.m_id)
sk.(scores(it)) = 0;
});
{
if(sk.(teamscores(j)) != 0)
if(teamscores_label(j) != "")
- sk.SendFlags |= (2 ** j);
+ sk.SendFlags |= BIT(j);
sk.(teamscores(j)) = 0;
}
}
return s.(scores(scorefield));
}
if(scores_label(scorefield) != "")
- s.SendFlags |= (2 ** (scorefield.m_id % 16));
+ s.SendFlags |= BIT(scorefield.m_id % 16);
if(!warmup_stage)
PlayerStats_GameReport_Event_Player(s.owner, strcat(PLAYERSTATS_TOTAL, scores_label(scorefield)), score);
s.(scores(scorefield)) += score;
return oldscore;
if(scores_label(scorefield) != "")
- s.SendFlags |= (2 ** (scorefield.m_id % 16));
+ s.SendFlags |= BIT(scorefield.m_id % 16);
s.(scores(scorefield)) = score;
return s.(scores(scorefield));
}
s = strcat(s, ":P", ftos(cvar_purechanges_count));
s = strcat(s, ":S", ftos(nJoinAllowed(this, NULL)));
s = strcat(s, ":F", ftos(serverflags));
+ s = strcat(s, ":T", sv_termsofservice_url_escaped);
s = strcat(s, ":M", modname);
s = strcat(s, "::", GetPlayerScoreString(NULL, (fullstatus ? 1 : 2)));
{
s = GetPlayerScoreString(it, 1);
s = strcat(s, IS_REAL_CLIENT(it) ? ":human" : ":bot");
- if(!IS_PLAYER(it) && !MUTATOR_CALLHOOK(GetPlayerStatus, it))
+ if(!(IS_PLAYER(it) || INGAME_JOINED(it)))
s = strcat(s, ":spectator");
}
else
{
- if (IS_PLAYER(it) || MUTATOR_CALLHOOK(GetPlayerStatus, it))
+ if (IS_PLAYER(it) || INGAME_JOINED(it))
s = GetPlayerScoreString(it, 2);
else
s = "-666";