SA-MP Forums Archive
Some Problem [urgent] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Some Problem [urgent] (/showthread.php?tid=411221)



Some Problem [urgent] - ZayanImran - 28.01.2013

ey guys i have 1 problem, i am using dini, i make some stocks like

stock SaveData(playerid)
stock LoadData(playerid)

and now i get some errors when i compile(i got this error when i put [SaveData(playerid);] under OnPlayerDisconnect)

wait i will show you what i did (if i am wrong please correct me)

i make a enum
Код:
enum Data
{
    // stats----------------------------------------------------------
	Pass[126],
	Deaths,
	Kills,
	Money,
	Score,
	NameColor,
	IsSpy,
	AdminLevel,
	VIPlevel,// from here-------------------------------------------------------
	Bans,// punishents----------------------------------------------------------
	Kicks,
	Warns,
	Jailed,
	JailedSec,
	Mute,
	MuteSec,
	Freeze,
	FreezeSec,
	RpKilled
};
new PlayerAcc[MAX_PLAYERS][Data]; // this is for the account info 
new PlayerLogged[MAX_PLAYERS]; // see if the player is logged :d
and this is the stock to save data

Код:
stock SaveData(playerid)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
	format(File,sizeof(File),"/Players/%s.txt",name);
	if(dini_Exists(File))
	{
		dini_IntSet(File,"Deaths",PlayerAcc[playerid][Deaths]);
		dini_IntSet(File,"Kills",PlayerAcc[playerid][Kills]);
		dini_IntSet(File,"Money",GetPlayerMoney(playerid));
		dini_IntSet(File,"Score",GetPlayerScore(playerid));
		dini_IntSet(File,"NameColor",GetPlayerColor(playerid));
		dini_IntSet(File,"IsSpy",PlayerAcc[playerid][IsSpy]);
		dini_IntSet(File,"AdminLevel",PlayerAcc[playerid][AdminLevel]);
		dini_IntSet(File,"VIPlevel",PlayerAcc[playerid][VIPlevel]);
		dini_IntSet(File,"Bans",PlayerAcc[playerid][Bans]);
		dini_IntSet(File,"Kicks",PlayerAcc[playerid][Kicks]);
		dini_IntSet(File,"Warns",PlayerAcc[playerid][Warns]);
		dini_IntSet(File,"Jailed",PlayerAcc[playerid][Jailed]);
		dini_IntSet(File,"JailedSec",PlayerAcc[playerid][JailedSec]);
		dini_IntSet(File,"Mute",PlayerAcc[playerid][Mute]);
		dini_IntSet(File,"MuteSec",PlayerAcc[playerid][MuteSec]);
		dini_IntSet(File,"Freeze",PlayerAcc[playerid][Freeze]);
		dini_IntSet(File,"FreezeSec",PlayerAcc[playerid][FreezeSec]);
     	       dini_IntSet(File,"RpKilled",PlayerAcc[playerid][RpKilled]);
    }
    return 1;
}
and this is for loading data

