Jump to content

Erro sistema de sem colisão entre veiculos.


Recommended Posts

Estou com um erro em um codigo de colisão entre veiculos, podem me ajudar?
Ele inicia tudo ok, os carros n se batem, mas ai passa uns minutos e da erro no setElementCollidableWith(vehicle, v, false)
 

function ghostmode_on()
    local v = getPedOccupiedVehicle(localPlayer) -- Get her's Vehicle ID
    for index,vehicle in ipairs(getElementsByType("vehicle")) do --LOOP through all Vehicles
        setElementCollidableWith(vehicle, v, false) -- Set the Collison off with the Other vehicles.
    end
end
addEventHandler( "onClientResourceStart", root, ghostmode_on)

Ai o erro: 

AhjgvMZ.png

Edited by Lord Henry
Código convertido de texto para Lua. Link do erro convertido em imagem.
Link to comment

Boa tarde, esse código só ira funcionar quando estiver dentro de um veiculo, e quando você reiniciar qualquer outra resource. 

Quote

addEventHandler( "onClientResourceStart", root, ghostmode_on)

Essa linha, você esta chamando a função quando reinicia qualquer resource. Pra chamar essa função pra quando reiniciar, ou iniciar apenas a resource do codigo, substitua o ROOT por getResourceRootElement(getThisResource()). Acredito que seja por isso que esteja dando esses erros.

Talvez queira colocar para retirar a colisão quando usar um comando, usando addCommandHandler(). Qualquer dúvida, só perguntar.

Link to comment
  • Other Languages Moderators

Ao iniciar o resource, dará erro sempre que algum jogador não estiver em um veículo, pois a variável local v será false.

Você pode evitar esse erro adicionando essa linha antes do for:

if not v then return end

Mas saiba que qualquer veículo criado depois que essa função já foi chamada, terá colisão normal. Essa função só vai deixar fantasma os veículos que já existiam antes.

Além disso, você colocou root ali no eventHandler, isso significa que ele vai chamar essa função sempre que qualquer resource for iniciado. Se você quer que funcione somente ao reiniciar este resource, troque o root por resourceRoot que é a forma resumida de getResourceRootElement(getThisResource()).

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