FS Don't load variables in OnPlayerConnect
#1

Hello, who can help me? Fs save the variables but it not load it in OnPlayerConnect...
How fix it?

Код:
// Weapon skills by DarK_FeneR
#define FILTERSCRIPT

#include <a_samp>
#include <Dini>

#define COLOR_ROSSO      0xFF0000FF
#define COLOR_FUCSIA     0x9900FFFF
#define COLOR_BLU        0x0000FFFF
#define COLOR_CELESTE    0x0066FFFF
#define COLOR_VERDE      0x00FF00FF
#define COLOR_VERDEACQUA 0x00FF99FF
#define COLOR_GIALLO     0xFFFF00FF
#define COLOR_ARANCIONE  0xFF9900FF
#define COLOR_MARRONE    0x663300FF
#define COLOR_ROSA       0xFF6666FF
#define COLOR_SALMONE    0xFF9966FF
#define COLOR_NERO       0x000000FF
#define COLOR_BIANCO     0xFFFFFFFF

#define DIALOG_SKILLS 15

#define saveskills "Skills\%s"

#if defined FILTERSCRIPT

enum pInfo
{
	Killz,
	Skillz_Pt,
	Skillz_Weapon,
	Skillz_Armour
}

new PlayerInfo[MAX_PLAYERS][pInfo];

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print("Skill FS by DarK_FeneR LOADED");
	print("--------------------------------------\n");
	return 1;
}

public OnFilterScriptExit()
{
    print("\n--------------------------------------");
	print("Skill FS by DarK_FeneR UNLOADED");
	print("--------------------------------------\n");
	return 1;
}

#else

main()
{
	print("\n----------------------------------");
	print("Skill FS by DarK_FeneR");
	print("----------------------------------\n");
}

#endif

public OnPlayerConnect(playerid)
{
    new string[256];
    new file[100],Name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,Name,sizeof(Name));
	format(file,sizeof(file),saveskills,Name);
	if(!dini_Exists(file))
	{
		new pName[MAX_PLAYER_NAME];
		GetPlayerName(playerid,pName,sizeof(pName));
		format(string,sizeof(string),"M3_Server/Utenti/%s.cfg",pName);
		dini_Create(string);
		dini_IntSet(string,"Kills", 0);
		dini_IntSet(string,"Weapon", 0);
		dini_IntSet(string,"Morti",0);
		dini_IntSet(string,"Armour", 0);
	}
	PlayerInfo[playerid][Killz]=dini_Int(string,"Kills");
    PlayerInfo[playerid][Skillz_Pt]=dini_Int(string,"Skill_Pt");
    PlayerInfo[playerid][Skillz_Weapon]=dini_Int(string,"Weapon");
    PlayerInfo[playerid][Skillz_Armour]=dini_Int(string,"Armour");
}

public OnPlayerDisconnect(playerid, reason)
{
    new string[256];
	new pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
	format(string,sizeof(string),"M3_Server/Utenti/%s.cfg",pName);
	dini_Create(string);
	dini_IntSet(string,"Kills", PlayerInfo[playerid][Killz]);
	dini_IntSet(string,"Skill_Pt", PlayerInfo[playerid][Skillz_Pt]);
	dini_IntSet(string,"Weapon", PlayerInfo[playerid][Skillz_Weapon]);
	dini_IntSet(string,"Armour", PlayerInfo[playerid][Skillz_Armour]);
	return 1;
}

