public OnPlayerUpdate(playerid)
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
SalvarDados(i);
}
return 1;
}
stock SalvarDados(playerid)
{
new arquivo[50];
format(arquivo, 50, "Contas/%s.ini",PegarNome(playerid));
if(!DOF2_FileExists(arquivo)) DOF2_CreateFile(arquivo);
else
{
format(Player[playerid][pSenha], 50, DOF2_GetString(arquivo, "senha"));
DOF2_SetString(arquivo, "senha", Player[playerid][pSenha]);
DOF2_SetInt(arquivo, "skin", GetPlayerSkin(playerid));
DOF2_SetInt(arquivo, "dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(arquivo, "adminlevel", Player[playerid][pAdminlevel]);
DOF2_SetInt(arquivo, "vip", Player[playerid][pVip]);
DOF2_SetInt(arquivo, "emprego", Player[playerid][pEmprego]);
DOF2_SetInt(arquivo, "respeito", Player[playerid][pRespeito]);
DOF2_SetInt(arquivo, "level", Player[playerid][pLevel]);
DOF2_SetInt(arquivo, "preso", Player[playerid][pPreso]);
DOF2_SaveFile();
}
return true;
}
Fecha por GMX, se for colocar no OnPlayerUpdate й loucura, vai ser chamado um loop de 1k de players em S a cada update q os players sofrerem, se vc fecha o servidor pelo console direto sem GMX, vai bugar, fecha com GMX.
Coloca esse code no OnGamemodeExit e salva normal pelo OnPlayerDisconnect. |
public OnGameModeExit()
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
SalvarDados(i);
}
DOF2_Exit();
return 1;
}
PHP Code:
|
public OnGameModeInit()
{
SetTimer("SalvarTudo", 1000, false);
return 1;
}
forward SalvarTudo();
public SalvarTudo()
{
for(new i; i < MAX_PLAYERS; ++ i)
{
if(IsPlayerConnected(i) && PlayerData[i][pLogado] == true)
{
DOF2_SetInt(ContaPlayer(i), "Drogas", PlayerData[i][Drogas]);
}
}
SetTimer("SalvarTudo", 1000, false); // Eu recomendo usar o false, porque fica mais otimizado dentro do servidor.
}
PHP Code:
|
essa variavel PlayerData[i][pLogado] nao precisa salvar no dof2 ne
|
Nгo. Essa variбvel seria setada para '' true '' quando o player conseguir logar(acertar senha na tela de login), uma forma muito boa de saber se o player estб na tela de ''login''.
|