DNL291 Posted December 15, 2019 Share Posted December 15, 2019 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
Big Smoker Posted December 15, 2019 Author Share Posted December 15, 2019 (edited) 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 December 15, 2019 by felipebaidoloko Link to comment
DNL291 Posted December 15, 2019 Share Posted December 15, 2019 Sim, deixa clientside. Link to comment
Big Smoker Posted December 15, 2019 Author Share Posted December 15, 2019 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
Big Smoker Posted December 15, 2019 Author Share Posted December 15, 2019 (edited) 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 December 15, 2019 by felipebaidoloko Link to comment
DNL291 Posted December 15, 2019 Share Posted December 15, 2019 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
Big Smoker Posted December 15, 2019 Author Share Posted December 15, 2019 (edited) 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 December 15, 2019 by felipebaidoloko Link to comment
DNL291 Posted December 16, 2019 Share Posted December 16, 2019 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
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