Доброго времени суток. Прошу помощи в написании, запутался в системе)
Я пытался сделать такую вот интересную систему.
Отправляем запрос в базу данных, туда мы отправляем ид нашей фракции, и ранг который нам нужен будет.
Далее получаем ответ:
Как оказывается в базе данных есть такой номер фракции с таким же номером ранга.
НО
Их имеется трое образно говоря
Test1 | Ранг: 1 | Фракция: 1 | automat_assig: 1
Test2 | Ранг: 1 | Фракция: 1 | automat_assig: 1
Test3 | Ранг: 1 | Фракция: 1 | automat_assig: 0
Теперь нам нужно загрузить automat_assig
Она и есть наша главная цель.
- Загрузили.
Мы видим, что у нас 3 названия это (Test1,Test2,Test3) и у них имеется automat_assig: 1
Только у Test3 automat_assig: 0
Делаем следующий вывод, нам нужно рандомно назначит игрока на должности где: automat_assig: 1
Т.е назначит на Test1 или Test2 при этом всём сделать это нужно рандомно.
Перейдем к следующему этапу:
Если же Test1,Test3,имеют automat_assig: 0
А Test2 имеет automat_assig: 1
То назначаем игрока на должность Test2
Если же Test1,Test2,Test3 имеют: automat_assig: 0
Не назначаем игрока некуда.
PHP код:
new frac_id = 1;
new frac_rank = 1;
new mysql_Str[90];
format(mysql_Str,sizeof(mysql_Str), "SELECT * FROM `baza_danih` WHERE `id_frack`='%d' AND `rank_frack`='%d'", frac_id,frac_rank);
mysql_function_query(MysqlConnect,mysql_Str, true, "CallBack","ddd",playerid,frac_id,frac_rank);
Параметр: number_ids отвечает за то на какую должность ставить.
PHP код:
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);
new rand = random(2);
new bool:auto_s[6];
new number_ids[6];
for(new i = 0; i < rows; i++)
{
auto_s[frac_ids] = bool:cache_get_field_content_int(i, !"automat_assig", MysqlConnect);
number_ids[frac_ids] = cache_get_field_content_int(i, !"number_id", MysqlConnect);
}
if(auto_s[frac_ids] == true)
{
switch(rand)
{
case 0: printf("Назначаем на 0 должность");
case 1: printf("Назначаем на 1 должность");
}
}
return 1;
}