I can't figure it out.
I set autojoin only for CT team (Team Join Management). And want make balance-plugin, which transfer some CT player to Terrorists. I want play: [T] 3 vs. 9 [CT], 2 vs. 6, 4 vs. 12, 9 vs. 24, etc. (33,3% Players for Terrorists, rest — 67% for CTs).
I make this code:
PHP Code:
public check_players()
{
new players[32], plrsnum, pl, ts, cts
get_players(players, plrsnum, "h")
for(new j; j<plrsnum; j++)
{
pl = players[j]
new CsTeams:team
team = cs_get_user_team(pl)
if(team == CS_TEAM_T)
{
ts++
} else if(team == CS_TEAM_CT) {
cts++
}
}
new Float:ts_required_f
ts_required_f = cts / get_pcvar_float(g_cvar_t_count_div)
new ts_required = floatround(ts_required_f)
if(ts <= ts_required)
{
move_player(2) // CT to T
} else {
move_player(1) // T to CT
}
}
public move_player(team)
{
new players[32], plrsnum, pl
if(team == 1)
{
get_players(players, plrsnum, "he", "TERRORIST")
} else {
get_players(players, plrsnum, "he", "CT")
}
if(team == 1)
{
cs_set_user_team(players[plrsnum - 1], CS_TEAM_CT)
} else {
cs_set_user_team(players[plrsnum - 1], CS_TEAM_T)
}
}
But it's ugly and buggy. This code forever move "last" player to opposite team (9 vs. 23 — 8 vs. 24).
Maybe anyone have better solution?