SA-MP Forums Archive
[Ajuda] TextDraw Clicavel - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] TextDraw Clicavel (/showthread.php?tid=639645)



TextDraw Clicavel - GustavoKarasek - 20.08.2017

como faзo para que quando o player apertar ESC, a setinha do mouse nгo sumir e ele nгo descongelar, ou seja ele й obrigado a clicar na textdraw para poder jogar...

Код:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
    if(playertextid == Login[playerid][5])
    {
    	ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "• Registro", "Para jogar no servidor, registre sua conta.\n\n{1BE0E0}Digite uma senha", "Registrar", "Sair");
  		PlayerTextDrawHide(playerid, Login[playerid][0]);
		PlayerTextDrawHide(playerid, Login[playerid][1]);
		PlayerTextDrawHide(playerid, Login[playerid][2]);
		PlayerTextDrawHide(playerid, Login[playerid][3]);
		PlayerTextDrawHide(playerid, Login[playerid][4]);
		PlayerTextDrawHide(playerid, Login[playerid][5]);
		PlayerTextDrawHide(playerid, Login[playerid][6]);
		PlayerTextDrawHide(playerid, Login[playerid][7]);
		PlayerTextDrawHide(playerid, Login[playerid][8]);
  		CancelSelectTextDraw(playerid);
	}
	return 0;
}



Re: TextDraw Clicavel - RodrigoMSR - 20.08.2017

PHP код:
public OnPlayerClickTextDraw(playeridText:clickedid)
{
    if(
clickedid == Text:INVALID_TEXT_DRAW)
    {
        
SelectTextDraw(playerid, -1);
    }
    return 
1;




Re: TextDraw Clicavel - GustavoKarasek - 20.08.2017

como eu estou usando acall OnPlayerClickPlayerTextDraw(playerid, PlayerTextlayertextid)
coloquei isso nela, mas nгo deu, player aperta esc e a seta some
Код:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
    if(playertextid == Login[playerid][5])
    {
    	ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "• Registro", "Para jogar no servidor, registre sua conta.\n\n{1BE0E0}Digite uma senha", "Registrar", "Sair");
  		PlayerTextDrawHide(playerid, Login[playerid][0]);
		PlayerTextDrawHide(playerid, Login[playerid][1]);
		PlayerTextDrawHide(playerid, Login[playerid][2]);
		PlayerTextDrawHide(playerid, Login[playerid][3]);
		PlayerTextDrawHide(playerid, Login[playerid][4]);
		PlayerTextDrawHide(playerid, Login[playerid][5]);
		PlayerTextDrawHide(playerid, Login[playerid][6]);
		PlayerTextDrawHide(playerid, Login[playerid][7]);
		PlayerTextDrawHide(playerid, Login[playerid][8]);
  		CancelSelectTextDraw(playerid);
  		return 1;
	}
	if(playertextid ==  PlayerText:INVALID_TEXT_DRAW)
	{
	SendClientMessage(playerid, VERMELHO, "Vocк precisa estar registrado para jogar");
	SelectTextDraw(playerid, -1);
	return 1;
	}
	return 0;
}
@EDIT
Nгo tinha testado.
@REsolvido


Re: TextDraw Clicavel - GustavoKarasek - 20.08.2017

Apareceu outro problema,
if(clickedid == Text:INVALID_TEXT_DRAW)
essa funзгo esta sendo chamada mesmo que o player nгo aperta ESC.
Coloquei printf("TESTE"); para fazer o teste
Код:
[20:18:58] [connection] 192.168.0.4:51055 requests connection cookie.
[20:18:59] [connection] incoming connection: 192.168.0.4:51055 id: 0
[20:18:59] [join] Zetech123 has joined the server (0:192.168.0.4)
[20:19:00] TESTE
[20:19:11] [part] Zetech123 has left the server (0:1)
esta sendo chamado logo ao conectar

Cуdigos de quando conecta
Код:
format(String, sizeof(String), "{BEBEBE}%s conectou ao servidor", Nome(playerid));
	SendClientMessageToAll(CINZA, String);
	format(StringContas, sizeof(StringContas), "/Contas/%s.txt", Nome(playerid));
	if(!DOF2_FileExists(StringContas))
	{
	    PlayerTextDrawShow(playerid, Login[playerid][0]);
		PlayerTextDrawShow(playerid, Login[playerid][1]);
		PlayerTextDrawShow(playerid, Login[playerid][2]);
		PlayerTextDrawShow(playerid, Login[playerid][3]);
		PlayerTextDrawShow(playerid, Login[playerid][4]);
		PlayerTextDrawShow(playerid, Login[playerid][5]);
		PlayerTextDrawShow(playerid, Login[playerid][6]);
		PlayerTextDrawShow(playerid, Login[playerid][7]);
		PlayerTextDrawShow(playerid, Login[playerid][8]);
		SelectTextDraw(playerid, 0xFF0000FF);
		new string[218];
		format(string,sizeof(string),"Nick: ~w~%s",PlayerName(playerid));
		PlayerTextDrawSetString(playerid,Login[playerid][3],string);

		if(PlayerDados[playerid][Registrado] == 1){
		format(string,sizeof(string),"Status: ~w~Registrado(a)");
		PlayerTextDrawSetString(playerid,Login[playerid][4],string);
		}
		else{
		format(string,sizeof(string),"Status: ~w~Nao Registrado(a)");
		PlayerTextDrawSetString(playerid,Login[playerid][4],string);
		}
		return 1;
	}
	else
	{
	    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", "\nPara efetuar o login, digite sua senha.", "Logar", "Sair");
		return 1;
	}



Re: TextDraw Clicavel - Bruno13 - 21.08.2017

A funзгo CancelSelectTextDraw tambйm chama OnPlayerClickTextDraw passando o valor de clickedid como INVALID_TEXT_DRAW, entгo para isso vocк precisa controlar em uma variбvel se vocк acabou de chamar a funзгo SelectTextDraw, assim saberб que nгo й uma chamada da funзгo CancelSelectTextDraw. E basta resetar essa variбvel quando vocк mesmo cancelar o seletor antes de usar essa mesma funзгo.