Portal SAMP
[Ajuda] ajustar chat local - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] ajustar chat local (/showthread.php?tid=4646)

Páginas: 1 2


ajustar chat local - Cyclopeta - 22/03/2024

public OnPlayerText(playerid, text[])
{
    new string[180];
    if(!pDados[playerid][Admin])format(string, sizeof(string), "[Cidadao][%d] Disse: {FFFFFF}%s", playerid, text);
    else if(pDados[playerid][Admin])format(string, sizeof(string), "[Administrador][%d] Disse: {FFFFFF}%s", playerid, text);
    MensagemLocal(playerid, 0xE3E3E3FF, string, 20);
    SetPlayerChatBubble(playerid, text, 0xE3E3E3FF, 100.0, 10000);
    return false;


}

slv rpzd, entao, de acordo com esse codigo, como ta dando continuidade? tipo adicinando tag pra "Fundador", e tbm para orgs, e varias outras?


RE: ajustar chat local - Ryzen_ - 22/03/2024

Eu recomendo você criar um switch contendo todos os cargos de administrador, orgs, etc. Se ele for de org, você terá o ID correspondente a cada uma adicionado nos dados da conta, então pode criar um switch para isso e acessar a mesma. Eu uso da seguinte forma na minha GM:

Responsável por recuperar o cargo do player dentro do clan. (Obs.: "STRX" é uma variável global responsável por armazenar textos):
Código PHP:
stock GetCargoClan(playerid) {
    new 
cargo PlayerInfo[playerid][pCargo], clan GetPlayerClan(playerid);

    switch (
cargo) {
        case 
1: {
            if (
clan == || clan == 2) {
                
format(STRXsizeof(STRX), "Kobun (Soldado)");
            } else {
                
format(STRXsizeof(STRX), "Soldado (Soldado)");
            }
        }
        
        case 
2: {
            if (
clan == || clan == 2) {
                
format(STRXsizeof(STRX), "Shateigashira (Consigliere)");
            } else {
                
format(STRXsizeof(STRX), "Jefe de Seguridad (Chefe de Segurança)");
            }
        }
        
        case 
3: {
            if (
clan == || clan == 2) {
                
format(STRXsizeof(STRX), "Kumicho (Capo)");
            } else {
                
format(STRXsizeof(STRX), "Jefe de la Droga (Chefe do Tráfico)");
            }
        }
        
        case 
4: {
            if (
clan == || clan == 2) {
                
format(STRXsizeof(STRX), "Wakagashira (Sub-líder)");
            } else {
                
format(STRXsizeof(STRX), "El Subpatrón (Sub-líder)");
            }
        }
        
        case 
5: {
            if (
clan == || clan == 2) {
                
format(STRXsizeof(STRX), "Oyabun (Líder)");
            } else {
                
format(STRXsizeof(STRX), "El Patrón (Líder)");
            }
        }   
    }

    return 
STRX;


Após isso, você pode utilizar a função para setar o nome do cargo utilizando a função "GetCargoClan()" quando ele enviar alguma mensagem:
Código PHP:
format(STRXsizeof(STRX), "%s[%u]\t\t%s"GetPlayerNameEx(i), iGetCargoClan(playerid)); 

O mesmo serve para administradores:
Código PHP:
// Recupera o level de administrador do player
stock GetPlayerAdminLevel(playerid) {
    return 
PlayerInfo[playerid][pAdmin];
}

// Insira esse switch na verificação do OnPlayerText()
switch(GetPlayerAdminLevel(playerid)) {
    case 
1format(tagsizeof(tag), "[{0040FF}Ajudante{FFFFFF}]");
    case 
2format(tagsizeof(tag), "[{0040FF}Moderador{FFFFFF}]");
    case 
3format(tagsizeof(tag), "[{4000FF}Supervisor{FFFFFF}]");
    case 
4format(tagsizeof(tag), "[{D7DF01}Gerente{FFFFFF}]");
    case 
5format(tagsizeof(tag), "[{210B61}Diretor{FFFFFF}]");
    case 
6format(tagsizeof(tag), "[{00FF40}Desenvolvedor{FFFFFF}]");




RE: ajustar chat local - Cyclopeta - 22/03/2024

mais meu servidor nao e de clan, é rp tlgd, ai queria dar continuidade apartir do codigo q mandei ali, n entendi mt bem da forma q se mandou


RE: ajustar chat local - xbruno1000x - 22/03/2024

É só adicionar um else e continuar adicionar novas condicionais.

Código:
public OnPlayerText(playerid, text[])
{
    new string[180];
    if(!pDados[playerid][Admin])format(string, sizeof(string), "[Cidadao][%d] Disse: {FFFFFF}%s", playerid, text);
    else if(pDados[playerid][Admin])format(string, sizeof(string), "[Administrador][%d] Disse: {FFFFFF}%s", playerid, text);
    else if(VARIAVEL DO FUNDADOR)format(string, sizeof(string), "[Fundador][%d] Disse: {FFFFFF}%s", playerid, text);
    MensagemLocal(playerid, 0xE3E3E3FF, string, 20);
    SetPlayerChatBubble(playerid, text, 0xE3E3E3FF, 100.0, 10000);
    return false;
}



RE: ajustar chat local - Cyclopeta - 22/03/2024

no "(VARIAVEL DO FUNDADOR)" posso ta botando oq? tenho q criar algo ou oq?

E coloquei aq oq se passou acima, e quando eu logo como fundador, aparece a tag "Administrador" sendo q tou de fundador, como ajusta isso?


RE: ajustar chat local - xbruno1000x - 22/03/2024

Se o Fundador também está setado como admin, basta fazer assim:
Código:
public OnPlayerText(playerid, text[])
{
    new string[180];
    if(!pDados[playerid][Admin])format(string, sizeof(string), "[Cidadao][%d] Disse: {FFFFFF}%s", playerid, text);
    else if(!VARIAVEL DO FUNDADOR && pDados[playerid][Admin])format(string, sizeof(string), "[Administrador][%d] Disse: {FFFFFF}%s", playerid, text);
    else if(VARIAVEL DO FUNDADOR && pDados[playerid][Admin])format(string, sizeof(string), "[Fundador][%d] Disse: {FFFFFF}%s", playerid, text);
    MensagemLocal(playerid, 0xE3E3E3FF, string, 20);
    SetPlayerChatBubble(playerid, text, 0xE3E3E3FF, 100.0, 10000);
    return false;
}



RE: ajustar chat local - Ryzen_ - 22/03/2024

(22/03/2024 17:15)Cyclopeta Escreveu: mais meu servidor nao e de clan, é rp tlgd, ai queria dar continuidade apartir do codigo q mandei ali, n entendi mt bem da forma q se mandou

Dá no mesmo, serve para qualquer situação. O que te mandei é apenas uma base para como estar fazendo o seu sistema. Pode utilizar também da forma que o Bruno falou, porém, o correto seria você setar cada cargo de administrador como um inteiro, exemplo:

1 - Ajudante
2 - Moderador
3 - Administrador
4 - Diretor
5 - Fundador

E assim por diante. Dessa forma, poderia utilizar algo mais ou menos assim:

Código PHP:
else if (PlayerInfo[playerid][pAdmin] == 5format(stringsizeof(string), "[Fundador][%d] Disse: {FFFFFF}%s"playeridtext); 



RE: ajustar chat local - Cyclopeta - 22/03/2024

public OnPlayerText(playerid, text[])
{
new string[180];
if(!pDados[playerid][Admin])format(string, sizeof(string), "[Cidadao][%d] Disse: {FFFFFF}%s", playerid, text);
else if(!CargoA[playerid][Fundador] && pDados[playerid][Admin])format(string, sizeof(string), "{FFFAFA}[{A020F0}Administrador{FFFAFA}][%d] Disse: {A020F0}%s", playerid, text);
else if(CargoA[playerid][Fundador] && pDados[playerid][Admin] == 1340) format(string, sizeof(string), "{FFFAFA}[{FFFF00}Fundador{FFFAFA}][%d] Disse: {FFFF00}%s", playerid, text);
MensagemLocal(playerid, 0xE3E3E3FF, string, 20);
SetPlayerChatBubble(playerid, text, 0xE3E3E3FF, 100.0, 10000);
return false;
}
ta desse jeito ai, so que quando eu logo como Fundador e digito algo no chat, a tag de "Administrador" continua, inves d mudar pra "Fundador". oq sera q tem de errado?


RE: ajustar chat local - MarcosBrazz - 22/03/2024

Código PHP:
public OnPlayerText(playeridtext[])
{
    new string[180];
    if(!pDados[playerid][Admin])format(stringsizeof(string), "[Cidadao][%d] Disse: {FFFFFF}%s"playeridtext);
    else if(!CargoA[playerid][Fundador] && pDados[playerid][Admin] < 1340)format(stringsizeof(string), "{FFFAFA} [{A020F0}Administrador{FFFAFA}][%d] Disse: {A020F0}%s"playeridtext);
    else if(CargoA[playerid][Fundador] && pDados[playerid][Admin] == 1340format(stringsizeof(string), "{FFFAFA} [{FFFF00}Fundador{FFFAFA}][%d] Disse: {FFFF00}%s"playeridtext);
    MensagemLocal(playerid0xE3E3E3FFstring20);
    SetPlayerChatBubble(playeridtext0xE3E3E3FF100.010000);
    return false;




RE: ajustar chat local - Cyclopeta - 22/03/2024

AE Marcos, coloquei isso la, so que quando digita. nao aparece nada, fica meio q se tivesse limpado o chat tlgd