How to save on file by using dini?
#1

My problem is: I can't save the changes I do and I can't save those on a file, I can't also saveweapons
Hi, I use this kind of saving system
Код:
public OnPlayerDataSave(playerid)
{
	if(IsPlayerConnected(playerid))
	{
		if(gPlayerLogged[playerid])
		{
			new string3[128];
			format(string3, sizeof(string3), "CRP_Scriptfiles/Accounts/%s.ini", PlayerName(playerid));
			new File: hFile = fopen(string3, io_write);
			if (hFile)
			{
				new var[32];
format(var, 32, "Level=%d\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
I want to shape the following code to the saving system that I posted here up (the code below is about phone book)
Код:
#define dialog_Phone_AdressBook 1063
#define dialog_Phone_AdressBook_ChooseAction 1064
#define dialog_Phone_AdressBook_ChNumb 1065
#define dialog_Phone_AdressBook_Rename 1066
Код:
new Pone_AdreesBook_ChoosenID[MAX_PLAYERS];
Код:
		else if(!strcmp("/rubrica", cmdtext,true))
	{
	    if(PlayerInfo[playerid][pPhoneNumber]==0)return SendClientMessage(playerid,COLOR_YELLOW,"you don't have a phone");
	    ShowPlayerPhoneAdressBook(playerid);
	    return 1;
	}
Код:
stock ShowPlayerPhoneAdressBook(playerid)
{
    new s[500];
	new _key[50];
	for(new x=0;x<20;x++)
	{
		format(_key,50,"phone_address%d_isset",x);
		if(dini_Int(PlayerInfo[playerid][pKey],_key)==0)
		{
			if(x==0)format(s,sizeof(s),"Empty %d",x+1);
			else format(s,sizeof(s),"%s\nEmpty %d",s,x+1);
		}
		else
		{
		    format(_key,50,"phone_address%d_name",x);
			if(x==0)format(s,sizeof(s),"%s",dini_Get(PlayerInfo[playerid][pKey],_key));
			else format(s,sizeof(s),"%s\n%s",s,dini_Get(PlayerInfo[playerid][pKey],_key));
		}
	}
	ShowPlayerDialog(playerid,dialog_Phone_AdressBook,DIALOG_STYLE_LIST,"Phone book",s,"Select","Cancel");
	return 1;
}
//book
Код:
else if(dialogid==dialog_Phone_AdressBook && response)
	{
	    Pone_AdreesBook_ChoosenID[playerid]=listitem;
	    new s[128];
		format(s,128,"phone_address%d_isset",Pone_AdreesBook_ChoosenID[playerid]);
		if(!dini_Int(PlayerInfo[playerid][pfile],s))
		{
		    format(s,128,"Cellulare - Rubrica - Slot vuoto %d",Pone_AdreesBook_ChoosenID[playerid]);
		}
		else
		{
		    format(s,128,"phone_address%d_name",Pone_AdreesBook_ChoosenID[playerid]);
		    format(s,128,"Cellulare - Rubrica - %s",dini_Get(PlayerInfo[playerid][pfile],s));
	    }
	    ShowPlayerDialog(playerid,dialog_Phone_AdressBook_ChooseAction,DIALOG_STYLE_LIST,s,"Chiama\nRinomina\nCambia numero","Seleziona","Annulla");
	}
	else if(dialogid==dialog_Phone_AdressBook_ChooseAction)
	{
	    if(!response)return ShowPlayerPhoneAdressBook(playerid);
	    new s[128];
	    switch(listitem)
	    {
	        case 0://rubrica chiama
	        {
                format(s,128,"phone_address%d_isset",Pone_AdreesBook_ChoosenID[playerid]);
                if(!dini_Int(PlayerInfo[playerid][pfile],s))
                {
                    SendClientMessage(playerid,COLOR_NO,"Numero inesistente");
                    return ShowPlayerPhoneAdressBook(playerid);
                }
                format(s,128,"phone_address%d_number",Pone_AdreesBook_ChoosenID[playerid]);
                return dcmd_chiama(playerid,dini_Get(PlayerInfo[playerid][pfile],s));
	        }
	        case 1://rubrica rinomina
	        {
	            ShowPlayerDialog(playerid,dialog_Phone_AdressBook_Rename,DIALOG_STYLE_INPUT,"Cellulare - Rubrica - Rinomina","Inserisci il nuovo nome per questo slot\nMinimo 2 caratteri","Conferma","Annulla");
	        }
	        case 2://cambia numero
	        {
	            ShowPlayerDialog(playerid,dialog_Phone_AdressBook_ChNumb,DIALOG_STYLE_INPUT,"Cellulare - Rubrica - Cambia numero","Inserisci il nuovo numero per questo slot","Conferma","Annulla");
	        }
	    }
	}
	else if(dialogid==dialog_Phone_AdressBook_Rename)
	{
	    if(!response)return ShowPlayerPhoneAdressBook(playerid);
	    else if(strlen(inputtext)>24 || strlen(inputtext)<2)
	    {
			SendClientMessage(playerid,COLOR_NO,"Lunghezza massima = 24 caratteri, minima = 2 caratteri");
			return ShowPlayerPhoneAdressBook(playerid);
		}
	    new s[128];
	    format(s,128,"phone_address%d_name",Pone_AdreesBook_ChoosenID[playerid]);
		dini_Set(PlayerInfo[playerid][pfile],s,inputtext);
		format(s,50,"phone_address%d_isset",Pone_AdreesBook_ChoosenID[playerid]);
		dini_IntSet(PlayerInfo[playerid][pfile],s,1);
		SendClientMessage(playerid,COLOR_INFO,"Slot rubrica rinominato");
		ShowPlayerPhoneAdressBook(playerid);
		return 1;
	}
	else if(dialogid==dialog_Phone_AdressBook_ChNumb)
	{
	    if(!response)return ShowPlayerPhoneAdressBook(playerid);
	    else if(strlen(inputtext)>10 || strlen(inputtext)<2)
	    {
			SendClientMessage(playerid,COLOR_NO,"Lunghezza massima = 10 caratteri, minima = 2 caratteri");
			return ShowPlayerPhoneAdressBook(playerid);
		}
	    new s[128];
	    format(s,128,"phone_address%d_number",Pone_AdreesBook_ChoosenID[playerid]);
		dini_Set(PlayerInfo[playerid][pfile],s,inputtext);
		SendClientMessage(playerid,COLOR_INFO,"Numero slot rubrica cambiato");
		ShowPlayerPhoneAdressBook(playerid);
		return 1;
	}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)