Portal SAMP
[Ajuda] salvamento - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] salvamento (/showthread.php?tid=4949)



salvamento - LOS_SANTOS - 09/01/2025

oi gente tenho esse script aqui para salvamento de armas queria saber o porq nao ta salvando quando adquiro uma arma no servidor e quando conecto nao salva ja criei uma pasta chamada weapons dentro da scriptfeles mas mesmo assim nada  algum script que entenda mais pode me salvar? 
 

Código:
#define FILTERSCRIPT
#include <a_samp>
#include <dini>
#include <dudb>
#include <sscanf2>

new file[256];
enum WepData
{
Weapon1,
Weapon1a,
Weapon2,
Weapon2a,
Weapon3,
Weapon3a,
Weapon4,
Weapon4a,
Weapon5,
Weapon5a,
Weapon6,
Weapon6a,
Weapon7,
Weapon7a,
Weapon8,
Weapon8a,
Weapon9,
Weapon9a,
Weapon10,
Weapon10a,
Weapon11,
Weapon11a,
Weapon12,
Weapon12a,
}
new WeaponInfo[MAX_PLAYERS][WepData];
#if defined FILTERSCRIPT
#else
#endif


public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "weapons/%s.ini", name);
    if (!dini_Exists(file))
    {
dini_Create(file);
dini_IntSet(file, "Weapon1",WeaponInfo[playerid][Weapon1] = 0);
dini_IntSet(file, "Weapon1a",WeaponInfo[playerid][Weapon1a] = 0);
dini_IntSet(file, "Weapon2",WeaponInfo[playerid][Weapon2] = 0);
  dini_IntSet(file, "Weapon2a",WeaponInfo[playerid][Weapon2a] = 0);
dini_IntSet(file, "Weapon3",WeaponInfo[playerid][Weapon3] = 0);
dini_IntSet(file, "Weapon3a",WeaponInfo[playerid][Weapon3a] = 0);
dini_IntSet(file, "Weapon4",WeaponInfo[playerid][Weapon4] = 0);
dini_IntSet(file, "Weapon4a",WeaponInfo[playerid][Weapon4a] = 0);
dini_IntSet(file, "Weapon5",WeaponInfo[playerid][Weapon5] = 0);
dini_IntSet(file, "Weapon5a",WeaponInfo[playerid][Weapon5a] = 0);
  dini_IntSet(file, "Weapon6",WeaponInfo[playerid][Weapon6] = 0);
  dini_IntSet(file, "Weapon6a",WeaponInfo[playerid][Weapon6a] = 0);
  dini_IntSet(file, "Weapon7",WeaponInfo[playerid][Weapon7] = 0);
  dini_IntSet(file, "Weapon7a",WeaponInfo[playerid][Weapon7a] = 0);
  dini_IntSet(file, "Weapon8",WeaponInfo[playerid][Weapon8] = 0);
  dini_IntSet(file, "Weapon8a",WeaponInfo[playerid][Weapon8a] = 0);
  dini_IntSet(file, "Weapon9",WeaponInfo[playerid][Weapon9] = 0);
  dini_IntSet(file, "Weapon9a",WeaponInfo[playerid][Weapon9a] = 0);
  dini_IntSet(file, "Weapon10",WeaponInfo[playerid][Weapon10] = 0);
  dini_IntSet(file, "Weapon10a",WeaponInfo[playerid][Weapon10a] = 0);
  dini_IntSet(file, "Weapon11",WeaponInfo[playerid][Weapon11] = 0);
  dini_IntSet(file, "Weapon11a",WeaponInfo[playerid][Weapon11a] = 0);
dini_IntSet(file, "Weapon12",WeaponInfo[playerid][Weapon12] = 0);
  dini_IntSet(file, "Weapon12a",WeaponInfo[playerid][Weapon12a] = 0);
}
else
{
WeaponInfo[playerid][Weapon1] = dini_Int(file, "Weapon1");
WeaponInfo[playerid][Weapon1a] = dini_Int(file, "Weapon1a");
WeaponInfo[playerid][Weapon2] = dini_Int(file, "Weapon2");
WeaponInfo[playerid][Weapon2a] = dini_Int(file, "Weapon2a");
WeaponInfo[playerid][Weapon3] = dini_Int(file, "Weapon3");
WeaponInfo[playerid][Weapon3a] = dini_Int(file, "Weapon3a");
WeaponInfo[playerid][Weapon4] = dini_Int(file, "Weapon4");
WeaponInfo[playerid][Weapon4a] = dini_Int(file, "Weapon4a");
WeaponInfo[playerid][Weapon5] = dini_Int(file, "Weapon5");
WeaponInfo[playerid][Weapon5a] = dini_Int(file, "Weapon5a");
WeaponInfo[playerid][Weapon6] = dini_Int(file, "Weapon6");
WeaponInfo[playerid][Weapon6a] = dini_Int(file, "Weapon6a");
WeaponInfo[playerid][Weapon7] = dini_Int(file, "Weapon7");
WeaponInfo[playerid][Weapon7a] = dini_Int(file, "Weapon7a");
WeaponInfo[playerid][Weapon8] = dini_Int(file, "Weapon8");
WeaponInfo[playerid][Weapon8a] = dini_Int(file, "Weapon8a");
WeaponInfo[playerid][Weapon9] = dini_Int(file, "Weapon9");
WeaponInfo[playerid][Weapon9a] = dini_Int(file, "Weapon9a");
WeaponInfo[playerid][Weapon10] = dini_Int(file, "Weapon10");
WeaponInfo[playerid][Weapon10a] = dini_Int(file, "Weapon10a");
WeaponInfo[playerid][Weapon11] = dini_Int(file, "Weapon11");
WeaponInfo[playerid][Weapon11a] = dini_Int(file, "Weapon11a");
WeaponInfo[playerid][Weapon12] = dini_Int(file, "Weapon12");
WeaponInfo[playerid][Weapon12a] = dini_Int(file, "Weapon12a");
}
return 1;
}
public OnPlayerSpawn(playerid)
{
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon1], WeaponInfo[playerid][Weapon1a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon2], WeaponInfo[playerid][Weapon2a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon3], WeaponInfo[playerid][Weapon3a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon4], WeaponInfo[playerid][Weapon4a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon5], WeaponInfo[playerid][Weapon5a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon6], WeaponInfo[playerid][Weapon6a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon7], WeaponInfo[playerid][Weapon7a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon8], WeaponInfo[playerid][Weapon8a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon9], WeaponInfo[playerid][Weapon9a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon10], WeaponInfo[playerid][Weapon10a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon11], WeaponInfo[playerid][Weapon11a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon12], WeaponInfo[playerid][Weapon12a]);
SetTimerEx("save", 2000, true, "i", playerid);
return 1;
}
forward save(playerid);
public save(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "weapons/%s.ini", name);
  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]);
