Jump to content

AJUDA (CRIANDO O MESMO OBJETO)


Recommended Posts

Boa Noite,

 

Eu to com problema, fiz um timer a onde cria o objeto quando chega proximo da col, e deu certo mais ele fica criando varias vezes o mesmo objeto e queria que cria-se apenas 1 vez, so que com o timer rodando ainda

 

setTimer(function(col)
					local cx, cy, cz = getElementPosition (col) --Aqui você deve colocar a posição do loot..
					local px, py, pz = getElementPosition (localPlayer) --Aqui você acha a localização do player.
					local distancia = math.floor(getDistanceBetweenPoints3D (cx, cy, cz, px, py, pz)) 
					-- outputChatBox(distancia)
					if tonumber(distancia) <= 20 then --Caso a distância seja maior ou igual que "x", então..
						outputChatBox("COL PROXIMA: "..distancia)
						-- if not(isElement(obejctItem[counter])) then 
							obejctItem[counter] = createObject(item[2],cx,cy,cz,item[4])
							setObjectScale(obejctItem[counter],item[3])
							setElementCollisionsEnabled(obejctItem[counter], false)
							setElementFrozen (obejctItem[counter],true)
							outputChatBox("OBJETOS CRIADOS")
						-- end
					else
						-- if isTimer(timerObjetos) then
			    			-- killTimer(timerObjetos)
						-- end
						if (cx and cy and cz) then
							if isElement(obejctItem[counter]) then 
			    			    destroyElement(obejctItem[counter])
							end
						end
			    		-- outputChatBox("COL FORA: "..distancia)
					end
				end,1000,0,col)

 

Link to comment
24 minutes ago, felipebaidoloko said:

Boa Noite,

 

Eu to com problema, fiz um timer a onde cria o objeto quando chega proximo da col, e deu certo mais ele fica criando varias vezes o mesmo objeto e queria que cria-se apenas 1 vez, so que com o timer rodando ainda

 


setTimer(function(col)
					local cx, cy, cz = getElementPosition (col) --Aqui você deve colocar a posição do loot..
					local px, py, pz = getElementPosition (localPlayer) --Aqui você acha a localização do player.
					local distancia = math.floor(getDistanceBetweenPoints3D (cx, cy, cz, px, py, pz)) 
					-- outputChatBox(distancia)
					if tonumber(distancia) <= 20 then --Caso a distância seja maior ou igual que "x", então..
						outputChatBox("COL PROXIMA: "..distancia)
						-- if not(isElement(obejctItem[counter])) then 
							obejctItem[counter] = createObject(item[2],cx,cy,cz,item[4])
							setObjectScale(obejctItem[counter],item[3])
							setElementCollisionsEnabled(obejctItem[counter], false)
							setElementFrozen (obejctItem[counter],true)
							outputChatBox("OBJETOS CRIADOS")
						-- end
					else
						-- if isTimer(timerObjetos) then
			    			-- killTimer(timerObjetos)
						-- end
						if (cx and cy and cz) then
							if isElement(obejctItem[counter]) then 
			    			    destroyElement(obejctItem[counter])
							end
						end
			    		-- outputChatBox("COL FORA: "..distancia)
					end
				end,1000,0,col)

 

no final do código onde se encontra o end, 1000, 0, col) você deve alterar as vezes que o timer é executado, no seu caso você deverá trocar o 0 pelo 1

depois disso testa o código novamente, e quaisquer novos relatos, responda o tópico detalhando tudo :D 

Edited by KronoS Lettify
+detalhes
Link to comment
1 hour ago, felipebaidoloko said:

Boa Noite,

 

Eu to com problema, fiz um timer a onde cria o objeto quando chega proximo da col, e deu certo mais ele fica criando varias vezes o mesmo objeto e queria que cria-se apenas 1 vez, so que com o timer rodando ainda

 


setTimer(function(col)
					local cx, cy, cz = getElementPosition (col) --Aqui você deve colocar a posição do loot..
					local px, py, pz = getElementPosition (localPlayer) --Aqui você acha a localização do player.
					local distancia = math.floor(getDistanceBetweenPoints3D (cx, cy, cz, px, py, pz)) 
					-- outputChatBox(distancia)
					if tonumber(distancia) <= 20 then --Caso a distância seja maior ou igual que "x", então..
						outputChatBox("COL PROXIMA: "..distancia)
						-- if not(isElement(obejctItem[counter])) then 
							obejctItem[counter] = createObject(item[2],cx,cy,cz,item[4])
							setObjectScale(obejctItem[counter],item[3])
							setElementCollisionsEnabled(obejctItem[counter], false)
							setElementFrozen (obejctItem[counter],true)
							outputChatBox("OBJETOS CRIADOS")
						-- end
					else
						-- if isTimer(timerObjetos) then
			    			-- killTimer(timerObjetos)
						-- end
						if (cx and cy and cz) then
							if isElement(obejctItem[counter]) then 
			    			    destroyElement(obejctItem[counter])
							end
						end
			    		-- outputChatBox("COL FORA: "..distancia)
					end
				end,1000,0,col)

 

O objeto está sendo criado na tabela obejctItem com o argumento counter, esse counter vem de onde? eu não vi a origem dele no seu código. Aguardo a resposta para lhe ajudar.

Edited by Tommy.
Link to comment

aqui

 

obejctItem = {}
addEvent( "reloadPickaps", true )
addEventHandler( "reloadPickaps", getRootElement(), function (col)
	counter = 0
	if getElementData(getLocalPlayer(),"logedin") then 
		for i, item in ipairs(itemTable["other"]) do
			if getElementData(col,item[1]) and getElementData(col,item[1]) > 0 then
				if counter == 3 then
					break
				end	
				counter = counter + 1
				-- outputChatBox("ok"..counter)
				obejctItem = {}
				setTimer(function(col)
					local cx, cy, cz = getElementPosition (col) --Aqui você deve colocar a posição do loot..
					local px, py, pz = getElementPosition (localPlayer) --Aqui você acha a localização do player.
					local distancia = math.floor(getDistanceBetweenPoints3D (cx, cy, cz, px, py, pz)) 
					-- outputChatBox(distancia)
					if tonumber(distancia) <= 20 then --Caso a distância seja maior ou igual que "x", então..
						outputChatBox("COL PROXIMA: "..distancia)
							obejctItem[counter] = createObject(item[2],cx+math.random(-1,1),cy+math.random(-1,1),cz-0.875,item[4])
							setObjectScale(obejctItem[counter],item[3])
							setElementCollisionsEnabled(obejctItem[counter], false)
							setElementFrozen (obejctItem[counter],true)
							outputChatBox("OBJETOS CRIADOS")
					else
						if (cx and cy and cz) then
							if isElement(obejctItem[counter]) then 
			    			    destroyElement(obejctItem[counter])
							end
						end
			    		-- outputChatBox("COL FORA: "..distancia)
					end
				end,1000,0,col)
				setElementData(col,"objectsINloot",{obejctItem[1], obejctItem[2], obejctItem[3]})
			end
		end	
	end	
end)

 

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