Код:
stock LoadData(playerid)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
	format(File,sizeof(File),"/Players/%s.txt",name);
	if(dini_Exists(File))
	{
	    PlayerAcc[playerid][Deaths] = dini_Int(File,"Deaths");
		PlayerAcc[playerid][Kills] = dini_Int(File,"Kills");
		ResetPlayerMoney(playerid);
		GivePlayerMoney(playerid,dini_Int(File,"Money"))
		SetPlayerScore(playerid,0);
		SetPlayerScore(playerid,dini_Int(File,"Score"));
		SetPlayerColor(playerid,dini_Int(File,"NameColor"));
		PlayerAcc[playerid][AdminLevel] = dini_Int(File,"AdminLevel");
	    PlayerAcc[playerid][VIPlevel] = dini_Int(File,"VIPlevel");
        PlayerAcc[playerid][Bans] = dini_Int(File,"Bans");
        PlayerAcc[playerid][Kicks] = dini_Int(File,"Kicks");
        PlayerAcc[playerid][Warns] = dini_Int(File,"Warns");
        PlayerAcc[playerid][Jailed] = dini_Int(File,"Jailed");
        PlayerAcc[playerid][JailedSec] = dini_Int(File,"JailedSec");
        PlayerAcc[playerid][Mute] = dini_Int(File,"Mute");
        PlayerAcc[playerid][MuteSec] = dini_Int(File,"MuteSec");
        PlayerAcc[playerid][Freeze] = dini_Int(File,"Freeze");
        PlayerAcc[playerid][FreezeSec] = dini_Int(File,"FreezeSec");
        PlayerAcc[playerid][RpKilled] = dini_Int(File,"RpKilled");
   		if(PlayerAcc[playerid][AdminLevel] > 0)
		{
			if(PlayerAcc[playerid][AdminLevel] == 1)
			{
                AdminRank = "Moderator";
				PlayerAcc[playerid][OnDuty] = 0;
				PlayerAcc[playerid][Playing] = 1;
				PlayerAcc[playerid][Hidden] = 0;
			}
			else if(PlayerAcc[playerid][AdminLevel] == 2)
			{
				AdminRank = "Global Moderator";
				PlayerAcc[playerid][OnDuty] = 0;
				PlayerAcc[playerid][Playing] = 1;
				PlayerAcc[playerid][Hidden] = 0;
			}
			else if(PlayerAcc[playerid][AdminLevel] == 3)
			{
				AdminRank = "In-Training-Administrator";
				PlayerAcc[playerid][OnDuty] = 0;
				PlayerAcc[playerid][Playing] = 1;
				PlayerAcc[playerid][Hidden] = 0;
			}
			else if(PlayerAcc[playerid][AdminLevel] == 4)
			{
				AdminRank = "Administrator";
				PlayerAcc[playerid][OnDuty] = 0;
				PlayerAcc[playerid][Playing] = 1;
				PlayerAcc[playerid][Hidden] = 0;
			}
			else if(PlayerAcc[playerid][AdminLevel] >= 5)
			{
				AdminRank = "Senior Administrator";
				PlayerAcc[playerid][OnDuty] = 0;
				PlayerAcc[playerid][Playing] = 1;
				PlayerAcc[playerid][Hidden] = 0;
			}
			else if(PlayerAcc[playerid][AdminLevel] >= 6)
			{
				AdminRank = "Co-Owner";
				PlayerAcc[playerid][OnDuty] = 0;
				PlayerAcc[playerid][Playing] = 1;
				PlayerAcc[playerid][Hidden] = 0;
			}
			else if(PlayerAcc[playerid][AdminLevel] >= 7)
			{
				AdminRank = "Owner";
				PlayerAcc[playerid][OnDuty] = 0;
				PlayerAcc[playerid][Playing] = 1;
				PlayerAcc[playerid][Hidden] = 0;
			}
		    else AdminRank = "None";
		    if(PlayerAcc[playerid][VIPlevel] > 0)
		    {
			    if(PlayerAcc[playerid][VIPlevel] == 1)
			    {
				    VIPType = "SILVER";
		        }
		        else if(PlayerAcc[playerid][VIPlevel] == 2)
			    {
				    VIPType = "GOLD";
			    }
			    else if(PlayerAcc[playerid][VIPlevel] >= 3)
			    {
				    VIPType = "DIAMOND";
			    }
		    }
		    else VIPType = "None";
    		PlayerLogged[playerid]; = 1;
		    PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		    new logstring[256];
		    new logstring2[256];
		    new logstring3[256];
    		format(logstring,sizeof(logstring),"{1A7AC4FF}Welcome! {FF8C00FF}%s. {FFFB00FF}You are logged in.",Name);
			format(logstring2,sizeof(logstring2),"{FF0800FF}Admin Rank: {FF0000}%s {09FF00FF}| Admin Level: {FF0000}%d | {8000FFFF}Status: {FF0000}Playing",AdminRank,PlayerAcc[playerid][AdminLevel]);
			format(logstring3,sizeof(logstring3),"{FFFFFF}VIP Rank: {1AFF00FF}%s {FFA600FF}| VIP Level: {FF00F7FF}%d",VIPType,PlayerAcc[playerid][VIPlevel]);
	        SendClientMessage(playerid,COLOR_GREEN,"{3A0EE8FF}________________________________________________________");
	      	SendClientMessage(playerid,COLOR_GREEN,logstring);
	    	if(PlayerAcc[playerid][AdminLevel] > 0)
	    	{
			    SendClientMessage(playerid,COLOR_GREEN,logstring2);
		    }
		    if(PlayerAcc[playerid][VIPlevel] > 0)
		    {
		    	SendClientMessage(playerid,COLOR_GREEN,logstring3);
		    }
		    SendClientMessage(playerid,COLOR_GREEN,"{3A0EE8FF}________________________________________________________");
		}
		return 1;
	}
}
why i didnt get errors when

