Jump to content

[Duvida/Ajuda] Gasolina


Recommended Posts

Posted

Estou utilizando um script de gasolina que está funcionando perfeitamente, porem está consumindo gasolina em bikes, o que tentei fazer é que ao subir nas bikes, a gasolina fosse para 100, mas sem sucesso, e ao meu ver seria muito melhor se em bikes, a gasolina não descesse mas não imagino como poderia ser feito

 

Spoiler

-- server side -- Tentativa de ao subir na bike 

function bike ( player )
	for i,v in ipairs(getElementsByType("vehicle")) do
	local id = getElementModel ( v )
	local fuel2 = 100
	if id == 481 then
	--setElementData(localPlayer, "fuel", fuel2)
      setElementData(v, "fuel", fuel2)
    end
end
end
addEventHandler ( "onPlayerVehicleEnter", root, bike )

 

Spoiler

-- Script Full

factor = 0.03

function createVehicles(player)
	for i,v in ipairs(getElementsByType("vehicle")) do
		fuel = math.random(95,100)
		setElementData(v, "fuel", fuel)
	end
end

function processFuel(player)
	for i,v in ipairs(getElementsByType("vehicle")) do
		local fuel = getElementData(v, "fuel") or math.random(95,100)
		local id = getElementModel ( v )
		if (getVehicleEngineState(v) and fuel > 0 ) then
			fuel = fuel - factor
		end
		if (fuel <= 0.99) then
			fuel = 0
			setVehicleEngineState(v, false)
			
		end
		setElementData(v, "fuel", fuel)
	end
end

createVehicles()
setTimer(processFuel, 1000, 0)

--[[function bike ( player )
	for i,v in ipairs(getElementsByType("vehicle")) do
	local id = getElementModel ( v )
	local fuel2 = 100
	if id == 481 then
		setElementData(localPlayer, "fuel", fuel2)
	  --setElementData(v, "fuel", fuel2)
    end
end
end
addEventHandler ( "onPlayerVehicleEnter", root, bike )]]--

 

 

Scripter Lua em construção... Aguarde!

Posted

Quase fez certo, porem, você poderia ter bloqueado diretamente no timer de combustivel.

function processFuel(player)
   for i,v in ipairs(getElementsByType("vehicle")) do
      local id = getElementModel ( v )
      if (id == 509) or (id == 481) or (id == 510) then return end --/> Verifica o ID, caso for o ID da Bike, Então retorna.
         --id 509 :Bike id 481: BMX id 510 : Mountain Bike
         local fuel = getElementData(v, "fuel") or math.random(95,100)
         if (getVehicleEngineState(v) and fuel > 0 ) then
            fuel = fuel - factor
         end
         if (fuel <= 0.99) then
            fuel = 0
            setVehicleEngineState(v, false)
         end
         setElementData(v, "fuel", fuel)
   end
end

ou, bloquei diretamente na função que cria gasolina nos veiculos.

" Se eu te ajudei, deixe sua avaliação, obrigado ! "

Joinha!

 

Posted
Spoiler
2 hours ago, Angelo Pereira said:

Quase fez certo, porem, você poderia ter bloqueado diretamente no timer de combustivel.



function processFuel(player)
   for i,v in ipairs(getElementsByType("vehicle")) do
      local id = getElementModel ( v )
      if (id == 509) or (id == 481) or (id == 510) then return end --/> Verifica o ID, caso for o ID da Bike, Então retorna.
         --id 509 :Bike id 481: BMX id 510 : Mountain Bike
         local fuel = getElementData(v, "fuel") or math.random(95,100)
         if (getVehicleEngineState(v) and fuel > 0 ) then
            fuel = fuel - factor
         end
         if (fuel <= 0.99) then
            fuel = 0
            setVehicleEngineState(v, false)
         end
         setElementData(v, "fuel", fuel)
   end
end

ou, bloquei diretamente na função que cria gasolina nos veiculos.

 

Testei isso, porem sempre que um carro é spawnado, ele fica com 0 de gasolina, e quando eu removo o if que tu adicionou, ele volta ao normal
 

Spoiler

-- codigo com o que tu adicionou

factor = 0.03

function createVehicles(player)
	for i,v in ipairs(getElementsByType("vehicle")) do
		fuel = math.random(95,100)
		setElementData(v, "fuel", fuel)
	end
end

