[Ajuda] L/R (To pedindo socorro!)
#1

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

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;
}
//==============================================================================
Reply
#2

Use Dini_IntSet ao salvar Integers.

Tente checar se o arquivo da conta do player ja existe em OnPlayerConnect...
Vocк esqueceu de ver se ele jб e registrado, por isso sempre vai pra registrar.

EDIT: Achei um sistema parecido com esse seu e й funcional... Tenta dar uma lida pra entender um pouco mais de salvamento com dini! https://sampforum.blast.hk/showthread.php?tid=309257
Reply
#3

Ae cara valeu mesmo ai, mais pro meu servidor que й TDM й melhor em cmdtext mesmo, caso ao contrario vocк poderia me ajudar no que precisa? porque IDK ..
Reply
#4

Me adicione no MSN. Sano duvidas rapidamente

yanluiz7@hotmail.com
Reply
#5

Jб add aceita lб.
Reply
#6

Passa Pra DOF e Bem Melhor

Код:
#define dini_Exists		        DOF2_FileExists
	#define dini_Remove         	DOF2_RemoveFile
	#define dini_Create         	DOF2_CreateFile
	#define dini_Set			    DOF2_SetString
	#define dini_Get         		DOF2_GetString
	#define dini_IntSet   			DOF2_SetInt
	#define dini_Int         		DOF2_GetInt
	#define dini_BoolSet            DOF2_SetBool
	#define dini_Bool               DOF2_GetBool
	#define dini_FloatSet 			DOF2_SetFloat
	#define dini_Float      		DOF2_GetFloat
	#define dini_Unset       		DOF2_Unset
	#define dini_Isset       		DOF2_IsSet
PS:Nada Contra o Dini
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)