Jump to content

Ajuda nas Cordenadas


Recommended Posts

Boa Tarde, precisava de uma ajuda nesse sistema que eu fiz ele cria uma caixa com as cordenadas da tabela e cria um blip marcando local onde esta a caixa

 

SpwanLoot = {
   {252.67047,1802.4464,7.4140625},
   {219.33887,1826.9991,6.4140625},
   {261.08423,1853.5132,8.7578125},
   {280.4285,1838.0157,17.648058},
}

function removeLootsMilitarys (blip,Military,LootMility)
    if isElement(blip) then
        destroyElement(blip)
    end
    if isElement(Military) then
        destroyElement(Military)
    end
    if isElement(LootMility) then
        destroyElement(LootMility)
    end
end

function LootMilitarys ()
	local item_id = math.random( 3,#SpwanLoot )
    local x,y,z  = SpwanLoot[item_id][1], SpwanLoot[item_id][2], SpwanLoot[item_id][3], SpwanLoot[item_id][4] 
    Military = createObject(964,x,y,z, 0, 0, 0)
	outputChatBox("CRIADO")
	blip = createBlip ( x,y,z, 23 )
	LootMility = createColSphere(x,y,z,3)
	attachElements(LootMility, Military, 0, 0, 0)
	setElementData(Military,"parent",LootMility)
	setElementData(LootMility,"parent",Military)
	setElementData(LootMility,"Loot Militar",true)
	setElementData(LootMility,"MAX_Slots",0)
	setElementData(LootMility, "MAX_Slots", 0)
    setTimer(removeLootsMilitarys,120000,1,blip,Military,LootMility)
end
setTimer(LootMilitarys,120000,0)

O problema é que ele só cria 1 caixa, eu queria que ela cria-se 3 caixa (usando 3 cordenadas da tabela) 

Tentei usar esse aqui ate

local item_id = math.random( 3,#SpwanLoot )

Obrigado ;)

Link to comment

Tente:

-- Neste caso esse "math.random" não serve para nada, como você quer criar 3 caixa em lugares diferentes você deve usar for[..]
local item_id = math.random( #SpwanLoot )

-- como ficaria com for:
for i, pos in ipairs(SpwanLoot) do
  ...
  
-- ficando o seguinte:
function LootMilitarys ()
	for i, pos in ipairs(SpwanLoot) do
        Military = createObject(964,pos[1],pos[2],pos[3], 0, 0, 0)
        outputChatBox("CRIADO")
        blip = createBlip ( x,y,z, 23 )
        LootMility = createColSphere(x,y,z,3)
        attachElements(LootMility, Military, 0, 0, 0)
        setElementData(Military,"parent",LootMility)
        setElementData(LootMility,"parent",Military)
        setElementData(LootMility,"Loot Militar",true)
        setElementData(LootMility,"MAX_Slots",0)
        setElementData(LootMility, "MAX_Slots", 0)
        setTimer(removeLootsMilitarys,120000,1,blip,Military,LootMility)
	end
end
setTimer(LootMilitarys,120000,0)

 

Outra coisa eu a alguns meses atras fiz um recurso semelhante, caso ajude:

https://www.dropbox.com/s/uc3zjpaq5v0jevd/military.rar?dl=0

Edited by Pedro861
Link to comment
  • Other Languages Moderators
16 hours ago, Pedro861 said:

Outra coisa eu a alguns meses atras fiz um recurso semelhante, caso ajude:

https://www.dropbox.com/s/uc3zjpaq5v0jevd/military.rar?dl=0

Da próxima vez, deixe seu resource no https://community.multitheftauto.com/ para não ficar dando link de sites de terceiros aqui no fórum.

Link to comment
  • Moderators

Se você quer criar em 3 locais em vez de todos, você precisa de um loop; o math.random que você usou está errado porque estava o mesmo que isto: math.random( 3, 4 ).

Tente isto:


SpwanLoot = {
   {252.67047,1802.4464,7.4140625},
   {219.33887,1826.9991,6.4140625},
   {261.08423,1853.5132,8.7578125},
   {280.4285,1838.0157,17.648058},
}

function removeLootsMilitarys (blip,Military,LootMility)
    if isElement(blip) then
        destroyElement(blip)
    end
    if isElement(Military) then
        destroyElement(Military)
    end
    if isElement(LootMility) then
        destroyElement(LootMility)
    end
end

function LootMilitarys()
	for i=1, 3 do
		local ri = math.random( #SpwanLoot )
		local x,y,z  = SpwanLoot[ri][1], SpwanLoot[ri][2], SpwanLoot[ri][3]
		local Military = createObject(964,x,y,z, 0, 0, 0)
		outputChatBox("CRIADO")
		local blip = createBlip ( x,y,z, 23 )
		local LootMility = createColSphere(x,y,z,3)
		attachElements(LootMility, Military, 0, 0, 0)
		setElementData(Military,"parent",LootMility)
		setElementData(LootMility,"parent",Military)
		setElementData(LootMility,"Loot Militar",true)
		setElementData(LootMility,"MAX_Slots",0)
		setElementData(LootMility, "MAX_Slots", 0)
		
		setTimer(removeLootsMilitarys,120000,1,blip,Military,LootMility)
	end
end
setTimer(LootMilitarys,120000,0)

Me avise se essas posições aleatórias tiver que ser uma diferente da outra, aí nesse caso vai precisar fazer uma mudança pro math.random.

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