Acho que isso deve resolver, nгo chequei os codigos deireito, mas tinha alguns erros de escrita apenas.
Код:
//includes
#include < a_samp >
#include < zcmd >
#include < sscanf >
#include < dof2 >
//defines
#define cor_vermelhoescuro 0x8B0000
#define cor_verdeescuro 0x008B00
#define DIALOG_ENTRAR 1
#define DIALOG_REGISTRAR 2
//enum
enum enum_jogador
{
dinheiro,
senha,
skin,
matou,
morreu
};
//new's
new PlayerInfo[MAX_PLAYERS][enum_jogador];
new Erro[MAX_PLAYERS];
public OnGameModeInit()
{
SetGameModeText("nomeservidor");
//AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
new nomejogador[128];
new nome[MAX_PLAYER_NAME];
new arquivo[128];
GetPlayerName(playerid, nome, 32);
format(arquivo, 40, "Usuarios/%s.ini", nome);
if(DOF2_FileExists(arquivo))
{
format(nomejogador, sizeof(nomejogador), "Seja bem-vindo novamente, %s! Digite sua senha para entrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", nomejogador, "Entrar", "Sair");
}
else
{
format(nomejogador, sizeof(nomejogador), "Seja muito bem-vindo ao servidor, %s! Digite sua senha para se registrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", nomejogador, "Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
}
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRAR)
{
//if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", "Seja muito bem-vindo, %s! Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
if(!strval(inputtext)) return format(nomejogador, sizeof(nomejogador), "Seja muito bem-vindo, %s! Digite sua senha para se registrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", nomejogador, "Registrar", "Sair");
if(!response) return Kick(playerid);
else
{
PlayerInfo[playerid][Senha] = strval(inputtext);
SalvarContas(playerid);
//ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", "Seja bem-//vindo, %s! Digite sua senha para entrar no servidor.", "Entrar", "Sair");
new nomejogador[158];
format(nomejogador, sizeof(nomejogador), " Seja bem-//vindo, %s! Digite sua senha para entrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", nomejogador, "Entrar", "Sair");
}
}
if(dialogid == DIALOG_LOGAR)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
PlayerInfo[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
if(strval(inputtext) == PlayerInfo[playerid][Senha])
{
PlayerInfo[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
PlayerInfo[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
PlayerInfo[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
GivePlayerMoney(playerid, PlayerInfo[playerid][Dinheiro]);
}
else
{
SendClientMessage(playerid, cor_vermelhoescuro, "Vocк errou sua senha. Digite-a novamente. Lembrando, que vocк sу pode errar 5 vezes."
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, cor_vermelhoescuro, "Sua conta estб banida de nosso servidor por ter errado a senha 5 vezes errado. Contate um dos administradores via fуrum.");
Ban(playerid);
return 1;
}
}
}
}
return 1;
}
//stock's
stock Contas(playerid)
{
new arquivo[40], nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, 32);
format(arquivo, 40, "Usuarios/%s.ini", nome);
return arquivo;
}
stock SalvarContas(playerid)
{
if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
else
{
PlayerInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", PlayerInfo[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Matou", PlayerInfo[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", PlayerInfo[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", PlayerInfo[playerid][Dinheiro]);
DOF2_SaveFile();
}
return 1;
}
stock GetUserName(playerid) {
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
for(new i = 0; i < MAX_PLAYER_NAME; i++) {
if (name[i] == '_') name[i] = ' ';
}
return name;
}