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;
}