Jump to content

[AJUDA]AntiBind


Recommended Posts

Então, eu estou usando o getBoundControls para kickar jogador que estão usando binds para bugar animação em meu servidor. mas essa função só funciona se o jogador já estiver entrando no meu servidor com as configurações de teclas alteradas.. queria saber se existe algum evento para acionar a função assim que o jogador mudar as configurações de teclas já dentro do servidor, quando ele trocar toma kick.

Obrigado.

Link to comment
  • Moderators

Evento para binds não existe, mas você pode usar alguns métodos para isso, que eu não sei qual é o melhor porque nunca fiz, mas tente usar addCommandHandler/onPlayerCommand.

Ou fazer uma whitelist de certos comandos permitidos a uma tecla

Link to comment

Ou, se você sabe a combinação exata de teclas que os cara aperta, você pode fazer uma verificação, desta forma:

client

addEventHandler ("onClientKey", getRootElement(), function (button, state)
	if button == "a" then
		if state then -- Se o jogador tiver com a tecla A pressionada, então:
			setElementData (localPlayer, "button.a", true) -- Seta a data informando que ele esta com a tecla A pressionada.
		else -- Se o jogador soltar a tecla A, então:
			setElementData (localPlayer, "button.a", false) -- Remove a data informando que ele não esta com a tecla A pressionada.
		end
	elseif button == "b" then
		if state then -- Se o jogador tiver com a tecla B pressionada, então:
			setElementData (localPlayer, "button.b", true) -- Seta a data informando que ele esta com a tecla B pressionada.
		else -- Se o jogador soltar a tecla B, então:
			setElementData (localPlayer, "button.b", false) -- Remove a data informando que ele não esta com a tecla B pressionada.
		end
	end	
	if getElementData (localPlayer, "button.a") and getElementData (localPlayer, "button.b") then -- Se o jogador tiver com as 2 pressionadas, então:
		triggerServerEvent ("kickPlayer", localPlayer) -- Trigger no server pra kicker o cara.
	end
end)

server

addEvent ("kickPlayer", true)
addEventHandler ("kickPlayer", getRootElement(), function ()
	kickPlayer (client, "Combinação proibida detectada!")
end)

 

Link to comment

O único bug de animação que eu me recordo, é..

Por exemplo, abrir um painel de animação, e fazer uma animação (envia para o lado server-side a animação), e então, quando clicar em stop animação (não envia para o server-side), fica no client-side, ou seja, para o player ele está normal, porem para o outros players, aparece que ele esta com animação.

Edited by Angelo Pereira
Link to comment

Para resolver isso, faça

server-side

addEventHandler("onResourceStart", resourceRoot, function ()
   setGlitchEnabled("fastmove", false)
   setGlitchEnabled("fastsprint", false)
   setGlitchEnabled("quickstand", false)
   setGlitchEnabled("fastfire", false)
   setGlitchEnabled("crouchbug", false)
end)

--/> Também pode utilizar o recurso NoCrouchSlide (nocrouchslide) : 
--Link: https://community.multitheftauto.com/index.php?p=resources&s=details&id=13368

--/> Veja também se você não tem nenhum recurso de c-bug no servidor, caso tenha, pode interferir com o script acima.

 

Edited by Angelo Pereira
Link to comment
1 hour ago, Angelo Pereira said:

Para resolver isso, faça

server-side


addEventHandler("onResourceStart", resourceRoot, function ()
   setGlitchEnabled("fastmove", false)
   setGlitchEnabled("fastsprint", false)
   setGlitchEnabled("quickstand", false)
   setGlitchEnabled("fastfire", false)
   setGlitchEnabled("crouchbug", false)
end)

--/> Também pode utilizar o recurso NoCrouchSlide (nocrouchslide) : 
--Link: https://community.multitheftauto.com/index.php?p=resources&s=details&id=13368

--/> Veja também se você não tem nenhum recurso de c-bug no servidor, caso tenha, pode interferir com o script acima.

 