dini_IntSet(file, "Weapon1",WeaponInfo[playerid][Weapon1]);
    dini_IntSet(file, "Weapon1a",WeaponInfo[playerid][Weapon1a]);
    dini_IntSet(file, "Weapon2",WeaponInfo[playerid][Weapon2]);
      dini_IntSet(file, "Weapon2a",WeaponInfo[playerid][Weapon2a]);
    dini_IntSet(file, "Weapon3",WeaponInfo[playerid][Weapon3]);
      dini_IntSet(file, "Weapon3a",WeaponInfo[playerid][Weapon3a]);
      dini_IntSet(file, "Weapon4",WeaponInfo[playerid][Weapon4]);
      dini_IntSet(file, "Weapon4a",WeaponInfo[playerid][Weapon4a]);
      dini_IntSet(file, "Weapon5",WeaponInfo[playerid][Weapon5]);
      dini_IntSet(file, "Weapon5a",WeaponInfo[playerid][Weapon5a]);
      dini_IntSet(file, "Weapon6",WeaponInfo[playerid][Weapon6]);
    dini_IntSet(file, "Weapon6a",WeaponInfo[playerid][Weapon6a]);
      dini_IntSet(file, "Weapon7",WeaponInfo[playerid][Weapon7]);
      dini_IntSet(file, "Weapon7a",WeaponInfo[playerid][Weapon7a]);
      dini_IntSet(file, "Weapon8",WeaponInfo[playerid][Weapon8]);
      dini_IntSet(file, "Weapon8a",WeaponInfo[playerid][Weapon8a]);
      dini_IntSet(file, "Weapon9",WeaponInfo[playerid][Weapon9]);
      dini_IntSet(file, "Weapon9a",WeaponInfo[playerid][Weapon9a]);
      dini_IntSet(file, "Weapon10",WeaponInfo[playerid][Weapon10]);
      dini_IntSet(file, "Weapon10a",WeaponInfo[playerid][Weapon10a]);
      dini_IntSet(file, "Weapon11",WeaponInfo[playerid][Weapon11]);
      dini_IntSet(file, "Weapon11a",WeaponInfo[playerid][Weapon11a]);
      dini_IntSet(file, "Weapon12",WeaponInfo[playerid][Weapon12]);
      dini_IntSet(file, "Weapon12a",WeaponInfo[playerid][Weapon12a]);
      return 1;
}



