wx,wy = guiGetScreenSize() cgrupos = { pattern = "[^0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ]", -- NOTA: ESTA ENTRE [] Y CON UN ^ INICIAL PARA INDICAR EL COMPLEMENTO DE ESE PATRON vcreargrupo = { data = { wx/2-209, wy/2-131, 418, 262 }, -- Datos de ventana de creación de grupos ( X, Y, TAMAÑO EN X, TAMAÑO EN Y ) }, vlistajugadores = { data = {}, -- Datos de ventana de lista de jugadores ( X, Y, TAMAÑO EN X, TAMAÑO EN Y ) } } -- Inicia la ventana de grupos function cgrupos.cargar() -- Habilita la escritura y muestra el cursor showCursor( true ) guiSetInputEnabled( true ) local x,y,wx,wy = unpack( cgrupos.vcreargrupo.data ) -- Obtiene los datos de la ventana de creación de grupos cgrupos.vcreargrupo.self = guiCreateWindow( x, y, wx, wy, "Creador de Grupos", false ) -- Se crea la ventana de creación de grupos -- Información sobre la creación de grupos guiCreateLabel( 8, 22, 402, 30, "Aqui podras crear tu grupo, recuerda que esto tiene un costo de 50000.\nPara crear tu grupo debes tener al menos dos miembros.", false, cgrupos.vcreargrupo.self) -- Nombre de grupo guiCreateLabel(41,63,104,17,"Nombre del grupo:",false,cgrupos.vcreargrupo.self) local enombregrupo = guiCreateEdit(162,61,177,22,"",false,cgrupos.vcreargrupo.self) -- Crea campo de edición guiEditSetMaxLength(enombregrupo,20) -- Permite solo 20 caracteres addEventHandler( 'onClientGUIChanged', enombregrupo, cgrupos.vcreargrupo.cambionombregrupo, false ) cgrupos.vcreargrupo.lista = guiCreateGridList(8,94,402,100,false,cgrupos.vcreargrupo.self) guiGridListSetSelectionMode(cgrupos.vcreargrupo.lista,0) guiGridListAddColumn(cgrupos.vcreargrupo.lista,"Miembros (MINIMO 3 MIEMBROS)",0.8) guiGridListAddColumn(cgrupos.vcreargrupo.lista,"Lider?",0.1) local Bcrear = guiCreateButton(30,227,110,26,"Crear",false,cgrupos.vcreargrupo.self) local color = guiCreateButton(155,227,110,26,"Color del Grupo",false,cgrupos.vcreargrupo.self) local bborrarjugador = guiCreateButton(295,194,115,26,"Eliminar Jugador",false,cgrupos.vcreargrupo.self) addEventHandler( 'onClientGUIClick', bborrarjugador, cgrupos.vcreargrupo.borrarjugador ) local babrirjugadores = guiCreateButton(180,194,115,26,"Agregar Jugador",false,cgrupos.vcreargrupo.self) addEventHandler('onClientGUIClick', babrirjugadores, cgrupos.vlistajugadores.crear, false) local bcancelar = guiCreateButton(279,227,110,26,"Cancelar",false,cgrupos.vcreargrupo.self) addEventHandler('onClientGUIClick', bcancelar, cgrupos.vcreargrupo.cerrar, false) end function cgrupos.vcreargrupo.cerrar() destroyElement(cgrupos.vcreargrupo.self) -- Destruye la ventana de grupos -- Deshabilita el cursor y la escritura showCursor(false) guiSetInputEnabled(false) end -- Previene el ingreso de caracteres no deseados en el nombre del grupo function cgrupos.vcreargrupo.cambionombregrupo() guiSetText(source,guiGetText(source):gsub(cgrupos.pattern,"")) end function cgrupos.vcreargrupo.borrarjugador( boton ) if boton ~= 'left' then return end local sfila = guiGridListGetSelectedItem( cgrupos.vcreargrupo.lista ) if sfila == -1 then return end guiGridListRemoveRow( cgrupos.vcreargrupo.lista, sfila ) end -- Crea la ventana de jugadores function cgrupos.vlistajugadores.crear(boton) if boton ~= 'left' then return end -- Comprobamos que se haya apretado el botón izquierdo del mouse guiSetProperty(cgrupos.vcreargrupo.self,"Disabled","True") -- Deshabilita la ventana anterior cgrupos.vlistajugadores.self = guiCreateWindow(wx/2-121,wy/2-175,242,350,"Creador de Grupos: Jugadores",false) -- Ventana guiWindowSetSizable(cgrupos.vlistajugadores.self,false) -- Evita transformación local ebuscar = guiCreateEdit(14,31,213,22,"",false,cgrupos.vlistajugadores.self) -- Crea el campo de busqueda de jugador guiEditSetMaxLength(ebuscar,22) -- Permite solo 20 caracteres addEventHandler('onClientGUIChanged',ebuscar,cgrupos.vlistajugadores.buscar, false) cgrupos.vlistajugadores.lista = guiCreateGridList(8,60,225,250,false,cgrupos.vlistajugadores.self) -- Se crea lista guiGridListSetSelectionMode(cgrupos.vlistajugadores.lista,0) -- Se deja en modo de selección de fila guiGridListAddColumn(cgrupos.vlistajugadores.lista,"Jugadores:",0.7) -- Se agrega columna jugadores guiGridListAddColumn(cgrupos.vlistajugadores.lista,'Lider',0.2) -- Se agrega la columna lider addEventHandler( 'onClientGUIDoubleClick', cgrupos.vlistajugadores.lista, cgrupos.vlistajugadores.lider, false ) for k,v in ipairs(getElementsByType('player')) do if v ~= localPlayer and not getPlayerTeam(v) and getElementData(v,'Nivel') then local row = guiGridListAddRow(cgrupos.vlistajugadores.lista) local nick = getPlayerName(v) guiGridListSetItemText(cgrupos.vlistajugadores.lista, row, 1, nick, false, false) guiGridListSetItemText(cgrupos.vlistajugadores.lista, row, 2, '', false, false) end end local baceptar = guiCreateButton( 16, 315, 90, 25, "Aceptar", false, cgrupos.vlistajugadores.self ) -- Botón aceptar addEventHandler( 'onClientGUIClick', baceptar, cgrupos.vlistajugadores.aceptar, false ) local bcancelar = guiCreateButton( 137, 315, 90, 25, "Cancelar", false, cgrupos.vlistajugadores.self ) -- Botón cancelar addEventHandler( 'onClientGUIClick', bcancelar, cgrupos.vlistajugadores.cerrar, false ) end function cgrupos.vlistajugadores.cerrar( boton ) if boton and boton ~= 'left' then return end destroyElement( cgrupos.vlistajugadores.self ) guiSetProperty( cgrupos.vcreargrupo.self, "Disabled", "False" ) -- Habilita la ventana anterior end function cgrupos.vlistajugadores.buscar() local txt = string.lower( guiGetText( source ) ) guiGridListClear( cgrupos.vlistajugadores.lista ) for k,v in ipairs( getElementsByType( 'player' ) ) do local nick = getPlayerName( v ) if v ~= localPlayer and not getPlayerTeam( v ) and getElementData( v, 'Nivel' ) and nick:lower():find( txt ) then local row = guiGridListAddRow( cgrupos.vlistajugadores.lista ) guiGridListSetItemText( cgrupos.vlistajugadores.lista, row, 1, nick, false, false ) guiGridListSetItemText(cgrupos.vlistajugadores.lista, row, 2, '', false, false) end end end function cgrupos.vlistajugadores.lider() local selectedRow = guiGridListGetSelectedItem( source ) if sfila == -1 then return end local boxtxt = guiGridListGetItemText( source, selectedRow, 2 ) if boxtxt == 'X' then guiGridListSetItemText( source, selectedRow, 2, '', false, false) else guiGridListSetItemText( source, selectedRow, 2, 'X', false, false) end end function cgrupos.vlistajugadores.aceptar( boton ) if boton ~= 'left' then return end local sfila = guiGridListGetSelectedItem( cgrupos.vlistajugadores.lista ) if sfila == -1 then return end local sjugador = guiGridListGetItemText( cgrupos.vlistajugadores.lista, sfila, 1 ) local slider = guiGridListGetItemText( cgrupos.vlistajugadores.lista, sfila, 2 ) local row = guiGridListAddRow( cgrupos.vcreargrupo.lista ) guiGridListSetItemText( cgrupos.vcreargrupo.lista, row, 1, sjugador, false, false ) guiGridListSetItemText( cgrupos.vcreargrupo.lista, row, 2, slider, false, false ) cgrupos.vlistajugadores.cerrar() end addCommandHandler('testgrupo',cgrupos.cargar)