20.10.2014, 14:06
Всех приветствую.
В общем возникла не большая но все же проблема, в чем может быть дело?- Когда игрок заходит на сервер у него появляется окно авторизации.
- Заходит в этот же момент другой игрок у него не появляется, а бывает появляется только секунд через 10-15.
Словно рандомно. Проблему найти не могу, помогите пожалуйста решить данный вопрос.
При регистрации вроде бы все всегда появляется, жалоб не было.
Бывает все вообще отлично у меня например, все грузится все на УРА а у другого игрока диалог авторизации не появляется, подвисает.
Код авторизации:
PHP код:
public Register(playerid)
{
new r, f;
new string[300];
cache_get_data(r, f);
if(r)
{
format(string,300,AutorizePlayer,User[playerid][Name]);
ShowPlayerDialog(playerid, D_LOGIN, 3, "{FFFFFF}Авторизация",string, "Вход", "Выход");
}
else
{
format(string,300,RegPlayer,User[playerid][Name]);
ShowPlayerDialog(playerid, D_REG, 1, "{FFFFFF}Регистрация",string, "Далее", "Выход");
}
return true;
}
PHP код:
case D_LOGIN:
{
if(!response || User[playerid][Login]) return MKick(playerid,"Используйте (/q)uit для выхода");
if(!strlen(inputtext))
{
new string[300];
format(string,300,AutorizePlayer,User[playerid][Name]);
return ShowPlayerDialog(playerid, D_LOGIN, 3, "{FFFFFF}Авторизация",string, "Вход", "Выход");
}
mysql_format(dbHandle, QUERY, sizeof(QUERY), "SELECT * FROM `accounts` WHERE `Name` = '%e' AND `Password` = '%e'",User[playerid][Name],inputtext);
return mysql_function_query(dbHandle, QUERY, true, "OnLogin", "d", playerid);
}
PHP код:
public OnLogin(i)
{
new rows,fields;
cache_get_data(rows, fields);
if(!rows)
{
if(GetPVarInt(i, "PasswordNot") > 2) return MKick(i,"Введен неверный пароль 3 раза, вы были кикнуты с сервера");
SetPVarInt(i, "PasswordNot", GetPVarInt(i, "PasswordNot")+1);
SendMes(i,-1,"Вы ввели неверный пароль (%i/3)",GetPVarInt(i, "PasswordNot"));
new string[300];
format(string,300,AutorizePlayer,User[i][Name]);
return ShowPlayerDialog(i, D_LOGIN, 3, "{FFFFFF}Авторизация",string, "Вход", "Выход");
}
new ip[30];
GetPlayerIp(i,ip,sizeof(ip));
cache_get_field_content(0, "IpVhod",User[i][IpVhod],dbHandle,16);
User[i][CheckIp] = cache_get_field_content_int(0,"CheckIp");
if(User[i][CheckIp] && strcmp(ip, User[i][IpVhod],false) != 0)
{
ShowPlayerDialog(i,1000,DIALOG_STYLE_INPUT, "{FF8300}Введите ключ безопасности", "{ffffff}Ваш IP адрес сменился, для входа в аккаунт\nнеобходимо ввести ключ безопасности", "Готово", "Отмена");
return true;
}