pawn Код:
#include <a_samp>
#include <Dini>
//-»»» Arrays dos Players «««-//
new Logado[MAX_PLAYERS],Float:Ratio[MAX_PLAYERS],Kills[MAX_PLAYERS],Deaths[MAX_PLAYERS];
//-»»» Definiзхes do GameMode «««-//
#define DIALOG_LOGAR 111 //- Indentification para a Dialog de Login dos Players -//
#define DIALOG_REGISTER 112 //- Indentification para a Dialog de Register dos Players -//
#define ARQUIVO_PLAYER "Players/%s.ini" //- Pasta e Arquivo onde Salva o Player -//
#define VERMELHO 0xC9170EFF //0xFF0000AA //- »»» Cores das Mensagens ««« -//
#define AZUL_FRACO 0x99FFFFAA // 0x99FFFFAB //- »»» Cores das Mensagens ««« -//
//-»»» Quando Player Conecta «««-//
public OnPlayerConnect(playerid)
{
ShowDialogLoginBox(playerid);
return true;
}
//-»»» Mostrar Login Box «««-//
stock ShowDialogLoginBox(playerid)
{
new string[110],name[24];
GetPlayerName(playerid,name,25);
if(UsuarioExiste(playerid))
{
format(string, sizeof(string), " Olб seja Bem Vindo %s \n Detectamos sua Conta salva em nosso servidor \n\n Por favor Logue-se.",name);
ShowPlayerDialog(playerid,DIALOG_LOGAR,DIALOG_STYLE_INPUT,"Login ",string,"Login","Kick");
}
if(!UsuarioExiste(playerid))
{
format(string, sizeof(string), " Olб seja Bem Vindo %s \n Detectamos que Seu Nick nгo esta registrado \n\n Por favor Registre-se.",name);
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Login ",string,"Registrar","Kick");
}
return true;
}
//-»»» Checa se Usuario Existe «««-//
stock UsuarioExiste(playerid)
{
new name[MAX_PLAYER_NAME],checarp[30];
GetPlayerName(playerid, name, sizeof(name));
format(checarp, sizeof(checarp),ARQUIVO_PLAYER,name);
if(fexist(checarp)) return true;
return false;
}
//-»»» Loga e Registra Players «««-//
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LOGAR)
{
if(!response) return Kick(playerid);
if(response)return LogarUsuario(playerid,inputtext);
}
if(dialogid == DIALOG_REGISTER)
{
if(!response) return Kick(playerid);
if(response) return RegistrarUsuario(playerid,inputtext);
}
return false;
}
stock LogarUsuario(playerid, password[])
{
if(UsuarioExiste(playerid))
{
ShowDialogLoginBox(playerid);
return SendClientMessage(playerid, VERMELHO, "[ERRO]: Vocк nгo esta Registrado");
}
if(Logado[playerid] == 10)
return SendClientMessage(playerid, VERMELHO, "[ERRO]: Vocк jб Encontra-se Logado");
if(strlen(password) < 3 || strlen(password) >= 32)
{
ShowDialogLoginBox(playerid);
return SendClientMessage(playerid, VERMELHO, "[ERRO]: Por Favor digite sua senha de forma correta | 3-32 | Carбcters");
}
new Archivo[64],Name[24];
GetPlayerName(playerid,Name,24);
format(Archivo, sizeof(Archivo), ARQUIVO_PLAYER, Name);
if(!strcmp(dini_Get(Archivo, "Senha"), password, false))
{
Logado[playerid] = 10;
Kills[playerid] = dini_Int(Archivo, "Kills");
Deaths[playerid] = dini_Int(Archivo, "Kills");
Ratio[playerid] = dini_Float(Archivo, "Ratio");
printf("[USUARIOS]: Player %s Logado",Name);
return false;
}
new string[100];
GetPlayerName(playerid,Name,24);
format(string, sizeof(string), " Olб seja Bem Vindo %s \n Detectamos sua Conta salva em nosso servidor \n Por favor Logue-se.",Name);
ShowPlayerDialog(playerid,DIALOG_LOGAR,DIALOG_STYLE_INPUT,"Login ",string,"Login","Kick");
SendClientMessage(playerid, VERMELHO, "[ERRO]: Por Favor digite sua senha de correta ,verifique se esta conta й sua");
return true;
}
stock RegistrarUsuario(playerid, password[])
{
if(UsuarioExiste(playerid))
return SendClientMessage(playerid, VERMELHO, "Sua Conta encontra-se Registrada");
if(Logado[playerid] == 10)
return SendClientMessage(playerid, VERMELHO, "Vocк no momento Encontra-se Logado");
if(strlen(password) < 3 || strlen(password) >= 32)
{
ShowDialogLoginBox(playerid);
return SendClientMessage(playerid, VERMELHO, "Por Favor digite sua senha de forma correta | 3-32 | Carбcters");
}
new Name[24],FileP[64];
GetPlayerName(playerid,Name,24);
printf("[USUARIOS]: Player %s Registrado",Name);
SendClientMessage(playerid, AZUL_FRACO, "Parabйns Sua conta foi Criada por Guarde bem sua Senha, Obrigado..");
format(FileP, sizeof(FileP), ARQUIVO_PLAYER, Name);
dini_Create(FileP);
dini_Set(FileP,"Senha",password);
dini_IntSet(FileP, "Banco",Kills[playerid]);
dini_IntSet(FileP, "Kills",Deaths[playerid]);
dini_FloatSet(FileP,"Ratio",Ratio[playerid]);
Logado[playerid] = 10;
return true;
}
public OnPlayerDisconnect(playerid,reason)
{
new Name[24],FileP[64];
GetPlayerName(playerid,Name,24);
format(FileP, sizeof(FileP), ARQUIVO_PLAYER, Name);
dini_IntSet(FileP, "Banco",Kills[playerid]);
dini_IntSet(FileP, "Kills",Deaths[playerid]);
dini_FloatSet(FileP,"Ratio",Ratio[playerid]);
return true;
}