#include<a_samp>
#include<dini>
#define DIALOG_REGISTRO 1
#define DIALOG_LOGIN 2
#define DIALOG_SEXO 3
#define CONTAS "Contas/%s.ini"
#define TXT_RLOGIN "{FFFFFF}Nick: %s Registrado\n\n Digite Sua Senha Para Logar"
#define TXT_LOGIN "{FFFFFF}Olб Vocк Esta Registrado\nStatus Da Conta\nNick: %s Registrado\n\n Digite Sua Senha Para Logar"
#define TXT_NREGISTER "{FFFFFF}Olб, Vocк Nгo Esta Registrado\nStatus Da Conta\nNick: %s \nDigite Uma Senha Para Continuar"
#define TXT_RL "{FFFFFF}Pronto vocк esta registrado \nAgora digite Sua Senha Para Logar-Se"
#define TXT_SEXO "{FFFFFF}\n\nQual й o seu sexo ?\n\n"
new Sexo[MAX_PLAYERS];
new TotalMatou[MAX_PLAYERS];
new TotalMorreu[MAX_PLAYERS];
new TotalLogou[MAX_PLAYERS];
forward SalvarLevel(playerid);
forward CarregarLevel(playerid);
public OnFilterScriptInit()
{
print(" ----------------------------------");
print(" Sistema de registro MTO loaded!");
print(" ----------------------------------");
return 1;
}
SalvarPlayer(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[50];
format(String, sizeof(String), CONTAS, Nome);
if(Sexo[playerid] == 1) dini_Set(String,"Sexo", "Masculino");
else if(Sexo[playerid] == 2) dini_Set(String,"Sexo", "Feminino");
dini_IntSet(String,"Dinheiro", GetPlayerMoney(playerid));
dini_IntSet(String,"Total Matou", TotalMatou[playerid]);
dini_IntSet(String,"Total Morreu", TotalMorreu[playerid]);
dini_IntSet(String,"Total Logou", TotalLogou[playerid]);
return 1;
}
CarregarPlayer(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[50];
format(String, sizeof(String), CONTAS, Nome);
if(!strcmp(dini_Get(String,"Sexo"), "Masculino")) Sexo[playerid] = 1;
else if (!strcmp(dini_Get(String,"Sexo"), "Feminino")) Sexo[playerid] = 2;
GivePlayerMoney(playerid, dini_Int(String,"Dinheiro"));
TotalMatou[playerid] = dini_Int(String, "Total Matou");
TotalMorreu[playerid] = dini_Int(String, "Total Morreu");
TotalLogou[playerid] = dini_Int(String, "Total Logou");
return 1;
}
public OnGameModeExit()
{
for(new i=0; i<MAX_PLAYERS; i++)
SalvarPlayer(i);
return 1;
}
public OnPlayerRequestClass(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), CONTAS, Nome);
if(!dini_Exists(String))
{
format(String, sizeof(String), TXT_NREGISTER, Nome);
ShowPlayerDialog(playerid, DIALOG_REGISTRO, 3, "Registro", String, "Registrar", "Cancelar");
}
else
{
format(String, sizeof(String),TXT_LOGIN, Nome);
ShowPlayerDialog(playerid, DIALOG_LOGIN, 3, "Registro Com Sucesso", String, "Logar", "Cancelar");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarPlayer(playerid);
Sexo[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerConnected(killerid))
{
TotalMatou[killerid]++;
}
TotalMorreu[playerid]++;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
if(response)
{
if(!strlen(inputtext))
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), TXT_NREGISTER, Nome);
ShowPlayerDialog(playerid, DIALOG_REGISTRO, 3, "Registro", String, "Registrar", "Cancelar");
SendClientMessage(playerid,0x1E90FFAA,"Senha incorreta !!");
return 0;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), CONTAS, Nome);
dini_Create(String);
dini_Set(String,"Senha",inputtext);
dini_IntSet(String,"Dinheiro",12800);
dini_IntSet(String,"Vida",50);
dini_Set(String,"Sexo","Nenhum");
dini_IntSet(String,"Total Matou",0);
dini_IntSet(String,"Total Morreu",0);
dini_IntSet(String,"Total Logou",0);
ShowPlayerDialog(playerid, DIALOG_LOGIN, 3, "Login", TXT_RL, "Logar", "Cancelar");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Voce Foi Kickado Por Bot||Motivo:Nгo quer se registrar");
Kick(playerid);
}
}
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
if(!strlen(inputtext))
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String),TXT_LOGIN, Nome);
ShowPlayerDialog(playerid, DIALOG_LOGIN, 3, "Registro", String, "Logar", "Cancelar");
SendClientMessage(playerid,0x1E90FFAA,"Senha Incorreta !");
return 0;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), CONTAS, Nome);
if(!strcmp(inputtext,dini_Get(String,"Senha"),false))
{
SetSpawnInfo(playerid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
CarregarPlayer(playerid);
TotalLogou[playerid]++;
if(!Sexo[playerid])
{
ShowPlayerDialog(playerid, DIALOG_SEXO, DIALOG_STYLE_MSGBOX, "Escolha do sexo", TXT_SEXO, "Masculino", "Feminino");
}
else
{
SpawnPlayer(playerid);
}
}
else
{
SendClientMessage(playerid,0x00FF00AA,"Senha incorreta digite-a novamente");
format(String, sizeof(String), TXT_RLOGIN, Nome);
ShowPlayerDialog(playerid, DIALOG_LOGIN, 3, "Registro", String, "Logar", "Cancelar");
}
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Voce Foi Kickado Por Bot||Motivo:Nгo quer logar");
Kick(playerid);
}
}
if(dialogid == DIALOG_SEXO)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[50];
format(String, sizeof(String), CONTAS, Nome);
SetSpawnInfo(playerid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
if(response)
{
Sexo[playerid] = 1;
dini_Set(String,"Sexo","Masculino");
SetSpawnInfo(playerid,200,23,1579.5452,-1649.1245,19.8792,267.7310,0,0,0,0,0,0);
}
else
{
Sexo[playerid] = 2;
dini_Set(String,"Sexo","Feminino");
SetSpawnInfo(playerid,200,12,1579.5452,-1649.1245,19.8792,267.7310,0,0,0,0,0,0);
}
SpawnPlayer(playerid);
}
return 0;
}
Mano, disculpa mais, este sistema de registro parece ser bom, mas infelizmente ele ta meio zoado.. Porque nгo tenta fazer um mais complexo? mais facil de se usar?
Fassa um sistema de salvamento definido por exemplo em padmin, plevel e etc... PlayerInfo.. Salvando dados em SII? Mas como voce gosta de dini entгo leia este tuto: https://sampforum.blast.hk/showthread.php?tid=320022 Ira melhorar sua fs! |
Mano, disculpa mais, este sistema de registro parece ser bom, mas infelizmente ele ta meio zoado.. Porque nгo tenta fazer um mais complexo? mais facil de se usar?
Fassa um sistema de salvamento definido por exemplo em padmin, plevel e etc... PlayerInfo.. Salvando dados em SII? Mas como voce gosta de dini entгo leia este tuto: https://sampforum.blast.hk/showthread.php?tid=320022 Ira melhorar sua fs! |