#define MAX_RANK_IN_TABLE 6// Максимально возможное количество названий для ранга
forward CallBack(playerid,rank_ids,frac_ids);
public CallBack(playerid,rank_ids,frac_ids)
{
new rows, fields;
cache_get_data(rows, fields, MysqlConnect);
cache_get_row_count(rows);
if(!rows)
return;
if(rows > MAX_RANK_IN_TABLE)
rows = MAX_RANK_IN_TABLE;
new bool:auto_s[MAX_RANK_IN_TABLE];
new number_ids[MAX_RANK_IN_TABLE];
new count;
for(new i = 0; i < rows; i++)
{
auto_s[i] = bool:cache_get_field_content_int(i, !"automat_assig", MysqlConnect);
number_ids[i] = cache_get_field_content_int(i, !"number_id", MysqlConnect);
if(auto_s[i] == true)
{
count++;
}
}
if(count > 0)// Если количество "разрешённых" рангов не равно нулю
{
new rand
= random(count
);// Получаем рандомный порядковый номер ранга for(new i = 0, c; i < MAX_RANK_IN_TABLE; i++)// По новой запускаем цикл
{
if(auto_s[i] == true)// Если ранг "разрешён"
{
if(c++ == rand)// Проверяем, равен ли его номер рандомному номеру, полученному ранее
{
printf("Назначаем на %d должность", i
); return;
}
}
}
}
else
{
print("Не назначаем никуда"); }
return;
}