Big Smoker Posted December 22, 2019 Posted December 22, 2019 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)
KronoS Lettify Posted December 22, 2019 Posted December 22, 2019 (edited) 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 Edited December 22, 2019 by KronoS Lettify +detalhes
Big Smoker Posted December 22, 2019 Author Posted December 22, 2019 eu uso o 0 para ele executar varias vezes, nao 1 vez.
KronoS Lettify Posted December 22, 2019 Posted December 22, 2019 2 minutes ago, felipebaidoloko said: eu uso o 0 para ele executar varias vezes, nao 1 vez. Você executando várias vezes o script criará vários objetos
Big Smoker Posted December 22, 2019 Author Posted December 22, 2019 (edited) exato, por isso que vim no forum saber que elemento posso usar para identificar o objeto ja criado Edited December 22, 2019 by felipebaidoloko
KronoS Lettify Posted December 22, 2019 Posted December 22, 2019 1 minute ago, felipebaidoloko said: exato, por isso que vim no forum saber que elemento posso usar para que identifica o objeto ja criado E não era pq tava sendo criado vários objetos quando encostasse em um COL?
Tommy. Posted December 23, 2019 Posted December 23, 2019 (edited) 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 December 23, 2019 by Tommy.
Big Smoker Posted December 23, 2019 Author Posted December 23, 2019 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)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now