LuFeMAR Posted December 7, 2020 Share Posted December 7, 2020 Hola, mi problema es que tengo un código que abre un menú cuando das click sobre el NPC creado, pero cuando le vuelves a dar click, teniendo el panel abierto, el panel se duplica teniendo 2 paneles que no se pueden cerrar y no se que puedo hacer para evitar esto. el código es el siguiente: local ped = createPed( 172, 1661.84375, -2514.427734375, 44.526222229004, 270.61660766602 ) setElementInterior ( ped, 3 ) setElementDimension ( ped, 12 ) addEventHandler( "onElementClicked", resourceRoot, function( button, state, player ) if button == "left" and state == "up" then local x, y, z = getElementPosition( player ) if getDistanceBetweenPoints3D( x, y, z, getElementPosition( source ) ) < 5 and getElementDimension( player ) == getElementDimension( source ) and source == ped then local sql = exports.sql:query_assoc("SELECT interiorID, interiorName, interiorPrice, interiorType FROM interiors WHERE characterID = 0 AND (interiorType = 1 OR interiorType = 2)") triggerClientEvent(player, "abririnmo", player, sql) setElementData(player, "abririnmo", true) end end end ) Link to comment
_SAXI_ Posted December 7, 2020 Share Posted December 7, 2020 En este caso necesitamos la parte del cliente para evitar que se abra la ventana Link to comment
LuFeMAR Posted December 7, 2020 Author Share Posted December 7, 2020 (edited) en mi cliente tengo el gui, el cual termina con: addEvent("abririnmo", true) addEventHandler("abririnmo", root, abrirGUIConcesionario) Edited December 7, 2020 by LuFeMAR Link to comment
_SAXI_ Posted December 7, 2020 Share Posted December 7, 2020 Sí, pero si no pones toda la parte de creación del panel no te puedo ayudar mucho xd Intenta con esto: if not ventana then -- ventana es la variable de tu panel xd -- Codigo de tu panel end Link to comment
LuFeMAR Posted December 7, 2020 Author Share Posted December 7, 2020 (edited) if not abririnmo then function abrirGUIConcesionario(sql) showCursor(true) ventana = guiCreateWindow(431, 215, 429, 455, "Interiores a la venta", false) guiWindowSetSizable(ventana, false) listatodos = guiCreateGridList(30, 44, 245, 387, false, ventana) guiGridListAddColumn(listatodos, "ID", 0.2) guiGridListAddColumn(listatodos, "Nombre", 0.5) guiGridListAddColumn(listatodos, "Precio", 0.2) rAct = 0 sigCat = 0 -- Categoría -- for i = 1, 2 do guiGridListAddRow(listatodos) if sigCat == 1 then rAct = rAct + 1 sigCat = 0 end guiGridListSetItemText(listatodos, rAct, 2, tostring(catVeh[i][1]), false, false) guiGridListSetItemColor(listatodos, rAct, 2, 0, 255, 0) for k, v in ipairs(sql) do if tonumber(v.interiorType) == tonumber(i) then rAct = (rAct+1) guiGridListAddRow(listatodos) guiGridListSetItemText(listatodos, rAct, 1, tostring(v.interiorID), false, false) guiGridListSetItemText(listatodos, rAct, 2, tostring(v.interiorName), false, false) guiGridListSetItemText(listatodos, rAct, 3, tostring(v.interiorPrice), false, false) end sigCat = 1 end end -- Fin Categoría -- botonmarcar = guiCreateButton(300, 290, 119, 56, "Marcar Posición", false, ventana) addEventHandler('onClientGUIClick', botonmarcar, regularBotonGUI) botoncerrar = guiCreateButton(300, 375, 119, 56, "Cerrar", false, ventana) addEventHandler('onClientGUIClick', botoncerrar, regularBotonGUI) precio = guiCreateLabel(257, 88, 152, 21, "", false, ventana) end end addEvent("abririnmo", true) addEventHandler("abririnmo", root, abrirGUIConcesionario) intente asi pero sigue duplicandose Edited December 7, 2020 by LuFeMAR Link to comment
_SAXI_ Posted December 8, 2020 Share Posted December 8, 2020 function abrirGUIConcesionario(sql) if not ventana then showCursor(true) ventana = guiCreateWindow(431, 215, 429, 455, "Interiores a la venta", false) guiWindowSetSizable(ventana, false) listatodos = guiCreateGridList(30, 44, 245, 387, false, ventana) guiGridListAddColumn(listatodos, "ID", 0.2) guiGridListAddColumn(listatodos, "Nombre", 0.5) guiGridListAddColumn(listatodos, "Precio", 0.2) rAct = 0 sigCat = 0 -- Categoría -- for i = 1, 2 do guiGridListAddRow(listatodos) if sigCat == 1 then rAct = rAct + 1 sigCat = 0 end guiGridListSetItemText(listatodos, rAct, 2, tostring(catVeh[i][1]), false, false) guiGridListSetItemColor(listatodos, rAct, 2, 0, 255, 0) for k, v in ipairs(sql) do if tonumber(v.interiorType) == tonumber(i) then rAct = (rAct+1) guiGridListAddRow(listatodos) guiGridListSetItemText(listatodos, rAct, 1, tostring(v.interiorID), false, false) guiGridListSetItemText(listatodos, rAct, 2, tostring(v.interiorName), false, false) guiGridListSetItemText(listatodos, rAct, 3, tostring(v.interiorPrice), false, false) end sigCat = 1 end end -- Fin Categoría -- botonmarcar = guiCreateButton(300, 290, 119, 56, "Marcar Posición", false, ventana) addEventHandler('onClientGUIClick', botonmarcar, regularBotonGUI) botoncerrar = guiCreateButton(300, 375, 119, 56, "Cerrar", false, ventana) addEventHandler('onClientGUIClick', botoncerrar, regularBotonGUI) precio = guiCreateLabel(257, 88, 152, 21, "", false, ventana) end end addEvent("abririnmo", true) addEventHandler("abririnmo", root, abrirGUIConcesionario) Link to comment
LuFeMAR Posted December 9, 2020 Author Share Posted December 9, 2020 Uff muchas gracias amigo, disculpa responder tarde, sin embargo me doy cuenta que cuando lo abro y lo cierro, no me deja volver a abrirlo, me toca salir y volver entrar para que me pueda volver a abrir Link to comment
_SAXI_ Posted December 13, 2020 Share Posted December 13, 2020 Perdón la demora. function abrirGUIConcesionario(sql) if not ventana then ventana = guiCreateWindow(431, 215, 429, 455, "Interiores a la venta", false) else if guiGetVisible(ventana) then return end showCursor(true) guiWindowSetSizable(ventana, false) listatodos = guiCreateGridList(30, 44, 245, 387, false, ventana) guiGridListAddColumn(listatodos, "ID", 0.2) guiGridListAddColumn(listatodos, "Nombre", 0.5) guiGridListAddColumn(listatodos, "Precio", 0.2) rAct = 0 sigCat = 0 -- Categoría -- for i = 1, 2 do guiGridListAddRow(listatodos) if sigCat == 1 then rAct = rAct + 1 sigCat = 0 end guiGridListSetItemText(listatodos, rAct, 2, tostring(catVeh[i][1]), false, false) guiGridListSetItemColor(listatodos, rAct, 2, 0, 255, 0) for k, v in ipairs(sql) do if tonumber(v.interiorType) == tonumber(i) then rAct = (rAct+1) guiGridListAddRow(listatodos) guiGridListSetItemText(listatodos, rAct, 1, tostring(v.interiorID), false, false) guiGridListSetItemText(listatodos, rAct, 2, tostring(v.interiorName), false, false) guiGridListSetItemText(listatodos, rAct, 3, tostring(v.interiorPrice), false, false) end sigCat = 1 end end -- Fin Categoría -- botonmarcar = guiCreateButton(300, 290, 119, 56, "Marcar Posición", false, ventana) addEventHandler('onClientGUIClick', botonmarcar, regularBotonGUI) botoncerrar = guiCreateButton(300, 375, 119, 56, "Cerrar", false, ventana) addEventHandler('onClientGUIClick', botoncerrar, regularBotonGUI) precio = guiCreateLabel(257, 88, 152, 21, "", false, ventana) end end addEvent("abririnmo", true) addEventHandler("abririnmo", root, abrirGUIConcesionario) Con eso debería bastar Link to comment
LuFeMAR Posted December 13, 2020 Author Share Posted December 13, 2020 Hola, muchas gracias amigo por todo, sin embargo estuve probando el código y me doy cuenta que solo abre la ventana pero no abren los botones, ni la información de la ventana, solo la ventana vacía.. entonces me puse a probar de distintas maneras con el mismo código y logre hacer que apareciera todo, sin embargo a pesar de que logre de que apareciera la ventana completa, cuando lo cerraba seguía el error y no podía volverlo a abrir :/.. pero bueno brouh igualmente muchas gracias, se intento de todo jeje 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