Buscar en la comunidad
Mostrando resultados para las etiquetas 'Select2'.
Encontrado 1 resultado
-
[Quest Función]Select2, para Menus Extensos
un tema publicó Dextrok en Funciones creadas por nosotros
Buenas Metineros, muchas veces nosotros queremos hacer menus bien grandes y nos resulta un problema como este: 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: 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.