Jump to content

Cancelar evento de ban


Recommended Posts

Posted

Como faço para cancelar o banimento caso o jogador esteja com algum elementdata?

tentei:

function noPunish (theBan)
    if getElementType(source) == "player" then
        if getElementData(source, "teste") then
            cancelEvent()
        end
    end
end
addEventHandler("onBan", root, noPunish)

Porém não obtive sucesso...

  • Moderators
Posted

Isso acontece pois source não é quem foi banido e sim quem baniu o jogador.

Além disso, o evento onBan não pode ser cancelado.

image.png.99027c5439b32051d0ccde77dc752155.png

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

Tenho o seguinte código (vi o mesmo em um tópico aqui no forum):

SeriasQueNaoPodemSerBanidos = { 
["SEUSERIAL"] = true, 
["SEUSERIAL"] = true, 
["SEUSERIAL"] = true 
} 

function announceBan( theBan ) 
    if getElementType( source ) then --Check if a player banned the IP/Serial 
        if SeriasQueNaoPodemSerBanidos[getBanSerial(theBan)] then 
            outputChatBox("[ERRO] Esse serial não pode ser banido.!") 
            removeBan(theBan) 
        end 
    end 
end 
addEventHandler( "onBan", root, announceBan ) 


Como faço para ao invés de checar o serial se pode ser banido ou não, checar se o jogador banido tem o elementdata que eu desejo?

tentei de um jeito mais não funcionou... pois como você disse, source é quem baniu o jogador:

function announceBan( theBan ) 
    if getElementType( source ) then
       if getElementData(source, "teste") then
            outputChatBox("[ERRO] Esse serial não pode ser banido.!") 
            removeBan(theBan) 
        end 
    end 
end 
addEventHandler( "onBan", root, announceBan ) 

tem como fazer para o jogador que for banido se tiver o elementdata não tomar a punição?

  • Moderators
Posted (edited)

Faça assim:

server.lua

addEventHandler ("onPlayerBan", root, function (banPointer) -- Neste evento, source = quem foi banido.
    if getElementData(source, "teste") then -- Se o jogador banido tem essa data, então:
        outputChatBox (getPlayerName(source).." não pode ser banido. (banimento negado)", root, 255, 0, 0) -- Manda isso pra geral.
        removeBan (banPointer) -- Desbane o jogador antes de ser chutado pelo ban, fazendo com que ele nem seja chutado.
        -- ESTE RESOURCE PRECISA TER ACESSO ADMIN PARA REMOVER O BAN.
    end
end)

 


Eu recomendo fortemente que não use elementData para este objetivo, pois é facilmente burlável e jogadores que deveriam ser banidos podem começar a se proteger de banimentos.

Em vez disso, use isso:

if getAccountName(getPlayerAccount(source)) == "myAccountName" then -- Se o jogador estiver logado nessa conta, então:

Assim enquanto o jogador estiver logado nessa conta específica, ele não poderá ser banido.

Edited by Lord Henry

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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