Неправильно работает проверка в цикле
#1

Код:
for (new i; i < USERSLOTS; i++)
        {
            if (IsPlayerConnected(i)) {
            if(PlayerInfo[i][Level] >= 1) return SendClientMessage(playerid, COLOR_SYS, "SERVER: На сервере есть администраторы. Используй /report");}
        }
Проблема в том что даже когда на сервере нет администраторов пишет что есть, ну как бы если при выполнении цикла хоть один раз нашло администратора значение не стирается при следующем вводе команды
Reply
#2

Не стирается что?
Что бы что-то не стиралось, это что-то должно сперва записываться, тут ни чего ни куда не записывается. Отсюда резонный вопрос: вы вообще в курсе как это работает, или просто случайно форумом ошиблись?
Reply
#3

Я проверяю находятся ли на сервере администраторы выполняя цикл на всех игроков, если есть администратор команда должна завершаться согласно этому участку кода, проблема в том что при первом вводе команды при отсутствии администраторов команда минует цикл верно и удачно, далее при входе администратора согласно проверке команда останавливается на этом участке, но когда администратор выходит и повторно вводя команду она завершается на этом участке, хотя должна миновать тк администраторов нет
Reply
#4

PlayerInfo[i][Level] очищай при дисконекте игрока.
Reply
#5

Quote:
Originally Posted by White_116
Посмотреть сообщение
PlayerInfo[i][Level] очищай при дисконекте игрока.
При выходе игрока не обязательно обнулять, ведь тут стоит проверка IsPlayerConnected, а вот при заходе нужно.
Reply
#6

PlayerInfo[][Level] точно ли отвечает за уровень администратора? Если мод построен на GF, то там другое значение enum'а надо....
Reply
#7

Quote:
Originally Posted by DrSlett
Посмотреть сообщение
При выходе игрока не обязательно обнулять, ведь тут стоит проверка IsPlayerConnected, а вот при заходе нужно.
Человек дело говорит
Reply
#8

Человек проверяет уровень игрока а не админа. pAdmin юзай если конечно же у тебя ГФ
Reply
#9

Код:
new test;
for(new i;i<USERSLOTS;i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[i][Level]==0)continue;
test++;
SendClientMessage(playerid,COLOR_SYS,"На сервер есть адм!");
break;
}
if(test==0)return SendClientMessage(playerid,COLOR_SYS,"На сервере нет адм!");
test=0;
Reply
#10

Quote:
Originally Posted by Hawkins
Посмотреть сообщение
Человек проверяет уровень игрока а не админа. pAdmin юзай если конечно же у тебя ГФ
Нет у меня не рп мод, pLevel у меня уровень администратора, я попробую последний вариант, но все же не понимаю почему через раз такой баг, ведь по сути все верно, я менял значение MAX_PLAYERS может быть из-за этого ?
#undef MAX_PLAYERS
#define MAX_PLAYERS 50
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)