18.01.2014, 21:18
pawn Код:
/*
Sistema de Registro Simples em Dof2 e Foreach.
*/
#include a_samp
#include DOF2
#include foreach
enum informacoes
{
Senha,
Dinheiro
}
static ContasInfo[MAX_PLAYERS][informacoes];
new Senha_Invalida[MAX_PLAYERS];
new bool: Logado[MAX_PLAYERS];
new celula[128];
#define DIALOG_REGISTRO (0)
#define DIALOG_LOGAR (1)
#define MAX_SENHA (20)
#define MIN_SENHA (4)
#define PastaContas "Contas/%s.ini"
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" KS Registro Feito por Kevinho.007 / Nick: Kevin_Santos");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
foreach(Player,x) SalvarContas(x);
DOF2_Exit();
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,-1,"[KS REGISTRO] Bem Vindo ao Nosso Servidor.");
if(DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFFFF}Logando", "{FFFFFF}Olб seja Bem Vindo\nVocк possue uma conta no nosso Banco de Dados\nDigite sua senha para Conectar", "Conectar", "Cancelar");
else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registrando", "{FFFFFF}Olб seja Bem Vindo\nVocк nгo possue uma conta no nosso Banco de Dados\nDigite uma Senha Abaixo Para se Cadastrar.", "Cadastrar", "Cancelar");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(Logado[playerid]) SalvarContas(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTRO:
{
if(strlen(inputtext) < MIN_SENHA || strlen(inputtext) > MAX_SENHA)
{
format(celula, sizeof(celula), "[INFO] A senha deve ter entre %d e %d caracteres!", MIN_SENHA, MAX_SENHA);
SendClientMessage(playerid, -1, celula);
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registrando", "{FFFFFF}Olб seja Bem Vindo\nVocк nгo possue uma conta no nosso Banco de Dados\nDigite uma Senha Abaixo Para se Cadastrar.", "Cadastrar", "Cancelar");
return 1;
}
if(!response) return Kick(playerid);
else
{
ContasInfo[playerid][Senha] = strval(inputtext);
RegistrarConta(playerid);
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFFFF}Logando", "{FFFFFF}Olб seja Bem Vindo\nVocк possue uma conta no nosso Banco de Dados\nDigite sua senha para Conectar", "Conectar", "Cancelar");
}
}
case DIALOG_LOGAR:
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFFFF}Logando", "{FFFFFF}Olб seja Bem Vindo\nVocк possue uma conta no nosso Banco de Dados\nDigite sua senha para Conectar", "Conectar", "Cancelar");
if(!response) return Kick(playerid);
else
{
if(!strcmp(inputtext,DOF2_GetString(Contas(playerid),"Senha"),false))
{
CarregarContas(playerid);
SpawnPlayer(playerid);
Logado[playerid] = true;
}
else
{
SendClientMessage(playerid,-1 ,"Senha Incorreta , Informe a senha correta por favor!");
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "{FFFFFF}Logando", "{FFFFFF}Olб seja Bem Vindo\nVocк possue uma conta no nosso Banco de Dados\nDigite sua senha para Conectar", "Conectar", "Cancelar");
Senha_Invalida[playerid]++;
if(Senha_Invalida[playerid] == 4) return Kick(playerid), SendClientMessage(playerid, -1, "{FFFFFF}Vocк foi Kikado por Errar a Senha 4 Vezes.");
}
}
}
}
return 1;
}
stock Contas(playerid)
{
new Dados[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(Dados, 40,PastaContas, Nome);
return Dados;
}
stock RegistrarConta(playerid)
{
DOF2_CreateFile(Contas(playerid));
ContasInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", ContasInfo[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Dinheiro", ContasInfo[playerid][Dinheiro]);
DOF2_SaveFile();
return 1;
}
stock CarregarContas(playerid)
{
ContasInfo[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
GivePlayerMoney(playerid, ContasInfo[playerid][Dinheiro]);
return 1;
}
stock SalvarContas(playerid)
{
ContasInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Dinheiro", ContasInfo[playerid][Dinheiro]);
DOF2_SaveFile();
return 1;
}
Download Include DOF2 : http://www.solidfiles.com/d/683f55e67a/
Download Include FOREACH : http://pastebin.com/Seseuh2x