#include <Double-O-Files_2>
#define DialogRegistro 123
#define DialogLogin 124
#define DialogSaidaA 125
#define DialogSaidaB 126
#define CASE_SENSITIVE false
#define VALOR_MAXIMO_VIDA 100.0
#define VALOR_MAXIMO_COLETE 100.0
#define ContasPlayers "/ContasPlayers/%s.ini"
#define ContinuarUltimaPosicao
new arquivo[45];
new _string[200];
new nome[MAX_PLAYER_NAME];
new TentativasDeLogar[MAX_PLAYERS];
new bool:PrimeiroSpawn[MAX_PLAYERS];
new TotalDeVezesMorreu[MAX_PLAYERS];
new TotalDeVezesMatou[MAX_PLAYERS];
stock SalvarDadosPlayer(playerid)
{
static Float:PosX, Float:PosY, Float:PosZ, Float:Vida, Float:Colete;
GetPlayerHealth(playerid, Vida);
GetPlayerArmour(playerid, Colete);
GetPlayerPos(playerid, PosX, PosY, PosZ);
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
if(!DOF2_FileExists(arquivo)) DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(arquivo, "Level", GetPlayerScore(playerid));
DOF2_SetInt(arquivo, "LevelProcurado", GetPlayerWantedLevel(playerid));
DOF2_SetInt(arquivo, "SkinAtual", GetPlayerSkin(playerid));
DOF2_SetFloat(arquivo, "Vida", Vida);
DOF2_SetFloat(arquivo, "Colete", Colete);
#if defined ContinuarUltimaPosicao
DOF2_SetFloat(arquivo, "PosX", PosX);
DOF2_SetFloat(arquivo, "PosY", PosY);
DOF2_SetFloat(arquivo, "PosZ", PosZ);
DOF2_SetInt(arquivo, "Interior", GetPlayerInterior(playerid));
DOF2_SetInt(arquivo, "VirtualWorld", GetPlayerVirtualWorld(playerid));
#endif
DOF2_SetInt(arquivo, "TotalDeVezesMorreu", TotalDeVezesMorreu[playerid]);
DOF2_SetInt(arquivo, "TotalDeVezesMatou", TotalDeVezesMatou[playerid]);
return 0x1;
}
stock CarregarDadosPlayer(playerid)
{
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
if(!DOF2_FileExists(arquivo)) return 0x1;
GivePlayerMoney(playerid, DOF2_GetInt(arquivo, "Dinheiro"));
SetPlayerScore(playerid, DOF2_GetInt(arquivo, "Level"));
SetPlayerWantedLevel(playerid, DOF2_GetInt(arquivo, "LevelProcurado"));
TotalDeVezesMorreu[playerid] = DOF2_GetInt(arquivo, "TotalDeVezesMorreu");
TotalDeVezesMatou[playerid] = DOF2_GetInt(arquivo, "TotalDeVezesMatou");
return 0x1;
}
public OnFilterScriptInit()
{
print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
print("MM");
print("MM [FLB]Falcon's Login Box");
print("MM");
print("MM (FilterScript Carregado)");
print("MM");
print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
return 1;
}
public OnFilterScriptExit()
{
DOF2_Exit();
print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
print("MM");
print("MM [FLB]Falcon's Login Box");
print("MM");
print("MM (FilterScript Descarregado)");
print("MM");
print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
for(new ii, ff = GetMaxPlayers(); ii < ff; ii++)
{
if(!IsPlayerConnected(ii)) continue;
SalvarDadosPlayer(ii);
}
return 1;
}
public OnPlayerConnect(playerid)
{
PrimeiroSpawn[playerid] = true;
TentativasDeLogar[playerid] = 0;
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
if(!DOF2_FileExists(arquivo))
{
format(_string, sizeof(_string), "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Olб, vocк ainda nгo possui uma conta registrada.\n\nNome: {FFFF80}%s\n\n{FFFFFF}Insira uma senha para registrar-se:", nome);
ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_INPUT, "{FFFFFF}[FLB] - Registro", _string, "Registrar", "Sair");
}
if(DOF2_FileExists(arquivo))
{
format(_string, sizeof(_string), "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Olб, vocк jб possui uma conta registrada.\n\nNome: {FFFF80}%s\n\n{FFFFFF}Insira sua senha para logar-se:", nome);
ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, "{FFFFFF}[FLB] - Login", _string, "Login", "Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarDadosPlayer(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(PrimeiroSpawn[playerid] == true)
{
PrimeiroSpawn[playerid] = false;
SetPlayerHealth(playerid, VALOR_MAXIMO_VIDA);
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
SetPlayerSkin(playerid, DOF2_GetInt(arquivo, "SkinAtual"));
#if defined ContinuarUltimaPosicao
SetPlayerPos(playerid, DOF2_GetFloat(arquivo, "PosX"), DOF2_GetFloat(arquivo, "PosY"), DOF2_GetFloat(arquivo, "PosZ"));
SetPlayerInterior(playerid, DOF2_GetInt(arquivo, "Interior"));
SetPlayerVirtualWorld(playerid, DOF2_GetInt(arquivo, "VirtualWorld"));
#endif
if(DOF2_GetFloat(arquivo, "Vida") == 0) return 0x1;
SetPlayerHealth(playerid, DOF2_GetFloat(arquivo, "Vida"));
SetPlayerArmour(playerid, DOF2_GetFloat(arquivo, "Colete"));
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
TotalDeVezesMorreu[playerid] ++;
TotalDeVezesMatou[killerid] ++;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DialogRegistro)
{
if(!response) ShowPlayerDialog(playerid, DialogSaidaA, DIALOG_STYLE_MSGBOX, "{FFFFFF}[FLB]Confirmar saida", "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Vocк ainda nгo estб registrado.\n\nTem certeza que deseja sair ?", "Sair", "Voltar");
if(response)
{
if(strlen(inputtext) < 5 || strlen(inputtext) > 20)
{
GetPlayerName(playerid, nome, sizeof(nome));
format(_string, sizeof(_string), "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Olб, vocк ainda nгo possui uma conta registrada.\n\nNome: {FFFF80}%s\n\n{FFFFFF}Insira uma senha para registrar-se:", nome);
return ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_INPUT, "{FFFFFF}[FLB] - Registro", _string, "Registrar", "Sair");
}
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
DOF2_CreateFile(arquivo);
DOF2_SetString(arquivo, "Senha", inputtext);
DOF2_SetInt(arquivo, "Dinheiro", 0);
DOF2_SetInt(arquivo, "Level", 0);
DOF2_SetInt(arquivo, "LevelProcurado", 0);
DOF2_SetInt(arquivo, "SkinAtual", 0);
DOF2_SetFloat(arquivo, "Vida", VALOR_MAXIMO_VIDA);
DOF2_SetFloat(arquivo, "Colete", VALOR_MAXIMO_COLETE);
#if defined ContinuarUltimaPosicao
DOF2_SetFloat(arquivo, "PosX", 0.0);
DOF2_SetFloat(arquivo, "PosY", 0.0);
DOF2_SetFloat(arquivo, "PosZ", 0.0);
DOF2_SetInt(arquivo, "Interior", 0);
DOF2_SetInt(arquivo, "VirtualWorld", 0);
#endif
DOF2_SetInt(arquivo, "TotalDeVezesMorreu", 0);
DOF2_SetInt(arquivo, "TotalDeVezesMatou", 0);
SpawnPlayer(playerid);
SendClientMessage(playerid, 0xFFFFFFAA, "[FLB]Obrigado por registrar-se...A administraзгo do servidor lhe deseja um bom jogo !!");
}
}
if(dialogid == DialogLogin)
{
if(!response) ShowPlayerDialog(playerid, DialogSaidaB, DIALOG_STYLE_MSGBOX, "{FFFFFF}[FLB]Confirmar saida", "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Vocк ainda nгo estб logado.\n\nTem certeza que deseja sair ?", "Sair", "Voltar");
if(response)
{
if(strlen(inputtext) < 5 || strlen(inputtext) > 20)
{
GetPlayerName(playerid, nome, sizeof(nome));
format(_string, sizeof(_string), "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Olб, vocк jб possui uma conta registrada.\n\nNome: {FFFF80}%s\n\n{FFFFFF}Insira sua senha para logar-se:", nome);
return ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, "{FFFFFF}[FLB] - Login", _string, "Login", "Sair");
}
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
if(!strcmp(inputtext, DOF2_GetString(arquivo, "Senha"), CASE_SENSITIVE))
{
CarregarDadosPlayer(playerid);
SpawnPlayer(playerid);
}
else
{
TentativasDeLogar[playerid] ++;
if(TentativasDeLogar[playerid] <= MAXIMO_TLOGAR)
{
GetPlayerName(playerid, nome, sizeof(nome));
format(_string, sizeof(_string), "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Olб, vocк ainda nгo possui uma conta registrada.\n\nNome: {FFFF80}%s\n\n{FFFFFF}Insira uma senha para registrar-se:", nome);
ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_INPUT, "{FFFFFF}[FLB] - Registro", _string, "Registrar", "Sair");
format(_string, sizeof(_string), "Senha incorreta !! || %d Tentativa(s) de %d", TentativasDeLogar[playerid], MAXIMO_TLOGAR);
SendClientMessage(playerid, 0xFF0000AA, _string);
}
if(TentativasDeLogar[playerid] > MAXIMO_TLOGAR)
{
SendClientMessage(playerid, 0xFF0000AA, "Vocк excedeu o limite mбximo de tentativas de logar...");
SendClientMessage(playerid, 0xFF0000AA, "Por questхes de seguranзa vocк foi kickado !!");
Kick(playerid);
}
}
}
}
if(dialogid == DialogSaidaA)
{
if(response)
{
SendClientMessage(playerid, 0xFFFFFFAA, "Vocк decidiu sair sem se registrar...");
Kick(playerid);
}
else
{
GetPlayerName(playerid, nome, sizeof(nome));
format(_string, sizeof(_string), "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Olб, vocк ainda nгo possui uma conta registrada.\n\nNome: {FFFF80}%s\n\n{FFFFFF}Insira uma senha para registrar-se:", nome);
ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_INPUT, "{FFFFFF}[FLB] - Registro", _string, "Registrar", "Sair");
}
}
if(dialogid == DialogSaidaB)
{
if(response)
{
SendClientMessage(playerid, 0xFFFFFFAA, "Vocк decidiu sair sem se logar...");
Kick(playerid);
}
else
{
GetPlayerName(playerid, nome, sizeof(nome));
format(_string, sizeof(_string), "{FF0000}..:: [FLB]Falcon's Login Box ::..\n{FFFFFF}Olб, vocк jб possui uma conta registrada.\n\nNome: {FFFF80}%s\n\n{FFFFFF}Insira sua senha para logar-se:", nome);
ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, "{FFFFFF}[FLB] - Login", _string, "Login", "Sair");
}
}
return 1;
}
public OnPlayerConnect(playerid)
{
SetPlayerPos(playerid, cordenada);
O problema й nesse arquivozinho aн "PosX" "PosY" "PosZ" que nгo tб salvando corretamente. Tenta ver aк, ou senгo tira essa baguio de salvar a ъltima posiзгo do player. Seta um spawn pra cada tipo de player pra ser carregado depois do login que jб й.
|