RE: salvamento - Enila182 - 11/01/2025

(09/01/2025 11:44)LOS_SANTOS Escreveu: oi gente tenho esse script aqui para salvamento de armas queria saber o porq nao ta salvando quando adquiro uma arma no servidor e quando conecto nao salva ja criei uma pasta chamada weapons dentro da scriptfeles mas mesmo assim nada  algum script que entenda mais pode me salvar? 
 

Código:
#define FILTERSCRIPT
#include <a_samp>
#include <dini>
#include <dudb>
#include <sscanf2>

new file[256];
enum WepData
{
Weapon1,
Weapon1a,
Weapon2,
Weapon2a,
Weapon3,
Weapon3a,
Weapon4,
Weapon4a,
Weapon5,
Weapon5a,
Weapon6,
Weapon6a,
Weapon7,
Weapon7a,
Weapon8,
Weapon8a,
Weapon9,
Weapon9a,
Weapon10,
Weapon10a,
Weapon11,
Weapon11a,
Weapon12,
Weapon12a,
}
new WeaponInfo[MAX_PLAYERS][WepData];
#if defined FILTERSCRIPT
#else
#endif


public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "weapons/%s.ini", name);
    if (!dini_Exists(file))
    {
dini_Create(file);
dini_IntSet(file, "Weapon1",WeaponInfo[playerid][Weapon1] = 0);
dini_IntSet(file, "Weapon1a",WeaponInfo[playerid][Weapon1a] = 0);
dini_IntSet(file, "Weapon2",WeaponInfo[playerid][Weapon2] = 0);
  dini_IntSet(file, "Weapon2a",WeaponInfo[playerid][Weapon2a] = 0);
dini_IntSet(file, "Weapon3",WeaponInfo[playerid][Weapon3] = 0);
dini_IntSet(file, "Weapon3a",WeaponInfo[playerid][Weapon3a] = 0);
dini_IntSet(file, "Weapon4",WeaponInfo[playerid][Weapon4] = 0);
dini_IntSet(file, "Weapon4a",WeaponInfo[playerid][Weapon4a] = 0);
dini_IntSet(file, "Weapon5",WeaponInfo[playerid][Weapon5] = 0);
dini_IntSet(file, "Weapon5a",WeaponInfo[playerid][Weapon5a] = 0);
  dini_IntSet(file, "Weapon6",WeaponInfo[playerid][Weapon6] = 0);
  dini_IntSet(file, "Weapon6a",WeaponInfo[playerid][Weapon6a] = 0);
  dini_IntSet(file, "Weapon7",WeaponInfo[playerid][Weapon7] = 0);
  dini_IntSet(file, "Weapon7a",WeaponInfo[playerid][Weapon7a] = 0);
  dini_IntSet(file, "Weapon8",WeaponInfo[playerid][Weapon8] = 0);
  dini_IntSet(file, "Weapon8a",WeaponInfo[playerid][Weapon8a] = 0);
  dini_IntSet(file, "Weapon9",WeaponInfo[playerid][Weapon9] = 0);
  dini_IntSet(file, "Weapon9a",WeaponInfo[playerid][Weapon9a] = 0);
  dini_IntSet(file, "Weapon10",WeaponInfo[playerid][Weapon10] = 0);
  dini_IntSet(file, "Weapon10a",WeaponInfo[playerid][Weapon10a] = 0);
  dini_IntSet(file, "Weapon11",WeaponInfo[playerid][Weapon11] = 0);
  dini_IntSet(file, "Weapon11a",WeaponInfo[playerid][Weapon11a] = 0);
dini_IntSet(file, "Weapon12",WeaponInfo[playerid][Weapon12] = 0);
  dini_IntSet(file, "Weapon12a",WeaponInfo[playerid][Weapon12a] = 0);
}
else
{
WeaponInfo[playerid][Weapon1] = dini_Int(file, "Weapon1");
WeaponInfo[playerid][Weapon1a] = dini_Int(file, "Weapon1a");
WeaponInfo[playerid][Weapon2] = dini_Int(file, "Weapon2");
WeaponInfo[playerid][Weapon2a] = dini_Int(file, "Weapon2a");
WeaponInfo[playerid][Weapon3] = dini_Int(file, "Weapon3");
WeaponInfo[playerid][Weapon3a] = dini_Int(file, "Weapon3a");
WeaponInfo[playerid][Weapon4] = dini_Int(file, "Weapon4");
WeaponInfo[playerid][Weapon4a] = dini_Int(file, "Weapon4a");
WeaponInfo[playerid][Weapon5] = dini_Int(file, "Weapon5");
WeaponInfo[playerid][Weapon5a] = dini_Int(file, "Weapon5a");
WeaponInfo[playerid][Weapon6] = dini_Int(file, "Weapon6");
WeaponInfo[playerid][Weapon6a] = dini_Int(file, "Weapon6a");
WeaponInfo[playerid][Weapon7] = dini_Int(file, "Weapon7");
WeaponInfo[playerid][Weapon7a] = dini_Int(file, "Weapon7a");
WeaponInfo[playerid][Weapon8] = dini_Int(file, "Weapon8");
WeaponInfo[playerid][Weapon8a] = dini_Int(file, "Weapon8a");
WeaponInfo[playerid][Weapon9] = dini_Int(file, "Weapon9");
WeaponInfo[playerid][Weapon9a] = dini_Int(file, "Weapon9a");
WeaponInfo[playerid][Weapon10] = dini_Int(file, "Weapon10");
WeaponInfo[playerid][Weapon10a] = dini_Int(file, "Weapon10a");
WeaponInfo[playerid][Weapon11] = dini_Int(file, "Weapon11");
WeaponInfo[playerid][Weapon11a] = dini_Int(file, "Weapon11a");
WeaponInfo[playerid][Weapon12] = dini_Int(file, "Weapon12");
WeaponInfo[playerid][Weapon12a] = dini_Int(file, "Weapon12a");
}
return 1;
}
public OnPlayerSpawn(playerid)
{
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon1], WeaponInfo[playerid][Weapon1a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon2], WeaponInfo[playerid][Weapon2a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon3], WeaponInfo[playerid][Weapon3a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon4], WeaponInfo[playerid][Weapon4a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon5], WeaponInfo[playerid][Weapon5a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon6], WeaponInfo[playerid][Weapon6a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon7], WeaponInfo[playerid][Weapon7a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon8], WeaponInfo[playerid][Weapon8a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon9], WeaponInfo[playerid][Weapon9a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon10], WeaponInfo[playerid][Weapon10a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon11], WeaponInfo[playerid][Weapon11a]);
GivePlayerWeapon(playerid, WeaponInfo[playerid][Weapon12], WeaponInfo[playerid][Weapon12a]);
SetTimerEx("save", 2000, true, "i", playerid);
return 1;
}
forward save(playerid);
public save(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "weapons/%s.ini", name);
  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]);
