Max_Hank
Умник
Гутн-так, уважаемые! Прошу подсказки. Не могу сообразить по поводу проверки регистра Nick_Name (как говорится, толи лыжи не едут, то ли я). Короче говоря MySQL r41-4. Регистрирую ник по подобию Nick_Name. При перезаходе в игру, изменив тот же ник на одну букву верхнего регистра, типа Nick_NamE, мне кричит, что такой уже есть и запускает меня на сервер под паролем от аккаунта Nick_Name. Как проверить регистр? Далее код:
При коннекте делаем запрос:
Обработка запроса:
Я уже и так пробовал, с проверкой через strcmp:
И нифига... Она мне на это даже зареганные аккаунты считает не зареганными. Ну подсказывайте, старички.
При коннекте делаем запрос:
Код:
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;
}
Код:
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;
}
Последнее редактирование модератором:
