Código:
//Sistema de Registro
#include a_samp
#include DOF2
new corda[128];//string
enum Info
{
pMorreu,
pMatou
};
new PlayerInfo[MAX_PLAYERS][Info];
/* dialogs */
const DRegistro = 1;
const DLogin = 2;
public OnPlayerConnect(playerid)
{
format(corda, 36, "Contas/%s.ini", pNome(playerid));
if(!DOF2_FileExists(corda))
{
format(corda, 123, "Bem vindo %s\nSeu registro não foi encontrado na database\nDigite uma senha para fazer seu registro.", pNome(playerid));
ShowPlayerDialog(playerid, DRegistro, 1, "Registro", corda, "Registrar", "Cancelar");
}
else
{
format(corda, 113, "Bem Vindo %s\nSeu registro foi localizado no banco de dados\nDigite sua senha para logar.", pNome(playerid));
ShowPlayerDialog(playerid, DLogin, 1, "Login", corda, "Logar", "Cancelar");
return 1;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[playerid][pMorreu] ++;
PlayerInfo[killerid][pMatou] ++;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DRegistro:
{
if(!response) return SendClientMessage(playerid, 0xFFFFFFAA, "Kickado Por Não Registrar-se"), Kick(playerid);
else
{
new pass = strlen(inputtext);
if(pass < 1 || pass > 15) return ShowPlayerDialog(playerid, DRegistro, 1, "Registro", "A Senha Deve Conter Entre 1 e 15 Caracteres\nDigite Uma Senha Valida Para Registrar-se.", "Registrar", "Cancelar");
format(corda, 36, "Contas/%s.ini", pNome(playerid));
DOF2_CreateFile(corda);
DOF2_SetString(corda, "Senha", inputtext);
DOF2_SetInt(corda, "Matou", PlayerInfo[playerid][pMatou]);
DOF2_SetInt(corda, "Morreu", PlayerInfo[playerid][pMorreu]);
ShowPlayerDialog(playerid, DLogin, 1, "Login", "Conta Registrada com Sucesso\nDigite sua senha para logar.", "Logar", "Cancelar");
return 1;
}
}
case DLogin:
{
if(!response) return SendClientMessage(playerid, 0xFFFFFFAA, "Kickado Por Não Logar."), Kick(playerid);
else
{
format(corda, 36, "Contas/%s.ini", pNome(playerid));
if(strcmp(inputtext,DOF2_GetString(corda, "Senha"), true) == 0)
{
PlayerInfo[playerid][pMorreu] = DOF2_GetInt(corda, "Morreu");
PlayerInfo[playerid][pMatou] = DOF2_GetInt(corda, "Matou");
SendClientMessage(playerid, 0xFFFFFFAA, "Logado com Sucesso.");
SpawnPlayer(playerid);
}
else return ShowPlayerDialog(playerid, DLogin, 1, "Login", "Senha Incorreta\nDigite sua verdadeira senha para logar.", "Logar", "Cancelar");
}
return 1;
}
}
return 1;
}
public OnPlayerDisconnect(playerid)
{
format(corda, 36, "Contas/%s.ini", pNome(playerid));
DOF2_SetInt(corda, "Matou", PlayerInfo[playerid][pMatou]);
DOF2_SetInt(corda, "Morreu", PlayerInfo[playerid][pMorreu]);
return 1;
}
stock pNome(playerid)
{
new name[24];
GetPlayerName(playerid, name, 24);
return name;
}
public OnFilterScriptExit() { DOF2_Exit(); return 1; }
Qualquer bug me avisem.