Big Smoker Posted December 22, 2019 Share 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) Link to comment
KronoS Lettify Posted December 22, 2019 Share 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 Link to comment
Big Smoker Posted December 22, 2019 Author Share Posted December 22, 2019 eu uso o 0 para ele executar varias vezes, nao 1 vez. Link to comment
KronoS Lettify Posted December 22, 2019 Share 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 Link to comment
Big Smoker Posted December 22, 2019 Author Share 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 Link to comment
KronoS Lettify Posted December 22, 2019 Share 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? Link to comment
Tommy. Posted December 23, 2019 Share 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. Link to comment
Big Smoker Posted December 23, 2019 Author Share 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) Link to comment
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