
CMD:login(playerid,params[])
{
if (Logged[playerid]) return SendClientMessage(playerid, -1,"You have already logined.");
if (!udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid, -1,"You do not have an account, please /register [password]");
if (strlen(params)==0) return SendClientMessage(playerid, -1,"USAGE: /login [password]");
if (udb_CheckLogin(PlayerName(playerid),params))
{
SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("Score"));
SetPlayerMoney(playerid,dUserINT(PlayerName(playerid)).("Moneys"));
PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(playerid), "AdminLevel");
Logged[playerid]=true;
return SendClientMessage(playerid, -1,"You have successfully logined.");
}
return SendClientMessage(playerid, -1,"Wrong password !");
}
|
You should set a timer for saving stat's ect, when using disconnect it might cause prob's, is it actually saving the data ?
|
stock SavePlayer(playerid)
{
[save info]
return 1;
}
SavePlayer(playerid);
|
No, you can make a 'function' to save the player's data if he disconnects.
Make a function, like pawn Код:
pawn Код:
|
stock SavePlayer(playerid)
{
[save info]
return 1;
}
PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(playerid), "AdminLevel");
...(1863) : warning 215: expression has no effect
...(1863) : error 001: expected token: ";", but found "("
...(1863) : error 017: undefined symbol "dUserINT"
...(1863) : error 029: invalid expression, assumed zero
...(1863) : fatal error 107: too many error messages on one line
stock SavePlayer(playerid)
{
dUserSetINT(PlayerName(playerid)).("Moneys",GetPlayerMoney(playerid));
dUserSetINT(PlayerName(playerid)).("Score",GetPlayerScore(playerid));
dUserSetINT(PlayerName(playerid)).("AdminLevel",PlayerInfo[playerid][pAdmin]);
return 1;
}
public OnPlayerDisconnect(playerid)
{
new name[24];
GetPlayerName(playerid,name,24);
format(file,sizeof(file),"%s.ini",name);
if(dini_Exists(file))
{
dini_IntSet(file,"Cash",GetPlayerMoney(playerid));
dini_IntSet(file,"Score",GetPlayerScore(playerid));
dini_IntSet(file,"AdminLevel",PlayerInfo[playerid][AdminLevel]);
IsLogged[playerid] = 0;
return 1;
}
return 1;
}