Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3
  1. #1
    Аватар для Camelot
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Адрес
    Ярославль
    Сообщений
    57
    Репутация:
    4 ±

    Проблема с диалогом.

    Пишу систему бана.
    В проверке на блокировку не показывается диалог. Для проверки вписал SendClientMessage, чтобы выводилось вместе с диалогом - выводится.
    Может вы поможете? Голова уже завалена, может не вижу элементарного)

    PHP код:
    publicsBanListCheck(playerid)
    {
        
    cache_get_data(rowsfields);
        if(!
    rows) return true;
        new 
    admin[MAX_PLAYER_NAME], reason[90], dateban[27], dateunban[27], str[123 27 27 MAX_PLAYER_NAME 11 90];
        
    getstr(0"DateBan"dateban);
        
    getstr(0"DateUnBan"dateunban);
        
    getstr(0"Admin"admin);
        
    getstr(0"Reason"reason);
        if(
    gettime() < getint(0"BanSec"))
        {
            
    format(strsizeof(str),"\
            Аккаунт заблокирован!\n\n\
            Дата блокировки: %s\n\
            Дата разблокировки: %s\n\
            Блокировщик: %s\n\
            Ваш личный ID: %d\n\
            Причина блокировки: %s"
    ,
            
    datebandateunbanadmingetint(0"Acc_ID"), reason);
            
    Dialog(playerid5DIALOG_STYLE_MSGBOX"Заблокирован"str"Выход""");
            
    Message(playerid, -1"Проверка");
            return 
    Kick(playerid);
        }
        
    mysql_format(cHandlestrsizeof(str), "DELETE FROM `Bans` WHERE `Nick` = '%s'"Nick(playerid));
        
    mysql_function_query(cHandlestrfalse"""");
        return 
    SendClientMessage(playeridcWHITE"Вы были разбанены.");


  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Что, такое getstr?
    Стоило бы показать макрос или что у Вас там (Dialog)

  3. #3
    Аватар для Camelot
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Адрес
    Ярославль
    Сообщений
    57
    Репутация:
    4 ±
    Покопался, нашёл вот такую проблему...

    При коннекте игрока производится два запроса: На нахождения игрока в бане, и, собсна, на нахождение самого аккаунта:

    PHP код:
    mysql_format(cHandlestrsizeof(str), "SELECT * FROM `Bans` WHERE `Nick` = '%s' OR `IP` = '%s'"Nick(playerid), PInfo[playerid][IP]);
    mysql_function_query(cHandlestrtrue"BanListCheck""i"playerid);
        
    mysql_format(cHandlestrsizeof(str), "SELECT * FROM `users` WHERE `Nick` = '%s'"Nick(playerid));
    mysql_function_query(cHandlestrtrue"RegPlayerCheck""i"playerid); 
    Если рассуждать логически, то сначала происходит проверка на бан аккаунта. Но когда код доходит до вывода диалога блокировки на экран(BanListCheck), почему-то выводится диалог с авторизацией/регистрацией из RegPlayerCheck.

    Вот RegPlayerCheck:

    PHP код:
    publicsRegPlayerCheck(playerid)
    {
        
    cache_get_data(rowsfields);
        if(!
    rows) return Dialog(playerid0DIALOG_STYLE_INPUT"Регистрация""Придумайте пароль(8-18):"">>""Отмена");
        return 
    Dialog(playerid4DIALOG_STYLE_PASSWORD"Авторизация""Введите пароль""Войти""Отмена");

    Есть у кого предположения в чем проблема?
    P.S. Если закомментировать поиск аккаунта, то диалог с блокировкой высвечивается.

    - - - Добавлено - - -

    Решил проблему)
    Нужно было просто поменять местами запросы при коннекте :D
    Тема закрыта.
    Последний раз редактировалось Camelot; 29.06.2015 в 20:51.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •