Jump to content

Recommended Posts

Explicação muito mal meu caro, 10 posts e não entendi nada, só no post do Lord Henry. Você quer que por meio do painel, o jogador possa fazer mostrar e ocultar blips de locais, como de hospitais, bases, etc? 

Se for isso, comece criando uma tabela com os blips correspondentes à cada caixa de seleção, segue um exemplo:


local blips = {
	["Hospital"] = {
		{ x,y,z, icon, visDistance, size, r,g,b,a }, -- size,r,g,b e a são opcionais, que servem para o blip id 0
		{ x,y,z, icon, visDistance, size, r,g,b,a },
	},
	["Base1"] = {},
	["Base2"] = {},
}

--
-- criando os blips de uma chave da tabela
for i, v in pairs(blips["Hospital"]) do
	local x,y,z, icon, visDistance, size, r,g,b,a = unpack(v)
	
	blips["Hospital"][i][11] = createBlip( x,y,z, icon, size or 2, r or 255, g or 0, b or 0, a or 255, 0, visDistance )
	
	-- o índice 11 será o que armazena o elemento-blip, automaticamente dará p/ verificar se os blips já estão
	-- mostrando ou não verificando esse index
end

-- destruindo os blips de uma chave
for i, v in pairs(blips["Hospital"]) do
	if v[11] then
		-- remover os blips dessa chave na tabela
		
		destroyElement(v[11])
		blips["Hospital"][i][11] = nil -- remove a referência do elemento destruído da tabela
	else
		-- caso não existam os blips desse local irá executar esse escopo
		print( "os blips de 'Hospital' não estão no radar!" )
	end
end

 

Link to comment

sim expliquei muito mal, pois tava loko ja, mais tava tentando explicar o meu jeito de fazer e ver o que tava errando, mais vou tentar isso irmao

21 minutes ago, DNL291 said:

Explicação muito mal meu caro, 10 posts e não entendi nada, só no post do Lord Henry. Você quer que por meio do painel, o jogador possa fazer mostrar e ocultar blips de locais, como de hospitais, bases, etc? 

Se for isso, comece criando uma tabela com os blips correspondentes à cada caixa de seleção, segue um exemplo:


local blips = {
	["Hospital"] = {
		{ x,y,z, icon, visDistance, size, r,g,b,a }, -- size,r,g,b e a são opcionais, que servem para o blip id 0
		{ x,y,z, icon, visDistance, size, r,g,b,a },
	},
	["Base1"] = {},
	["Base2"] = {},
}

--
-- criando os blips de uma chave da tabela
for i, v in pairs(blips["Hospital"]) do
	local x,y,z, icon, visDistance, size, r,g,b,a = unpack(v)
	
	blips["Hospital"][i][11] = createBlip( x,y,z, icon, size or 2, r or 255, g or 0, b or 0, a or 255, 0, visDistance )
	
	-- o índice 11 será o que armazena o elemento-blip, automaticamente dará p/ verificar se os blips já estão
	-- mostrando ou não verificando esse index
end

-- destruindo os blips de uma chave
for i, v in pairs(blips["Hospital"]) do
	if v[11] then
		-- remover os blips dessa chave na tabela
		
		destroyElement(v[11])
		blips["Hospital"][i][11] = nil -- remove a referência do elemento destruído da tabela
	else
		-- caso não existam os blips desse local irá executar esse escopo
		print( "os blips de 'Hospital' não estão no radar!" )
	end
end

 

esssa função vai ser executada apenas para o jogador ne? nao fica pra geral?

Edited by felipebaidoloko
Link to comment

como que eu faço para colocar de todos que ta na tabela?

coloquei a das bases e hospitais mais ta assim 

 

for i, v in pairs(blips["Hospital"]) do
	if v[11] then
		-- remover os blips dessa chave na tabela
		
		destroyElement(v[11])
		blips["Hospital"][i][11] = nil -- remove a referência do elemento destruído da tabela
	else
		-- caso não existam os blips desse local irá executar esse escopo
		print( "os blips de 'Hospital' não estão no radar!" )
	end
end

apenas para os dos hospitais

