Jump to content

Como usar a bindKey


Recommended Posts

Estava fazendo um sistema que em uma parte dele seria preciso utilizar uma bind dentro de um marker para criar um veiculo. Fiz tudo certo, porém, fiz no client-side e acabei sabendo que veículos criados no client-side serviriam apenas para "enfeite", tentei então aprender a como fazer bind no server-side, li na wiki do mta e vi videos relacionados a ela, mas não consegui fazer da maneira correta.

Ainda estou confuso com a função bindKey, então se tiver alguém que possa me explicar um pouco dela ou pelo menos me ajudar dizendo o que esta de errado no código, ficarei grato.

local g1 = createMarker (1517.796, -694.59, 92.00, "cylinder", 3.0, 184,0,0, 150)

function buffalo ()
	bindKey (source, "e", "down",
function(thePlayer, player)
    if isElementWithinMarker(thePlayer, g1) then
        createVehicle(551, 1517.6644287109,-689.70690917969,94.75)
    end
    end)
end 
addEventHandler ("onPlayerLogin", getRootElement(), buffalo)

 

Edited by PlaKS
Link to comment
  • Other Languages Moderators

Bem confuso oq vc tentou fazer... tente isso:

local g1 = createMarker (1517.796, -694.59, 92.00, "cylinder", 3.0, 184,0,0, 150)

function buffalo ()
	bindKey (source, "e", "down", criaVeh)
end 
addEventHandler ("onPlayerLogin", root, buffalo)

function criaVeh (keyPresser, key, keyState)
	if isElementWithinMarker (keyPresser, g1) then
		createVehicle (551, 1517.66, -689.7, 94.75)
	end
end

Edit: Não precisava criar outro tópico, pois este assunto é o mesmo que o outro.

Edited by Lord Henry
  • Thanks 1
Link to comment

Porque você criou outro tópico sendo que era o mesmo assunto?

---

Não é necessário usar bindKey, basta usar um trigger quando o veículo é criado desta forma:

Server-side:

function verifyCreateVeh (veh)
	createVehicle (402, 1517.172, -690.4, 94.75, 0, 0, 100)
end
addEvent ("onRequestCreateVeh", true)
addEventHandler ("onRequestCreateVeh", getRootElement(), verifyCreateVeh)

Client-side:

local g1 = createMarker (1517.796, -694.59, 92.00, "cylinder", 3.0, 184,0,0, 150)

addEventHandler ("onClientKey", root, function (btn, press)
	if isElementWithinMarker (localPlayer, g1) and press then
		if btn == "e" then 
			triggerServerEvent ("onRequestCreateVeh", localPlayer)
		end
	end
end)

 

Edited by Jonas^
  • Thanks 1
Link to comment
  • Other Languages Moderators

BindKey é mais leve do que trigger. Mas dependendo do script dele, as vezes é mais necessário manter client-side, e então o trigger seria a única opção.

Edited by Lord Henry
  • Like 1
Link to comment
13 minutes ago, Lord Henry said:

BindKey é mais leve do que trigger. Mas dependendo do script dele, as vezes é mais necessário manter client-side, e então o trigger seria a única opção.

No caso eu manteria client mas iria limitar a usar a cada x tempo pra evitar pessoas ficar chamado o trigger lá e evitar que spawnem 300 carros.

Link to comment

Havia criado outro tópico pois queria entender mais da função bindKey, diferente do outro que era algo mais voltado pra apenas uma parte dela, mas acho que eu deveria realmente ter perguntado no meu outro tópico, mesmo assim, obrigado pelas respostas.

Edited by PlaKS
Link to comment
28 minutes ago, PlaKS said:

Havia criado outro tópico pois queria entender mais da função bindKey, diferente do outro que era algo mais voltado pra apenas uma parte dela, mas acho que eu deveria realmente ter perguntado no meu outro tópico, mesmo assim, obrigado pelas respostas.

Entendi, mas na verdade poderia continuar lá sem problemas até porque tem a ver com o mesmo script e tal.

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