faltou colocar o salvamento de dados quando o player й desconectado.
|
#include <a_samp>
#include <SII>
#define DIALOG_REGISTRO 2000
#define DIALOG_LOGAR 2001
#define BRANCO "{FFFFFF}"
#define VERMELHO "{F81414}"
#define VERDE "{00FF22}"
#define AZUL CLARO "{00CED1}"
new gPlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
enum pInfo
{
pSenha,
pScore,
pDinheiro,
pAdmin
}
new PlayerInfo[MAX_PLAYERS][pInfo];
stock ObterINI(playerid)
{
new conta[64];
format(conta,30,"Contas/%s.ini",gPlayerName[playerid]);
return conta;
}
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, gPlayerName[playerid], MAX_PLAYER_NAME);
if (fexist(ObterINI(playerid))) {
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT,""BRANCO"Login",""BRANCO"Digite sua senha abaixo para efetuar login.","logar","Quit");
}
else {
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT,""BRANCO"Registrando",""BRANCO"Digite sua senha abaixo para registrar uma nova conta.","Registrar","Quit");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch( dialogid ) {
case DIALOG_REGISTRO:
{
if (!response) return Kick(playerid);
if (response) {
if(!strlen(inputtext)) {
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, ""BRANCO"Registrando...",""VERMELHO"Vocк digitou uma senha invбlida.\n"BRANCO"Digite sua senha abaixo para registrar uma nova conta.","Registro","Quit");
}
if(INI_Open(ObterINI(playerid))) {
INI_WriteString("Senha",inputtext);
INI_WriteInt("Score",1);
INI_WriteInt("Dinheiro",5000);
INI_WriteInt("Admin",0);
INI_Save();
INI_Close();
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT,""BRANCO"Logar",""BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit");
}
}
}
case DIALOG_LOGAR:
{
if ( !response ) return Kick ( playerid );
if( response ) {
if(!strlen(inputtext)) {
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Vocк digitou uma senha invбlida.\n"BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit");
}
if(INI_Open(ObterINI(playerid))) {
INI_ReadString(PlayerInfo[playerid][pSenha],"Senha",20);
if(strcmp(inputtext,PlayerInfo[playerid][pSenha],false)) {
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Vocк digitou uma senha incorreta.\n"BRANCO"Digite sua senha abaixo para acessar.","Logar","Quit");
}
SetPlayerScore( playerid, INI_ReadInt("Score" ) );
ResetPlayerMoney( playerid );
GivePlayerMoney( playerid, INI_ReadInt( "Dinheiro" ) );
PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin");
INI_Close();
SpawnPlayer(playerid);
}
}
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(INI_Open(ObterINI(playerid))) {
INI_WriteInt("Score",PlayerInfo[playerid][pScore]);
INI_WriteInt("Dinheiro",GetPlayerMoney(playerid));
INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);
INI_Save();
INI_Close();
}
return 1;
}