dini_IntSet(file, "Weapon1",WeaponInfo[playerid][Weapon1]);
    dini_IntSet(file, "Weapon1a",WeaponInfo[playerid][Weapon1a]);
    dini_IntSet(file, "Weapon2",WeaponInfo[playerid][Weapon2]);
      dini_IntSet(file, "Weapon2a",WeaponInfo[playerid][Weapon2a]);
    dini_IntSet(file, "Weapon3",WeaponInfo[playerid][Weapon3]);
      dini_IntSet(file, "Weapon3a",WeaponInfo[playerid][Weapon3a]);
      dini_IntSet(file, "Weapon4",WeaponInfo[playerid][Weapon4]);
      dini_IntSet(file, "Weapon4a",WeaponInfo[playerid][Weapon4a]);
      dini_IntSet(file, "Weapon5",WeaponInfo[playerid][Weapon5]);
      dini_IntSet(file, "Weapon5a",WeaponInfo[playerid][Weapon5a]);
      dini_IntSet(file, "Weapon6",WeaponInfo[playerid][Weapon6]);
    dini_IntSet(file, "Weapon6a",WeaponInfo[playerid][Weapon6a]);
      dini_IntSet(file, "Weapon7",WeaponInfo[playerid][Weapon7]);
      dini_IntSet(file, "Weapon7a",WeaponInfo[playerid][Weapon7a]);
      dini_IntSet(file, "Weapon8",WeaponInfo[playerid][Weapon8]);
      dini_IntSet(file, "Weapon8a",WeaponInfo[playerid][Weapon8a]);
      dini_IntSet(file, "Weapon9",WeaponInfo[playerid][Weapon9]);
      dini_IntSet(file, "Weapon9a",WeaponInfo[playerid][Weapon9a]);
      dini_IntSet(file, "Weapon10",WeaponInfo[playerid][Weapon10]);
      dini_IntSet(file, "Weapon10a",WeaponInfo[playerid][Weapon10a]);
      dini_IntSet(file, "Weapon11",WeaponInfo[playerid][Weapon11]);
      dini_IntSet(file, "Weapon11a",WeaponInfo[playerid][Weapon11a]);
      dini_IntSet(file, "Weapon12",WeaponInfo[playerid][Weapon12]);
      dini_IntSet(file, "Weapon12a",WeaponInfo[playerid][Weapon12a]);
      return 1;
}


