Ad Code

Responsive Advertisement

COMO CRIAR UMA TELA DE LOGIN EM DOF2

 Sistema de registro e login com diálogos - DOF2




..scriptfiles / Usuários

Etapa 2

No início do seu script, inclua Double-O-Files_2.
Código:
#include <Double-O-Files_2>
Isso carregará todos os recursos incluídos no Double-O-Files, portanto, certifique-se de incluí-lo. Vamos definir alguns IDs de diálogo também no topo.
Código:
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2

Etapa 3

Agora, no topo do script em algum lugar após as inclusões, temos que salvar algumas variáveis, então criamos um enum.
Enums, também conhecidos como Enumerações, são úteis para representar grandes grupos de dados e modificar constantes rapidamente.
Portanto, vamos armazenar nossos Kills, Deaths, Money e Admin Level.
Código:
enum pInfo
{
	pKills,
	pDeaths,
	pMoney,
	pAdmin
}
novo PlayerInfo [MAX_PLAYERS] [pInfo];

Etapa 4
Adicionar
Código:
DOF2_Exit ();
Em OnGameModeExit () callback.Oou OnFilterScriptExit () se estiver usando como um script de filtro. '
Exemplo:
Código:
public OnFilterScriptExit ()
{
	DOF2_Exit ();
	return 1;
}
Role para baixo até o retorno de chamada OnPlayerConnect.
Código:
public OnPlayerConnect (playerid)
{
	novo arquivo [64]; // Declaramos o tamanho do arquivo
    GetPlayerName (playerid, arquivo, sizeof (arquivo)); // Pegamos o nome do arquivo
    format (file, sizeof (file), DOF2_File (file)); // Aqui obtemos o caminho de DOF2_File (/ Users)
	if (DOF2_FileExists (file)) // Verificamos se o jogador está registrado
	{
		ShowPlayerDialog (playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Welcome.Please log-in", "{FFFFFF} Digite sua {00FF22} senha {FFFFFF} aqui para log-in", "Log-in", "Quit");
		// A caixa de diálogo de login aparecerá 
	}	
	else // Se não for registrado
	{
		ShowPlayerDialog (playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Por favor, registre-se!", "{FFFFFF} Digite sua {00FF22} senha {FFFFFF} aqui para se registrar.", "Registrar", "Sair");
		// A caixa de diálogo de registro aparecerá
	}
	return 1;
}
Então verificamos se o jogador está cadastrado, se estiver terá que se logar, caso contrário terá que se cadastrar.

Etapa 5

Agora, vamos rolar para baixo até o retorno de chamada OnDialogResponse.
Código:
public OnDialogResponse (playerid, dialogid, resposta, listitem, inputtext [])
{
	switch (dialogid) // Nós trocamos nossos ids de diálogo
	{
		case DIALOG_REGISTER: // Se o dialog_register aparecer (id 1111)
		{
			if (! resposta) Kick (playerid); // Se ele clicar em Sair, ele será chutado
			if (! strlen (inputtext)) return ShowPlayerDialog (playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registre-se!", "{FFFFFF} Digite sua {00FF22} senha {FFFFFF} aqui para se registrar.", "Registrar", "Sair") ;
			// Se ele não digitar nada, a caixa de diálogo será exibida novamente.
			if (resposta) // Se ele clicar em Registrar
			{
				novo arquivo [64]; // Declaramos o tamanho do arquivo
				GetPlayerName (playerid, arquivo, sizeof (arquivo)); // Pegamos o nome do arquivo
				formato (arquivo, sizeof (arquivo), DOF2_File (arquivo)); // Pegamos o nome do caminho de DOF2_File, que significa da pasta Usuários.
				DOF2_CreateFile (arquivo, texto de entrada); // Cria o arquivo e a senha.
				DOF2_SetInt (arquivo, "Kills", 0); // Quando o jogador registrar suas mortes será definido como 0, você pode alterar
				DOF2_SetInt (arquivo, "Mortes", 0); // Suas mortes serão definidas como 0, você pode mudar
				DOF2_SetInt (arquivo, "Money", 1000); // Seu dinheiro será definido para 1000, você pode alterar
				DOF2_SetInt (arquivo, "AdminLevel", 0); // Seu nível de administrador será definido como 0, você pode alterar
				DOF2_SaveFile (); // Salva o arquivo.
				SetSpawnInfo (playerid, 0, 0, 1722,5123, -1912,7931, 13,5647, 269,15, 0, 0, 0, 0, 0, 0); // Define onde o jogador irá desovar, estas coordenadas são da Estação Unity em Los Santos
				SpawnPlayer (playerid); // Depois de se registrar, o jogador irá aparecer.
			}
		}
		case DIALOG_LOGIN: // Se dialog_login (id 2222) aparecer
		{
			if (! resposta) Kick (playerid); // Se ele clicar em Sair, ele será chutado.
			if (resposta) // Se ele clicar em Log-in
			{
				novo arquivo [64]; // Declaramos o tamanho do arquivo
				GetPlayerName (playerid, arquivo, sizeof (arquivo)); // Pegamos o nome do arquivo
				formato (arquivo, sizeof (arquivo), DOF2_File (arquivo)); // Pegamos o caminho do usuário em DOF2_File (pasta Usuários)
				if (DOF2_FileExists (file)) // Se ele está registrado
				{
					if (DOF2_CheckLogin (file, inputtext)) // Verificamos se a senha corresponde
					{
						PlayerInfo [playerid] [pKills] = DOF2_GetInt (arquivo, "Kills"); // Carregamos nossas configurações
						PlayerInfo [playerid] [pDeaths] = DOF2_GetInt (file, "Deaths");
						PlayerInfo [playerid] [pMoney] = DOF2_GetInt (arquivo, "Money");
						PlayerInfo [playerid] [pAdmin] = DOF2_GetInt (arquivo, "AdminLevel");
						SetSpawnInfo (playerid, 0, 0, 1722,5123, -1912,7931, 13,5647, 269,15, 0, 0, 0, 0, 0, 0); // Definimos o spawn (Estação Unity)
						SpawnPlayer (playerid); // O jogador surge após o login
						GivePlayerMoney (playerid, PlayerInfo [playerid] [pMoney]); // Damos ao jogador seu dinheiro
						return 1;
					}
					else // Se a senha não corresponder, eles obterão um erro
					{
						ShowPlayerDialog (playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Senha errada!", "{F81414} Você digitou uma senha errada \ n {FFFFFF} Digite sua senha aqui para fazer login!", "Entrar", "Sair") ;
						return 1;
					}
				}
			}
		}
	}
	return 1;
}

Etapa 6

Agora, temos que rolar para baixo até o retorno de chamada OnPlayerDisconnect para que, quando o jogador se desconectar do servidor, suas estatísticas sejam salvas.
Código:
public OnPlayerDisconnect (playerid, motivo)
{
	novo arquivo [64]; // Declaramos o tamanho do arquivo
    GetPlayerName (playerid, arquivo, sizeof (arquivo)); // Pegamos o nome do arquivo
    format (file, sizeof (file), DOF2_File (file)); // Pegamos o caminho do usuário em DOF2_File (pasta Usuários)
	DOF2_SetInt (arquivo, "Kills", PlayerInfo [playerid] [pKills]); // Definimos / atualizamos as configurações dos jogadores.
	DOF2_SetInt (arquivo, "Mortes", PlayerInfo [playerid] [pDeaths]);
	DOF2_SetInt (arquivo, "Money", PlayerInfo [playerid] [pMoney]);
	DOF2_SetInt (arquivo, "AdminLevel", PlayerInfo [playerid] [pAdmin]);
	return 1;
}

Etapa 7

Também precisamos adicionar valores em Kills and Deaths, então vamos ao callback OnPlayerDeath.
Código:
public OnPlayerDeath (playerid, killerid, motivo)
{
	PlayerInfo [killerid] [pKills] ++; // Aumentará as mortes de assassinos
    PlayerInfo [playerid] [pDeaths] ++; // Aumentará o playerid (aquele que morreu) as mortes.
	return 1;
}

Resultado
Pastebin:>>> https://pastebin.com/bYgmuJwg
End

Se eu perdi alguma coisa, ou não expliquei algo bom, por favor responda, Eu tentei o meu melhor, obrigado.

Você fez tudo certo, mas suas contas não estão salvando?

Se você fez tudo certo, ou baixou o pacote e suas contas não estão salvando, acho que você está usando o vista / windows7 (eu tive esse problema, e outro entendeu, não todos) aqui está como consertar:
Código:
Clique com o botão direito em samp-server.exe
Clique em Propriedades
E marque a caixa que diz Executar como administrador
Em seguida, clique em Ok e pronto, deve funcionar.

Postar um comentário

0 Comentários

© 2022 PawnScript All Rights Reversed