Eficiencia Posted June 2, 2019 Share Posted June 2, 2019 (edited) assim estou fazendo um script para consertar o veiculo quando o player passar no marker, estou tendo um problema que a funçao se repete varias vezes mesmo depois de o carro ja ter sido reparado. Gostaria de saber quais funçoes posso usar para checar a vida do veiculo e impedir que a funçao aconteça. codigo: local arrumar1 = createMarker( 2063.1059570313,-1831.181640625,13.546875 -1, "cylinder", 1.5, 255, 255, 0, 170 ) local preco = 3000 function Consertar (thePlayer) local vehicles = getElementsByType("vehicle") for _, vehicle in pairs(vehicles) do fixVehicle(vehicle) takePlayerMoney( thePlayer, preco ) outputChatBox("Você consertou seu carro por "..preco.."") end end addEventHandler("onMarkerHit", arrumar1, Consertar) Edited June 2, 2019 by Eficiencia Link to comment
Jonas^ Posted June 2, 2019 Share Posted June 2, 2019 Sim pois esta dentro de um loop, e qual necessidade de fazer um loop? e falta verificação se o jogador tem money, e se o jogador esta em um veículo or not, faça assim: local arrumar1 = createMarker (2063.10, -1831.18, 13.54 -1, "cylinder", 1.5, 255, 255, 0, 170) function Consertar (hitElement, matchingDimension) if (getElementType (hitElement) ~= "player") then return end if isElementWithinMarker (hitElement, arrumar1) then -- Se o jogador estiver no marker, então: local theVehicle = getPedOccupiedVehicle (hitElement) if (theVehicle) then -- Se o jogador estiver em um veículo, então: if getPlayerMoney (hitElement) >= 3000 then -- Se o jogador estiver 3k ou +, então: local preco = 3000 takePlayerMoney (hitElement, preco) -- Retira o valor da variável definida (preço = 3000) fixVehicle (theVehicle) -- Repara o veículo do jogador. outputChatBox ("Você consertou seu carro por $"..preco, hitElement, 0, 255, 0) else -- Senão: outputChatBox ("Erro! Você não tem dinheiro suficiente!", hitElement, 255, 30, 30) end else -- Senão: outputChatBox ("Erro! Você não está em um veículo!", hitElement, 255, 30, 30) end end end addEventHandler ("onMarkerHit", arrumar1, Consertar) OBS: Não testado. 1 Link to comment
Eficiencia Posted June 2, 2019 Author Share Posted June 2, 2019 jonas eu estava dando uma mexida e acabei dando uma arrumada local arrumar1 = createMarker( 2063.1059570313,-1831.181640625,13.546875 -1, "cylinder", 1.5, 255, 255, 0, 170 ) local preco = 3000 function Consertar (thePlayer) local driver = getVehicleOccupant ( thePlayer ) local vehicles = getElementsByType("vehicle") local vehicleHealth = getElementHealth ( driver ) if vehicleHealth == 100 then outputChatBox("Seu Veículo não está quebrado") elseif vehicleHealth <= 70 then for _, vehicle in pairs(vehicles) do fixVehicle(vehicle) takePlayerMoney( thePlayer, preco ) outputChatBox("Você consertou seu carro por "..preco.."") end end end addEventHandler("onMarkerHit", arrumar1, Consertar) vou fazer algo baseado no codigo que você montou Link to comment
[M]ister Posted June 2, 2019 Share Posted June 2, 2019 (edited) O evento onMarketHit já está anexado ao marker (arrumar1), o que torna a verificação isElementWithinMarker desnecessária. Eficiencia, a vida de veículos vai de 0-1000 e não 0-100 (como dos peds), e o seu consertar, na realidade tá consertando todos os veículos Edited June 2, 2019 by MaligNos Link to comment
DNL291 Posted June 3, 2019 Share Posted June 3, 2019 7 hours ago, Eficiencia said: jonas eu estava dando uma mexida e acabei dando uma arrumada local arrumar1 = createMarker( 2063.1059570313,-1831.181640625,13.546875 -1, "cylinder", 1.5, 255, 255, 0, 170 ) local preco = 3000 function Consertar (thePlayer) local driver = getVehicleOccupant ( thePlayer ) local vehicles = getElementsByType("vehicle") local vehicleHealth = getElementHealth ( driver ) if vehicleHealth == 100 then outputChatBox("Seu Veículo não está quebrado") elseif vehicleHealth <= 70 then for _, vehicle in pairs(vehicles) do fixVehicle(vehicle) takePlayerMoney( thePlayer, preco ) outputChatBox("Você consertou seu carro por "..preco.."") end end end addEventHandler("onMarkerHit", arrumar1, Consertar) vou fazer algo baseado no codigo que você montou Faça em cima do código que o Jonas postou, o seu código está totalmente errado. Basta pedir ajuda pra adicionar a verificação do estado do veículo dentro do código dele. No código dele é só remover a verificação isElementWithinMarker e adicionar a verificação com getElementHealth que você terá o que precisa. 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