na wiki diz que todos esses glitchs já são desabilitados por padrão, mas mesmo assim testei e não adiantou nada: 

 

Link to comment
  • Other Languages Moderators

Tente isso:

-- client-side

local controlTable = {"fire", "next_weapon", "previous_weapon", "forwards", "backwards", "left", "right", "zoom_in", "zoom_out",
 "change_camera", "jump", "sprint", "look_behind", "crouch", "action", "walk", "aim_weapon", "conversation_yes", "conversation_no",
 "group_control_forwards", "group_control_back", "enter_exit", "vehicle_fire", "vehicle_secondary_fire", "vehicle_left", "vehicle_right",
 "steer_forward", "steer_back", "accelerate", "brake_reverse", "radio_next", "radio_previous", "radio_user_track_skip", "horn", "sub_mission",
 "handbrake", "vehicle_look_left", "vehicle_look_right", "vehicle_look_behind", "vehicle_mouse_look", "special_control_left", "special_control_right",
 "special_control_down", "special_control_up"}

function getBoundControls(key) -- Função útil da Wiki (https://wiki.multitheftauto.com/wiki/GetBoundControls)
    local controls = {}
    for _, control in ipairs(controlTable) do
        for k in pairs(getBoundKeys(control)) do
            if (k == key) then
                controls[control] = true
            end
        end
    end
    return controls
end

function kick()
    triggerServerEvent("anticheat->kick", resourceRoot)
end

addEventHandler("onClientResourceStart", resourceRoot,
    function()
        if getBoundControls("space")["crouch"] and getBoundControls("space")["fire"] then
            kick()
        end
    end
)

addEventHandler("onClientPlayerWeaponFire", root,
    function()
        if source == localPlayer then
            if getBoundControls("space")["crouch"] and getBoundControls("space")["fire"] then
                kick()
            end
        end
    end
)

-- server-side
addEvent("anticheat->kick", true)
addEventHandler("anticheat->kick", resourceRoot,
    function()
        kickPlayer(client, "Console", "Retire suas binds.")
    end
)

 

Link to comment
15 hours ago, andreisrww said:

Tente isso:


-- client-side

local controlTable = {"fire", "next_weapon", "previous_weapon", "forwards", "backwards", "left", "right", "zoom_in", "zoom_out",
 "change_camera", "jump", "sprint", "look_behind", "crouch", "action", "walk", "aim_weapon", "conversation_yes", "conversation_no",
 "group_control_forwards", "group_control_back", "enter_exit", "vehicle_fire", "vehicle_secondary_fire", "vehicle_left", "vehicle_right",
 "steer_forward", "steer_back", "accelerate", "brake_reverse", "radio_next", "radio_previous", "radio_user_track_skip", "horn", "sub_mission",
 "handbrake", "vehicle_look_left", "vehicle_look_right", "vehicle_look_behind", "vehicle_mouse_look", "special_control_left", "special_control_right",
 "special_control_down", "special_control_up"}

function getBoundControls(key) -- Função útil da Wiki (https://wiki.multitheftauto.com/wiki/GetBoundControls)
    local controls = {}
    for _, control in ipairs(controlTable) do
        for k in pairs(getBoundKeys(control)) do
            if (k == key) then
                controls[control] = true
            end
        end
    end
    return controls
end

function kick()
    triggerServerEvent("anticheat->kick", resourceRoot)
end

addEventHandler("onClientResourceStart", resourceRoot,
    function()
        if getBoundControls("space")["crouch"] and getBoundControls("space")["fire"] then
            kick()
        end
    end
)

addEventHandler("onClientPlayerWeaponFire", root,
    function()
        if source == localPlayer then
            if getBoundControls("space")["crouch"] and getBoundControls("space")["fire"] then
                kick()
            end
        end
    end
)

-- server-side
addEvent("anticheat->kick", true)
addEventHandler("anticheat->kick", resourceRoot,
    function()
        kickPlayer(client, "Console", "Retire suas binds.")
    end
)

 

Funcionou bem, obrigado pela a ajuda de todos ;)

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...