public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
format(gfile, sizeof(gfile), "Contas/%s.txt", Pname(playerid));
switch(dialogid) {
case Registro: {
if(!response)
{
SendClientMessage(playerid, 0xFF0000AA, "[ ERRO ]Vocк escolheu sair!");
Kick(playerid);
}
if(!strlen(inputtext))
{
SendClientMessage(playerid, -1, "[ {FFFFFF}ERRO ]Digite uma senha para se registrar!");
format(str, sizeof(str), "Ola, seja bem vindo pela primeira vez Sr.%s !", Pname(playerid));
ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_PASSWORD, "{FFFFFF}REGISTRO", str, "Registro", "Cancelar");
}
else
{
DOF2_CreateFile(gfile);
DOF2_SetString(gfile, "Senha", inputtext);
DOF2_SetInt(gfile, "Skin", pInfo[playerid][pSkin]);
DOF2_SetInt(gfile, "Dinheiro", pInfo[playerid][pDinheiro]);
DOF2_SetFloat(gfile, "Vida", pInfo[playerid][pVida]);
DOF2_SetFloat(gfile, "Colete", pInfo[playerid][pColete]);
DOF2_SetInt(gfile, "Level", pInfo[playerid][pLevel]);
DOF2_SetInt(gfile, "Ajudante", pInfo[playerid][Ajudante] = false);
DOF2_SetInt(gfile, "Moderador", pInfo[playerid][Moderador] = false);
DOF2_SetInt(gfile, "Corregedor", pInfo[playerid][Corregedor] = false);
DOF2_SetInt(gfile, "Administrador", pInfo[playerid][Administrador] = false);
DOF2_SetInt(gfile, "Master", pInfo[playerid][Master] = false);
DOF2_SetInt(gfile, "Oculto", pInfo[playerid][Oculto] = false);
DOF2_SaveFile();
SpawnPlayer(playerid);
SetPlayerSkin(playerid, 137);
GivePlayerMoney(playerid, 5000);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
}
}
case Login: {
if(!response)
{
SendClientMessage(playerid, 0xFF0000AA, "[ ERRO ]Vocк escolheu sair!");
Kick(playerid);
}
if(!strlen(inputtext))
{
SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ] Digite Sua senha para logar no servidor!");
format(str, sizeof(str), "Ola, seja bem vindo ao servidor novamente!");
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}LOGIN", str, "Login", "Cancelar");
}
if(strcmp(inputtext, DOF2_GetString(gfile, "Senha")) == 0)
{
pInfo[playerid][pLevel] = GetPlayerScore(playerid);
pInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
pInfo[playerid][pSkin] = DOF2_GetInt(gfile, "Skin");
pInfo[playerid][pVida] = DOF2_GetFloat(gfile, "Vida");
pInfo[playerid][pColete] = DOF2_GetFloat(gfile, "Colete");
pInfo[playerid][pDinheiro] = DOF2_GetInt(gfile, "Dinheiro");
pInfo[playerid][Ajudante] = DOF2_GetBool(gfile, "Ajudante");
pInfo[playerid][Moderador] = DOF2_GetBool(gfile, "Moderador");
pInfo[playerid][Corregedor] = DOF2_GetBool(gfile, "Corregedor");
pInfo[playerid][Administrador] = DOF2_GetBool(gfile, "Administrador");
pInfo[playerid][Master] = DOF2_GetBool(gfile, "Master");
pInfo[playerid][Oculto] = DOF2_GetBool(gfile, "Oculto");
pInfo[playerid][pVida] = DOF2_GetFloat(gfile, "Vida");
SpawnPlayer(playerid);
SendClientMessage(playerid, -1, "{FFFFFF}Login efeituado com sucesso!");
SetPlayerHealth(playerid, pInfo[playerid][pVida]);
SetPlayerArmour(playerid, pInfo[playerid][pColete]);
GivePlayerMoney(playerid, pInfo[playerid][pDinheiro]);
SetPlayerSkin(playerid, pInfo[playerid][pSkin]);
}
else
{
format(str, sizeof(str), "Ola, seja bem vindo ao servidor novamente!");
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}LOGIN", str, "Login", "Cancelar");
}
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new string[64], Float:health, Float:armour;
format(string, sizeof(string), "»O player %s se desconectou ao servidor!", Pname(playerid));
SendClientMessageToAll(-1, string);
format(gfile, sizeof(gfile), "Contas/%s.txt", Pname(playerid));
if(DOF2_FileExists(gfile))
{
GetPlayerHealth(playerid, health);
GetPlayerArmour(playerid, armour);
DOF2_SetInt(gfile, "Dinheiro", GetPlayerMoney(playerid));
DOF2_SetFloat(gfile, "Vida", health);
DOF2_SetFloat(gfile, "Colete", armour);
DOF2_SetInt(gfile, "Skin", GetPlayerSkin(playerid));
DOF2_SetInt(gfile, "Level", GetPlayerScore(playerid));
DOF2_SetBool(gfile, "Ajudante", pInfo[playerid][Ajudante]);
DOF2_SetBool(gfile, "Moderador", pInfo[playerid][Moderador]);
DOF2_SetBool(gfile, "Corregedor", pInfo[playerid][Corregedor]);
DOF2_SetBool(gfile, "Administrador", pInfo[playerid][Administrador]);
DOF2_SetBool(gfile, "Master", pInfo[playerid][Master]);
DOF2_SetBool(gfile, "Oculto", pInfo[playerid][Oculto]);
DOF2_SetInt(gfile, "Skin", GetPlayerSkin(playerid));
DOF2_SaveFile();
}
return 1;
}
enum PlayerInfo {
pDinheiro,
pLevel,
Float:pVida,
Float:pColete,
pSkin,
pProfissao,
bool:Ajudante,
bool:Moderador,
bool:Corregedor,
bool:Administrador,
bool:Master,
bool:Oculto
};
new pInfo[MAX_PLAYERS][PlayerInfo];
GivePlayerMoney(playerid, 5000);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
GivePlayerMoney(playerid, pInfo[playerid][pDinheiro]);
SetPlayerHealth(playerid, pInfo[playerid][pVida]);
SetPlayerArmour(playerid, pInfo[playerid][pColete]);
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
format(gfile, sizeof(gfile), "Contas/%s.txt", Pname(playerid));
switch(dialogid) {
case Registro: {
if(!response)
{
SendClientMessage(playerid, 0xFF0000AA, "[ ERRO ]Vocк escolheu sair!");
Kick(playerid);
}
if(!strlen(inputtext))
{
SendClientMessage(playerid, -1, "[ {FFFFFF}ERRO ]Digite uma senha para se registrar!");
format(str, sizeof(str), "Ola, seja bem vindo pela primeira vez Sr.%s !", Pname(playerid));
ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_PASSWORD, "{FFFFFF}REGISTRO", str, "Registro", "Cancelar");
}
else
{
DOF2_CreateFile(gfile);
DOF2_SetString(gfile, "Senha", inputtext);
DOF2_SetInt(gfile, "Skin", pInfo[playerid][pSkin] = 137);
DOF2_SetInt(gfile, "Dinheiro", pInfo[playerid][pDinheiro] = 5000);
DOF2_SetFloat(gfile, "Vida", pInfo[playerid][pVida] = 100.00000000);
DOF2_SetFloat(gfile, "Colete", pInfo[playerid][pColete] = 100.00000000);
DOF2_SetInt(gfile, "Level", pInfo[playerid][pLevel]);
DOF2_SetInt(gfile, "Ajudante", pInfo[playerid][Ajudante] = false);
DOF2_SetInt(gfile, "Moderador", pInfo[playerid][Moderador] = false);
DOF2_SetInt(gfile, "Corregedor", pInfo[playerid][Corregedor] = false);
DOF2_SetInt(gfile, "Administrador", pInfo[playerid][Administrador] = false);
DOF2_SetInt(gfile, "Master", pInfo[playerid][Master] = false);
DOF2_SetInt(gfile, "Oculto", pInfo[playerid][Oculto] = false);
DOF2_SaveFile();
SpawnPlayer(playerid);
SetPlayerSkin(playerid, pInfo[playerid][pSkin]);
GivePlayerMoney(playerid, pInfo[playerid][pDinheiro]);
SetPlayerHealth(playerid, pInfo[playerid][pVida]);
SetPlayerArmour(playerid, pInfo[playerid][pColete]);
SetPlayerScore(playerid, pInfo[playerid][pLevel]);
}
}
case Login: {
if(!response)
{
SendClientMessage(playerid, 0xFF0000AA, "[ ERRO ]Vocк escolheu sair!");
Kick(playerid);
}
if(!strlen(inputtext))
{
SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ] Digite Sua senha para logar no servidor!");
format(str, sizeof(str), "Ola, seja bem vindo ao servidor novamente!");
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}LOGIN", str, "Login", "Cancelar");
}
if(strcmp(inputtext, DOF2_GetString(gfile, "Senha")) == 0)
{
pInfo[playerid][pSkin] = DOF2_GetInt(gfile, "Skin");
pInfo[playerid][pVida] = DOF2_GetFloat(gfile, "Vida");
pInfo[playerid][pColete] = DOF2_GetFloat(gfile, "Colete");
pInfo[playerid][pDinheiro] = DOF2_GetInt(gfile, "Dinheiro");
pInfo[playerid][Ajudante] = DOF2_GetBool(gfile, "Ajudante");
pInfo[playerid][Moderador] = DOF2_GetBool(gfile, "Moderador");
pInfo[playerid][Corregedor] = DOF2_GetBool(gfile, "Corregedor");
pInfo[playerid][Administrador] = DOF2_GetBool(gfile, "Administrador");
pInfo[playerid][Master] = DOF2_GetBool(gfile, "Master");
pInfo[playerid][Oculto] = DOF2_GetBool(gfile, "Oculto");
pInfo[playerid][pVida] = DOF2_GetFloat(gfile, "Vida");
SpawnPlayer(playerid);
SetPlayerSkin(playerid, pInfo[playerid][pSkin]);
GivePlayerMoney(playerid, pInfo[playerid][pDinheiro]);
SetPlayerScore(playerid, pInfo[playerid][pLevel]);
SetPlayerArmour(playerid, pInfo[playerid][pColete]);
SetPlayerHealth(playerid, pInfo[playerid][pVida]);
SendClientMessage(playerid, -1, "{FFFFFF}Login efeituado com sucesso!");
}
else
{
format(str, sizeof(str), "Ola, seja bem vindo ao servidor novamente!");
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}LOGIN", str, "Login", "Cancelar");
}
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new string[64], Float:health, Float:armour;
format(string, sizeof(string), "»O player %s se desconectou ao servidor!", Pname(playerid));
SendClientMessageToAll(-1, string);
format(gfile, sizeof(gfile), "Contas/%s.txt", Pname(playerid));
if(DOF2_FileExists(gfile))
{
GetPlayerHealth(playerid, health);
GetPlayerArmour(playerid, armour);
DOF2_SetInt(gfile, "Dinheiro", GetPlayerMoney(playerid));
DOF2_SetFloat(gfile, "Vida", health);
DOF2_SetFloat(gfile, "Colete", armour);
DOF2_SetInt(gfile, "Skin", GetPlayerSkin(playerid));
DOF2_SetInt(gfile, "Level", GetPlayerScore(playerid));
DOF2_SetBool(gfile, "Ajudante", pInfo[playerid][Ajudante]);
DOF2_SetBool(gfile, "Moderador", pInfo[playerid][Moderador]);
DOF2_SetBool(gfile, "Corregedor", pInfo[playerid][Corregedor]);
DOF2_SetBool(gfile, "Administrador", pInfo[playerid][Administrador]);
DOF2_SetBool(gfile, "Master", pInfo[playerid][Master]);
DOF2_SetBool(gfile, "Oculto", pInfo[playerid][Oculto]);
DOF2_SetInt(gfile, "Skin", GetPlayerSkin(playerid));
DOF2_SaveFile();
}
// 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;
}
pInfo[playerid][Ajudante] = DOF2_SetBool(gfile, "Ajudante");
DOF2_GetBool(gfile, "Ajudante");
Seria melhor definir 1 e utilizar int (1 = ajudante, 2 = moderador, 3 = dono, etc).
|