Tag de procurado piscando? -
eoqtrabhir - 13.05.2018
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);
}
}
}
Re: Tag de procurado piscando? -
HelderPT - 13.05.2018
Piscando? o "procurado" tem como?
que eu saiba nгo nunca pesquisei sobre o mesmo entгo .-.
Re: Tag de procurado piscando? -
eoqtrabhir - 13.05.2018
Quote:
Originally Posted by HelderPT
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 ?
Re: Tag de procurado piscando? -
Minerva - 13.05.2018
Re: Tag de procurado piscando? -
IlanZ - 13.05.2018
Tente reduzir o tempo que chame a funзгo:
PHP Code:
SetTimer("TextProcu", 800, true);
Re: Tag de procurado piscando? -
Lуs - 13.05.2018
PHP Code:
SetTimer("TextProcu", 1000, false);
Isso deve executar a funзгo apenas uma vez. O ideal й que vocк substitua isto pela funзгo em si, tipo:
Re: Tag de procurado piscando? -
AutoMatic2 - 13.05.2018
PHP Code:
SetTimer("TextProcu", 100, true);
ou:
PHP Code:
SetTimerEx("TextProcu", 100, true, "i", playerid);
Re: Tag de procurado piscando? -
Lуs - 13.05.2018
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=0; i<MAX_PLAYERS; i++) {
new string[256];
if(GetPlayerWantedLevel(i) > 0 && !hasBubble[i]) {
format(string,256,"||-||PROCURADO||[%d]",GetPlayerWantedLevel(i));
SetPlayerChatBubble(i,string, COLOR_RED, 100.0, 1000);
hasBubble[i] = true;
}
}
}
Re: Tag de procurado piscando? -
RodrigoMSR - 13.05.2018
Era sу aumentar o tempo na funзгo SetPlayerChatBubble.
PHP 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, 4000);
}
}
}
Re: Tag de procurado piscando? -
Lуs - 13.05.2018
Quote:
Originally Posted by RodrigoMSR
Era sу aumentar o tempo na funзгo SetPlayerChatBubble.
PHP 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, 4000);
}
}
}
|
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.
Re: Tag de procurado piscando? -
RodrigoMSR - 14.05.2018
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.
Re: Tag de procurado piscando? -
XandyMello - 14.05.2018
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", 3000, true);
public TextProcu()
{
const
String[126];
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPlayerWantedLevel(i) > 0)
{
format(string, sizeof string, "||-||PROCURADO||[%d]", GetPlayerWantedLevel(i));
SetPlayerChatBubble(i, string, COLOR_RED, 100.0, 3000);
//-> Exemplo:
if(VarUsandoTag[playerid]){
RemoverTag(playerid);
//.. Coloca pra destruir o Attach3DTextLabelToPlayer
}
}
}
}
Essa й a ъnica possibilidade.