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...
Other Languages Moderators Lord Henry Posted December 6, 2023 Other Languages 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.
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?
Other Languages Moderators Lord Henry Posted December 6, 2023 Other Languages 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
Recommended Posts