[Ajuda] Rank por score em cima da cabeзa(ChatBubble)
#1

Oi gente ;-;

Entгo, estava tentando fazer o seguinte. Utilizar o ChatBubble para atribuir tags/rank acima de cabeзa do player, os ranks iriam depender do score, por exemplo: 100 de score = Experiente(em cima da cabeзa)

Tentei fazer, mas nгo deu, utilizei da seguinte forma.

pawn Код:
public OnPlayerSpawn(playerid)
    if(GetPlayerScore(playerid) == 4 [ playerid ] == 0 );
    {
        SetPlayerChatBubble( playerid, "Diretor(a)", 0xFF9900FF, 100.0, 5000 );
    }
    else if( GetPlayerScore[ playerid ] == 3 [ playerid ] == 0  )
    {
        SetPlayerChatBubble( playerid, "Administrador(a)", 0x00C40DFF, 100.0, 5000 );
    }
    else if( GetPlayerScore[ playerid ] == 2 [ playerid ] == 0  )
    {
        SetPlayerChatBubble( playerid, "Moderador(a)", 0x2DF0A2FF, 100.0, 5000 );
    }
    else if( GetPlayerScore[ playerid ] == 1 [ playerid ] == 0  )
    {
        SetPlayerChatBubble( playerid, "Helper", 0x1100FFFF, 100.0, 5000 );
    }
Alguйm me ajuda?
Reply
#2

PHP код:
if(GetPlayerScore(playerid) == 4)
    {
        
SetPlayerChatBubbleplayerid"Diretor(a)"0xFF9900FF100.05000 );
    }
    else if(
GetPlayerScore(playerid) == 3)
    {
        
SetPlayerChatBubbleplayerid"Administrador(a)"0x00C40DFF100.05000 );
    }
    else if(
GetPlayerScore(playerid) == 2)
    {
        
SetPlayerChatBubbleplayerid"Moderador(a)"0x2DF0A2FF100.05000 );
    }
    else if( 
GetPlayerScore(playerid) == 1)
    {
        
SetPlayerChatBubbleplayerid"Helper"0x1100FFFF100.05000 );
    }
    else if(
GetPlayerScore(playerid) == 0)
    {
        
SetPlayerChatBubbleplayerid"Jogador"0x1100FFFF100.05000 );
    } 
Reply
#3

Erros no seu cуdigo: nгo se coloca ponto e vнrgula ; em if's e else's. Sгo condicionais, elas sгo abertas e fechadas com chaves. A funзгo GetPlayerScore que vocк irб getar em um player vocк precisa utilizar parкnteses, e nгo colchetes. GetPlayerScore(playerid).

Adendo: melhore a identaзгo do seu cуdigo pra sua prуpria organizaзгo.
Reply
#4

PHP код:
switch (GetPlayerScore(playerid))
{
case 
4SetPlayerChatBubbleplayerid"Diretor(a)"0xFF9900FF100.05000 ); 
case 
3SetPlayerChatBubbleplayerid"Administrador(a)"0x00C40DFF100.05000 ); 
case 
2SetPlayerChatBubbleplayerid"Moderador(a)"0x2DF0A2FF100.05000 ); 
case 
1SetPlayerChatBubbleplayerid"Helper"0x1100FFFF100.05000 ); 
case 
0SetPlayerChatBubbleplayerid"Jogador"0x1100FFFF100.05000 ); 

Reply
#5

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
PHP код:
if(GetPlayerScore(playerid) == 4)
    {
        
SetPlayerChatBubbleplayerid"Diretor(a)"0xFF9900FF100.05000 );
    }
    else if(
GetPlayerScore(playerid) == 3)
    {
        
SetPlayerChatBubbleplayerid"Administrador(a)"0x00C40DFF100.05000 );
    }
    else if(
GetPlayerScore(playerid) == 2)
    {
        
SetPlayerChatBubbleplayerid"Moderador(a)"0x2DF0A2FF100.05000 );
    }
    else if( 
GetPlayerScore(playerid) == 1)
    {
        
SetPlayerChatBubbleplayerid"Helper"0x1100FFFF100.05000 );
    }
    else if(
GetPlayerScore(playerid) == 0)
    {
        
SetPlayerChatBubbleplayerid"Jogador"0x1100FFFF100.05000 );
    } 
Copilou normalmente, mas no jogo as tags nгo se aplicam aos jogadores, digo, o player com score 0 n ganha a tag de jogador e dai por diante, eu teria que usar Int score = GetPlayerScore(playerid);?

Quote:
Originally Posted by HnnK
Посмотреть сообщение
Erros no seu cуdigo: nгo se coloca ponto e vнrgula ; em if's e else's. Sгo condicionais, elas sгo abertas e fechadas com chaves. A funзгo GetPlayerScore que vocк irб getar em um player vocк precisa utilizar parкnteses, e nгo colchetes. GetPlayerScore(playerid).

Adendo: melhore a identaзгo do seu cуdigo pra sua prуpria organizaзгo.
Obrigado pelas dicas, й que tф comeзando agora, ainda nгo peguei o costume, ainda tф uma zona nisso hauah
Quote:
Originally Posted by capron
Посмотреть сообщение
PHP код:
switch (GetPlayerScore(playerid))
{
case 
4SetPlayerChatBubbleplayerid"Diretor(a)"0xFF9900FF100.05000 ); 
case 
3SetPlayerChatBubbleplayerid"Administrador(a)"0x00C40DFF100.05000 ); 
case 
2SetPlayerChatBubbleplayerid"Moderador(a)"0x2DF0A2FF100.05000 ); 
case 
1SetPlayerChatBubbleplayerid"Helper"0x1100FFFF100.05000 ); 
case 
0SetPlayerChatBubbleplayerid"Jogador"0x1100FFFF100.05000 ); 

