Bom galera como meu primeiro topico aqui no forum,irei deixar com voces um sistema de registro bem simples porem funcional ele esta salvando apenas o Level e logicamente a Senha.Ta ae para quem quiser estuda-lo
No topo de seu Game Mode adicione:
Em OnPlayerConnect(playerid)
Em OnDialogResponse
No Fim de seu GameMode
Bom gostaria tambem de que voces deixassem criticas contrutivas de como posso melhorar o codigo
etc etc
No topo de seu Game Mode adicione:
Código:
#include <a_samp>
#include <dini>
//DEFINES DE REGISTRO/LOGIN
#define DIALOG_REGISTRO 1
#define DIALOG_LOGIN 2
//CORES
#define Vermelho 0xFF0000
#define Azul 0x3366FF
#define Verde 0x238E23
Em OnPlayerConnect(playerid)
Código:
public OnPlayerConnect(playerid)
{
new Dados[64];
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome,sizeof(nome));
format(Dados,sizeof(Dados),"/Contas/%s.txt",nome);
if(dini_Exists(Dados))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LOGIN - RPG 1.0","CONTA JA REGISTRADA. INSIRA A SENHA PARA LOGAR:","Logar","Sair");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_INPUT,"REGISTRO - RPG 1.0","DEFINA UMA SENHA PARA SUA CONTA:","Registrar","Sair");
}
return 1;
}
Em OnDialogResponse
Código:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
//DIALOGO DE LOGIN
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
SendClientMessage(playerid,Vermelho,"Voce foi Kickado do servidor por nao aceitar o login");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,Vermelho,"Senha incorreta!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LOGIN - RPG 1.0","CONTA JA REGISTRADA. INSIRA A SENHA PARA LOGAR:","Logar","Sair");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
//FIM DO DIALOGO DE LOGIN
//DIALOGO DE REGISTRO
if(dialogid==DIALOG_REGISTRO)
{
if(response==0)
{
SendClientMessage(playerid,Vermelho,"Voce foi Kickado do servidor por nao aceitar o registro");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,Vermelho,"Senha incorreta!");
ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_INPUT,"REGISTRO - RPG 1.0","DEFINA UMA SENHA PARA SUA CONTA:","REGISTRAR","SAIR");
return 1;
}
else
{
Registro(playerid,inputtext);
return 1;
}
}
}
//FIM DO DIALOGO DE REGISTRO
return 1;
}
No Fim de seu GameMode
Código:
stock Registro(playerid,key[])
{
new Dados[64];
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome,sizeof(nome));
format(Dados,sizeof(Dados),"/Contas/%s.txt",nome);
dini_Create(Dados);
dini_Set(Dados,"Senha",key);
dini_IntSet(Dados,"Level",0);
return 1;
}
stock Login(playerid,key[])
{
new Dados[64];
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome,sizeof(nome));
format(Dados,sizeof(Dados),"/Contas/%s.txt",nome);
if(!strcmp(key,dini_Get(Dados,"Senha"),false))
{
SetPlayerScore(playerid,dini_Int(Dados,"Level"));
SendClientMessage(playerid,Verde,"Logado...Bom Jogo!");
return 1;
}
else
{
SendClientMessage(playerid,Vermelho,"Senha Incorreta!");
Kick(playerid);
return 1;
}
}
Bom gostaria tambem de que voces deixassem criticas contrutivas de como posso melhorar o codigo
etc etc