n0_name Posted December 6, 2023 Share 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... Link to comment
Other Languages Moderators Lord Henry Posted December 6, 2023 Other Languages Moderators Share 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. Link to comment
n0_name Posted December 6, 2023 Author Share 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? Link to comment
Other Languages Moderators Lord Henry Posted December 6, 2023 Other Languages Moderators Share 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 Link to comment
n0_name Posted December 6, 2023 Author Share Posted December 6, 2023 deu certo, valeu Henry. Link to comment
Recommended Posts