26.07.2018, 19:15
Como nгo consegue fazer da maneira certa o seu sistema faзa como esse sistema que eu fiz aki:
Nгo testei pq to sem o GTA, ta baixando aqui! teste ai.
PHP код:
// INCLUDES
#include <a_samp>
#include <DOF2>
// DIALOGS
#define DIALOG_REGISTRO 0
#define DIALOG_LOGIN 1
// ENUNS
enum pInfo
{
Float:pVida,
Float:pColete,
pSkin,
pLevel,
pDinheiro
};
// NEWS
new PlayerInfo[MAX_PLAYERS][pInfo];
// PUBLIC
public OnGameModeExit()
{
DOF2::Exit();
return 1;
}
public OnPlayerConnect(playerid)
{
new File[100];
format(File, sizeof(File), "Contas/%s.ini", Nome(playerid));
if(!DOF2::FileExists(File))
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "REGISTRO", "Senha para Registrar-se.", "Registrar", "Sair");
}
if(DOF2::FileExists(File))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "LOGIN", "Senha para Logar-se.", "Logar", "Sair");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new File[100];
format(File, sizeof(File), "Contas/%s.ini", Nome(playerid));
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
SendClientMessage(playerid, -1, "| ERRO | Digite uma senha entre 4 й 20 caracteres!");
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "REGISTRO", "Senha para Registrar-se.", "Registrar", "Sair");
}
else
{
DOF2::CreateFile(File);
DOF2::SetString(File, "Senha", inputtext);
DOF2::SetFloat(File, "Vida", 100.0);
DOF2::SetFloat(File, "Colete", 100.0);
DOF2::SetInt(File, "Skin", 0);
DOF2::SetInt(File, "Level", 0);
DOF2::SetInt(File, "Dinheiro", 0);
DOF2::SaveFile();
GivePlayerMoney(playerid, 5000);
}
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(!strlen(inputtext))
{
SendClientMessage(playerid, -1, "| ERRO | Vocк nгo pode logar sem colocar uma senha!");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "LOGIN", "Senha para Logar-se.", "Logar", "Sair");
}
if(strcmp(inputtext, DOF2::GetString(File, "Senha"), true) == 0)
{
CarregarConta(playerid);
}
else
{
SendClientMessage(playerid, -1, "| ERRO | Senha Incorreta!");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "LOGIN", "Senha para Logar-se.", "Logar", "Sair");
}
}
return 1;
}
stock CarregarConta(playerid)
{
new File[100];
format(File, sizeof(File), "Contas/%s.ini", Nome(playerid));
if(DOF2::FileExists(File))
{
SetPlayerHealth(playerid, PlayerInfo[playerid][pVida]);
SetPlayerArmour(playerid, PlayerInfo[playerid][pColete]);
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]);
PlayerInfo[playerid][pVida] = DOF2::GetFloat(File, "Vida");
PlayerInfo[playerid][pColete] = DOF2::GetFloat(File, "Colete");
PlayerInfo[playerid][pSkin] = DOF2::GetInt(File, "Skin");
PlayerInfo[playerid][pLevel] = DOF2::GetInt(File, "Level");
PlayerInfo[playerid][pDinheiro] = DOF2::GetInt(File, "Dinheiro");
SpawnPlayer(playerid);
}
return 1;
}
stock SalvarConta(playerid)
{
new File[100];
format(File, sizeof(File), "Contas/%s.ini", Nome(playerid));
if(DOF2::FileExists(File))
{
PlayerInfo[playerid][pVida] = GetPlayerHealth(playerid);
PlayerInfo[playerid][pColete] = GetPlayerArmour(playerid);
PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
PlayerInfo[playerid][pLevel] = GetPlayerScore(playerid);
PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
DOF2::SetFloat(File, "Vida", PlayerInfo[playerid][pVida]);
DOF2::SetFloat(File, "Colete", PlayerInfo[playerid][pColete]);
DOF2::SetInt(File, "Skin", PlayerInfo[playerid][pSkin]);
DOF2::SetInt(File, "Level", PlayerInfo[playerid][pLevel]);
DOF2::SetInt(File, "Dinheiro", PlayerInfo[playerid][pDinheiro]);
DOF2::SaveFile();
}
return 1;
}
stock Nome(playerid)
{
new yName[MAX_PLAYER_NAME];
GetPlayerName(playerid, yName, sizeof(yName));
return yName;
}