08.02.2014, 06:12
Bom, sempre que eu deslogo do meu servidor as contas sгo salvas normalmente, mais quando eu logo de novo, tudo й setado pra 0! menos o Admin level. e eu uso dof2.. alguйm sabe oque pode ser?
pawn Код:
// OnPlayerConnect
if(DOF2_FileExists(arq))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Conectando","Bem vindo(a) ao Assassins City!!\n\nEssa conta jб й registrada.\n\nDigite a senha para entrar","Entrar","Sair");
SendClientMessage(playerid,cor_cinza,"{FF0000}Aviso: {B5B5B5}Se vocк errar a senha 3 vezes serб kickado!");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_PASSWORD,"Registrando","Bem vindo(a) ao Assassins City!!\n\nEssa conta ainda nгo й registrada.\n\nDigite uma senha para se registrar","Registrar","Sair");
}
if(DOF2_GetInt(arq,"Banido") == 1)
{
SendClientMessage(playerid,cor_vermelho,"Esse conta estб banida desse servidor!");
format(stringa,sizeof(stringa),"[OpServ] %s(%d) Foi kickado automaticamente pelo servidor: CONTA BANIDA",nome(playerid),playerid);
SendAdminMessage(cor_vermelho,stringa);
Kick(playerid);
}
// Tenho uma public que salva as contas de 1 em 1 segundo.
// OnPlayerDisconnect
SalvarConta(playerid);
// Stock que salva as contas:
stock SalvarConta(playerid)
{
new arq[50];
format(arq,50,"Contas/%s.ini",nome(playerid));
DOF2_SetInt(arq,"Score",GetPlayerScore(playerid));
DOF2_SetInt(arq,"Kills",PlayerInfo[playerid][Kills]);
DOF2_SetInt(arq,"Deaths",PlayerInfo[playerid][Deaths]);
DOF2_SetInt(arq,"Money",GetPlayerMoney(playerid));
DOF2_SetInt(arq,"Vip",PlayerInfo[playerid][Vip]);
DOF2_SetInt(arq,"Banido",PlayerInfo[playerid][Banido]);
DOF2_SetInt(arq,"Jailed",PlayerInfo[playerid][Jailed]);
DOF2_SetInt(arq,"JailedTime",PlayerInfo[playerid][JailedTime]);
DOF2_SaveFile();
}
// Dialog de loguin:
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
SendClientMessage(playerid,cor_vermelho,"Vocк foi kickado por cancelar o login.");
Kick(playerid);
}
else
{
new arq[50];
format(arq,50,"Contas/%s.ini",nome(playerid));
if(!strcmp(DOF2_GetString(arq,"Senha"), inputtext, false) && strlen(inputtext) != 0)
{
PlayerInfo[playerid][Admin] = DOF2_GetInt(arq, "Admin");
PlayerInfo[playerid][Score] = DOF2_GetInt(arq, "Score");
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
PlayerInfo[playerid][Kills] = DOF2_GetInt(arq, "Kills");
PlayerInfo[playerid][Deaths] = DOF2_GetInt(arq, "Deaths");
PlayerInfo[playerid][Money] = DOF2_GetInt(arq, "Money");
GivePlayerMoney(playerid, PlayerInfo[playerid][Money]);
PlayerInfo[playerid][Vip] = DOF2_GetInt(arq, "Vip");
PlayerInfo[playerid][Banido] = DOF2_GetInt(arq, "Banido");
PlayerInfo[playerid][Jailed] = DOF2_GetInt(arq, "Jailed");
PlayerInfo[playerid][JailedTime] = DOF2_GetInt(arq, "JailedTime");
DOF2_SaveFile();
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Conectando","Ops, Senha Incorreta!\n\nDigite a senha certa para entrar:\n\n","Entrar","Sair");
ErrouASenha[playerid] ++;
if(ErrouASenha[playerid] == 3)
{
SendClientMessage(playerid,cor_vermelho,"Vocк foi kickado por errar a senha 3 vezes.");
Kick(playerid);
return 1;
}
}
}
}