public OnPlayerSpawn(playerid)
{
    if(PlayerInfo[playerid][Killz]==10)//every 10 kills, give you 1 skill point
    {
        PlayerInfo[playerid][Skillz_Pt] ++; //give +1 skill point
		PlayerInfo[playerid][Killz]=0; //reset kills to 0
	}
	if(PlayerInfo[playerid][Skillz_Weapon]>=1) //if you have got level 1 of Weapon Skill
	{
         GivePlayerWeapon(playerid,42,100); //give fire exting with 100 ammo, too
         if(PlayerInfo[playerid][Skillz_Weapon]>=2) //if you have got level 2 of Weapon Skill
         {
               GivePlayerWeapon(playerid,39,15); //give C4 with 15 ammo, too
               if(PlayerInfo[playerid][Skillz_Weapon]==3) //if you have got level 3 of Weapon Skill
               {
                      GivePlayerWeapon(playerid,35,15); //give bazooka with 15 ammo
			   }
		 }
    }
	if(PlayerInfo[playerid][Skillz_Armour]==1) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,10); //give 10% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==2) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,20); //give 20% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==3) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,30); //give 30% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==4) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,40); //give 40% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==5) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,50); //give 50% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==6) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,60); //give 60% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==7) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,70); //give 70% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==8) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,80); //give 80% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==9) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,90); //give 90% armour
	}
	if(PlayerInfo[playerid][Skillz_Armour]==10) //if you have got level 1 of Armour Skill
	{
         SetPlayerArmour(playerid,100); //give 100% armour
	}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if(strcmp(cmdtext, "/skills", true) == 0)
    {
        ShowPlayerDialog(playerid,DIALOG_SKILLS,DIALOG_STYLE_LIST,"Skill Menu","Armi\nArmatura","OK","ANNULLA"); //skills dialog
        return 1;
    }
    if(strcmp(cmdtext, "/skillstats", true) == 0)
    {
        new plName[25], string[90];
    	GetPlayerName(playerid,plName,MAX_PLAYER_NAME);
        format(string,sizeof string,"|---------Stato Skill di %s---------|", plName);
        SendClientMessage(playerid, COLOR_VERDE, string);
        format(string,sizeof string,"Uccisioni: %d - Punti: %d - Armi: %d - Armatura: %d",PlayerInfo[playerid][Killz],PlayerInfo[playerid][Skillz_Pt], PlayerInfo[playerid][Skillz_Weapon], PlayerInfo[playerid][Skillz_Armour]);
		SendClientMessage(playerid, COLOR_VERDE, string);
        return 1;
    }
    if(strcmp(cmdtext, "/skillspt", true) == 0) 
    {
		if(IsPlayerAdmin(playerid))//if you are rcon admin
		{
            PlayerInfo[playerid][Skillz_Pt] = PlayerInfo[playerid][Skillz_Pt] + 5; //give you +5 skill points
            SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai ricevuto 5 Punti SKill"); //skill point received
        }
        else
        {
            SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Devi essere Rcon Admin per questo comando"); //Message "haven't permission to use this command"
		}
		return 1;
    }
	return 0;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_SKILLS)
	{
        if(listitem == 0)
	    {
            if(PlayerInfo[playerid][Skillz_Pt]>=1)//if you have got 1 or more skill points
            {
			    if(PlayerInfo[playerid][Skillz_Weapon]<=2)//if weapon skill are < or = 2
			    {
	                PlayerInfo[playerid][Skillz_Pt] --; //take 1 skill point
			        PlayerInfo[playerid][Skillz_Weapon] ++; //Weapon skill level increase
                    SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai uppato la Skill Armi di 1 livello"); //success upgrade
			    }
			    else
			    {
                    SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai gia la Skill al Massimo!"); //Maximum Skill
			    }
            }
		    else
		    {
                SendClientMessage(playerid,COLOR_ROSSO,"[SKILL]Non hai abbastanza Punti Skill per Uppare!");//Haven't got enough Skill point
		    }
        }
        if(listitem == 1)
	    {
	        if(response)
	        {
            	if(PlayerInfo[playerid][Skillz_Pt]>=1)//If they have more or equal to the price.
            	{
			    	if(PlayerInfo[playerid][Skillz_Armour]<=9)
			    	{
	                	PlayerInfo[playerid][Skillz_Pt] --; //take 1 skill point
			        	PlayerInfo[playerid][Skillz_Armour] ++; //Armour skill level increase
                    	SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai uppato la Skill Armatura di 1 livello"); //success upgrade
			    	}
			    	else
			    	{
                    	SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai gia la Skill al Massimo!");//Maximum Skill
			    	}
		    	}
		    	else
		    	{
                	SendClientMessage(playerid,COLOR_ROSSO,"[SKILL]Non hai abbastanza Punti Skill per Uppare!"); //haven't got Enough Skill point
		    	}
	    	}
		}
	}
	return 1;
}


public OnPlayerDeath(playerid, killerid, reason)
{
    PlayerInfo[killerid][Killz] ++; // The killer value will be increased
    if(PlayerInfo[killerid][Killz]>=10)//every 10 kills, give you 1 skill point
    {
        SendClientMessage(killerid,COLOR_ROSSO,"[SKILL]Hai ricevuto 1 Punto Skill!");
        PlayerInfo[killerid][Skillz_Pt] ++; //give +1 skill point
	    PlayerInfo[killerid][Killz]=0; //reset kills to 0
    } // The killer value will be increased
	return 1;
}
Reply
#2

because string is always empty, change format(string,sizeof(string),"M3_Server/Utenti/%s.cfg",pName); before dini_Exists
Reply
#3

Not load...

Код:
public OnPlayerConnect(playerid)
{
    new string[256];
	new pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
	format(string,sizeof(string),"M3_Server/Utenti/%s.cfg",pName);
	if(!dini_Exists(string))
	{
		dini_Create(string);
		dini_IntSet(string,"Kills", 0);
		dini_IntSet(string,"Weapon", 0);
		dini_IntSet(string,"Morti",0);
		dini_IntSet(string,"Armour", 0);
	}
 	PlayerInfo[playerid][Killz]=dini_Int(string,"Kills");
    PlayerInfo[playerid][Skillz_Pt]=dini_Int(string,"Skill_Pt");
    PlayerInfo[playerid][Skillz_Weapon]=dini_Int(string,"Weapon");
    PlayerInfo[playerid][Skillz_Armour]=dini_Int(string,"Armour");
}

public OnPlayerDisconnect(playerid, reason)
{
    new string[256];
	new pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
	format(string,sizeof(string),"M3_Server/Utenti/%s.cfg",pName);
	dini_Create(string);
	dini_IntSet(string,"Kills", PlayerInfo[playerid][Killz]);
	dini_IntSet(string,"Skill_Pt", PlayerInfo[playerid][Skillz_Pt]);
	dini_IntSet(string,"Weapon", PlayerInfo[playerid][Skillz_Weapon]);
	dini_IntSet(string,"Armour", PlayerInfo[playerid][Skillz_Armour]);
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)