Jump to content

Problema con panel que se abre a darle click a un NPC


LuFeMAR

Recommended Posts

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
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 by LuFeMAR
Link to comment
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

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

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

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.
×
×
  • Create New...