08.12.2015, 13:48
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
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;
}

