Big Smoker Posted December 12, 2019 Share Posted December 12, 2019 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. Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 PODEM ME AJUDAA? Link to comment
Other Languages Moderators Lord Henry Posted December 13, 2019 Other Languages Moderators Share Posted December 13, 2019 Não entendi oq vc quer fazer. Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 (edited) 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 December 13, 2019 by Lord Henry Link to comment
Other Languages Moderators Lord Henry Posted December 13, 2019 Other Languages Moderators Share Posted December 13, 2019 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. Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 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 Link to comment
Other Languages Moderators Lord Henry Posted December 13, 2019 Other Languages Moderators Share Posted December 13, 2019 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? Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 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 Link to comment
Other Languages Moderators Lord Henry Posted December 13, 2019 Other Languages Moderators Share Posted December 13, 2019 Você já tentou verificar se o blip já existe antes de criar outro? Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 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 Link to comment
Other Languages Moderators Lord Henry Posted December 13, 2019 Other Languages Moderators Share Posted December 13, 2019 (edited) 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 December 13, 2019 by Lord Henry Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 nao sei eu acabei colocando coisas tentando interpretar. Mais quero colocar uma função a onde nao deixa criar o mesmo blip Link to comment
Other Languages Moderators Lord Henry Posted December 13, 2019 Other Languages Moderators Share Posted December 13, 2019 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 Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 mais continuo usando o for i,blip3 in pairs(getElementsByType("blip"))do Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 for i,blip3 in pairs(getElementsByType("blip"))do if (isElement (blip3)) then -- Se o blip3 já existe, então: return false end end assim? olha a imagem https://ibb.co/HrRQ6Wm Link to comment
Other Languages Moderators Lord Henry Posted December 13, 2019 Other Languages Moderators Share Posted December 13, 2019 Não cara. Aí vc já está fazendo tentativa no escuro. Sem saber oq está fazendo. Pra quê o return? Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 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 Link to comment
Big Smoker Posted December 13, 2019 Author Share Posted December 13, 2019 o que posso fazer pra fazer isso que eu quero Link to comment
beast99 Posted December 14, 2019 Share Posted December 14, 2019 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 Link to comment
Big Smoker Posted December 14, 2019 Author Share Posted December 14, 2019 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 Link to comment
Other Languages Moderators Lord Henry Posted December 14, 2019 Other Languages Moderators Share Posted December 14, 2019 (edited) Ele tem um painel de gerenciamento de blips. Nesse painel ele seleciona os tipos de blips que devem aparecer usando caixas de seleção. 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 December 14, 2019 by Lord Henry Link to comment
beast99 Posted December 14, 2019 Share Posted December 14, 2019 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. 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? Link to comment
Big Smoker Posted December 14, 2019 Author Share Posted December 14, 2019 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. 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 Link to comment
beast99 Posted December 14, 2019 Share Posted December 14, 2019 Criar uma table para cada localização? Não sei muito sobre tables.. Link to comment
Big Smoker Posted December 14, 2019 Author Share Posted December 14, 2019 ok, vou tentar, mais como faço pra identificar o ID do blip para deletar 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