• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Проверка регистра Nick_Name

Статус
В этой теме нельзя размещать новые ответы.

Max_Hank

Умник
Гутн-так, уважаемые! Прошу подсказки. Не могу сообразить по поводу проверки регистра Nick_Name (как говорится, толи лыжи не едут, то ли я). Короче говоря MySQL r41-4. Регистрирую ник по подобию Nick_Name. При перезаходе в игру, изменив тот же ник на одну букву верхнего регистра, типа Nick_NamE, мне кричит, что такой уже есть и запускает меня на сервер под паролем от аккаунта Nick_Name. Как проверить регистр? Далее код:

При коннекте делаем запрос:

Код:
GetPlayerName ( playerid, p_info [ playerid ] [ name ] , MAX_PLAYER_NAME ) ; //тут я присваиваю значение для p_info [ playerid ] [ name ]

format ( query_string, sizeof query_string, "SELECT `ID` FROM `users` WHERE `Name` = '%s' LIMIT 1", p_info [ playerid ] [ name ] ) ;
mysql_tquery ( sql_connection, query_string, "check_player_registered", "i", playerid ) ;
Обработка запроса:

Код:
callback:check_player_registered ( playerid )
{
    new rows ;
    cache_get_row_count ( rows ) ;
    Streamer_Update ( playerid ) ;

    PlayerPlaySound(playerid, 19800, 0.0, 0.0, 0.0);
    if ( rows )
    {
        show_login ( playerid ) ;
        SetPVarInt ( playerid, "login_timer", _:SetTimerEx ( "login_timer", 60000, false, "i", playerid ) ) ;
    }
    else if ( ! rows )
    {
        show_register ( playerid ) ;
    }
    return 1;
}
Я уже и так пробовал, с проверкой через strcmp:

Код:
callback:check_player_registered ( playerid )
{
    new rows ;
    cache_get_row_count ( rows ) ;
    Streamer_Update ( playerid ) ;

    PlayerPlaySound(playerid, 19800, 0.0, 0.0, 0.0);
    if ( rows )
    {
        new nametemp[MAX_PLAYER_NAME];
        cache_get_value_name ( 0, "Name", nametemp, MAX_PLAYER_NAME ) ;
        if(strcmp(p_info [ playerid ] [ name ], nametemp, false, MAX_PLAYER_NAME))
        {
            show_login ( playerid ) ;
            SetPVarInt ( playerid, "login_timer", _:SetTimerEx ( "login_timer", 60000, false, "i", playerid ) ) ;
        }
        else show_register ( playerid ) ;
    }
    else if ( ! rows )
    {
        show_register ( playerid ) ;
    }
    return 1;
}
И нифига... Она мне на это даже зареганные аккаунты считает не зареганными. Ну подсказывайте, старички.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу