[Ajuda] E uma pequena duvida que tenho pra tirar!
#1

Queria saber pq meus setplayerchatbuble setam no player com cargo e meu setplayercolor nao, nгo sei o pq, mas me ofereceram para usar foreach e a y_timers mas como sou novato quero comeзar pelo os primeiros passos do pawno ainda!

PHP код:
public OnPlayerUpdate(playerid)
{
    if(
pInfo[playerid][Ajudante] == true)
    {
        
SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000), SetPlayerColor(playerid, 0xFF00FFAA);
    }
    if(
pInfo[playerid][Moderador] == true)
    {
        
SetPlayerChatBubble(playerid, "Moderador(a)", 0x008000AA, 100.0, 10000), SetPlayerColor(playerid, 0x008000AA);
    }
    if(
pInfo[playerid][Corregedor] == true)
    {
        
SetPlayerChatBubble(playerid, "Corregedor(a)", 0x00FFFFAA, 100.0, 10000),  SetPlayerColor(playerid, 0x00FFFFAA);
    }
    if(
pInfo[playerid][Administrador] == true)
    {
        
SetPlayerChatBubble(playerid, "Administrador(a)", 0xFF0000AA, 100.0, 10000), SetPlayerColor(playerid, 0xFF0000AA);
    }
    if(
pInfo[playerid][Master] == true)
    {
        
SetPlayerChatBubble(playerid, "Administrador(a)", 0x800000AA, 100.0, 10000), SetPlayerColor(playerid, 0x800000AA);
    }
    if(
GetPlayerScore(playerid) < 5)
    {
        
SetPlayerChatBubble(playerid, "Novato(a)", 0xFF8000AA, 100.0, 10000), SetPlayerColor(playerid, 0xFF8000AA);
    }
    if(
GetPlayerScore(playerid) >= 5)
    {
        
SetPlayerColor(playerid, 0xFFFFFFAA);
    }
    if(
IsPlayerAdmin(playerid))
    {
        
SetPlayerColor(playerid, 0x800000AA);
    }
    return 
1;
} 
Reply
#2

Vocк tem noзгo da quantidade de vezes que essa callback й chamada por segundo? Nгo use OnPlayerUpdate.

O seu cуdigo pode ser optimizado. Em vez de criar uma variбvel para cada cargo, crie apenas uma variбvel inteira, em que por exemplo 0: sem cargo, 1: moderador, 2: administrador, etc.

E, o seu cуdigo compila sequer?

Код:
SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000), SetPlayerColor(playerid, 0xFF00FFAA);
O que й isto?

Код:
SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000); 
SetPlayerColor(playerid, 0xFF00FFAA);
Reply
#3

Me ensina a optimizar ele de algum jeito, teve uns cara no forum que me recomendo usar a foreach junto com a y_timers, me ensina a usar essa foreach pq n sei usar, como vc disse se eu fazer daquele jeito um em baixo do outro nгo seta a cor, me ajuda!
Reply
#4

exemplo de como usar foreach:

PHP код:
#include a_samp
#include foreach
#define TEMPO 5000 // milisegundos
public OnGameModeInit() {
    
SetTimer("chamar", TEMPO, true);
    return 
1;
}
new 
Cargo[MAX_PLAYERS];
forward chamar();
public 
chamar()
{
    foreach(
Player, i)
    {
        if(
IsPlayerAdmin(i))
        {
            
SetPlayerColor(i, 0xFF0000AA); // rcon
            
SetPlayerChatBubble(i, "Rcon", GetPlayerColor(i), 20.0, 10000);
        }
        else switch(
Cargo[i])
        {
            case 
1: { // ajudante
                
SetPlayerColor(i, 0xFF00FFAA);
                
SetPlayerChatBubble(i, "Ajudante(a)", GetPlayerColor(i), 20.0, 10000);
            }
            case 
2: { // moderador
                
SetPlayerColor(i, 0x008000AA);
                
SetPlayerChatBubble(i, "Moderador(a)", GetPlayerColor(i), 20.0, 10000);
            }
            case 
3: { // corregedor
                
SetPlayerColor(i, 0x00FFFFAA);
                
SetPlayerChatBubble(i, "Corregedor(a)", GetPlayerColor(i), 20.0, 10000);
            }
            case 
4: { // admin
                
SetPlayerColor(i, 0xFF0000AA);
                
SetPlayerChatBubble(i, "Administrador(a)", GetPlayerColor(i), 20.0, 10000);
            }
        }
    }
    return 
1;
} 
Reply
#5

da pra aplicar esse procedimento em pInfo[playerid][moderador]... tals assim?
Reply
#6

Sim,

PHP код:
#include a_samp
#include foreach
#define TEMPO 5000 // milisegundos
public OnGameModeInit() {
    
SetTimer("chamar", TEMPO, true);
    return 
1;
}
enum PlayerInfo {
    
bool:Ajudante, bool:Moderador, bool:Corregedor, bool:Administrador, bool:Master
};
new 
pInfo[MAX_PLAYERS][PlayerInfo];
forward chamar();
public 
chamar()
{
    foreach(
Player, i)
    {
        if(
IsPlayerAdmin(i))
        {
            
SetPlayerColor(i, 0xFF0000AA); // rcon
            
SetPlayerChatBubble(i, "Rcon", GetPlayerColor(i), 20.0, 10000);
        }
        else if(
pInfo[i][Ajudante] == true)
        {
            
SetPlayerColor(i, 0xFF00FFAA);
            
SetPlayerChatBubble(i, "Ajudante(a)", GetPlayerColor(i), 20.0, 10000);
        }
        else if(
pInfo[i][Moderador] == true)
        {
             
SetPlayerColor(i, 0x008000AA);
            
SetPlayerChatBubble(i, "Moderador(a)", GetPlayerColor(i), 20.0, 10000);
        }
        else if(
pInfo[i][Corregedor] == true)
        {
            
SetPlayerColor(i, 0x00FFFFAA);
            
SetPlayerChatBubble(i, "Corregedor(a)", GetPlayerColor(i), 20.0, 10000);
        }
          else if(
pInfo[i][Administrador] == true)
        {
            
SetPlayerColor(i, 0xFF0000AA);
            
SetPlayerChatBubble(i, "Administrador(a)", GetPlayerColor(i), 20.0, 10000);
        }
        else if(
pInfo[i][Master] == true)
        {
            
SetPlayerColor(i, 0x800000AA);
            
SetPlayerChatBubble(i, "Administrador(a)", GetPlayerColor(i), 20.0, 10000);
        }
        else if(
GetPlayerScore(i) < 5)
        {
            
SetPlayerColor(i, 0xFF8000AA);
            
SetPlayerChatBubble(i, "Novato(a)", GetPlayerColor(i), 20.0, 10000);
        }
        else if(
GetPlayerScore(i) >= 5) SetPlayerColor(i, 0xFFFFFFAA);
    }
    return 
1;
} 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)