SA-MP Forums Archive
[Ajuda] Texdraw clicalvel dъvida - 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] Texdraw clicalvel dъvida (/showthread.php?tid=565858)



Texdraw clicalvel dъvida - Duk - 01.03.2015

Pessoal estou com uma dъvida em textdraw clicбvel.

Bom a dъvida serб que tem como continuar mostrando o textdraw da tela de login, mesmo o player apertando esc?

Por que eu coloquei se no caso o player aperta esc ele й kickado, tem outra maneira sem ser que kick o player?

Eu coloquei pra mostrar as textdraw novamente se caso o jogador aperte a ESC mais a funзгo de clicar nas textdraw desativa.

pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(_:clickedid != INVALID_TEXT_DRAW)
    {
        if(clickedid == TLogin_Entrar[playerid])
        {
            SendClientMessage(playerid, -1, "Clicou em Entrar");
            TextDrawHideForPlayer(playerid, MiniT_Sair[playerid]);
            CancelSelectTextDraw(playerid);
        }
        else if(clickedid == TLogin_Registrar[playerid])
        {
            SendClientMessage(playerid, -1, "Clicou em registrar");
            TextDrawHideForPlayer(playerid, MiniT_Sair[playerid]);
            CancelSelectTextDraw(playerid);
        }
        TextDrawHideForPlayer(playerid, MiniT_Sair[playerid]);
        CancelSelectTextDraw(playerid);
        SendClientMessage(playerid, -1, "Vocк foi kickado por utilizar o ESC.");
        SetTimerEx("KickPublic", 100, 0, "d", playerid);
    }                
    return 1;
}



Re: Texdraw clicalvel dъvida - Nenzittow - 01.03.2015

Isso poderб ajudar vocк. Estude:

» https://sampwiki.blast.hk/wiki/OnPlayerClickTextDraw

» https://sampforum.blast.hk/showthread.php?tid=340781


Re: Texdraw clicalvel dъvida - arakuta - 01.03.2015

Atй onde eu saiba, ao apertar ESC vбrias vezes, o servidor pode ignorar o ESC, enquanto o cliente sempre removerб o cursor para clicar nos textos, ou deixa-los inclicбveis.

Uma possнvel soluзгo seria criar uma variбvel que determina se um player deve ou nгo estar selecionando um textdraw, e roda um timer de 1~2 segundos de intervalo para o player que deve estar selecionando um textdraw, forзando a funзгo SelectTextDraw.

PHP код:
new SelectTimer[MAX_PLAYERS];
forward ForceSelectTextDraw(playerid,color);
public 
ForceSelectTextDraw(playerid,color)
    
SelecTextDraw(playerid,color);
public 
SelectTextDrawEx(playerid,color)
{
    
SelecTextDraw(playerid,color);
    
SelectTimer[playerid] = SetTimerEx("ForceSelectTextDraw",1500,true,"d",playerid);
}
public 
CancelSelectTextDrawEx(playerid)
{
    
CancelSelecTextDraw(playerid,color);
    
KillTimer(SelectTimer[playerid]);

E entгo substitua suas funзхes CancelSelectTextDraw e SelectTextDraw por CancelSelectTextDrawEx e SelectTextDrawEx respectivamente.

PS: Nгo testei e nгo sei como isso vai se comportar... Tentativa e erro, abraзos.
PS2: Sу use SelectTextDrawEx se um texto deve ser clicado SEMPRE, sem direito do player de pular essa escolha.


Re: Texdraw clicalvel dъvida - Duk - 01.03.2015

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Atй onde eu saiba, ao apertar ESC vбrias vezes, o servidor pode ignorar o ESC, enquanto o cliente sempre removerб o cursor para clicar nos textos, ou deixa-los inclicбveis.

Uma possнvel soluзгo seria criar uma variбvel que determina se um player deve ou nгo estar selecionando um textdraw, e roda um timer de 1~2 segundos de intervalo para o player que deve estar selecionando um textdraw, forзando a funзгo SelectTextDraw.

PHP код:
new SelectTimer[MAX_PLAYERS];
forward ForceSelectTextDraw(playerid,color);
public 
ForceSelectTextDraw(playerid,color)
    
SelecTextDraw(playerid,color);
public 
SelectTextDrawEx(playerid,color)
{
    
SelecTextDraw(playerid,color);
    
SelectTimer[playerid] = SetTimerEx("ForceSelectTextDraw",1500,true,"d",playerid);
}
public 
CancelSelectTextDrawEx(playerid)
{
    
CancelSelecTextDraw(playerid,color);
    
KillTimer(SelectTimer[playerid]);

E entгo substitua suas funзхes CancelSelectTextDraw e SelectTextDraw por CancelSelectTextDrawEx e SelectTextDrawEx respectivamente.

PS: Nгo testei e nгo sei como isso vai se comportar... Tentativa e erro, abraзos.
PS2: Sу use SelectTextDrawEx se um texto deve ser clicado SEMPRE, sem direito do player de pular essa escolha.
O ruim й se toda vкs que eu apertar esc, irгo aparece as textdraw clicaveis.


Re: Texdraw clicalvel dъvida - arakuta - 01.03.2015

Quote:
Originally Posted by Duk
Посмотреть сообщение
O ruim й se toda vкs que eu apertar esc, irгo aparece as textdraw clicaveis.
Ao menos testou o cуdigo?


Re: Texdraw clicalvel dъvida - Duk - 01.03.2015

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Ao menos testou o cуdigo?
Estou com medo de testar. Vou adpitar!


Re: Texdraw clicalvel dъvida - ipsLuan - 01.03.2015

Quote:
Originally Posted by Duk
Посмотреть сообщение
Estou com medo de testar. Vou adpitar!
Nгo precisa ter medo, apenas faзa!
Mantenha sempre um backup do source.


Re: Texdraw clicalvel dъvida - PT - 01.03.2015

Quote:
Originally Posted by Duk
Посмотреть сообщение
O ruim й se toda vкs que eu apertar esc, irгo aparece as textdraw clicaveis.
O problema o ъnico no nesse cуdigo й que o mouse a casa 1500 ms estarб a "fugir" para o centro.


Re: Texdraw clicalvel dъvida - Duk - 01.03.2015

Fiz de outuro jeito ficou tudo ok, o problema й

pawn Код:
new Selec_Tempo[max_players];

Select_Tempo[playerid] = SetTimerEx("Aceitar_Select_Text",500,true,"d",playerid);

forward Aceitar_Select_Text(playerid);
public Aceitar_Select_Text(playerid)
{
    SelectTextDraw(playerid, 0x252525FF);
    return true;
}
O problema й que eu vou tem que usar sempre a mesma cor

Tem como eu colocar outra cor na funзгo mesmo estando no time?


Re: Texdraw clicalvel dъvida - PT - 01.03.2015

Tem coloca um parametro para a cor. Ou faz um random.