Te invitamos a nuestro Servidor Discord (https://discord.gg/euAr7eT) para que puedas estar siempre al tanto de nuestra comunidad y jugar a tus juegos favoritos con nosotros.

Bienvenido a Metin2Zone

Registrate ahora para obtener acceso a todas nuestras características y ventajas. Una Vez Registrado y Conectado, Usted Será capaz de contribuir Mediante la Presentación de su propio contenido o respondiendo al contenido existente. Usted será capaz de Personalizar su Perfil, recibirá puntos de reputación como una recompensa, mientras que también se comunica con otros miembros a través de su propia bandeja de entrada privada, y Mucho Más!

Este Mensaje se eliminará una vez hayas Iniciado Sesión.

  • Comunicados

    • R1z

      Actualización del Foro y cambio de alias por usuario!   19/06/17

      Es importante saber que actualmente para iniciar sesión con tu cuenta necesitas utilizar el alias que tenías antes de la actualización como usuario, por ejemplo si tu usuario era juanito y tu alias (el nombre con el que te veían los otros miembros) era juan entonces ahora juan es tu usuario, si no recuerdas tu alias puedes solicitar que se te recupere la contraseña para que te pueda llegar el usuario actual de tu cuenta al email.
Dextrok

[Quest Función]Select2, para Menus Extensos

Buenas Metineros, muchas veces nosotros queremos hacer menus bien grandes y nos resulta un problema como este:

Imagen enviada

 

Por lo que en el código nos vemos limitados a algo como esto:

 

local r = select("valor1", "valor2", "valor3", "valor4", "valor5", "Ay ya no cabe mas")

Y la solución que le damos es crear menus anidados:
 

local r = select("valor1", "valor2", "valor3", "valor4", "valor5", "Más")if r == 6 then	local otromenu = select("valor6", "valor7", "valor8", "valor9", "valor10", "Más")	if otromenu == 6 then		local otromenumas = select("valor11", "valor12", "valor13", "valor14", "valor15", "Más")	endend

Lo cuál resulta muy tedioso y casi nadie lo hace.

 

Yo he creado una función de ayuda tremenda para hacer estas cosas (no se si sea el único que vea esta necesidad) pero bueno. consiste en lo siguiente:
 

local x = select2(5, "valor1", "valor2", "valor3", "valor4", "valor5", "valor6", "valor7","valor8", "valor9", "valor10", "valor11", "valor12", "valor13", "valor14", "valor15", "valor16","valor17", "valor18", "valor19", "valor20", "valor21", "valor22", "valor23", "valor24", "valor25","valor26", "valor27") --etc etc etc

El primer valor, SIEMPRE va a ser la limitación de cuantos quieres que te aparezcan cada vez, o sea en este caso los valores se van a mostarar de 5 en 5, no importa la cantidad que les pongas, si cambias el 5 por un 3 se van a mostarr de 3 en 3 y así sucesivamente.
 

Fijense bien.

Si seleccionan "valor1" , x = 1
Si seleccionan "valor2", x = 2
Si seleccionan "valor15", x = 15

Lo cuál quedaría algo así, pero ya la verán con más detalle cuando la prueben:

 

Imagen enviada

 

 

 

Y finalmente con ustedes dejamos la mágica:

--Do not change this is magic
 

function select2(limit, ...)	if limit < 1 then limit = 1 end	local cicle, val = 0, 0	local next, cancel = "Mas", "Cancelar"		while true do		t = {}		for i = 1, limit do			if arg[1] ~= nil then				table.insert(t, arg[1])				table.remove(arg, 1)			end		end		if arg[1] ~= nil then table.insert(t, next) end		table.insert(t, cancel)				val = select_table(t)				if val == table.getn(t) then break		elseif val == table.getn(t) - 1 and arg[1] ~= nil then cicle = cicle + limit		else return (cicle+val)		end		val = 0	endend

Esa es la función, la colocan dentro del questlib, y ya en todas sus quest la podrán utilizar, llamandola como en el ejemplo de arriba.
 

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

Por si lo desconocias:www.inforge.net/community/metin2-howto-addon-server-privati/295096-release-navigazione-tra-i-select-extra.htmlSirve para hacer menus, infinitos si los deseas, sin necesidad de funciones nuevas ni nada.

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

Me disculpan si esta función tiene coincidencia IDENTICA con otras, tal vez estuvo mal de mi parte no haberme informado sobre la existencia de estas en otros lugares, pero la verdad no la había visto antes, por eso me decidí a crearla.

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

Bueno, luego de investigar un poco estuve buscando la de Mijago y es esta:

 

function select2(tab,...)        arg.n = nil        if type(tab) ~= "table" and type(tab) == 'number' then                table.insert(arg,1,tab)                tab = arg        elseif type(tab) ~= "table" and type(tab) == 'string' then                table.insert(arg,1,tab)                table.insert(arg,1,8)                tab = arg        elseif type(tab) == "table" and type(tab[1]) == 'string' then                table.insert(tab,1,8)        end        local max = tab[1]; table.remove(tab,1)        local tablen,outputstr,outputcount,nextc,incit = table.getn(tab),"",0,0,0        table.foreach(tab,                function(i,l)                        outputcount = outputcount + 1                        if outputcount == 1 then                                outputstr=outputstr..'sel = select("'..l..'"'                        elseif outputcount == max and tablen > outputcount+incit  then                                if tablen ~= outputcount+incit+1 then                                        outputstr=outputstr..',"'..l..'","Nächste Seite") + '..incit..' '                                        if nextc > 0 then                                                outputstr = outputstr..'end '                                        end                                        outputstr=outputstr..'; if sel == '..(incit+max+1)..' then '            -- Anfangen der neuen Abfrage                                        nextc, outputcount, incit= nextc+1,0,incit+max                                else                                        outputstr=outputstr..',"'..l..'"'                                end                        else                                outputstr=outputstr..',"'..l..'"'                        end                end        )        outputstr = outputstr..') + '..incit        if nextc > 0 then                outputstr = outputstr..' end'        end        outputstr= outputstr.. '; return sel'        print(outputstr)        local sel = assert(loadstring(outputstr))()        tablen,outputstr,outputcount,nextc,incit = nil,nil,nil,nil,nil -- Speicher freimachen        return selend

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!


Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.


Conectar ahora

  • Recientemente navegando por este tema   0 miembros

    No hay usuarios registrados visitando esta página.