enum pInfo
{
pUsername,
pPassword,
pSex,
pAge,
pOrigin,
pWarns,
pMoney,
pLevel,
pVIP,
pAdmin,
pTester,
pKills,
pDeaths,
pMuted,
pJailed,
pBanned,
Float:pPosX,
Float:pPosY,
Float:pPosZ,
pJob,
pFaction,
pRank,
pModel
}
new PlayerInfo[MAX_PLAYERS][pInfo];
public OnPlayerLogin(playerid)
{
new query[1000];
new username[MAX_PLAYER_NAME];
GetPlayerName(playerid, username, sizeof(username));
mysql_store_result();
if(mysql_num_rows() != 0)
{
if(mysql_fetch_row_format(query, "|"))
{
sscanf(query,"e<p<|>s[24]s[32]iiiiiiiiiiiiiifffiiii>", PlayerInfo[playerid]);
new str[80];
format(str, sizeof(str),"Welcome %s, you have been loged to your account, your admin rank is: %i",username, PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, COLOR_BLUE, str);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
if(PlayerInfo[playerid][pPosX] != 0 && PlayerInfo[playerid][pPosY] != 0 && PlayerInfo[playerid][pPosZ] != 0)
{
SetPlayerPos(playerid, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ]);
}
SpawnPlayer(playerid);
}
}
else
{
ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"SpectralRP: Login.","Wrong password:","Login","Cancel");
}
}
stock LoginPlayer(playerid, pass[])
{
new query[1000], username[MAX_PLAYER_NAME];
GetPlayerName(playerid, username, sizeof(username));
format(query, sizeof(query),"SELECT * FROM `Users` WHERE Username = '%s' AND password = md5('%s')",username, pass);
mysql_function_query(dbconnect, query, false, "OnPlayerLogin", "");
}
case LOGIN_DIALOG:
{
if(!response)
{
SendClientMessage(playerid, COLOR_LIGHTRED,"You need to be logged in!");
Kick(playerid);
}
LoginPlayer(playerid, inputtext);
}
case REGISTER_DIALOG:
{
if(!response)
{
SendClientMessage(playerid, COLOR_LIGHTRED,"You need to be logged in!");
Kick(playerid);
}
new query[512], username[MAX_PLAYER_NAME];
GetPlayerName(playerid, username, sizeof(username));
format(query, sizeof(query),"INSERT INTO `Users` (Username,Password) VALUES ('%s',md5('%s'))",username, inputtext);
mysql_function_query(dbconnect, query, false, "OnQueryFinish", "");
ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"SpectralRP: Login","Enter your password below to login:","Login","Cancel");
}
public UserCheck(playerid)
{
mysql_store_result();
if(mysql_num_rows() == 0)
{
ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_PASSWORD,"SpectralRP: Register","Enter your password below to register:","Register","Cancel");
}
else
{
ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"SpectralRP: Login","Enter your password below to login","Login","Cancel");
}
mysql_free_result();
return 1;
}
public OnPlayerConnect(playerid)
{
InitFly(playerid);
new Query[512], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(Query, sizeof(Query), "SELECT * FROM `Users` WHERE Username='%s'", name);
mysql_function_query(dbconnect, Query, false, "UserCheck", "");
return 1;
}
You told sscanf that the first and second elements in your enum are strings, when they're clearly not.
|
[19:34:48] sscanf warning: String buffer overflow.