Weapons Saving help. -
gtasarules14 - 23.07.2014
Hello people, today I am having a problem with the weapons saving I am using. I am using a Y_ini system, I have it on a timer, every few seconds, it saves into the file, but every time it saves, it creates a new set under the old set and does not edit the old set.
My code.
pawn Код:
forward save(playerid);
public save(playerid)
{
new INI:File = INI_Open(WepPath(playerid));
INI_SetTag(File,"data");
GetPlayerWeaponData(playerid, 1, weaponinfo[playerid][Weapon1], weaponinfo[playerid][Weapon1a]);
GetPlayerWeaponData(playerid, 2, weaponinfo[playerid][Weapon2], weaponinfo[playerid][Weapon2a]);
GetPlayerWeaponData(playerid, 3, weaponinfo[playerid][Weapon3], weaponinfo[playerid][Weapon3a]);
GetPlayerWeaponData(playerid, 4, weaponinfo[playerid][Weapon4], weaponinfo[playerid][Weapon4a]);
GetPlayerWeaponData(playerid, 5, weaponinfo[playerid][Weapon5], weaponinfo[playerid][Weapon5a]);
GetPlayerWeaponData(playerid, 6, weaponinfo[playerid][Weapon6], weaponinfo[playerid][Weapon6a]);
GetPlayerWeaponData(playerid, 7, weaponinfo[playerid][Weapon7], weaponinfo[playerid][Weapon7a]);
GetPlayerWeaponData(playerid, 8, weaponinfo[playerid][Weapon8], weaponinfo[playerid][Weapon8a]);
GetPlayerWeaponData(playerid, 9, weaponinfo[playerid][Weapon9], weaponinfo[playerid][Weapon9a]);
GetPlayerWeaponData(playerid, 10, weaponinfo[playerid][Weapon10], weaponinfo[playerid][Weapon10a]);
GetPlayerWeaponData(playerid, 11, weaponinfo[playerid][Weapon11], weaponinfo[playerid][Weapon11a]);
GetPlayerWeaponData(playerid, 12, weaponinfo[playerid][Weapon12], weaponinfo[playerid][Weapon12a]);
INI_WriteInt(File, "Weapon 1",weaponinfo[playerid][Weapon1]);
INI_WriteInt(File,"Weapon 1 ammo",weaponinfo[playerid][Weapon1a]);
INI_WriteInt(File, "Weapon 2",weaponinfo[playerid][Weapon2]);
INI_WriteInt(File,"Weapon 2 ammo",weaponinfo[playerid][Weapon2a]);
INI_WriteInt(File, "Weapon 3",weaponinfo[playerid][Weapon3]);
INI_WriteInt(File,"Weapon 3 ammo",weaponinfo[playerid][Weapon3a]);
INI_WriteInt(File, "Weapon 4",weaponinfo[playerid][Weapon4]);
INI_WriteInt(File,"Weapon 4 ammo",weaponinfo[playerid][Weapon4a]);
INI_WriteInt(File, "Weapon 5",weaponinfo[playerid][Weapon5]);
INI_WriteInt(File,"Weapon 5 ammo",weaponinfo[playerid][Weapon5a]);
INI_WriteInt(File, "Weapon 6",weaponinfo[playerid][Weapon6]);
INI_WriteInt(File,"Weapon 6 ammo",weaponinfo[playerid][Weapon6a]);
INI_WriteInt(File, "Weapon 7",weaponinfo[playerid][Weapon7]);
INI_WriteInt(File,"Weapon 7 ammo",weaponinfo[playerid][Weapon7a]);
INI_WriteInt(File, "Weapon 8",weaponinfo[playerid][Weapon8]);
INI_WriteInt(File,"Weapon 8 ammo",weaponinfo[playerid][Weapon8a]);
INI_WriteInt(File, "Weapon 9",weaponinfo[playerid][Weapon9]);
INI_WriteInt(File,"Weapon 9 ammo",weaponinfo[playerid][Weapon9a]);
INI_WriteInt(File, "Weapon 10",weaponinfo[playerid][Weapon10]);
INI_WriteInt(File,"Weapon 10 ammo",weaponinfo[playerid][Weapon10a]);
INI_WriteInt(File, "Weapon 11",weaponinfo[playerid][Weapon11]);
INI_WriteInt(File,"Weapon 11 ammo",weaponinfo[playerid][Weapon11a]);
INI_WriteInt(File, "Weapon 12",weaponinfo[playerid][Weapon12]);
INI_WriteInt(File,"Weapon 12 ammo",weaponinfo[playerid][Weapon12a]);
INI_Close(File);
return 1;
}
Any solutions? It would be appreciated
Re: Weapons Saving help. -
iFarbod - 23.07.2014
Just remove the spaces, like this :
"Weapon 5 ammo" to => "Weapon5ammo" or "W5Ammo".
Suggestion: You can use a loop for saving all weapon data, and use "format" to convert it to INI Key names.
Re: Weapons Saving help. -
gtasarules14 - 23.07.2014
Thank you
![Smiley](images/smilies/smile.png)
, but I have another problem now, when they disconnect the file stays the same, when they rejoin, the file resets.
My code for it, I have this, if the file does not exist for them, it creates a new file.
pawn Код:
if(!fexist(WepPath(playerid)))
{
new INI:File = INI_Open(WepPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File, "Weapon1",weaponinfo[playerid][Weapon1] = 0);
INI_WriteInt(File,"Weapon1ammo",weaponinfo[playerid][Weapon1a] = 0);
INI_WriteInt(File, "Weapon2",weaponinfo[playerid][Weapon2] = 0);
INI_WriteInt(File,"Weapon2ammo",weaponinfo[playerid][Weapon2a] = 0);
INI_WriteInt(File, "Weapon3",weaponinfo[playerid][Weapon3] = 0);
INI_WriteInt(File,"Weapon3ammo",weaponinfo[playerid][Weapon3a] = 0);
INI_WriteInt(File, "Weapon4",weaponinfo[playerid][Weapon4] = 0);
INI_WriteInt(File,"Weapon4ammo",weaponinfo[playerid][Weapon4a] = 0);
INI_WriteInt(File, "Weapon5",weaponinfo[playerid][Weapon5] = 0);
INI_WriteInt(File,"Weapon5ammo",weaponinfo[playerid][Weapon5a] = 0);
INI_WriteInt(File, "Weapon6",weaponinfo[playerid][Weapon6] = 0);
INI_WriteInt(File,"Weapon6ammo",weaponinfo[playerid][Weapon6a] = 0);
INI_WriteInt(File, "Weapon7",weaponinfo[playerid][Weapon7] = 0);
INI_WriteInt(File,"Weapon7ammo",weaponinfo[playerid][Weapon7a] = 0);
INI_WriteInt(File, "Weapon8",weaponinfo[playerid][Weapon8] = 0);
INI_WriteInt(File,"Weapon8ammo",weaponinfo[playerid][Weapon8a] = 0);
INI_WriteInt(File, "Weapon9",weaponinfo[playerid][Weapon9] = 0);
INI_WriteInt(File,"Weapon9ammo",weaponinfo[playerid][Weapon9a] = 0);
INI_WriteInt(File, "Weapon10",weaponinfo[playerid][Weapon10] = 0);
INI_WriteInt(File,"Weapon10ammo",weaponinfo[playerid][Weapon10a] = 0);
INI_WriteInt(File, "Weapon11",weaponinfo[playerid][Weapon11] = 0);
INI_WriteInt(File,"Weapon11ammo",weaponinfo[playerid][Weapon11a] = 0);
INI_WriteInt(File, "Weapon12",weaponinfo[playerid][Weapon12] = 0);
INI_WriteInt(File,"Weapon12ammo",weaponinfo[playerid][Weapon12a] = 0);
INI_Close(File);
return 1;
}
So what should I do to make it stay the same when they login, instead of resetting it?