Слетает авторизация MySQL
#1

Здраствуйте я задался вопросом почемуто слетает авторизация в MySQL не могу не чего понять в чем может быть беда!
Вот сам паблик
PHP код:
public OnPlayerRequestClass(playeridclassid)
{
    
gActivePlayers[playerid]++;
    
numplayers++;
    
SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid0); SetPlayerPosTpAc(playerid,657.4525,-1237.8320,24.2944); InterpolateCameraPos(playerid610.485900, -1220.47192338.983032673.835266, -1231.04052715.4176318000); InterpolateCameraLookAt(playerid614.760559, -1222.57751437.468463673.010742, -1235.94396914.8915859000); SendClientMessage(playerid,0xEAC700FF,"{FFFF00}Добро пожаловать на {00FF00}Zalman Role Play");
    new 
bac[500];
    if(
gPlayerAccount[playerid] == true)
    {
        
SendClientMessage(playerid,0xEAC700FF,"Ваш аккаунт найден в базе данных MySQL! Пройдите авторизацию!");
        
format(bacsizeof(bac),"{FFFFFF}Добро пожаловать {9ACD32}%s{FFFFFF}\n\nЭтот аккаунт {9ACD32}зарегистрирован {FFFFFF}в базе данных\nВведите свой пароль и нажмите {33CCFF}'Готово'{FFFFFF}\n",Name(playerid));
        
SPDFix(playerid,1,DIALOG_STYLE_PASSWORD,"{FFFFFF}Авторизация",bac,"Готово","");
    }
    else
    {
        
gPlayerAccount[playerid] = falseSendClientMessage(playerid,0xEAC700FF,"Ваш аккаунт не найден в базе данных MySQL! Вам прийдется пройти регистрацию!");
        
format(bacsizeof(bac),"{FFFFFF}Добро пожаловать на Zalman Role Play {33CCFF}%s{FFFFFF}\n\nЭтот аккаунт {FF6347}не зарегистрирован {FFFFFF}в базе данных\nДля регистрации необходимо ввести пароль\nОн будет использоваться для авторизации на нашем сервере\n\n{33CCFF}\tПримечания:\n\t- Длина пароля от 6 до 20 символов\n\t- Пароль должен состоять из букв и цифр\n\t- Пароль чувствителен к регистру\n"Name(playerid));
        
SPDFix(playerid,2,DIALOG_STYLE_INPUT,"{FFFFFF}Регистрация",bac,"Далее","");
        
PlayerInfo[playerid][pAdmin] = 0;
    }
    return 
true;

Вот скрины происходящего:

Окно до:


Окном после:


Вот кейс который вызывается:
PHP код:
case 1:
        {
               if(
response)
            {
                if(!
strlen(inputtext))
                   {
                    
format(string,sizeof(string),"{FFFFFF}Добро пожаловать {9ACD32}%s{FFFFFF}\n\nЭтот аккаунт {9ACD32}зарегистрирован {FFFFFF}в базе данных\nВведите свой пароль и нажмите {33CCFF}'Готово'{FFFFFF}\n"Name(playerid));
                    return 
SPDFix(playerid,1,DIALOG_STYLE_PASSWORD,"{FFFFFF}Авторизация",string,"Готово","");
                  }
                new 
string2[200];
                
format(string2sizeof(string2), "SELECT * FROM `accounts` WHERE name = '%s'",Name(playerid));
                
mysql_query(string2);
                
mysql_store_result();
                if(
mysql_fetch_row_format(string2))
                {
                    
BaseGet("Key",PlayerInfo[playerid][pKey]);
                }
                
OnPlayerLoginToServer(playerid,(inputtext));
            }
            else
            {
                
SendClientMessage(playeridCOLOR_LIGHTRED"Для выхода из игры используйте /q(uit)");
                
Kick(playerid);
             }
          } 
При чем я заметил что это присходит вечером!
Примерно часов в пол 10 по мск а весь день сервер стоит нормально!
Reply
#2

wat? Что происходит вообще, я не понял?
Reply
#3

Вобщемто я ввожу пасс и после этого окно тупо исчезает не знаю почему много раз пересматривал но ошибок не нашел
Reply
#4

тебе никто не сможет помочь, пока ты не сделаешь дебаг.
Reply
#5

Да вот в том и дело что он за 1 день весит более 50 метров и куда его выкладывать ...
Reply
#6

PHP код:
gPlayerAccount[playerid
Я так понял, что сюда записывается значение true, если аккаунт в базе есть. Но к этому же условию нужно сделать проверку вошел ли игрок в аккаунт или нет. Иначе диалог всегда будет показываться.
P.S Можно еще глянуть OnPlayerLoginToServer
Reply
#7

Quote:
Originally Posted by vitalik6243
Посмотреть сообщение
Да вот в том и дело что он за 1 день весит более 50 метров и куда его выкладывать ...
тебя попросили не лог предоставить а дебаг произвести.
А что тут неправильно? Диалог выполнен, теперь тебе нужно выбрать скин. На это и стандартное меню намекает.

PS а вот читами пользоваться некрасиво!
Reply
#8

В паблик авторизации вставь
PHP код:
SpawnPlayer(playerid); 
Но не уверен, что избавит от меню OnPlayerRequestClass. Тебе надо авторизацию перенести в onPlayerConnect, а в OnPlayerRequstClass сразу отправлять игрока на спавн
Reply
#9

Боль RLS мода, дело в табличке или самом коде сохранения/загрузки, лично у меня в начале изучения было тоже самое. А вообще смотри Debug.log, или поставь crashdetect если не помогает.
Reply
#10

Quote:
Originally Posted by Cherbet
Посмотреть сообщение
Боль RLS мода, дело в табличке или самом коде сохранения/загрузки, лично у меня в начале изучения было тоже самое. А вообще смотри Debug.log, или поставь crashdetect если не помогает.
Да тут же видно, что парень банально не отправляет игрока на спавн после ввода пароля. Вот игрок и висит в паблике OnPlayerRequestClass
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)