Код:
public OnPlayerConnect(playerid)
{
        LoadData(playerid);
	return 1;
}
I didnt get any errors up there when i add that ^^^

BTW, WHY I GOT ERRORS WHEN I PUT

Код:
public OnPlayerDisconnect(playerid, reason)
{
	SaveData(playerid);  // <<<<< THIS CODE 
	new Name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, Name, sizeof(Name));
    new LeaveMessage[256];
    switch(reason)
    {
        case 0: format(LeaveMessage,sizeof(LeaveMessage), "*%s left the server! (Connection lost) *", Name);
        case 1: format(LeaveMessage,sizeof(LeaveMessage), "*%sleft the server! (Quit) *", Name);
    }
    SendClientMessageToAll(COLOR_GREY, LeaveMessage);
	return 1;
}
the errors

(732) : error 017: undefined symbol "PlayerAcc"
(732) : warning 215: expression has no effect
(732) : error 001: expected token: ";", but found "]"
(732) : error 029: invalid expression, assumed zero
(732) : fatal error 107: too many error messages on one line

THE LINE (732) IS NEAR [stock SaveData(playerid);])

In that 732 is

Код:
stock SaveData(playerid)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
	format(File,sizeof(File),"/Players/%s.txt",name);
	if(dini_Exists(File))
	{
		dini_IntSet(File,"Deaths",PlayerAcc[playerid][Deaths]);  // <<<<< THIS LINE GIVE ME ERRORS (line 732)
		dini_IntSet(File,"Kills",PlayerAcc[playerid][Kills]);
		dini_IntSet(File,"Money",GetPlayerMoney(playerid));
		dini_IntSet(File,"Score",GetPlayerScore(playerid));
		dini_IntSet(File,"NameColor",GetPlayerColor(playerid));
		dini_IntSet(File,"IsSpy",PlayerAcc[playerid][IsSpy]);
		dini_IntSet(File,"AdminLevel",PlayerAcc[playerid][AdminLevel]);
		dini_IntSet(File,"VIPlevel",PlayerAcc[playerid][VIPlevel]);
		dini_IntSet(File,"Bans",PlayerAcc[playerid][Bans]);
		dini_IntSet(File,"Kicks",PlayerAcc[playerid][Kicks]);
		dini_IntSet(File,"Warns",PlayerAcc[playerid][Warns]);
		dini_IntSet(File,"Jailed",PlayerAcc[playerid][Jailed]);
		dini_IntSet(File,"JailedSec",PlayerAcc[playerid][JailedSec]);
		dini_IntSet(File,"Mute",PlayerAcc[playerid][Mute]);
		dini_IntSet(File,"MuteSec",PlayerAcc[playerid][MuteSec]);
		dini_IntSet(File,"Freeze",PlayerAcc[playerid][Freeze]);
		dini_IntSet(File,"FreezeSec",PlayerAcc[playerid][FreezeSec]);
     	       dini_IntSet(File,"RpKilled",PlayerAcc[playerid][RpKilled]);
    }
    return 1;
}
----------------------------------------------------------------------------------------------------------------------
AttachObjectToVehicle WHY THE OBJECT DONT APPEAR D:
----------------------------------------------------------------------------------------------------------------------


Re: Some Problem [urgent] - ZayanImran - 28.01.2013

ANYONEEEEEEE!!!


Re: Some Problem [urgent] - Glad2BeHere - 28.01.2013

pawn Код:
File[64];
//u created random file...u made not defination for it add this and tell me
new file[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(File,sizeof(File),"Players/%s.txt",name);



Re: Some Problem [urgent] - ZayanImran - 28.01.2013

PLZ HELP