[Ajuda] Problema no login/registro
#1

Quando o usuбrio vai se registrar ou logar e digita uma senha incorreta/vazia o botгozinho de Spawn aparece e ele spawna. Podem me ajudar?
Reply
#2

Codeґs porfavor!
Reply
#3

Код:
#define FILTERSCRIPT

#include <a_samp>
#include <DOF2>

#define  DIALOG_LOGIN   	0
#define  DIALOG_REGISTRO    1

#if defined FILTERSCRIPT

// Enum
enum P_Info
{
	Dinheiro,
	Emprego,
	Skin,
	bool:CarteiraTerreste,
	bool:CarteiraAerea,
	bool:CarteiraNautica,
	bool:PorteArmas,
	Admin
}

// Variбveis
new Jogador[MAX_PLAYERS][P_Info];

// Stocks
stock Arquivo(playerid)
{
	new nome[MAX_PLAYER_NAME], arquivo[100];
	GetPlayerName(playerid, nome, sizeof(nome));
	format(arquivo, sizeof(arquivo), "Contas/%s.ini", nome);
	return arquivo;
}

stock SalvarDados(playerid)
{
	Jogador[playerid][Dinheiro] = GetPlayerMoney(playerid);
	Jogador[playerid][Skin] = GetPlayerSkin(playerid);
	DOF2_SetInt(Arquivo(playerid), "Dinheiro", Jogador[playerid][Dinheiro]);
	DOF2_SetInt(Arquivo(playerid), "Emprego", Jogador[playerid][Emprego]);
	DOF2_SetInt(Arquivo(playerid), "Skin", Jogador[playerid][Skin]);
	DOF2_SetInt(Arquivo(playerid), "CarteiraTerrestre", Jogador[playerid][CarteiraTerreste]);
	DOF2_SetInt(Arquivo(playerid), "CarteiraAerea", Jogador[playerid][CarteiraAerea]);
	DOF2_SetInt(Arquivo(playerid), "CarteiraNautica", Jogador[playerid][CarteiraNautica]);
	DOF2_SetInt(Arquivo(playerid), "PorteArmas", Jogador[playerid][PorteArmas]);
	DOF2_SetInt(Arquivo(playerid), "Admin", Jogador[playerid][Admin]);
	DOF2_SaveFile();
}
//----------------------------------------------------------------------//

public OnPlayerConnect(playerid)
{
	if(DOF2_FileExists(Arquivo(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}LOGIN", "Bem-vindo ao servidor.\nDigite sua senha abaixo para se logar.", "Confirmar", "Cancelar");
	else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FF0000}REGISTRO", "Bem-vindo ao servidor.\nDigite uma senha abaixo para se registrar", "Confirmar", "Cancelar");
	return true;
}

public OnPlayerDisconnect(playerid)
{
	SalvarDados(playerid);
	return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid)
	{
	    case DIALOG_LOGIN:
	    {
     		if(!response) return Kick(playerid);
	        else
	        {
				if(!strlen(inputtext)) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}LOGIN", "Bem-vindo ao servidor.\nDigite sua senha abaixo para se logar\n{FF0000}*Senha incorreta!", "Confirmar", "Cancelar");
				else
				{
					if(strcmp(inputtext, DOF2_GetString(Arquivo(playerid),"Senha"),false)) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}LOGIN", "Bem-vindo ao servidor.\nDigite sua senha abaixo para se logar\n{FF0000}*Senha incorreta!", "Confirmar", "Cancelar");
					else
					{
					    GivePlayerMoney(playerid, DOF2_GetInt(Arquivo(playerid), "Dinheiro"));
					    SetPlayerSkin(playerid, DOF2_GetInt(Arquivo(playerid), "Skin"));
					}
				}
	        }
	    }
	    case DIALOG_REGISTRO:
	    {
	        if(!response) return Kick(playerid);
	        else
	        {
				if(!strlen(inputtext)) ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FF0000}REGISTRO", "Bem-vindo ao servidor.\nDigite uma senha abaixo para se registrar\n{FF0000}*Digite algo!", "Confirmar", "Cancelar");
				else
				{
					DOF2_CreateFile(Arquivo(playerid));
					DOF2_SetString(Arquivo(playerid), "Senha", inputtext);
					GivePlayerMoney(playerid, 10000);
					SalvarDados(playerid);
				}
			}
	    }
	}
	return true;
}

public OnFilterScriptExit()
{
	DOF2_Exit();
	return true;
}

#endif
EDIT: O login/registro funciona, porйm quando clica em um botгo qualquer a tela de spawn aparece, porйm o dialogo continua e o player nao pode se mexer, mas pode sofrer DM e etc.
Reply
#4

Se voce quiser que ele nгo de spawn ao apertar o botao la em baixo, sу apenas adicione isto em seu GM/Fs

pawn Код:
public OnPlayerRequestClass(playerid, classid) return 0;
Espero ter ajudado
Reply
#5

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
Se voce quiser que ele nгo de spawn ao apertar o botao la em baixo, sу apenas adicione isto em seu GM/Fs

pawn Код:
public OnPlayerRequestClass(playerid, classid) return 0;
Espero ter ajudado
Mas ai como ele vai spawnar depois?
Reply
#6

Use isso quando ele for logar, isso irб forзar a ele spawnar.

pawn Код:
SetSpawnInfo(playerid, 0, SetPlayerSkin(playerid, 0), 0.0, 0.0, 0.0,0,0,0,0,0,0,0), SpawnPlayer(playerid), OnPlayerSpawn(playerid);
Reply
#7

Cara nгo tem nenhum outro jeito??
Reply
#8

Quote:
Originally Posted by SouLMito
Посмотреть сообщение
Cara nгo tem nenhum outro jeito??
Pelo que eu sei, esse й o jeito mais simples e eficaz!

O player sу irб logar quando ele digitar a senha correta, nisso й sу colocar essa pequena funзгo la e ele irб spawnar normalmente.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)