Basta criar variáveis globais para armazenar cada um dos valores, setar eles para o jogador após ele logar, e recuperar os mesmos quando ele deslogar, realizando o salvamento. Irei te passar um exemplo utilizando o DOF2, e levarei em conta que já possue a função responsável por criar o arquivo para cada conta criada.
Quanto ao sistema de salvamento das armas, existe um tutorial bem completo a respeito do mesmo aqui no fórum: https://portalsamp.com/showthread.php?tid=2382
Código PHP:
// Macro para facilitar o desenvolvimento durante a manipulação dos dados
#define PASTA_CONTAS "/Contas/%s.ini"
// Variável criada para facilitar o "format()" ao manipular os dados
new File[128];
// Conjunto de variáveis responsáveis por armazenar informações do jogador
enum pInfo {
Float:pColete,
pVida
}
// Variável para armazenar diferentes valores referentes ao jogador
new PlayerInfo[MAX_PLAYERS][pInfo];
// Recarrega os dados do jogador após o mesmo se conectar
public OnPlayerConnect(playerid) {
LoadAccount(playerid);
return 1;
}
// Recupera a vida e colete atuais do jogador, e seta dentro de suas respectivas variáveis, e após realiza o salvamento.
public OnPlayerDisconnect(playerid) {
new Float:health, Float:armour;
PlayerInfo[playerid][pColete] = GetPlayerArmour(playerid, armour);
PlayerInfo[playerid][pVida] = GetPlayerHealth(playerid, health);
SaveAccount(playerid);
return 1;
}
// Função responsável por salvar os dados do player
stock SaveAccount(playerid) {
format(File, sizeof(File), PASTA_CONTAS, GetPlayerNameEx(playerid));
DOF2_SetFloat(File, "Vida", PlayerInfo[playerid][pVida]);
DOF2_SetFloat(File, "Colete", PlayerInfo[playerid][pColete]);
DOF2_SaveFile();
return 1;
}
// Função responsável por fazer o carregamento nos dados do player
stock LoadAccount(playerid) {
format(File, sizeof(File), PASTA_CONTAS, GetPlayerNameEx(playerid));
PlayerInfo[playerid][pVida] = DOF2_GetFloat(File, "Vida");
PlayerInfo[playerid][pColete] = DOF2_GetFloat(File, "Colete");
return 1;
}
// Função para pegar o nome do player
stock GetPlayerNameEx(playerid) {
static Name[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, Name, sizeof(Name));
return Name;
}
Quanto ao sistema de salvamento das armas, existe um tutorial bem completo a respeito do mesmo aqui no fórum: https://portalsamp.com/showthread.php?tid=2382