Nawan ZN Posted January 26, 2023 Share Posted January 26, 2023 (edited) 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: Edited January 27, 2023 by Lord Henry Código convertido de texto para Lua. Link do erro convertido em imagem. Link to comment
Rougue90 Posted January 26, 2023 Share Posted January 26, 2023 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 Lord Henry Posted January 27, 2023 Other Languages Moderators Share Posted January 27, 2023 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now