Olá tenta assim:

Código:
#define FILTERSCRIPT
#include <a_samp>
#include <dini>
#include <sscanf2>

new file[256];
enum WepData
{
    WeaponID,
    Ammo
};
new WeaponInfo[MAX_PLAYERS][12][WepData];

#if defined FILTERSCRIPT
#else
#endif

public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "weapons/%s.ini", name);

    if (!dini_Exists(file))
    {
        dini_Create(file);
        for (new i = 0; i < 12; i++)
        {
            format(file, sizeof(file), "Weapon%d_ID", i + 1);
            dini_IntSet(file, file, WeaponInfo[playerid][i][WeaponID] = 0);

            format(file, sizeof(file), "Weapon%d_Ammo", i + 1);
            dini_IntSet(file, file, WeaponInfo[playerid][i][Ammo] = 0);
        }
    }
    else
    {
        /*--- Carregando dados existentes ---*/
        for (new i = 0; i < 12; i++)
        {
            format(file, sizeof(file), "Weapon%d_ID", i + 1);
            WeaponInfo[playerid][i][WeaponID] = dini_Int(file, file);

            format(file, sizeof(file), "Weapon%d_Ammo", i + 1);
            WeaponInfo[playerid][i][Ammo] = dini_Int(file, file);
        }
    }

    return 1;
}

