#Teus Posted June 22, 2018 Share Posted June 22, 2018 Olá, To aki denovo com mais uma duvida de novato em .LUA, bem vamos la: Tenho um servidor RPG ('-') e estou criando uma agencia de emprego, ja fiz o painel todo bunitinho e os markers todo corretos,3 Porem usei GUI* pra fazer o painel, no painel terá uma gridlist com a lista de empregos *Gostaria de saber como fazer para que ao player dar DoubleClick na Gridlist criar um Blip no mapa onde o jogador teria que ir para pegar o emprego. OBS: Os empregos ja estao feitos OBS2: Ja li tudo sobre gridlist no forum mas n consegui entender =\ Alguem ajuda ai Link to comment
Other Languages Moderators Lord Henry Posted June 23, 2018 Other Languages Moderators Share Posted June 23, 2018 (edited) Leia mais a Wiki além do fórum. Use este evento: OnClientGUIDoubleClick Edited June 23, 2018 by Lord Henry Link estava incorreto. 1 Link to comment
#Teus Posted June 23, 2018 Author Share Posted June 23, 2018 4 hours ago, Lord Henry said: Leia mais a Wiki além do fórum. Use este evento: OnClientGUIDoubleClick Procurei em outros foruns e mesmo assim nao consegui entender '-' (Sou uma merda mermao) Esse é o meu codigo: local dentro = createMarker (363.2766418457,173.5816192627,1008.3828125 -1, "cylinder", 1.3, 255,255, 224) -- Marker setElementInterior (dentro,3) setElementDimension (dentro,0) function painelteste(hitEle) if (localPlayer == hitEle) then Janela = guiCreateWindow(506, 206, 275, 398, "AGÊNCIA DE EMPREGOS", false) guiWindowSetSizable(Janela, false) guiSetProperty(Janela, "CaptionColour", "FF1C31F7") lista = guiCreateGridList(9, 43, 256, 345, false, Janela) guiGridListAddColumn(lista, "Emprego", 0.3) guiGridListAddColumn(lista, "", 0.3) guiGridListAddColumn(lista, "Level", 0.3) guiGridListAddRow(lista) Mecanico = guiGridListSetItemText(lista, 0, 1, "Mecanico", false, false) guiGridListSetItemText(lista, 0, 3, "-", false, false) clos = guiCreateButton(185, 28, 75, 22, "Fechar", false, Janela) guiSetFont(clos, "default-bold-small") guiSetProperty(clos, "NormalTextColour", "FFFF0000") msg2 = guiCreateLabel(10, 533, 117, 58, "BY: #TEUS", false, janela) guiSetFont(msg2, "default-bold-small") guiLabelSetColor(msg2, 62, 39, 39) guiLabelSetHorizontalAlign(msg2, "center", false) guiLabelSetVerticalAlign(msg2, "center") guiGridListGetSelectedItem(lista, 1) showCursor (true) addEventHandler ("onClientGUIClick", clos, fecharpainel, false) end end addEventHandler ( "onClientMarkerHit", dentro, painelteste ) function fecharpainel(LeaveEle) if (localPlayer == LeaveEle) then showCursor (false) guiSetVisible( Janela, false) guiSetVisible( msg2, false) end end addEventHandler ( "onClientMarkerLeave", dentro, fecharpainel ) Oque preciso fazer pra que quando clicar na opçao mecanico ela criar o blip no mapa? (E mandar uma msg dx que ja sei fazer...) Link to comment
Other Languages Moderators Lord Henry Posted June 23, 2018 Other Languages Moderators Share Posted June 23, 2018 Você nunca usou eventos de clique antes? Nem com botões? Link to comment
#Teus Posted June 23, 2018 Author Share Posted June 23, 2018 14 minutes ago, Lord Henry said: Você nunca usou eventos de clique antes? Nem com botões? Ja, mas com gridlist minha mente buga e nao sei oq fazer '-' Link to comment
Other Languages Moderators Lord Henry Posted June 23, 2018 Other Languages Moderators Share Posted June 23, 2018 As listas são elementos GUI comuns. Assim como as janelas, botões, memos, caixas de edição, caixas de seleção, textos, etc. Só você anexar o evento de clique na lista e executar uma função específica. 1 Link to comment
#Teus Posted June 23, 2018 Author Share Posted June 23, 2018 10 minutes ago, Lord Henry said: As listas são elementos GUI comuns. Assim como as janelas, botões, memos, caixas de edição, caixas de seleção, textos, etc. Só você anexar o evento de clique na lista e executar uma função específica. Ok, Obrigado pela ajuda! Link to comment
Other Languages Moderators Lord Henry Posted June 23, 2018 Other Languages Moderators Share Posted June 23, 2018 Seu painel estava cheio de erros com elementos em posições nada a ver. Além disso você não deve criar o painel ao ativá-lo, crie direto ao iniciar o resource e logo em seguida oculte a janela principal. Ao colidir no marker ativador, apenas mostre a janela principal ao jogador e o cursor. A função para fechar o painel com o botão "FECHAR" apenas oculta a janela principal e o cursor novamente. Obs: A parte de destruir o blip depois que o jogador chega no emprego dai é com você. dentro = createMarker (363.27, 173.58, 1007.4, "cylinder", 1.3, 255, 255, 224) -- Marker setElementInterior (dentro, 3) setElementDimension (dentro, 1) -- Se for usar na dimensão 0, então nem precisa desta linha. blip = {} -- declarei a variável fora da função para que ela possa ser lida por todas as funções. local x, y = guiGetScreenSize () janela = guiCreateWindow (x/2 - 140, y/2 - 200, 280, 400, "AGÊNCIA DE EMPREGOS", false) guiWindowSetSizable (janela, false) guiSetProperty (janela, "CaptionColour", "FF1C31F7") lista = guiCreateGridList (10, 20, 260, 330, false, janela) guiGridListAddColumn (lista, "Emprego", 0.5) guiGridListAddColumn (lista, "Level", 0.3) itemMecanico = guiGridListAddRow (lista, "Mecânico", "-") clos = guiCreateButton (280/2 - 40, 360, 80, 30, "FECHAR", false, janela) guiSetFont (clos, "default-bold-small") guiSetProperty (clos, "NormalTextColour", "FFFF0000") msg2 = guiCreateLabel (10, 365, 90, 20, "BY: #TEUS", false, janela) guiSetFont (msg2, "default-bold-small") guiLabelSetColor (msg2, 62, 39, 39) guiLabelSetHorizontalAlign (msg2, "center", false) guiLabelSetVerticalAlign (msg2, "center") guiSetVisible (janela, false) function abrirpainel (hitElement) if (localPlayer == hitElement) then showCursor (true) guiSetVisible (janela, true) end end addEventHandler ("onClientMarkerHit", dentro, abrirpainel) function fecharpainel () if guiGetVisible (janela) then showCursor (false) guiSetVisible (janela, false) end end addEventHandler ("onClientGUIClick", clos, fecharpainel) function selectionItem (button, state) if button == "left" and state == "up" then local linha, coluna = guiGridListGetSelectedItem (lista) if linha == 0 then -- Se o item selecionado for o primeiro da lista, então: guiSetVisible (janela, false) showCursor (false) blip[localPlayer] = createBlip (0, 0, 4, 41) -- (mude para a coordenada do emprego de Mecânico.) outputChatBox ("Emprego marcado: "..guiGridListGetItemText (lista, linha, coluna), 255, 255, 0) elseif linha == 1 then -- Se o item selecionado for o segundo da lista, então: guiSetVisible (janela, false) showCursor (false) blip[localPlayer] = createBlip (10, 10, 4, 41) outputChatBox ("Emprego marcado: "..guiGridListGetItemText (lista, linha, coluna), 255, 255, 0) end end end addEventHandler ("onClientGUIDoubleClick", lista, selectionItem) Dica para destruir o blip: Crie outro marker no lugar de chegada e ao colidir neste marker, delete o blip do seu hitElement, se existir um. 1 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