Admin Problem
#1

Hi , i created an admin system, when i disconnect from the server the admin it's saving , when i connecting on server (/login) the admin what i had it's deleted

Код:
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 !");
}
Reply
#2

You should set a timer for saving stat's ect. When using disconnect it might cause prob's, is it actually saving the data ?
Reply
#3

Where do you save the Var pAdmin?
Reply
#4

Gamemode
Reply
#5

Quote:
Originally Posted by Stigg
Посмотреть сообщение
You should set a timer for saving stat's ect, when using disconnect it might cause prob's, is it actually saving the data ?
No, you can make a 'function' to save the player's data if he disconnects.

Make a function, like
pawn Код:
stock SavePlayer(playerid)
{
[save info]
return 1;
}
then at OnPlayerDisconnect:
pawn Код:
SavePlayer(playerid);
Random timers is unneeded. If a player disconnects at a random time, e.g he crashes, the function OnPlayerDisconnect will always be called.
Reply
#6

I never said use a timer when a player disconnects ?
I said use a timer instead of saving on disconnect.
You learn to read m8.
Reply
#7

Quote:
Originally Posted by Biesmen
Посмотреть сообщение
No, you can make a 'function' to save the player's data if he disconnects.

Make a function, like
pawn Код:
stock SavePlayer(playerid)
{
[save info]
return 1;
}
then at OnPlayerDisconnect:
pawn Код:
SavePlayer(playerid);
Random timers is unneeded. If a player disconnects at a random time, e.g he crashes, the function OnPlayerDisconnect will always be called.
in

pawn Код:
stock SavePlayer(playerid)
{
[save info]
return 1;
}
at [save info]
SetPlayerScore(playerid,dUserINT(PlayerName(player id)).("Score")); ?

P.S This line is not good, i get an error
pawn Код:
PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(playerid), "AdminLevel");
This:

Код:
...(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
Reply
#8

You get an Error, well. But can you tell us your Error too?
Reply
#9

I have this:
Код:
stock SavePlayer(playerid)
{
	dUserSetINT(PlayerName(playerid)).("Moneys",GetPlayerMoney(playerid));
	dUserSetINT(PlayerName(playerid)).("Score",GetPlayerScore(playerid));
	dUserSetINT(PlayerName(playerid)).("AdminLevel",PlayerInfo[playerid][pAdmin]);
	return 1;
}
But didn't working
Reply
#10

Did you set OnPlayerDisconnect(playerid) to save stats?
This could solve:

pawn Код:
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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)