Recommended Posts

Boa Noite,

to fazendo um painel de blip para mostrar no mapa, ativar / desativar para cada player so que to tendo problema na hora de destruir o blip de determinado ID, nao todos os blip´s


-- CLIENT

PARA CRIAR O BLIP

blips = {
{960.29791259766,2070.4409179688,10.8203125, 42},
{-2652.4165039063,636.17047119141,14.453125, 22},
}

blipsRad = {}
addEvent("blipsMaps",true)
addEventHandler("blipsMaps",getRootElement(),function(BlipType)
	if blipsRad then
		for i,blip in pairs(blipsRad)do
			destroyElement(blip)
		end
		blipsRad = false
	end
	if tonumber(BlipType) then
		if not blipsRad then blipsRad = {} end
		for i, blip in ipairs(blips) do
			if BlipType == blip[4] then
				blip2 = createBlip(blip[1],blip[2],blip[3],blip[4])
				setBlipVisibleDistance(blip2, 800)
				table.insert(blipsRad,blip2)
			end
		end
	end
end)

PRECISAVA SABER QUAL PRECISO CRIAR PARA DESTRUIR A BLIP DE DETERMINADO ID.

 

 

Share this post


Link to post

eu fiz um painel de blip no F11(MAPA), e quero colocar a onde o player pode escolher o que quer que apareça no mapa de blip ai fiz uma tabela

blips = {
{960.29791259766,2070.4409179688,10.8203125, 42},
{-2652.4165039063,636.17047119141,14.453125, 22},
}

essa função aqui executa ela

blipsRad = {}
addEvent("blipsMaps",true)
addEventHandler("blipsMaps",getRootElement(),function(BlipType)
	if blipsRad then
		for i,blip in pairs(blipsRad)do
			destroyElement(blip)
		end
		blipsRad = false
	end
	if tonumber(BlipType) then
		if not blipsRad then blipsRad = {} end
		for i, blip in ipairs(blips) do
			if BlipType == blip[4] then
				blip2 = createBlip(blip[1],blip[2],blip[3],blip[4])
				setBlipVisibleDistance(blip2, 800)
				table.insert(blipsRad,blip2)
			end
		end
	end
end)

O problema que a cada click que eu dou, ele cria mais blip no mapa, e não deixa eu criar mais blip selecionado no painel apenas os que aparece. É meio confuso.

Edited by Lord Henry

Share this post


Link to post
  • Você fez um painel de criar blips.
  • Nesse painel, existe uma lista de coordenadas.
  • O jogador pode escolher uma dessas coordenadas pra fazer o blip aparecer lá pelo mapa do F11.
  • O problema é que ao selecionar um item da lista, ele cria outro blip no mapa em vez de substituir o blip que já existe.

É isso que eu entendi. Corrija oq estiver errado.

Share this post


Link to post

Ele é um painel a onde tem varias cordenadas de cada ID, 

EXEMPLO: 3 cordenadas do hospital, 2 cordenandas de pistola

ai tem uma tabala a onde ta todas as coordenadas que executa ela, so coloquei que ele pode escolher qual ID ele quer que apareça (hospital ou pistola), ou os dois juntos 

https://ibb.co/0V4dsRd

so que quando vc clica varias vezes no botão ele cria varias vezes aquele meio blip. e quando escolho outro blip eXEMPLO O hospital ele some o outro meu. ai vim aqui pedir ajuda no forum pq nao consegui arruma iss. nao sei se eu uso o createclip ou o createBlipAttachedTo

 

Share this post


Link to post

Use createBlip. Pois vc está apenas criando em uma posição fixa, sem anexar ele a alguma coisa.

Seu painel então tem algumas caixas de seleção e opções de múltipla escolha. Tá.

Esse script de criar os blips é server-side ou client-side? O blip deve aparecer pra outros jogadores ou só pro jogador que selecionou no painel?

Share this post


Link to post

essa função aqui

 

addEvent("blipsMaps",true)
addEventHandler("blipsMaps",getRootElement(),function(BlipType)    
	    for i,blip3 in pairs(getElementsByType("blip"))do
		    if not(tonumber(getElementData(getLocalPlayer(),"setBlips_22")) ~= tonumber(BlipType)) and not (tonumber(getElementData(getLocalPlayer(),"setBlips_6")) ~= tonumber(BlipType)) and not(tonumber(getElementData(getLocalPlayer(),"setBlips_18")) ~= tonumber(BlipType)) and not(tonumber(getElementData(getLocalPlayer(),"setBlips_42")) ~= tonumber(BlipType))then 
	            if isElement(blip3) then
			    	destroyElement(blip3)
					blip3 = false
				end
				setElementData(getLocalPlayer(),"setBlips_"..tostring(BlipType),false)
			end
		-- end
	end
	if tonumber(BlipType) then
	    if not blips2 then blips2 = {} end
		for i, blip in ipairs(blips) do
			if BlipType == blip[4] then
				blip2 = createBlip(blip[1],blip[2],blip[3],blip[4])
				setBlipVisibleDistance(blip2, 800)
				setElementData(getLocalPlayer(),"setBlips_"..tostring(blip[4]),blip[4])
			end
		end
	end
end)

