this look funny... re-order your target_list array
Code:
public Action:Command_Respawn(client, args)
{
if (args < 1)
{
ReplyToCommand(client, "[SM] Usage: sm_respawn <#userid|name>");
return Plugin_Handled;
}
new String:arg[65];
GetCmdArg(1, arg, sizeof(arg));
new String:target_name[MAX_TARGET_LENGTH];
new target_list[MaxClients], target_count, bool:tn_is_ml;
target_count = ProcessTargetString(
arg,
client,
target_list,
MaxClients,
COMMAND_FILTER_DEAD,
target_name,
sizeof(target_name),
tn_is_ml);
if(target_count <= COMMAND_TARGET_NONE) // If we don't have dead players
{
ReplyToTargetError(client, target_count);
return Plugin_Handled;
}
// Team filter dead players, re-order target_list array with new_target_count
new target, team, new_target_count;
for (new i = 0; i < target_count; i++)
{
target = target_list[i];
team = GetClientTeam(target);
if(team >= 2)
{
target_list[new_target_count] = target; // re-order
new_target_count++;
}
}
if(new_target_count == COMMAND_TARGET_NONE) // No dead players from team 2 and 3
{
ReplyToTargetError(client, new_target_count);
return Plugin_Handled;
}
target_count = new_target_count; // re-set new value.
if (tn_is_ml)
{
ShowActivity2(client, "[SM] ", "%t", "Toggled respawn on target", target_name);
}
else
{
ShowActivity2(client, "[SM] ", "%t", "Toggled respawn on target", "_s", target_name);
}
for (new i = 0; i < target_count; i++)
{
RespawnPlayer(client, target_list[i]);
}
return Plugin_Handled;
}