Link to comment
addEvent("blipsMaps",true)
addEventHandler("blipsMaps",getRootElement(),function(BlipType)    
	if tonumber(BlipType) then
		for i, v in pairs(blips["Hospital"]) do
			local x,y,z, icon = unpack(v)
			blips["Hospital"][i][5] = createBlip(x,y,z,icon)
			-- o índice 11 será o que armazena o elemento-blip, automaticamente dará p/ verificar se os blips já estão
			-- mostrando ou não verificando esse index
		end
	end

 

triggerEvent("blipsMaps",getLocalPlayer(),18) -- o ID: 18 é do blip que eu quero que apareça no f11

 

fiz tudo certinho a tabela e tals.

 

local blips = {
	["Hospital"] = {
		{-2652.4165039063,636.17047119141,14.453125, 22},
		{-2201.490234375,-2307.5251464844,30.625, 22},
		{-320.2223815918,1051.8776855469,20.340259552002, 22},
		{-1514.7344970703,2521.041015625,55.868324279785, 22},
		{1607.8454589844,1818.189453125,10.8203125, 22},
		{1173.6856689453,-1308.4567871094,13.929533004761, 22}, 
		{2036.3381347656,-1409.3599853516,17.1640625, 22},
		{2116.1796875,927.25421142578,10.8203125, 22},
		{1242.6859130859,328.00698852539,19.7578125, 22},
		{3746.9582519531,-649.80511474609,11.30312538147, 22},
		-- { x,y,z, icon, visDistance, size, r,g,b,a }, -- size,r,g,b e a são opcionais, que servem para o blip id 0
		-- { x,y,z, icon, visDistance},
	},
	["Emmetgun"] = {
		{-3743.5068359375,-53.42359161377,5.3647117614746, 18},
		{-2615.8911132813,2228.9240722656,11.268750190735, 18},
		{2800.5715332031,586.2119140625,11.155365943909, 18},
		{3640.703125,-634.15173339844,11.137484550476, 31},
		{2530.2333984375,-1272.9838867188,34.955368041992, 18},
		{-2085.0515136719,-2826.5590820313,3.1553654670715, 18},
		{2317.0417480469,66.542579650879,26.655364990234, 18},
	},
  }

 esta correto? Mais nao entendi a função que vc me enviou eu coloquei na minha que eu fiz, e enviei para vc ver como é

Edited by felipebaidoloko
Link to comment

Mas e esse blip 18 é um blip específico? Se for, meu código não vai servir para um só blip.

Vou facilitar pra você, e fazer uma função para remover o blip e outra para criar:

function removeBlipsFromBlipsTable( str )
	if not blips[str] then return outputDebugString("@createBlipFromBlipsTable: A chave '"..tostring(str).."' é inválida") end
	
	for i, v in pairs(blips[str]) do
		if v[11] then
			-- remover os blips dessa chave na tabela
		
			if isElement(v[11]) then
				destroyElement(v[11])
			end
			blips[str][i][11] = nil -- remove a referência do elemento destruído da tabela
		else
			-- caso não existam os blips desse local irá executar esse escopo
			outputChatBox( "os blips de '"..str.."' não estão no radar!", 230,0,0 )
		end
	end
end
function createBlipsFromBlipsTable( str )
	if not blips[str] then return outputDebugString("@createBlipsFromBlipsTable: A chave '"..tostring(str).."' é inválida") end
	
	for i, v in pairs(blips[str]) do
		local x,y,z, icon, visDistance, size, r,g,b,a = unpack(v)
	
		blips[str][i][11] = createBlip( x,y,z, icon, size or 2, r or 255, g or 0, b or 0, a or 255, 0, visDistance )
	end
end

Só chamar a função e passar a chave da tabela no argumento.

Se tiver alguma dificuldade só postar aqui o código.

Link to comment

fiz de um jeito aqui e deu certo, so quero saber se isso vai provocar lag para o player

 

Blibs = {}
Blibs2 = {}
addEventHandler("blipsMaps",getRootElement(),function(BlipType) 
	if tonumber(BlipType) == 22 then
		for i, blip in pairs(Blibs) do
			if isElement(blip)then
				destroyElement(blip)
				blip = nil
			end
		end
		for i, v in pairs(blips["Hospital"]) do
			local x,y,z, icon = unpack(v)
			Blibs[i] = createBlip(x,y,z,icon)
		end
	end
    if tonumber(BlipType) == 18 then
		for i, blip in pairs(Blibs2) do
			if isElement(blip)then
				destroyElement(blip)
				blip = nil
			end
		end
		for i, v in pairs(blips["Emmetgun"]) do
			local x,y,z, icon = unpack(v)
			Blibs2[i] = createBlip(x,y,z,icon)
		end
	end
end)

 

Edited by felipebaidoloko
Link to comment

Pelo que vejo no código não vai, mas falando sobre performance, recomendo que faça verificações para que não tente criar os blips se já tiverem e evitar spam na criação/remoção dos blips. E no loop das tabelas Blibs e Blibs2 em vez de setar nil em 'blip' faça isso diretamente onde o valor está armazenado que é na tabela.

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