Como eu faria pra aplicar essa funзгo ao score? Digo, player com o score x ter a tag y
Reply
#6

https://sampwiki.blast.hk/wiki/SetPlayerChatBubble

SetPlayerChatBubble(playerid, text[], color, Float:drawdistance, expiretime)

Vocк vai precisar de um timer para re-usar a funзгo, pois depois de um tempo (5 segundos como no parвmetro expiretime em seu codigo) o Chat Bubble vai expirar.

Exemplo:

PHP код:
public OnGameModeInit()
{
        
SetTimer("ChatBubble"1000true);
        return 
1;
}
forward ChatBubble();
public 
ChatBubble()
{
    for(new 
0GetPlayerPoolSize(); <= j; ++i)
    {
        if(
IsPlayerConnected(i))
        {
            switch (
GetPlayerScore(i))
            {
                case 
0SetPlayerChatBubblei"Jogador"0x1100FFFF100.02000 );
                case 
1SetPlayerChatBubblei"Helper"0x1100FFFF100.02000 );
                case 
2SetPlayerChatBubblei"Moderador(a)"0x2DF0A2FF100.02000 );
                case 
3SetPlayerChatBubblei"Administrador(a)"0x00C40DFF100.02000 );
                case 
4SetPlayerChatBubblei"Diretor(a)"0xFF9900FF100.02000 );
            }
        }
    }

Recomendaria usar foreach. Tambйm existem 3D Text Labels, que recomendaria usar no lugar de ChatBubble: https://sampwiki.blast.hk/wiki/Create3DTextLabel
Reply
#7

Quote:
Originally Posted by Jelly23
Посмотреть сообщение
https://sampwiki.blast.hk/wiki/SetPlayerChatBubble

SetPlayerChatBubble(playerid, text[], color, Float:drawdistance, expiretime)

Vocк vai precisar de um timer para re-usar a funзгo, pois depois de um tempo (5 segundos como no parвmetro expiretime em seu codigo) o Chat Bubble vai expirar.

Exemplo:

PHP код:
public OnGameModeInit()
{
        
SetTimer("ChatBubble"1000true);
        return 
1;
}
forward ChatBubble();
public 
ChatBubble()
{
    for(new 
0GetPlayerPoolSize(); <= j; ++i)
    {
        if(
IsPlayerConnected(i))
        {
            switch (
GetPlayerScore(i))
            {
                case 
0SetPlayerChatBubblei"Jogador"0x1100FFFF100.02000 );
                case 
1SetPlayerChatBubblei"Helper"0x1100FFFF100.02000 );
                case 
2SetPlayerChatBubblei"Moderador(a)"0x2DF0A2FF100.02000 );
                case 
3SetPlayerChatBubblei"Administrador(a)"0x00C40DFF100.02000 );
                case 
4SetPlayerChatBubblei"Diretor(a)"0xFF9900FF100.02000 );
            }
        }
    }

Recomendaria usar foreach. Tambйm existem 3D Text Labels, que recomendaria usar no lugar de ChatBubble: https://sampwiki.blast.hk/wiki/Create3DTextLabel
Funcional, obrigado. Uma ъltima dъvida, queria funcionalizar o score, digo, implementar < = 5(score) = jogador
> 6(score) ou = 10(score) = helper... Qual seria o caminho?
Reply
#8

PHP код:
forward ChatBubble(); 
public 
ChatBubble() 

    for(new 
0GetPlayerPoolSize(); <= j; ++i
    { 
        if(
IsPlayerConnected(i)) 
        { 
            switch (
GetPlayerScore(i)) 
            { 
                case 
0..6SetPlayerChatBubblei"Jogador"0x1100FFFF100.02000 );// se tiver score 0 atй 6
                
case 7..12SetPlayerChatBubblei"Helper"0x1100FFFF100.02000 ); // se tiver score 7 atй 12
                
case 13..20SetPlayerChatBubblei"Moderador(a)"0x2DF0A2FF100.02000 ); // se tiver score 13 atй 20
                
case 21..31SetPlayerChatBubblei"Administrador(a)"0x00C40DFF100.02000 );//se tiver score 21 atй 31
                
default: SetPlayerChatBubblei"Diretor(a)"0xFF9900FF100.02000 );// score de 31 em diante
            

        } 
    } 

Reply
#9

Quote:
Originally Posted by SammyJ
Посмотреть сообщение
PHP код:
forward ChatBubble(); 
public 
ChatBubble() 

    for(new 
0GetPlayerPoolSize(); <= j; ++i
    { 
        if(
IsPlayerConnected(i)) 
        { 
            switch (
GetPlayerScore(i)) 
            { 
                case 
0..6SetPlayerChatBubblei"Jogador"0x1100FFFF100.02000 );// se tiver score 0 atй 6
                
case 7..12SetPlayerChatBubblei"Helper"0x1100FFFF100.02000 ); // se tiver score 7 atй 12
                
case 13..20SetPlayerChatBubblei"Moderador(a)"0x2DF0A2FF100.02000 ); // se tiver score 13 atй 20
                
case 21..31SetPlayerChatBubblei"Administrador(a)"0x00C40DFF100.02000 );//se tiver score 21 atй 31
                
default: SetPlayerChatBubblei"Diretor(a)"0xFF9900FF100.02000 );// score de 31 em diante
            

        } 
    } 

Thanks, resolvido <3
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)