Portal SAMP
[Ajuda] chat global - 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] chat global (/showthread.php?tid=4542)



chat global - Whaispe - 14/02/2024

Opa, eu estou querendo fazer um sistema de chat global mas não entendo muito, fiz um simples porém fiz com que quando um admin fale no chat apareça seu cargo, mas quando um player sem ser adm no chat aparece "nenhum" eu queria fazer com que não apareça nada quando um player comum falar tipo [ForaRp] Nick[id]: fala, bom o comando está aqui, se algm pouder me ajudar agradeço mt.
Código:
CMD:y(playerid, params[])
{
    if(Logado[playerid] < 1) return SCM(playerid, VERMELHO, "[ERROR]{ffffff} Voce nao pode usar comandos sem esta logado");
    new str[144];
    if(info[playerid][Admin] > 0)
    if(sscanf(params, "str[144]", params)) return SCM(playerid, -1, "Use: /y [texto]");
    format(str, sizeof str,  "{00FF00}[@ForaRp] %s {FFFFFF}%s [%d]:{FFFFFF} %s", GetNomeAdmin(info[playerid][Admin]), PlayerName(playerid), playerid, params);
    SendClientMessageToAll(-1, str);
    return true;
}



RE: chat global - Luiz - 14/02/2024

Basta verificar se o jogador é Admin ou não e de acordo com o retorno, você formata uma mensagem diferente.
Código PHP:
CMD:y(playeridparams[])
{
    if(
Logado[playerid] < 1) return SCM(playeridVERMELHO"[ERROR]{ffffff} Voce nao pode usar comandos sem esta logado");
    new 
str[144];
    if(
sscanf(params"str[144]"params)) return SCM(playerid, -1"Use: /y [texto]");
    
    if(
info[playerid][Admin] > 0)
        
format(strsizeof str,  "{00FF00}[@ForaRp] %s {FFFFFF}%s [%d]:{FFFFFF} %s"GetNomeAdmin(info[playerid][Admin]), PlayerName(playerid), playeridparams);
    else 
        
format(strsizeof str,  "{00FF00}[@ForaRp] {FFFFFF}%s [%d]:{FFFFFF} %s"PlayerName(playerid), playeridparams);
    
SendClientMessageToAll(-1str);
    return 
true;




RE: chat global - Whaispe - 14/02/2024

certo, dai se eu quiser coloca essa if aqui "if(Trabalhando[playerid] < 0)" que verifica se o player tá em modo trabalho eu substituo o if(info[playerid][Admin] > 0)? kk q q eu faço dai?


RE: chat global - Luiz - 14/02/2024

Não entendi o que você quis dizer. Se o que você quer é bloquear o jogador que não está em modo trabalho de utilizar o comando, deve fazer a verificação acima do código.
Código PHP:
CMD:y(playeridparams[])
{
    if(
Logado[playerid] < 1) return SCM(playeridVERMELHO"[ERROR]{ffffff} Voce nao pode usar comandos sem esta logado");

    if(!
Trabalhando[playerid])
        return 
SCM(playeridVERMELHO"[ERROR]{ffffff} Você não está em modo trabalho");

    new 
str[144];
    if(
sscanf(params"str[144]"params)) return SCM(playerid, -1"Use: /y [texto]");
    
    if(
info[playerid][Admin] > 0)
        
format(strsizeof str,  "{00FF00}[@ForaRp] %s {FFFFFF}%s [%d]:{FFFFFF} %s"GetNomeAdmin(info[playerid][Admin]), PlayerName(playerid), playeridparams);
    else 
        
format(strsizeof str,  "{00FF00}[@ForaRp] {FFFFFF}%s [%d]:{FFFFFF} %s"PlayerName(playerid), playeridparams);
    
SendClientMessageToAll(-1str);
    return 
true;




RE: chat global - xbruno1000x - 14/02/2024

(14/02/2024 16:19)Whaispe Escreveu: certo, dai se eu quiser coloca essa if aqui "if(Trabalhando[playerid] < 0)" que verifica se o player tá em modo trabalho eu substituo o if(info[playerid][Admin] > 0)? kk q q eu faço dai?

Ficaria assim:
Código:
CMD:y(playerid, params[])
{
    if(Logado[playerid] < 1) return SCM(playerid, VERMELHO, "[ERROR]{ffffff} Voce nao pode usar comandos sem esta logado");

    new str[144];
    if(sscanf(params, "str[144]", params)) return SCM(playerid, -1, "Use: /y [texto]");
    
    if(Trabalhando[playerid])
        format(str, sizeof str,  "{00FF00}[@ForaRp] %s {FFFFFF}%s [%d]:{FFFFFF} %s", GetNomeAdmin(info[playerid][Admin]), PlayerName(playerid), playerid, params);
    else 
        format(str, sizeof str,  "{00FF00}[@ForaRp] {FFFFFF}%s [%d]:{FFFFFF} %s", PlayerName(playerid), playerid, params);
    SendClientMessageToAll(-1, str);
    return true;

Imagino que não precise conferir o nivel de admin, pois a variável trabalhando normalmente só é setada para admins em trabalho.

Obs: o ">0" pode ser usado ou não, significam a mesma coisa no final das contas.