06.12.2012, 12:27
Ok not sure if this works without errors, because I didn't test it.
pawn Код:
// (Get User Account Info)
new userquery[256];
PlayerInfo[ playerid ][ Logged ] = 0;
format(userquery,sizeof(userquery),"SELECT `Name` FROM `users` WHERE `Name` = '%s' LIMIT 1", PlayerName2(playerid));
mysql_function_query(userquery, true, "AccountExist", "i", playerid);
// Put this callback somewhere
foward AccountExist(playerid);
public AccountExist(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(!rows)
{
new rstring[256];
format(rstring,256,""W"Welcome "YE"%s"W", on "R"Stunt "YE"Evolution\n\n"W"Please "G"Register"W" to save your stats: "COL_ORANGE"Score,Money,Coins...", PlayerName2(playerid));
ShowPlayerDialog(playerid,RegisterDialog,DIALOG_STYLE_PASSWORD,""R"#1 "W"Register Account",rstring,"(Register)","(Quit)");
}
else
{
SCM:(playerid, ~1," ");
SCM:(playerid, ~1,""R"SERVER"W": Please "G"login "W"on server "NAME_S" "O""VERSION_S"");
Info(playerid, "~w~Account ~g~~h~Registered ~w~please ~r~~h~login");
PlayerInfo[playerid][Registered] = 1;
}
return 1;
}
stock MySQL_Login(playerid)
{
new userquery[300];
format(userquery,sizeof(userquery),"SELECT * FROM `users` WHERE `Name` = '%s'", PlayerName2(playerid));
mysql_function_query(userquery, true, "AccountLogin", "i", playerid);
return 1;
}
foward AccountLogin(playerid);
public AccountLogin(playerid)
{
new rows, fields,data[26];
cache_get_data(rows, fields);
if(!rows)
{
cache_get_field_content(0, "Score", data), PlayerInfo[playerid][Score] = strval(data); // example integer
cache_get_field_content(0, "Email", PlayerInfo[ playerid ][ Email ]); // example string
// Here everything that should happend after login.
new logstring[128];
PlayerInfo[playerid][Logged] = 1;
SavePlayerIP(playerid);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
Info(playerid,"You are now ~g~~h~Logged In~w~~h~!");
format(logstring,sizeof(logstring),"{00FF40}SERVER: "W"Welcome, "R"%s! "W"You are now {00FF40}Logged In!",PlayerName2(playerid));
SendClientMessage(playerid, ~1, logstring);
}
else
{
//query failed
}
return 1;
}