function processFuel(player)
	for i,v in ipairs(getElementsByType("vehicle")) do
		local id = getElementModel ( v )
	   if (id == 509) or (id == 481) or (id == 510) then return end --/> Verifica o ID, caso for o ID da Bike, Então retorna.
		  --id 509 :Bike id 481: BMX id 510 : Mountain Bike
		  local fuel = getElementData(v, "fuel") or math.random(95,100)
		if (getVehicleEngineState(v) and fuel > 0 ) then
			 fuel = fuel - factor
		  end
		if (fuel <= 0.99) then
			 fuel = 0
			 setVehicleEngineState(v, false)
		  end
		  setElementData(v, "fuel", fuel)
	end
 end

createVehicles()
setTimer(processFuel, 1000, 0)

 


 

Scripter Lua em construção... Aguarde!

Posted
Just now, Angelo Pereira said:

Está deixando em todos veículos 0?

 

Sim, qualquer veiculo criado fica em 0, tanto carro, moto, bike, etc

Scripter Lua em construção... Aguarde!

  • Moderators
Posted

Mais fácil simplesmente verificar se o tipo de veículo é bicicleta e não diminuir o combustível neles.

getVehicleType

  • Like 1

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted (edited)
1 hour ago, Lord Henry said:

Mais fácil simplesmente verificar se o tipo de veículo é bicicleta e não diminuir o combustível neles.

getVehicleType

Problema, que também afetaria as motos.

Tente isso :

 
-- Script Full

factor = 0.03

--[[function createVehicles( player )
	for i,v in ipairs(getElementsByType("vehicle")) do
		local fuel = math.random(95,100)
		setElementData(v, "fuel", fuel)
	end
end--]]

function processFuel ( )
   for i, v in ipairs(getElementsByType("vehicle")) do
      if not (getElementModel(v) == 509) and not (getElementModel(v) == 481) and not (getElementModel(v) == 510) then --/> Adicione os ID que Bloqueará !
         local fuel = getElementData(v, "fuel") or math.random(95,100)
         if getVehicleEngineState(v) and fuel > 0 then 
            fuel = fuel - factor
            setElementData(v, "fuel", fuel)
         end
         if (fuel <= 0.99) then
            fuel = 0
            setVehicleEngineState(v, false)
         end
      end
   end
end

--createVehicles() --/> Não é necessário, o timer já fez isso.
setTimer(processFuel, 1000, 0)

 

Edited by Angelo Pereira
  • Thanks 1

" Se eu te ajudei, deixe sua avaliação, obrigado ! "

Joinha!

 

  • Moderators
Posted

Motos são do tipo "Bike" e bicicletas são do tipo "BMX"

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
7 minutes ago, Lord Henry said:

Motos são do tipo "Bike" e bicicletas são do tipo "BMX"

Humm, bom saber disso, na WIKI Vehicle, está desatualizado então, pois, dentro de Bike estão motos e bikes

" Se eu te ajudei, deixe sua avaliação, obrigado ! "

Joinha!

 

  • Moderators
Posted

Não sei onde vc viu isso, aqui pra mim só marca motorbikes (motos).

  • Automobile: Cars, vans and trucks
  • Plane
  • Bike: Motorbikes
  • Helicopter
  • Boat
  • Train
  • Trailer: A trailer for a truck
  • BMX
  • Monster Truck
  • Quad: Quadbikes

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
Spoiler
17 hours ago, Angelo Pereira said:

Tente isso :



 
-- Script Full

factor = 0.03

--[[function createVehicles( player )
	for i,v in ipairs(getElementsByType("vehicle")) do
		local fuel = math.random(95,100)
		setElementData(v, "fuel", fuel)
	end
end--]]

function processFuel ( )
   for i, v in ipairs(getElementsByType("vehicle")) do
      if not (getElementModel(v) == 509) and not (getElementModel(v) == 481) and not (getElementModel(v) == 510) then --/> Adicione os ID que Bloqueará !
         local fuel = getElementData(v, "fuel") or math.random(95,100)
         if getVehicleEngineState(v) and fuel > 0 then 
            fuel = fuel - factor
            setElementData(v, "fuel", fuel)
         end
         if (fuel <= 0.99) then
            fuel = 0
            setVehicleEngineState(v, false)
         end
      end
   end
end

--createVehicles() --/> Não é necessário, o timer já fez isso.
setTimer(processFuel, 1000, 0)

 

 

Deu super certo, mais uma vez obrigado ^^

Scripter Lua em construção... Aguarde!

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