[Ajuda] Texdraw clicalvel dъvida
#1

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;
}
Reply
#2

Isso poderб ajudar vocк. Estude:

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

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

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.
Reply
#4

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.
Reply
#5

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?
Reply
#6

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

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.
Reply
#8

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.
Reply
#9

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?
Reply
#10

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


Forum Jump:


Users browsing this thread: 1 Guest(s)