[Ajuda] Me ajudem a setar a cor e o chat bubble no player!
#1

os chats Bubble estгo todos corretos, apenas as cores no querem setar!

PHP код:
public OnPlayerUpdate(playerid)
{
    if(
pInfo[playerid][Ajudante] == true)
    {
        
SetPlayerChatBubble(playerid"Ajudante(a)"0xFF00FFAA100.010000);
        
SetPlayerColor(playerid0xFF00FFAA);
    }
    if(
pInfo[playerid][Moderador] == true)
    {
        
SetPlayerChatBubble(playerid"Moderador(a)"0x008000AA100.010000);
        
SetPlayerColor(playerid0x008000AA);
    }
    if(
pInfo[playerid][Corregedor] == true)
    {
        
SetPlayerChatBubble(playerid"Corregedor(a)"0x00FFFFAA100.010000);
        
SetPlayerColor(playerid0x00FFFFAA);
    }
    if(
pInfo[playerid][Administrador] == true)
    {
        
SetPlayerChatBubble(playerid"Administrador(a)"0xFF0000AA100.010000);
        
SetPlayerColor(playerid0xFF0000AA);
    }
    if(
pInfo[playerid][Master] == true)
    {
        
SetPlayerChatBubble(playerid"Administrador(a)"0x800000AA100.010000);
        
SetPlayerColor(playerid0x800000AA);
    }
    if(
GetPlayerScore(playerid) < 5)
    {
        
SetPlayerColor(playerid0xFF8000AA);
        
SetPlayerChatBubble(playerid"Novato(a)"0xFF8000AA100.010000);
    }
    if(
GetPlayerScore(playerid) >= 5)
    {
        
SetPlayerColor(playerid0xFFFFFFAA);
    }
    return 
1;

Reply
#2

Qual cor nгo vai?

A do SetPlayerChatBubble ou do SetPlayerColor?
Reply
#3

SetPlayerColor, a unica que vai e a do novato no servidor!
Reply
#4

Olб vitinhosamp, cara vou te dar um conselho, nгo use a callback OnPlayerUpdate para cуdigos que podem ser usados em outros lugares, justamente pelo fato dela causar muita queda de desempenho no servidor, principalmente em grande quantidade de jogadores onlines, um jeito melhor de vocк usar o seu sistema sem alterar outras coisas eu coloquei abaixo, use a inlude foreach e a y_timers.

Esta pode nгo ser a melhor forma, mas й a que eu conheзo que lhe traria melhor uso, adapte ao seu GameMode e retorne ao tуpico para informar oque houve!


Код:
#include < foreach >
#include < YSI\y_timers >

task OnPlayerUpdateTimer[1000] () {

    foreach(Player, playerid) {
    	GetRankPlayer(playerid);
	}
	return 1;
}

GetRankPlayer (playerid) {

	if (pInfo[playerid][Ajudante] == true) {
 		SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000); SetPlayerColor(playerid, 0xFF00FFAA);
    }
    else if (pInfo[playerid][Moderador] == true) {
        SetPlayerChatBubble(playerid, "Moderador(a)", 0x008000AA, 100.0, 10000); SetPlayerColor(playerid, 0x008000AA);
    }
    else if(pInfo[playerid][Corregedor] == true) {
        SetPlayerChatBubble(playerid, "Corregedor(a)", 0x00FFFFAA, 100.0, 10000); SetPlayerColor(playerid, 0x00FFFFAA);
    }
    else if(pInfo[playerid][Administrador] == true) {
        SetPlayerChatBubble(playerid, "Administrador(a)", 0xFF0000AA, 100.0, 10000); SetPlayerColor(playerid, 0xFF0000AA);
    }
    else if(pInfo[playerid][Master] == true) {
        SetPlayerChatBubble(playerid, "Administrador(a)", 0x800000AA, 100.0, 10000); SetPlayerColor(playerid, 0x800000AA);
    }
    else if (GetPlayerScore(playerid) < 5) {
        SetPlayerChatBubble(playerid, "Novato(a)", 0xFF8000AA, 100.0, 10000); SetPlayerColor(playerid, 0xFF8000AA);
    }
    else if (GetPlayerScore(playerid) > 4) {
        SetPlayerColor(playerid, 0xFFFFFFAA);
    }
    return true;
}
YSI/y_timers: https://sampforum.blast.hk/showthread.php?tid=570884
foreach: https://sampforum.blast.hk/showthread.php?tid=570868
Reply
#5

Cara, se vocк me dar uma boa explicaзгo de como se usa e para que usar a foreach e y_timers eu te do reputaзгo, pq sou novo no pawno e queria comeзar no basico, mas se vocк se despor a me ensinar ficarei grato ! <3
Reply
#6

Entгo vitinho.

Eu vou te passar um tutorial simples que logo no comeзo explica sobre a foreach e porque ela й mais precisa, justamente por eliminar contagens inъtil, como por exemplo IDs online, se tem 50 onlines, e o ID 19, 23, 38, 47 saiu do servidor, se a funзгo for em foreach (Player, variavel) esses IDs que saнram nгo vгo ser contados na funзгo!


Tutorial: https://sampforum.blast.hk/showthread.php?tid=625227


Os timers sгo temporizadores usados para chamar funзхes, neste caso, й muito ineficiente que vocк use o OnPlayerUpdate para este tipo de funзгo justamente porque essa funзгo vai ser chamado б cada 30 milissegundos, coisa que essa funзгo poderia muito bem ser chamada apenas de 10 em 10 segundos, atй editei lб aumente o [1000] para [10000]:

task OnPlayerUpdateTimer[10000]

Vocк pode ler vбrios artigos do fуrum pesquisando em search ali em cima!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)