else if(dialogid == 2) // Login
{
if(response)
{
new password[256], IP[16], password2[256], query[100];
WP_Hash(password2, sizeof(password2), inputtext);
[COLOR="Red"]password = cache_get_field_content([/COLOR]
if(strlen(inputtext) <= 0)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}You must enter a password to procceed.");
ShowDialog(playerid, 2);
return 1;
}
if(strlen(inputtext) >= 256)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}Invalid Password.");
ShowDialog(playerid, 2);
return 1;
}
if(!strcmp(password2, password, false))
{
SendClientMessage(playerid, COLOR_LIME, "");
SendClientMessage(playerid, COLOR_LIME, "");
SendClientMessage(playerid, COLOR_RED, "SERVER: {FFFFFF}Login Successful");
format(PlayerInfo[playerid][pIP], 16, "%s", dini_Get(file, "IP"));
GetPlayerIp(playerid, IP, sizeof(IP));
dini_Set(file, "IP", IP);
PlayerInfo[playerid][pGender] = dini_Int(file, "Gender");
PlayerInfo[playerid][pAge] = dini_Int(file, "Age");
if(!PlayerInfo[playerid][pGender] || !PlayerInfo[playerid][pAge])
{
ShowDialog(playerid, 3);
}
else
{
mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Username` = '%e' LIMIT 1", RPNU(playerid));
mysql_tquery(mysql, query, "OldToys", "i", playerid);
mysql_tquery(mysql, query, "LoadToys", "i", playerid);
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}Invalid password.");
ShowDialog(playerid, 2);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}You have chosen to quit the server.");
Kick(playerid);
}
}
new
password[MAX_PLAYERS][256];
forward getpassword(playerid);
public getpassword(playerid) {
cache_get_field_content(0, "Password", password[playerid]);
return 1;
}
public OnPlayerConnect(playerid) {
new query[80];
mysql_format(mysql, query, "SELECT * FROM players WHERE Username = '%e'", usernamehere);
mysql_tquery(mysql, query, "getpassword", "i", playerid);
return 1;
}
There is a way of doing all that without callbacks by using sql.inc.
SQLite syntax for both the database types (SQLite or MySQL) |