Jump to content

[ajuda] Pessoal preciso de ajuda


Recommended Posts

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 by Eficiencia
Link to comment

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.

  • Thanks 1
Link to comment

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

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 by MaligNos
Link to comment
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

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