закрыть диалог авторизации, если аккаунт заблокирован

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
13 Июл 2024
Сообщения
16
здравствуйте, подскажите как убрать диалог авторизации, если аккаунт игрока заблокирован. я сейчас проверял, и вышло так:
sa-mp-107.png

аккаунт заблокирован, и при входе на него сразу кикает, но не показывает диалог блокировки, вместо диалога блокировки, вылезает диалог авторизации, как исправить?
 
Пользователь
Регистрация
13 Июл 2024
Сообщения
16
@Chief_Selectrum, сделать проверку на блокировку аккаунта при показе диалога авторизации/регистрации.
можно по подробнее? снизу код проверки блокировки
Pawn:
CB:check_banned(playerid)
{
    new rows;
    cache_get_row_count(rows);
    if(!rows) return 1;

    new NAME_ADMIN[24], NAME_PLAYER[24], BAN_REASON[32], UNBAN_DATA = 0;

    cache_get_value_index(0, 1, NAME_PLAYER, 24);
    cache_get_value_index(0, 2, NAME_ADMIN, 24);
    cache_get_value_index(0, 3, BAN_REASON, 24);
    cache_get_value_index_int(0, 4, UNBAN_DATA);
    if(UNBAN_DATA > gettime())
    {
        new date_ban[6];
        gmtime(UNBAN_DATA + 10800, date_ban[0], date_ban[1], date_ban[2], date_ban[3], date_ban[4], date_ban[5]);

        STRING_GLOBAL[0] = EOS;
        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), ""W"Ваш игровой аккаунт:\t"NO"%s\n\
    "W"Разблокировка:\t\t"NO"%02d/%02d/%04d %02d:%02d:%02d\n\
    "W"Причина:"NO"\t\t\t%s\n\
    "W"Заблокировал:"NO"\t\t%s", NAME_PLAYER, date_ban[2], date_ban[1], date_ban[0], date_ban[3], date_ban[4], date_ban[5], BAN_REASON, NAME_ADMIN);
        ShowPlayerDialog(playerid, DIALOG_BAN, DSM, ""P"Этот аккаунт заблокирован", STRING_GLOBAL, "Закрыть", "");
        Kick(playerid);
        return 1;
    }
    else
    {

        MYSQL_GLOBAL[0] = EOS;
        mysql_format(connects, MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "DELETE FROM `ban` WHERE `Name` = '%s' LIMIT 1", player_name[playerid]);
        mysql_tquery(connects, MYSQL_GLOBAL);
    }
    return 1;
}
 
