forward OnAccountCheck(playerid);
public OnAccountCheck(playerid)
{
new rows, fields;
cache_get_data(rows, fields, mysql);
if(rows)
{
cache_get_field_content(0, "Password", PlayerInfo[playerid][pPass], mysql, 129);
PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Koky's Gang Wars", "{FFFFFF}Welcome back to {DADADA}Koky's Gang Wars.{FFFFFF}\nType in your password below to login.", "Login", "Quit");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Koky's Gang Wars", "{FFFFFF} Welcome to {DADADA}Koky's Gang Wars!{FFFFFF}\nType in your desired password below to register. ", "Register", "Quit");
}
return 1;
}
else if(dialogid == DIALOG_LOGIN)
{
if(!response) return DIALOG_LOGIN;
else
{
new hpass[129];
WP_Hash(hpass, 129, inputtext);
if(!strcmp(hpass, PlayerInfo[playerid][pPass]))
{
mysql_format(mysql, query, sizeof(query), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", Name[playerid]);
mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
TextDrawHideForPlayer(playerid,Login1[playerid]);
TextDrawHideForPlayer(playerid,Login2[playerid]);
TextDrawHideForPlayer(playerid,Login3[playerid]);
TextDrawHideForPlayer(playerid,Login4[playerid]);
TextDrawHideForPlayer(playerid,Login5[playerid]);
TextDrawHideForPlayer(playerid,Login6[playerid]);
TextDrawHideForPlayer(playerid,Login7[playerid]);
TogglePlayerSpectating(playerid, false);
PlayTimer[playerid] = SetTimerEx("PlayingTime", 60000, 1, "i", playerid);
StopAudioStreamForPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_MSGBOX,""COL_RED"KICKED",""COL_RED"You have been kicked for entering an incorrect password.","QUIT","");
KickPlayer(playerid);
}
return 1;
}
}
static
mysql,
IP[MAX_PLAYERS][16],
Name[MAX_PLAYERS][24];
forward LoggingTimer(playerid);
public LoggingTimer(playerid)
{
new query[512];
GetPlayerIp(playerid, IP[playerid], 16);
GetPlayerName(playerid, Name[playerid], 24);
mysql_format(mysql, query, sizeof(query),"SELECT `Password`, `ID` FROM `users` WHERE `Username` = '%e' LIMIT 1", Name[playerid]);
mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid);
TextDrawShowForPlayer(playerid,Login1[playerid]);
TextDrawShowForPlayer(playerid,Login2[playerid]);
TextDrawShowForPlayer(playerid,Login3[playerid]);
TextDrawShowForPlayer(playerid,Login4[playerid]);
TextDrawShowForPlayer(playerid,Login5[playerid]);
TextDrawShowForPlayer(playerid,Login6[playerid]);
TextDrawShowForPlayer(playerid,Login7[playerid]);
InterpolateCameraPos(playerid, -1781.663330, 428.006164, 77.410369, -1162.017089, 1080.103393, 77.418640, 40000);
InterpolateCameraLookAt(playerid, -1778.375610, 431.433624, 75.847175, -1158.807495, 1083.449462, 75.547363, 40000);
return 1;
}
LoggingTimer is used on OnPlayerConnect, and I never knew that. Thank's for the heads up.
E: If the players log in-game one by one, it doesn't happen. If they connect at once, it bugs out. |
case DIALOG_LOGIN:
{
new hpass[129];
WP_Hash(hpass, 129, inputtext);
mysql_format(ourConnection, continueCheck, sizeof(continueCheck), "SELECT * FROM characters WHERE AccountName = '%e' AND AccountPass = '%e' LIMIT 1", ReturnName(playerid), hpass);
mysql_tquery(ourConnection, continueCheck, "OnPlayerLogin", "i", playerid);
}
public OnPlayerLogin(playerid)
{
if(!cache_num_rows())
{
//Bad password.
return 1;
}
//Password is a success.
return 1;
}
To be honest, if you wanna make this easier, you could just change your method of how you login, for example:
PHP код:
PHP код:
|