SA-MP Forums Archive
Неправильно работает проверка в цикле - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Неправильно работает проверка в цикле (/showthread.php?tid=384385)



Неправильно работает проверка в цикле - 14_KaPaT - 11.10.2012

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


Re: Неправильно работает проверка в цикле - Stepashka - 11.10.2012

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


Re: Неправильно работает проверка в цикле - 14_KaPaT - 11.10.2012

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


Re: Неправильно работает проверка в цикле - White_116 - 11.10.2012

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


Re: Неправильно работает проверка в цикле - DrSlett - 11.10.2012

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


Re: Неправильно работает проверка в цикле - SDraw - 11.10.2012

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


Re: Неправильно работает проверка в цикле - Stepashka - 11.10.2012

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


Re: Неправильно работает проверка в цикле - Hawkins - 12.10.2012

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


Re: Неправильно работает проверка в цикле - Maikkk - 12.10.2012

Код:
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;



Re: Неправильно работает проверка в цикле - 14_KaPaT - 14.10.2012

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