23.08.2012, 18:36
Tente:
pawn Code:
#include a_samp
#include Dof2
#define DIALOG_REGISTRAR 1
#define DIALOG_LOGAR 2
enum Informacoes
{
Matou,
Morreu
}
new Player[MAX_PLAYERS][Informacoes];
new Erro[MAX_PLAYERS];
public OnFilterScriptExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerConnect(playerid)
{
if(DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!", "Login", "Sair");
else ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Registar", "Sair");
return 1;
}
public OnPlayerDisconnect(playerid)
{
SalvarContas(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRAR)
{
if(!response) return Kick(playerid);
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
DOF2_CreateFile(Contas(playerid));
DOF2_SetInt(Contas(playerid),"Senha", inputtext);
DOF2_SaveFile();
SalvarContas(playerid);
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Login", "Sair");
return 1;
}
if(dialogid == DIALOG_LOGAR)
{
if(!response) return Kick(playerid);
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if(strval(inputtext) == DOF2_GetInt(Contas(playerid),"Senha"))
{
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
GivePlayerMoney(playerid,DOF2_GetInt(Contas(playerid), "Dinheiro"));
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes serб Kickado!", "Confirma", "Cancelar");
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, -1, "Vocк foi Kickado por errar a senha 5 vezes!");
Kick(playerid);
return 1;
}
}
return 1;
}
return 1;
}
Contas(playerid)
{
new arquivo[40], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(arquivo, sizeof(arquivo), "Contas/%s.ini", name);
return arquivo;
}
SalvarContas(playerid)
{
if(!DOF2_FileExists(Contas(playerid))) { DOF2_CreateFile(Contas(playerid)); }
DOF2_SetInt(Contas(playerid), "Matou", Player[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", Player[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", GetPlayerMoney(playerid));
DOF2_SaveFile();
return 1;
}