essa é uma função mais atualizada, ela nao deixa eu colocar todos os blip ai coloquei aquele detroyElement(blip3) para remover o mesmo que ja foi setado mais nao deu certo pq nao seleciona para os outros 

OBS: O BlipType ele é o ID do clip que chega ate a função que eu coloquei quando vc clica na caixinha ai manda o ID

exemplo: 

triggerEvent("blipsMaps",getLocalPlayer(),18)


TUDO EM MODO CLIENT. E ELE DEVE APARECER APANAS PARA O JOGADOR

Share this post


Link to post

Você já tentou verificar se o blip já existe antes de criar outro?

Share this post


Link to post

então quero fazer isso, como que eu faço? eu nao consegui eu tentei isso aqui 

 

for i,blip3 in pairs(getElementsByType("blip"))do
		    if not(tonumber(getElementData(getLocalPlayer(),"setBlips_22")) ~= tonumber(BlipType)) and not (tonumber(getElementData(getLocalPlayer(),"setBlips_6")) ~= tonumber(BlipType)) and not(tonumber(getElementData(getLocalPlayer(),"setBlips_18")) ~= tonumber(BlipType)) and not(tonumber(getElementData(getLocalPlayer(),"setBlips_42")) ~= tonumber(BlipType))then 
	            if isElement(blip3) then
			    	destroyElement(blip3)
					blip3 = false
				end
				setElementData(getLocalPlayer(),"setBlips_"..tostring(BlipType),false)
			end
		-- end
	end

 

Share this post


Link to post

Não entendi o motivo do loop. Se você tem apenas alguns blips (blip2, blip3) que estão salvos em variáveis. Pq não apenas dar destroyElement neles?

Você só usaria loop se eles estivessem todos dentro da mesma table. Dai vc passa o loop pela table destruindo todos os blips.

Edited by Lord Henry

Share this post


Link to post

Você pode simplesmente mudar a posição do blip quando detectar que ele já existe, em vez de destruí-lo. Com setElementPosition.

if (isElement (blip3)) then -- Se o blip3 já existe, então:
	setElementPosition (blip3, x, y, z)
else
	blip3 = createBlip (...)
end

 

Share this post


Link to post

Não cara. Aí vc já está fazendo tentativa no escuro. Sem saber oq está fazendo.

Pra quê o return?

Share this post


Link to post

para retornar. pois eu preciso que ele nao crie mais o blip depois de criado.

e tenho que fazer uma função depois deletando ele. so caso desativando a caixinha para sumir o blip

Share this post


Link to post

Eu não entendi nada até agora do que você está querendo fazer.
Use pontos, vírgulas, para tornar mais facil o entendimento da situação e explique o que você deseja e o que está dando errado, caso contrário estaremos gastando nosso tempo, sendo que nem é isso que você quer ;)

Share this post


Link to post

bom, eu to fazendo umn painel a onde vc pode ocultar e aparecer o blip no f11(mapa), fiz um painel tudo ta tudo certinho, único problema e que quando crio o blip eu nao consigo excluir aquele blip que eu criei. quero excluir o blip sem que eu destrua os outros

Share this post


Link to post

Ele tem um painel de gerenciamento de blips. Nesse painel ele seleciona os tipos de blips que devem aparecer usando caixas de seleção.

MVdsvff.png

Ao desmarcar a caixa de Hospitais, somente os blips de hospitais devem sumir do mapa. Mas ele está com problemas para destruir os blips corretos.

Edited by Lord Henry

Share this post


Link to post
1 hour ago, Lord Henry said:

Ele tem um painel de gerenciamento de blips. Nesse painel ele seleciona os tipos de blips que devem aparecer usando caixas de seleção.

MVdsvff.png

Ao desmarcar a caixa de Hospitais, somente os blips de hospitais devem sumir do mapa. Mas ele está com problemas para destruir os blips corretos.

Usar uma table para setar os blips, e no momento em que for destruir, destruir o elemento da tabela funcionaria?

Share this post


Link to post

nao funciona ele deleta todos os blip criado

1 hour ago, Lord Henry said:

Ele tem um painel de gerenciamento de blips. Nesse painel ele seleciona os tipos de blips que devem aparecer usando caixas de seleção.

MVdsvff.png

Ao desmarcar a caixa de Hospitais, somente os blips de hospitais devem sumir do mapa. Mas ele está com problemas para destruir os blips corretos.

exatoo

2 minutes ago, MesaDowN said:

Usar uma table para setar os blips, e no momento em que for destruir, destruir o elemento da tabela funcionaria?

nao funciona, ele deleta todas blip ja criada, e o problema

Share this post


Link to post

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.