public OnPlayerConnect(playerid) { new string[255]; GetPlayerName(playerid,PlayerInfo[playerid][Username],128); format(string,255,"SELECT * FROM `accounts` WHERE Username = '%s'",PlayerInfo[playerid][Username]); mysql_function_query(Mysql,string,true,"Check","i",playerid); return 1; } forward Check(playerid); public Check(playerid) { new rows,fields; cache_get_data(rows,fields); if(rows) { ShowPlayerDialog(playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "Login", "Type your password below to login.", "Login", "Quit"); } else { ShowPlayerDialog(playerid, Dialog_Register, DIALOG_STYLE_PASSWORD, "Register", "Type your password below to register.", "Register", "Quit"); } return 1; }
you use invalid function for check if player is registered or not, you must use, cache_num_rows() or cache_get_row_count() function.
|
if(cache_get_row_count < 1 ) {
//player isn't registered
}else{
//player is registered
}
Can you show a copy of the MySQL Log? |
[16:37:46] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [16:37:46] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [16:37:46] [DEBUG] CMySQLConnection::Connect - connection was successful [16:37:46] [DEBUG] CMySQLConnection::Connect - connection was successful [16:37:46] [DEBUG] CMySQLConnection::Connect - connection was successful [16:37:46] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [16:37:46] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [16:38:09] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `accounts` WHERE Username = 'Test'", callback: "Check", format: "i" [16:38:09] [DEBUG] CMySQLQuery::Execute[Check] - starting query execution [16:38:09] [DEBUG] CMySQLQuery::Execute[Check] - query was successfully executed within 0.581 milliseconds [16:38:09] [DEBUG] CMySQLResult::CMySQLResult() - constructor called [16:38:09] [DEBUG] Calling callback "Check".. [16:38:09] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
you use invalid function for check if player is registered or not, you must use, cache_num_rows() or cache_get_row_count() function. |
public OnPlayerConnect(playerid) { new string[255]; GetPlayerName(playerid,PlayerInfo[playerid][Username],128); format(string,255,"SELECT * FROM `accounts` WHERE Username = '%s'",PlayerInfo[playerid][Username]); mysql_tquery(Mysql,string,"Check","i",playerid); return 1; } forward Check(playerid); public Check(playerid) { printf("%i",cache_get_row_count()); if(cache_get_row_count() < 1) { ShowPlayerDialog(playerid, Dialog_Register, DIALOG_STYLE_PASSWORD, "Register", "Type your password below to register.", "Register", "Quit"); } else { ShowPlayerDialog(playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "Login", "Type your password below to login.", "Login", "Quit"); } return 1; }