Активный
Пользователь
Регистрация
20 Июл 2024
Сообщения
223
можно по подробнее? снизу код проверки блокировки
Pawn:
CB:check_banned(playerid)
{
    new rows;
    cache_get_row_count(rows);
    if(!rows) return 1;

    new NAME_ADMIN[24], NAME_PLAYER[24], BAN_REASON[32], UNBAN_DATA = 0;

    cache_get_value_index(0, 1, NAME_PLAYER, 24);
    cache_get_value_index(0, 2, NAME_ADMIN, 24);
    cache_get_value_index(0, 3, BAN_REASON, 24);
    cache_get_value_index_int(0, 4, UNBAN_DATA);
    if(UNBAN_DATA > gettime())
    {
        new date_ban[6];
        gmtime(UNBAN_DATA + 10800, date_ban[0], date_ban[1], date_ban[2], date_ban[3], date_ban[4], date_ban[5]);

        STRING_GLOBAL[0] = EOS;
        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), ""W"Ваш игровой аккаунт:\t"NO"%s\n\
    "W"Разблокировка:\t\t"NO"%02d/%02d/%04d %02d:%02d:%02d\n\
    "W"Причина:"NO"\t\t\t%s\n\
    "W"Заблокировал:"NO"\t\t%s", NAME_PLAYER, date_ban[2], date_ban[1], date_ban[0], date_ban[3], date_ban[4], date_ban[5], BAN_REASON, NAME_ADMIN);
        ShowPlayerDialog(playerid, DIALOG_BAN, DSM, ""P"Этот аккаунт заблокирован", STRING_GLOBAL, "Закрыть", "");
        Kick(playerid);
        return 1;
    }
    else
    {

        MYSQL_GLOBAL[0] = EOS;
        mysql_format(connects, MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "DELETE FROM `ban` WHERE `Name` = '%s' LIMIT 1", player_name[playerid]);
        mysql_tquery(connects, MYSQL_GLOBAL);
    }
    return 1;
}
Попробуй
Код:
CB:check_banned(playerid)
{
        new rows;
        cache_get_row_count(rows);
        if (!rows) return 1;

        new NAME_ADMIN[24], NAME_PLAYER[24], BAN_REASON[32], UNBAN_DATA = 0;

        cache_get_value_index(0, 1, NAME_PLAYER, 24);
        cache_get_value_index(0, 2, NAME_ADMIN, 24);
        cache_get_value_index(0, 3, BAN_REASON, 24);
        cache_get_value_index_int(0, 4, UNBAN_DATA);
        if (UNBAN_DATA > gettime())
        {
                new date_ban[6];
                gmtime(UNBAN_DATA + 10800, date_ban[0], date_ban[1], date_ban[2], date_ban[3], date_ban[4], date_ban[5]);

                STRING_GLOBAL[0] = EOS;
                format(STRING_GLOBAL, sizeof(STRING_GLOBAL), ""W"Ваш игровой аккаунт:\t"NO"%s\n\
        "W"Разблокировка:\t\t"NO"%02d/%02d/%04d %02d:%02d:%02d\n\
        "W"Причина:"NO"\t\t\t%s\n\
        "W"Заблокировал:"NO"\t\t%s", NAME_PLAYER, date_ban[2], date_ban[1], date_ban[0], date_ban[3], date_ban[4], date_ban[5], BAN_REASON, NAME_ADMIN);
                ShowPlayerDialog(playerid, DIALOG_BAN, DSM, ""P"Этот аккаунт заблокирован", STRING_GLOBAL, "Закрыть", "");
                Kick(playerid);
                return 1;
        }
        else
        {

                MYSQL_GLOBAL[0] = EOS;
                mysql_format(connects, MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "DELETE FROM `ban` WHERE `Name` = '%s' LIMIT 1", player_name[playerid]);
                mysql_tquery(connects, MYSQL_GLOBAL);
        }
        return 1;
}
 
Активный
Пользователь
Регистрация
20 Июл 2024
Сообщения
223
1. Добавь код
Код:
CB:check_ip_ban(playerid)
{
        new rows, reason[35];
        cache_get_row_count(rows);
        if (rows)
        {
                cache_get_value_name(0, "reason", reason, 30);
                if (strlen(reason) == 0)
                {
                        STRING_GLOBAL[0] = EOS;
                        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Ваш IP адрес заблокирован. Причина: Неизвестно", reason);
                        ErrorMessage(playerid, STRING_GLOBAL);
                }
                else
                {
                        STRING_GLOBAL[0] = EOS;
                        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Ваш IP адрес заблокирован. Причина: %s", reason);
                        ErrorMessage(playerid, STRING_GLOBAL);
                }
                Kick(playerid);
        }
        else
        {
                MYSQL_GLOBAL[0] = EOS;
                mysql_format(connects, MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "SELECT * FROM `"TABLE_BAN"` WHERE `Name` = '%e' LIMIT 1", player_name[playerid]);
                mysql_tquery(connects, MYSQL_GLOBAL, "check_banned", "i", playerid);
        }
}

2. У тебя есть таблица TABLE_BAN в бд?
 
Пользователь
Регистрация
13 Июл 2024
Сообщения
16
1. Добавь код
Код:
CB:check_ip_ban(playerid)
{
        new rows, reason[35];
        cache_get_row_count(rows);
        if (rows)
        {
                cache_get_value_name(0, "reason", reason, 30);
                if (strlen(reason) == 0)
                {
                        STRING_GLOBAL[0] = EOS;
                        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Ваш IP адрес заблокирован. Причина: Неизвестно", reason);
                        ErrorMessage(playerid, STRING_GLOBAL);
                }
                else
                {
                        STRING_GLOBAL[0] = EOS;
                        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Ваш IP адрес заблокирован. Причина: %s", reason);
                        ErrorMessage(playerid, STRING_GLOBAL);
                }
                Kick(playerid);
        }
        else
        {
                MYSQL_GLOBAL[0] = EOS;
                mysql_format(connects, MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "SELECT * FROM `"TABLE_BAN"` WHERE `Name` = '%e' LIMIT 1", player_name[playerid]);
                mysql_tquery(connects, MYSQL_GLOBAL, "check_banned", "i", playerid);
        }
}

