29.08.2012, 22:12
Bom criei um tуpico mais ninguйm tava respondendo, sу criticando, mandando eu ir aprender emfim..
Bom, esse sistema estб certo? porque ele nгo estб salvando e consigo registrar mais de uma vez, se tiver errado podem em ajudar
Bom, esse sistema estб certo? porque ele nгo estб salvando e consigo registrar mais de uma vez, se tiver errado podem em ajudar

pawn Код:
#include <dini>
// === Logado e registrado ===
new Logado[MAX_PLAYERS];
new Registrado[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
Logado[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
//---------------------------------------
new arq[40];
format(arq,sizeof(arq),"Contas/%s.ini",Nome(playerid));
dini_Set(arq,"Admin",playerinfo[playerid][Admin]);
dini_Set(arq,"Cash",playerinfo[playerid][Cash]);
dini_Set(arq,"Score",playerinfo[playerid][Score]);
dini_Set(arq,"Kills",playerinfo[playerid][Kills]);
dini_Set(arq,"Deaths",playerinfo[playerid][Deaths]);
//---------------------------------------
Logado[playerid] = 0;
//---------------------------------------
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
if(Registrado[playerid] == 1 && Logado[playerid] == 0)
{
SendClientMessage(playerid,red,"Por favor, logue-se antes, /logar <senha>");
}
return 1;
}
//==============================================================================
stock SalvarPlayer(playerid)
{
new arq[64];
format(arq,sizeof(arq),"Contas/%s.ini",Nome(playerid));
dini_IntSet(arq,"Admin",playerinfo[playerid][Admin]);
dini_IntSet(arq,"Cash",playerinfo[playerid][Cash]);
dini_IntSet(arq,"Score",playerinfo[playerid][Score]);
dini_IntSet(arq,"Kills",playerinfo[playerid][Kills]);
dini_IntSet(arq,"Deaths",playerinfo[playerid][Deaths]);
return 1;
}
//==============================================================================
stock CarregarPlayer(playerid)
{
new arquivo[64];
format(arquivo,sizeof(arquivo),"Contas/%s.ini",Nome(playerid));
playerinfo[playerid][Admin] = dini_Int(arquivo,"Admin");
playerinfo[playerid][Cash] = dini_Int(arquivo,"Cash");
playerinfo[playerid][Score] = dini_Int(arquivo,"Score");
playerinfo[playerid][Kills] = dini_Int(arquivo,"Kills");
playerinfo[playerid][Deaths] = dini_Int(arquivo,"Deaths");
GivePlayerMoney(playerid,playerinfo[playerid][Cash]);
SetPlayerScore(playerid,playerinfo[playerid][Score]);
return 1;
}
//==============================================================================
//==============================================================================
CMD:registrar(playerid,params[])
{
new senha[50],arq[30];
new string[150];
if(Registrado[playerid] > 1) return SendClientMessage(playerid,red,"Tб registrado jб");
if(sscanf(params,"s",senha)) return SendClientMessage(playerid,yellow,"Use: /registrar <senha>");
format(arq,sizeof(arq),"Contas/%s.ini",Nome(playerid));
if(!fexist(arq))dini_Create(arq);
dini_Set(arq,"Senha",senha);
Registrado[playerid] = 1;
SalvarPlayer(playerid);
format(string,sizeof(string),"Conta registrada com sucesso | Sua senha: {FFFFFF}%s",senha);
SendClientMessage(playerid,yellow,string);
return 1;
}
//------------------------------------------------------------------------------
CMD:logar(playerid,params[])
{
new senha[50],arq[30],pass[256];
if(Logado[playerid] > 0) return SendClientMessage(playerid,red,"Vocк jб estб logado.");
if(Registrado[playerid] < 1) return SendClientMessage(playerid,red,"Vocк ainda nгo estб registrado.");
if(sscanf(params,"s",senha)) return SendClientMessage(playerid,yellow,"Use: /logar <senha>");
format(arq,sizeof(arq),"Contas/%s.ini",Nome(playerid));
CarregarPlayer(playerid);
Logado[playerid] = 1;
pass = dini_Get(arq,"Senha");
if(!strcmp(pass,senha,false))
{
SendClientMessage(playerid,green,"Conta logada com sucesso!!");
}
else return SendClientMessage(playerid,red,"Senha incorreta, digite a senha certa ou mude o nick, caso ele nгo seja seu.");
return 1;
}
//==============================================================================