Jump to content

[ Help ] Mute e ban


Recommended Posts

Ola pessoal do forum estou criando um comando para staffs para mutar freezar e banir ja fiz o freeze e mute menos o ban mas eu queria saber oque fazer para conseguir mutar o player por tempo e banir por tempo tambem obrigado aguardo respostas

ServerSide 
function getPlayerFromPartialName(name) 
    local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil 
    if name then 
        for _, player in ipairs(getElementsByType("player")) do 
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() 
            if name_:find(name, 1, true) then 
                return player 
            end 
        end 
    end 
end  
  
function freeze (source, command, nick, ...) 
conta = getAccountName ( getPlayerAccount ( source ) ) 
    local t = {...} 
    local text = table.concat (t, " ") 
        if getPlayerFromPartialName ( nick ) and isObjectInACLGroup ("user."..conta, aclGetGroup ( "Console" ) ) then 
                local jogador = getPlayerFromPartialName ( nick ) 
                local nickMUTE = getPlayerName ( jogador ) 
                local nickADM = getPlayerName (source) 
                setElementFrozen (jogador, true) 
                outputChatBox ("O admin "..nickADM.." freezou o jogador "..nickMUTE.." Reason ("..text..")", root, 255,255,255, true) 
                outputChatBox ("Voce foi freezado pelo admin "..nickADM.."", jogador, 255,255,255, true) 
                else 
                outputChatBox ("Esse nick nao existe", source, 255,255,255, true) 
        end 
    end 
addCommandHandler ("freeze", freeze) 
  
function unfreeze (source, command, nick, ...) 
    local t = {...} 
    local text = table.concat (t, " ") 
        if nick and text then 
        if getPlayerFromPartialName ( nick )  then 
                local jogador = getPlayerFromPartialName ( nick ) 
                local nickMUTE = getPlayerName ( jogador ) 
                local nickADM = getPlayerName (source) 
                setElementFrozen (jogador, false) 
                outputChatBox ("O admin "..nickADM.." desfreezou o jogador "..nickMUTE.." Reason ("..text..")", root, 255,255,255, true) 
                outputChatBox ("Voce foi desfreezado pelo admin "..nickADM.."", jogador, 255,255,255, true) 
        end 
    end 
end 
addCommandHandler ("unfreeze", unfreeze) 
  
function mute (source, command, nick, ...) 
    local t = {...} 
    local text = table.concat (t, " ") 
        if getPlayerFromPartialName ( nick ) then 
                local jogador = getPlayerFromPartialName ( nick ) 
                local nickMUTE = getPlayerName ( jogador ) 
                local nickADM = getPlayerName (source) 
                setPlayerMuted (jogador, true) 
                outputChatBox ("O admin "..nickADM.." mutou o jogador "..nickMUTE.." Reason ("..text..")", root, 255,255,255, true) 
                outputChatBox ("Voce foi mutado pelo admin "..nickADM.."", jogador, 255,255,255, true) 
                else 
                outputChatBox ("#FF0000[ERRO]#ffffff ", source, 255,255,255, true) 
    end 
end  
addCommandHandler ("mute", mute) 
  
function unmute (source, command, nick, ...) 
    local t = {...} 
    local text = table.concat (t, " ") 
        if nick and text then 
        if getPlayerFromPartialName ( nick ) then 
                local jogador = getPlayerFromPartialName ( nick ) 
                local nickMUTE = getPlayerName ( jogador ) 
                local nickADM = getPlayerName (source) 
                setPlayerMuted (jogador, false) 
                outputChatBox ("O admin "..nickADM.." desmutou o jogador "..nickMUTE.." Reason ("..text..")", root, 255,255,255, true) 
                outputChatBox ("Voce foi desmutado pelo admin "..nickADM.."", jogador, 255,255,255, true) 
        end 
end 
end 
addCommandHandler ("unmute", unmute) 

Link to comment

Para o ban você pode simplesmente usar o parâmetro seconds da função banPlayer para determinar quantos segundos o jogador ficará banido, Já para o mute você pode fazer uma dessas coisas:

  1. Salvar (com element data, account data ou uma tabela) quantos segundos o jogador ficará calado e no evento onPlayerChat checar se já se passaram esses segundos que você salvou, se ainda faltam segundos você cancela o evento e não deixa o player 'falar', caso contrario não faz nada.
  2. Usar um timer para descalar o player (ineficiente).

Meu tópico sobre timestamp pode te ajudar no calculo dos segundos :P

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...