I maked to do it, but is this the optimal way?
This is only test code
Code:
public Action:TestSpawnsInfo(client, args)
{
new Handle:spawns = SC_GetSpawnsArray();
new Handle:teams = SC_GetTeamsArray();
new count = GetArraySize(teams);
new Float:spawn[3];
decl String:sTeam[3];
new random_numbers[10] = { 0, ...}, number_count = 0;
ReplyToCommand(client, "Dumping %d spawn point%s", count, count == 1 ? "" : "s");
for (new i = 0; i < count; ++i)
{
GetArrayArray(spawns, i, spawn);
GetArrayString(teams, i, sTeam, sizeof(sTeam));
if(GetClientTeam(client) == 3)
{
if(StrEqual(sTeam, "TT"))
continue
ReplyToCommand(client, "%2d - (%.2f, %.2f, %.2f) - %s", i, spawn[0], spawn[1], spawn[2], sTeam);
if (number_count < 10) {
random_numbers[number_count++] = i; // Store new number
}
else {
PrintToServer("* * * Cannot add more than 10 numbers * * *") // Exceeded maximum numbers
}
}
else
if(GetClientTeam(client) == 2)
{
if(StrEqual(sTeam, "CT"))
continue
ReplyToCommand(client, "%2d - (%.2f, %.2f, %.2f) - %s", i, spawn[0], spawn[1], spawn[2], sTeam);
if (number_count < 10) {
random_numbers[number_count++] = i; // Store new number
}
else {
PrintToServer("* * * Cannot add more than 10 numbers * * *") // Exceeded maximum numbers
}
}
}
new big = random_numbers[GetRandomInt(0, number_count-1)];
GetArrayArray(spawns, big, spawn);
GetArrayString(teams, big, sTeam, sizeof(sTeam));
ReplyToCommand(client, "End of spawn points dump", count);
ReplyToCommand(client, "%2d - (%.2f, %.2f, %.2f) - %s", big, spawn[0], spawn[1], spawn[2], sTeam);
return Plugin_Handled;
}
Code is work, but i don't know does is optimal