Sign in to follow this  
Eficiencia

[ajuda] Pessoal preciso de ajuda

Recommended Posts

Posted (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 by Eficiencia

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post
Posted (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 by MaligNos

Share this post


Link to post
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.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.