[Ajuda] Tag de procurado piscando?
#1

como faзo para deixar ela fixa e nгo piscando?

em baixo das news

Code:
forward TextProcu();
ongamemodeinit

Code:
SetTimer("TextProcu", 1000, true);
final do gm

Code:
public TextProcu()
{
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        new string[256];
        if(GetPlayerWantedLevel(i) > 0)
        {
            format(string,256,"||-||PROCURADO||[%d]",GetPlayerWantedLevel(i));
            SetPlayerChatBubble(i,string, COLOR_RED, 100.0, 1000);
        }
    }
}
Reply
#2

Piscando? o "procurado" tem como?
que eu saiba nгo nunca pesquisei sobre o mesmo entгo .-.
Reply
#3

Quote:
Originally Posted by HelderPT
View Post
Piscando? o "procurado" tem como?
que eu saiba nгo nunca pesquisei sobre o mesmo entгo .-.
a tag fica piscando aqui procurado [id]
fica desaparecendo e aparecendo novamente oq pode ser ?
Reply
#4

Reply
#5

Tente reduzir o tempo que chame a funзгo:

PHP Code:
SetTimer("TextProcu"800true); 
Reply
#6

PHP Code:
SetTimer("TextProcu"1000false); 
Isso deve executar a funзгo apenas uma vez. O ideal й que vocк substitua isto pela funзгo em si, tipo:

PHP Code:
TextProcu(); 
Reply
#7

PHP Code:
SetTimer("TextProcu"100true); 
ou:

PHP Code:
SetTimerEx("TextProcu"100true"i"playerid); 
Reply
#8

Agora que notei que essa checagem deve ocorrer de forma infinita, evitando uso do OnPlayerUpdate.

Vocк pode manter ela da forma que esta, porйm, faзa uma checagem para adicionar a label apenas nos que jб nгo possuem ela usando uma var global, isso deve resolver o problema.

PHP Code:
//var global
new bool:hasBubble[MAX_PLAYERS];
public 
TextProcu() {
    for(new 
i=0i<MAX_PLAYERSi++) {
        new 
string[256];
        if(
GetPlayerWantedLevel(i) > && !hasBubble[i]) {
            
format(string,256,"||-||PROCURADO||[%d]",GetPlayerWantedLevel(i));
            
SetPlayerChatBubble(i,stringCOLOR_RED100.01000);
            
hasBubble[i] = true;
        }
    }

Reply
#9

Era sу aumentar o tempo na funзгo SetPlayerChatBubble.
PHP Code:
public TextProcu()
{
    for(new 
i=0i<MAX_PLAYERSi++)
    {
        new 
string[256];
        if(
GetPlayerWantedLevel(i) > 0)
        {
            
format(string,256,"||-||PROCURADO||[%d]",GetPlayerWantedLevel(i));
            
SetPlayerChatBubble(i,stringCOLOR_RED100.04000);
        }
    }

Reply
#10

Quote:
Originally Posted by RodrigoMSR
View Post
Era sу aumentar o tempo na funзгo SetPlayerChatBubble.
PHP Code:
public TextProcu()
{
    for(new 
i=0i<MAX_PLAYERSi++)
    {
        new 
string[256];
        if(
GetPlayerWantedLevel(i) > 0)
        {
            
format(string,256,"||-||PROCURADO||[%d]",GetPlayerWantedLevel(i));
            
SetPlayerChatBubble(i,stringCOLOR_RED100.04000);
        }
    }

Tipo, existem duas possibilidades aн.

Vamos pela lуgica.

Case 1: A cada 1 segundo, ele chama essa funзгo e todos que estiverem com mais de 0 de nнvel de procurado, ele vai setar o chatbubble, ou seja, mesmo se o cara jб tiver com o chatbubble ativo, ele vai setar de novo, isso vai fazer o chatbubble piscar.

Soluзгo: Utilizar uma variбvel para controlar quem jб tem esse chatbubble para nгo precisar adicionar novamente nesse 1 segundo.

Case 2: Mesmo que o case 1 seja solucionado, o chatbubble vai expirar depois de 1 segundo e nгo vai mais aparecer, pois a condiзгo jб vai estar verdadeira

Soluзгo: Aumentar o tempo de expiraзгo chatbubble.

Acredito que a soluзгo dessa thread seria as duas soluзхes postadas acima combinadas aн. Ou entгo vocк testa se apenas aumentar o tempo de expiraзгo do chatbubble resolve, as vezes ele nгo da o flick por conta da substituiзгo, mas sim por conta da expiraзгo e refazer o processo de novo.
Reply
#11

Nгo pisca, eu jб testei. O problema inicial й que, por conta do lag e da imprecisгo do timer, o chatbubble expirava um pouco antes de ser recolocado, o que causava esse efeito de "piscar", daн a compensaзгo no tempo.
Reply
#12

Amigo, vocк precisa decidir entre SetPlayerChatBubble ou Create3DTextLabel + Attach3DTextLabelToPlayer

Pois se usar os dois juntos, vai ficar piscando.

Muito provavelmente vocк possui o sistema de tag(ou tнtulo) em Create3DTextLabel + Attach3DTextLabelToPlayer e quer setar o SetPlayerChatBubble juntos. Que nгo pode!

PHP Code:

SetTimer
("TextProcu"3000true);
public 
TextProcu()
{
    const
        
String[126];
        
    for(new 
0GetPlayerPoolSize(); <= ji++)
    {
        if(!
IsPlayerConnected(i)) continue;
        if(
GetPlayerWantedLevel(i) > 0)
        {
            
format(stringsizeof string"||-||PROCURADO||[%d]"GetPlayerWantedLevel(i));
            
SetPlayerChatBubble(istringCOLOR_RED100.03000);
            
//-> Exemplo:
            
if(VarUsandoTag[playerid]){
                
RemoverTag(playerid);
                
//.. Coloca pra destruir o Attach3DTextLabelToPlayer
            
}
        }
    }

Essa й a ъnica possibilidade.

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)