Всем привет! Использую мультипоточную функцию mysql_tquery для запроса в паблике OnPlayerConnect
Код:
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, Player[playerid][pNick], 24);
format(text, sizeof(text), "SELECT * FROM `accounts` WHERE `nick` = `%s`", Player[playerid][pNick]);
mysql_tquery(sqlHandler, text, "CheckDBUser");
return 1;
}[
/CODE]
Однако, мой кастомный паблик CheckDBUser не вызывается мультипотоком. Что делать?
Он объявлен, если изменить код на такой:
[CODE]
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, Player[playerid][pNick], 24);
format(text, sizeof(text), "SELECT * FROM `accounts` WHERE `nick` = `%s`", Player[playerid][pNick]);
mysql_query(sqlHandler, text);
CheckDBUser();
return 1;
}[
/CODE]
То все будет работать, однако будет постоянно выдаваться диалог регистрации
[CODE]
forward CheckDBUser(playerid);
public CheckDBUser(playerid)
{
new rows;
cache_get_row_count(rows);
if (rows) {
format(text, sizeof(text), "Ïðèâåòñòâóåì Âàñ íà \"%s\"!\nÂâåäèòå ïàðîëü äëÿ àâòîðèçàöèè.", SERVER_NAME);
ShowPlayerDialog(playerid, d_login, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", text, "Äàëåå", "");
} else {
format(text, sizeof(text), "Ïðèâåòñòâóåì Âàñ íà \"%s\"!\nÂâåäèòå ïàðîëü äëÿ ðåãèñòðàöèè.", SERVER_NAME);
ShowPlayerDialog(playerid, d_register, DIALOG_STYLE_INPUT, "Ðåãèñòðàöèÿ", text, "Äàëåå", "");
}
return 1;
}
/CODE]