Portal SAMP
[Ajuda] Comando de muta - 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] Comando de muta (/showthread.php?tid=1169)



Comando de muta - Icalu - 09/05/2021

Alguém poderia me ajuda a criar um comando, que dar mute à um jogador nesse canal:

Código:
CMD:ad(playerid, params[])
{
    new texto[80],string[128];
    if(CanalAnuncios[playerid] == 0) return SendClientMessage(playerid,-1,"Tienes desactivado el canal de anuncios/dudas, para activarlo utiliza /canal anuncios");
    if(sscanf(params,"s[80]",texto)) return SendClientMessage(playerid,-1,"Usa {18DDFC}/ad anuncio");
    if(PlayerInfo[playerid][pTiempoJailS] > 0) return SendClientMessage(playerid, 0x3AA000FF, "No puedes usar el canal de anuncios mientras estás sancionado.");
    if(BloquearAnuncio[playerid] == 1) return SendClientMessage(playerid, -1, "Estás bloqueado del /ad");
    if(PlayerInfo[playerid][pNumero] == 0) return SendClientMessage(playerid,-1,"Tu no tienes un telefono para hacer un anuncio.");
    if(Tiempos[playerid][TiempoDuda] > 0 && RecienDuda[playerid] == 1)
    {
        if(Tiempos[playerid][TiempoDuda] < 60) format(string,sizeof(string),"Debes esperar %d segundos para volver a utilizar el canal de dudas.",Tiempos[playerid][TiempoDuda]);
        else if(Tiempos[playerid][TiempoDuda] >= 60) format(string,sizeof(string),"Debes esperar %dm %ds para volver a utilizar el canal de dudas.",Tiempos[playerid][TiempoDuda]/60, Tiempos[playerid][TiempoDuda]%(60));
        SendClientMessage(playerid, 0xff9a00FF,string);
        return 1;
    }
    if(Tiempos[playerid][TiempoDuda] > 0 && RecienDuda[playerid] == 0)
    {
        if(Tiempos[playerid][TiempoDuda] < 60) format(string, sizeof(string), "No se te permite hablar por el chat de ayuda. Espera {00CC00}%ds{FFFFFF} para enviar otra consulta al canal de ayuda.",Tiempos[playerid][TiempoDuda]);
        else if(Tiempos[playerid][TiempoDuda] >= 60) format(string, sizeof(string), "No se te permite hablar por el chat de ayuda. Espera {00CC00}%dm %ds{FFFFFF} para enviar otra consulta al canal de ayuda.", Tiempos[playerid][TiempoDuda]/60, Tiempos[playerid][TiempoDuda]%(60));
        SendClientMessage(playerid, -1,string);
        return 1;
    }
    new Nombre[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Nombre,sizeof(Nombre));
    if(strlen(texto) > 80) return SendClientMessage(playerid,-1,"El anuncio debe contener como máximo 80 carácteres.");
    if(PlayerInfo[playerid][jDinero] < strlen(texto)*20) return SendClientMessage(playerid,-1,"No tienes suficiente dinero para enviar un anuncio.");
    format(string, sizeof(string), "{FF0000} Anuncio: {FFFFFF}%s {FF0000}[#%d]", texto, PlayerInfo[playerid][pNumero]);
    for(new i=0;i<MAX_PLAYERS;i++)
    {

        if(CanalAnuncios[i] == 1)
        {

            SendClientMessage(i,0xF70A1AAA,string);
        }
    }
    new str_anuncio[260];
    format(str_anuncio, sizeof(str_anuncio), "Anuncio enviado por: {F51432}%s{FFFFFF} | ID: {F51432}%d", Nombre, playerid);
    MensajeAdmin(-1,str_anuncio,3);
    new str[60];
    format(str, sizeof(str), "Enviaste un anuncio por {F51432}%d$.", strlen(texto)*40);
    SendClientMessage(playerid,-1,str);
    QuitarDinero(playerid, strlen(texto)*40);
    DudaOff[playerid] = 1;
    Tiempos[playerid][TiempoDuda] = 60;
    return 1;
}



RE: Comando de muta - xbruno1000x - 09/05/2021

Crie uma bool para setar false em caso de desmutado e true em caso de mutado.

Código:
new bool:mutadocanal[MAX_PLAYERS];

depois crie um comando ou outra forma que preferir para mutar, provavelmente usando sscanf.
Código:
mutadocanal[playerid] = true;

e por final, basta usar uma if para verificar se o player está mutado quando usar o comando ad, e caso esteja, retornar uma mensagem de erro.

Código:
CMD:ad(playerid, params[])
{
      if(mutadocanal[playerid] == true) return SendClientMessage(playerid, -1, "ERRO: Você está mutado nesse canal!");



RE: Comando de muta - Icalu - 09/05/2021

Foi, vlw.