n0_name Posted December 6, 2023 Posted December 6, 2023 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 Lord Henry Posted December 6, 2023 Moderators Posted December 6, 2023 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. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! 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.
n0_name Posted December 6, 2023 Author Posted December 6, 2023 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 Lord Henry Posted December 6, 2023 Moderators Posted December 6, 2023 (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 December 6, 2023 by Lord Henry 1 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! 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.
Recommended Posts