/*--- Fornecendo armas ao jogador ---*/
public OnPlayerSpawn(playerid)
{
    for (new i = 0; i < 12; i++)
    {
        GivePlayerWeapon(playerid, WeaponInfo[playerid][i][WeaponID], WeaponInfo[playerid][i][Ammo]);
    }

    SetTimerEx("SavePlayerWeapons", 2000, true, "i", playerid);
    return 1;
}

forward SavePlayerWeapons(playerid);
public SavePlayerWeapons(playerid)
{
    if (!IsPlayerConnected(playerid)) return 0;

    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "weapons/%s.ini", name);

    /*---- Salvando dados das armas ---*/
    for (new i = 0; i < 12; i++)
    {
        GetPlayerWeaponData(playerid, i + 1, WeaponInfo[playerid][i][WeaponID], WeaponInfo[playerid][i][Ammo]);

        format(file, sizeof(file), "Weapon%d_ID", i + 1);
        dini_IntSet(file, file, WeaponInfo[playerid][i][WeaponID]);

        format(file, sizeof(file), "Weapon%d_Ammo", i + 1);
        dini_IntSet(file, file, WeaponInfo[playerid][i][Ammo]);
    }

    return 1;
}



RE: salvamento - LOS_SANTOS - 11/01/2025

(11/01/2025 03:16)Enila182 Escreveu: Olá tenta assim:

Código:
#define FILTERSCRIPT
#include <a_samp>
#include <dini>
#include <sscanf2>

new file[256];
enum WepData
{
    WeaponID,
    Ammo
};
new WeaponInfo[MAX_PLAYERS][12][WepData];

#if defined FILTERSCRIPT
#else
#endif

public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "weapons/%s.ini", name);

    if (!dini_Exists(file))
    {
        dini_Create(file);
        for (new i = 0; i < 12; i++)
        {
            format(file, sizeof(file), "Weapon%d_ID", i + 1);
            dini_IntSet(file, file, WeaponInfo[playerid][i][WeaponID] = 0);

            format(file, sizeof(file), "Weapon%d_Ammo", i + 1);
            dini_IntSet(file, file, WeaponInfo[playerid][i][Ammo] = 0);
        }
    }
    else
    {
        /*--- Carregando dados existentes ---*/
        for (new i = 0; i < 12; i++)
        {
            format(file, sizeof(file), "Weapon%d_ID", i + 1);
            WeaponInfo[playerid][i][WeaponID] = dini_Int(file, file);

            format(file, sizeof(file), "Weapon%d_Ammo", i + 1);
            WeaponInfo[playerid][i][Ammo] = dini_Int(file, file);
        }
    }

    return 1;
}

/*--- Fornecendo armas ao jogador ---*/
public OnPlayerSpawn(playerid)
{
    for (new i = 0; i < 12; i++)
    {
        GivePlayerWeapon(playerid, WeaponInfo[playerid][i][WeaponID], WeaponInfo[playerid][i][Ammo]);
    }

    SetTimerEx("SavePlayerWeapons", 2000, true, "i", playerid);
    return 1;
}

forward SavePlayerWeapons(playerid);
public SavePlayerWeapons(playerid)
{
    if (!IsPlayerConnected(playerid)) return 0;

    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "weapons/%s.ini", name);

    /*---- Salvando dados das armas ---*/
    for (new i = 0; i < 12; i++)
    {
        GetPlayerWeaponData(playerid, i + 1, WeaponInfo[playerid][i][WeaponID], WeaponInfo[playerid][i][Ammo]);

        format(file, sizeof(file), "Weapon%d_ID", i + 1);
        dini_IntSet(file, file, WeaponInfo[playerid][i][WeaponID]);

        format(file, sizeof(file), "Weapon%d_Ammo", i + 1);
        dini_IntSet(file, file, WeaponInfo[playerid][i][Ammo]);
    }

    return 1;
}

