- Регистрация
- 20 Окт 2011
- Сообщения
- 195
- Лучшие ответы
- 0
- Репутация
- 25
В общем у меня проблема.
Открыл сервер вчера, 45 человек пошло, первые 20(приблизительно) смогли зарегистрироваться и вошли, с остальными начались проблемы.
Долго появляется диалог авторизации/регистрации, хотя что там может быть долгого, кроме как связи сервера и БД я не знаю
Хостинг ру хостер, бд там же.
Плагин Mysql R38
Если подробней о симптомах: - сначала долго работает паблик загрузки инфы, затем уже долго сам запрос тормозит, который возвращает результат запроса для авторизации/регистрации.
В логе мускула Errorов нету.
Вот я ищу в БД человека по имени, в самом начале OnPlayerConnect
Вот код самого вывода реги/логина
Сначала думал, что из-за запросов на БД лаги, мол много запросов за малое время. Укоротил. Теперь раз в минуту сохр 10 переменных, остальные только при изменении на сервере.
Открыл сервер вчера, 45 человек пошло, первые 20(приблизительно) смогли зарегистрироваться и вошли, с остальными начались проблемы.
Долго появляется диалог авторизации/регистрации, хотя что там может быть долгого, кроме как связи сервера и БД я не знаю
Хостинг ру хостер, бд там же.
Плагин Mysql R38
Если подробней о симптомах: - сначала долго работает паблик загрузки инфы, затем уже долго сам запрос тормозит, который возвращает результат запроса для авторизации/регистрации.
В логе мускула Errorов нету.
Вот я ищу в БД человека по имени, в самом начале OnPlayerConnect
PHP:
GetPlayerName(playerid, PlayerName[playerid], 24);
new str[128];
format(str,sizeof(str), "%s", PlayerName[playerid]);
M(playerid, -1, str);
new query[200];//
mysql_format(sql, query, sizeof(query),"SELECT `Password` FROM `players` WHERE `Username` = '%s' LIMIT 1", PlayerName[playerid]);
mysql_tquery(sql, query, "OnAccountCheck", "i", playerid);
PHP:
public OnAccountCheck(playerid)
{
new str[128];
M(playerid, -1,str);
if(cache_get_row_count()==0) //if we didn't find any rows from the database, that means, no players were found
{
ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Регистрация", "Вам нужно зарегистрироваться, введите пароль:", "Регистрация", "Выход");
}
else if(cache_get_row_count()==1)
{
cache_get_field_content(0, "Password", playerg[playerid][Password], sql, 129);
ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Авторизация", "{FFFFFF}Введите пароль для входа:", "Вход", "Выход");
}
else
{
M(playerid, -1, "Ошибка аккаунта");
NewKick(playerid);
}
return 1;
}