2. У тебя есть таблица TABLE_BAN в бд?
да, есть. кстати такой код уже был в моде, только я не понял, одинаковый или нет. вот посмотри который был:
Pawn:
CB:check_ip_ban(playerid)
{
    new rows, reason[35];
    cache_get_row_count(rows);
    if(rows)
    {
        cache_get_value_name(0, "reason", reason, 30);
        if(strlen(reason) == 0)
        {
            STRING_GLOBAL[0] = EOS;
            format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Âàø IP àäðåñ çàáëîêèðîâàí. Ïðè÷èíà: Íåèçâåñòíî", reason);
            ErrorMessage(playerid, STRING_GLOBAL);
        }
        else
        {
            STRING_GLOBAL[0] = EOS;
            format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Âàø IP àäðåñ çàáëîêèðîâàí. Ïðè÷èíà: %s", reason);
            ErrorMessage(playerid, STRING_GLOBAL);
        }
        Kick(playerid);
    }
    else
    {
        MYSQL_GLOBAL[0] = EOS;
        mysql_format(connects, MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "SELECT * FROM `"TABLE_BAN"` WHERE `Name` = '%e' LIMIT 1", player_name[playerid]);
        mysql_tquery(connects, MYSQL_GLOBAL, "check_banned", "i", playerid);
    }
}
 
Активный
Пользователь
Регистрация
20 Июл 2024
Сообщения
223
да, есть. кстати такой код уже был в моде, только я не понял, одинаковый или нет. вот посмотри который был:
Pawn:
CB:check_ip_ban(playerid)
{
    new rows, reason[35];
    cache_get_row_count(rows);
    if(rows)
    {
        cache_get_value_name(0, "reason", reason, 30);
        if(strlen(reason) == 0)
        {
            STRING_GLOBAL[0] = EOS;
            format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Âàø IP àäðåñ çàáëîêèðîâàí. Ïðè÷èíà: Íåèçâåñòíî", reason);
            ErrorMessage(playerid, STRING_GLOBAL);
        }
        else
        {
            STRING_GLOBAL[0] = EOS;
            format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "Âàø IP àäðåñ çàáëîêèðîâàí. Ïðè÷èíà: %s", reason);
            ErrorMessage(playerid, STRING_GLOBAL);
        }
        Kick(playerid);
    }
    else
    {
        MYSQL_GLOBAL[0] = EOS;
        mysql_format(connects, MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "SELECT * FROM `"TABLE_BAN"` WHERE `Name` = '%e' LIMIT 1", player_name[playerid]);
        mysql_tquery(connects, MYSQL_GLOBAL, "check_banned", "i", playerid);
    }
}
Ошибку нашел видимо, у тебя если в pawno такая арабская вязь есть на русский меняй, а код да видимо одинаковый1722804912179.png
 
Активный
Пользователь
Регистрация
20 Июл 2024
Сообщения
223
Так как игрок узнает что у него аккаунт заблокирован если он не авторизуется ?
ну как минимум если банят в онлайне то пишется что забанен, а я бы еа месие Chief переписал бы код на другой, найти можно
 
Пользователь
Регистрация
13 Июл 2024
Сообщения
16
ну как минимум если банят в онлайне то пишется что забанен, а я бы еа месие Chief переписал бы код на другой, найти можно
я ничего не нашел, весь интернет уже перерыл
 
Пользователь
Регистрация
13 Июл 2024
Сообщения
16
Дальше — Больше
Активный
Пользователь
Регистрация
21 Янв 2023
Сообщения
305
Активный
Пользователь
Регистрация
20 Июл 2024
Сообщения
223
Сверху