obg enila pela ajuda , mas ainda sim nao deu certo entao refiz de outra maneira e agora consegui esta salvando vou deixar aqui para quem precisar usar e nao sabe fazer obg  


Código:
#define FILTERSCRIPT
#include <a_samp>
#include <dini>

new file[256];
enum WepData
{
    WeaponID,
    Ammo
};
new WeaponInfo[MAX_PLAYERS][12][WepData];

#if defined FILTERSCRIPT
#else
#endif

public OnPlayerDisconnect(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "weapons/%s.ini", name);

    // Cria o arquivo de armas se não existir
    if (!dini_Exists(file))
    {
        dini_Create(file);
    }

    // Salva os dados das armas
    for (new i = 0; i < 12; i++)
    {
        // Salva corretamente as chaves e valores
        new weaponKey[32], ammoKey[32];

        // Formata as chaves para as armas e munição
        format(weaponKey, sizeof(weaponKey), "Weapon%d_ID", i + 1);
        format(ammoKey, sizeof(ammoKey), "Weapon%d_Ammo", i + 1);

        // Salva o ID da arma
        dini_IntSet(file, weaponKey, WeaponInfo[playerid][i][WeaponID]);

        // Salva a munição da arma
        dini_IntSet(file, ammoKey, WeaponInfo[playerid][i][Ammo]);
    }

    return 1;
}

public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "weapons/%s.ini", name);

    if (!dini_Exists(file))
    {
        dini_Create(file);

        // Inicializa os dados das armas caso o arquivo não exista
        for (new i = 0; i < 12; i++)
        {
            WeaponInfo[playerid][i][WeaponID] = 0;
            WeaponInfo[playerid][i][Ammo] = 0;
        }
    }
    else
    {
        // Carrega os dados das armas do arquivo
        for (new i = 0; i < 12; i++)
        {
            new weaponKey[32], ammoKey[32];

            // Formata as chaves para as armas e munição
            format(weaponKey, sizeof(weaponKey), "Weapon%d_ID", i + 1);
            format(ammoKey, sizeof(ammoKey), "Weapon%d_Ammo", i + 1);

            // Carrega o ID da arma
            WeaponInfo[playerid][i][WeaponID] = dini_Int(file, weaponKey);

            // Carrega a munição da arma
            WeaponInfo[playerid][i][Ammo] = dini_Int(file, ammoKey);
        }
    }

    return 1;
}

public OnPlayerSpawn(playerid)
{
    // Dá as armas para o jogador
    for (new i = 0; i < 12; i++)
    {
        GivePlayerWeapon(playerid, WeaponInfo[playerid][i][WeaponID], WeaponInfo[playerid][i][Ammo]);
    }

    // Salva as armas após o spawn
    SetTimerEx("SavePlayerWeapons", 2000, true, "i", playerid);
    return 1;
}

forward SavePlayerWeapons(playerid);

public SavePlayerWeapons(playerid)
{
    if (!IsPlayerConnected(playerid)) return 0;

    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "weapons/%s.ini", name);

    // Salvando os dados das armas
    for (new i = 0; i < 12; i++)
    {
        // Obtém os dados de armas do jogador
        GetPlayerWeaponData(playerid, i + 1, WeaponInfo[playerid][i][WeaponID], WeaponInfo[playerid][i][Ammo]);

        new weaponKey[32], ammoKey[32];

        // Formata as chaves para as armas e munição
        format(weaponKey, sizeof(weaponKey), "Weapon%d_ID", i + 1);
        format(ammoKey, sizeof(ammoKey), "Weapon%d_Ammo", i + 1);

        // Salva o ID da arma
        dini_IntSet(file, weaponKey, WeaponInfo[playerid][i][WeaponID]);

        // Salva a munição da arma
        dini_IntSet(file, ammoKey, WeaponInfo[playerid][i][Ammo]);
    }

    return 1;
}