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=441910)



Проверка на наличие администраторов в сети - LiMOH - 04.06.2013

Здравствуйте, умельцы. Не могли бы показать на примере, как сделать проверку на наличие хотя бы одного администратора онлайн?


Re: Проверка на наличие администраторов в сети - Stepashka - 04.06.2013

Во всех PEN, godfather и им подобным есть данная функция.
Просто кому-то лень искать.
Открыл первый который нашел, ему эдак лет 8:
pawn Код:
if (strcmp(cmd, "/admins", true) == 0)
    {
        SendClientMessage(playerid, COLOR_GRAD1, " Админы в онлайне:");
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] == 1 && PlayerInfo[i][pAdmin] < 1338)
            {
                format(string, 256, "Moderator: %s", PlayerInfo[i][Nick]);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
            if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] == 2 && PlayerInfo[i][pAdmin] < 1338)
            {
                format(string, 256, "Helper: %s", PlayerInfo[i][Nick]);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
            if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] == 3 && PlayerInfo[i][pAdmin] < 1338)
            {
                format(string, 256, "GameMaster: %s", PlayerInfo[i][Nick]);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
            if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] == 1337 && PlayerInfo[i][pAdmin] < 1338)
            {
                format(string, 256, "Admin: %s", PlayerInfo[i][Nick]);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
        }
        return 1;
    }



Re: Проверка на наличие администраторов в сети - Den_Bellik - 04.06.2013

PHP код:
new admins// Создаем переменную где будем подсчитывать количество админов.
for(new 0<= GetMaxPlayers(); a++) // Создаем цикл, с максимальным количеством игроков ( которое указанное в server.cfg )
{
    if(
IsPlayerConnected(a) == && admin[a] == 0) continue; // если игрок не присоединился или у него переменная admin равна 0, продолжаем дальше цикл ( то есть с начала )
    
printf("Админ, ид %d, уровень %d"aadmin[a]); // Выводим в консоль ид админа и лвл
    
admins++; // Добавляем +1 в переменную
}
printf("Всего администраторов: %d"admins);// Выводим в консоль сколько админов всего 
Ну вот и все) Думаю такой вариант тебе пойдет.

И да, это должна по идее быть глобальная переменная admin...
Будет вот так:

PHP код:
new admin[MAX_PLAYERS]; // или вместо MAX_PLAYERS - свое количество игроков. 



Re: Проверка на наличие администраторов в сети - LiMOH - 04.06.2013

Вы не совсем поняли, мне надо не вывести список админов онлайн, а узнать, есть ли хоть один админ в сети. Знаю, можно как-то подстроить под эти нужды ваши примеры, но никак не соображу.


Re: Проверка на наличие администраторов в сети - Manowar - 04.06.2013

PHP код:
stock IsOnlineAdmins() {
    for(new 
0<= GetMaxPlayersi++)
    {
    if(
IsPlayerConnected(i) && PlayerInfo[i][pAdmin] >= 1)
    {
    break;
    return 
1;
    }
    }
    return 
0;

Проверка
PHP код:
If(IsOnlineAdmins())//Вернет 1 если есть хоть 1 администратор онлайн, вернет 0 если нет администраторов онлайн 



Re: Проверка на наличие администраторов в сети - Stepashka - 04.06.2013

Quote:
Originally Posted by Manowar
Посмотреть сообщение
PHP код:
stock IsOnlineAdmins() {
    for(new 
0<= GetMaxPlayersi++)
    {
    if(
IsPlayerConnected(i) && PlayerInfo[i][pAdmin] >= 1)
    {
    break;
    return 
1;
    }
    }
    return 
0;

Проверка
PHP код:
If(IsOnlineAdmins())//Вернет 1 если есть хоть 1 администратор онлайн, вернет 0 если нет администраторов онлайн 
Твоя функция всегда будет возвращать 0.
pawn Код:
IsOnlineAdmins() {
    for (new i; i < GetMaxPlayers(); i++) {
        if (IsPlayerConnected(i) && PlayerInfo[i][pAdmin] > 0) return 1;
    }
    return 0;
}



Re: Проверка на наличие администраторов в сети - LiMOH - 04.06.2013

Спасибо.


Re: Проверка на наличие администраторов в сети - stabker - 05.06.2013

А еще лучше, создать переменную и ++/-- при авторизации/выходе