Jump to content

Warning em script de explode some


Recommended Posts

oi, alguém poderia me ajudar com um WARNING em um script?

WARNING: ExplodeSome\dvoe_s.lua:4: Bad argument @ 'destroyElement' [Expected element at argument 1]

local timer = 500

function desaparecer()
    setTimer(destroyElement, timer, 1, source)
end
addEventHandler("onVehicleExplode", getRootElement(), desaparecer)

 

Link to comment

Creio que ai não está definindo quem é o elemento source.

Tenta ai : (Nao testado)

 

local timer = 500
function desaparecer()
  if getElementType(source) == "vehicle" then
    setTimer(destroyElement, timer, 1, source)
    end
  end
addEventHandler("onVehicleExplode",getRootElement(), desaparecer)

 

  • Thanks 1
Link to comment
  • Other Languages Moderators

Isso acontece pois dentro do timer o source deixa de existir. Pois ele pertence ao evento da função principal somente.

Coloque o source dentro de uma variável local, dai dentro do timer vc verifica se o elemento desta variável ainda existe antes de tentar destruí-lo.

local timer = 500 -- Meio segundo.
function desaparecer ()
	local theVehicle = source -- theVehicle = o elemento que explodiu.
	setTimer (function () -- Inicia o timer.
		if isElement (theVehicle) then -- Se o elemento que está na variável ainda existe, então:
			destroyElement (theVehicle) -- Destrói o veículo.
			theVehicle = nil -- Anula essa variável, que não será mais usada.
		end
	end, timer, 1)
end
addEventHandler ("onVehicleExplode", getRootElement(), desaparecer)

 

  • Thanks 1
Link to comment

 

12 minutes ago, Lord Henry said:

Isso acontece pois dentro do timer o source deixa de existir. Pois ele pertence ao evento da função principal somente.

Coloque o source dentro de uma variável local, dai dentro do timer vc verifica se o elemento desta variável ainda existe antes de tentar destruí-lo.


local timer = 500 -- Meio segundo.
function desaparecer ()
	local theVehicle = source -- theVehicle = o elemento que explodiu.
	setTimer (function () -- Inicia o timer.
		if isElement (theVehicle) then -- Se o elemento que está na variável ainda existe, então:
			destroyElement (theVehicle) -- Destrói o veículo.
			theVehicle = nil -- Anula essa variável, que não será mais usada.
		end
	end, timer, 1)
end
addEventHandler ("onVehicleExplode", getRootElement(), desaparecer)

 

Obrigado! Deu certo aqui.

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