[Tutorial] Cosas básicas de LUA. |
![]() « Citoyen » 1393260780000
| 1 | ||
¡Hola! En éste tema haré un tutorial con las cosas básicas de LUA en TFM. El tema está basado en la documentación 5.1 de LUA oficial. ![]() Tablas y funciones. - Tablas. Todo script necesita al menos una tabla (a menos que sea muy sensillo). Antes de empezar la guía no podemos dejar de atrás las tablas ni las funciones. Si no sabes que es una tabla o table, acá te lo diré. Una tabla es, en sí, un conjunto de datos. Existen ambos códigos para usar tablas. En éste caso pondré los más comunes. ![]() a dit : Éste código sirve para agregar "algo" a una tabla. Ejemplo a dit : ![]() a dit : Éste código se utiliza para remover/quitar algo de una tabla. Ejemplo a dit : ![]() Además de eso, puedes poner el tipo de cosa en una tabla, por ejemplo. Ejemplo a dit : A la hora de imprimir, debemos poner, la tabla + el tipo. Esto lo debemos separar por puntos. Digamos; tabla.gato tabla = La tabla gato = El tipo "gato" en "tabla" También, pues poner ambas cosas sin tener que poner número. Por lo tanto sería Ejemplo a dit : Éste imprimirá "b" por que es el tipo 2. Puedes hacer más tablas del mismo nombre, pero debes agregarle un corchete y un número. Ejemplo a dit : Y así sucesivamente. Puedes hacer tablas de texto. Solamente, agregamos dos comillas ("") Ejemplo a dit : Éstos son los tipos que normalmente se utilizan para hacer chats con lua. En las comillas si deseas se puede poner el texto que desees. ![]() a dit : El concat, en sí, sirve para imprimir (print) una tabla completa. En éste ejemplo verás. Ejemplo a dit : En el segundo valor deberemos poner el signo de separación del contenido... Es decir, solamente cambia en el print el punto (.) por el signo en el que se separará. Si quieres todo seguido, solamente no pongas nada. ![]() - Funciones. Las funciones son sectores de códigos que se pueden llamar en cualquier momento y lugar. Éstas se hacen escribiendo function y luego el nombre de la función. Transformice tiene ya algunas funciones incoporadas (véalas en Topic-451587) pero igualmente, tu puedes inventar funciones. Una función es así: Ejemplo a dit : El "end" sirve para cerrar la función y que no se 'revuelva' con las demás. Ahora, tenemos la función, pero nada pasará por que no la hemos llamado. Para llamarla debes escribir el nombre de la función. Ejemplo a dit : Y listo. Aquí he armado yo un ejemplo claro: Ejemplo a dit : ![]() Crear comandos. En éste bloque se desarrollará un minitutorial de crear comandos para hacer chats, referirse a una persona, etc. ![]() - Crear comandos refiriendose a una persona en la sala. Para empezar agregaremos la función eventChatCommand. Ejemplo a dit : Seguidamente agregaremos un tabla 'args' Ejemplo a dit : ^Ésta es la tabla que nos ayudará a poner más cosas en el comando. Ahora empezaremos el comando. Ejemplo a dit : En éste caso se debe poner: "args[1]" que se refiere a la persona que ejecuta el comando. Ahora hacemos lo que pasará al ejecutar el comando. En éste caso haré un sistema de "advertencias". Ejemplo a dit : Ahora me gustaría explicar ésto. En el script aparece: a dit : Éste se refiere a un botón de cerrar. Pero no pasará nada cuando lo clickees por que no has puesto ninguna función con eso. Entonces, lo que debes hacer es agregar ésta función: a dit : Seguidamente, pondremos un if más "cerrar". a dit : Ahora, pondremos lo que pasará al clickear eso. En éste caso pondré "remover el textArea" a dit : Y cerramos con ends. Al terminar éste pequeño script nos quedará así: http://trospaste.hol.es/htdocs/view/16ba3407 Éste se utiliza escribiendo "!advertir LaRazón PersonaALaQueSeLoEnvias". Si quieres dirigirte exactamente a una persona en la sala, deberás poner a dit : Éste trozo se refiere a las personas en la sala. Te preguntarás donde ponerlo. Lo deberás poner luego del comando. Sería así: Ejemplo a dit : ![]() - Creación de chats con comandos. ¿Te gustaría crear un chat con LUA? En este minitutorial se te explicá paso a paso que deberás hacer! Éste script es sensillo, por lo que no hay mucho que explicar. 1. Empezaremos creando la tabla donde estarán los mensajes. Como se mencionó antes, esta tabla será una tabla de texto. Ejemplo a dit : ^Eso es una tabla de texto, que tiene dos comillas. 2. Haremos un textArea que estará en constante actualización para que todos los mensajes vayan apareciendo. Para lograr que el TextArea esté en constante actualización agregaremos un eventLoop. Ejemplo a dit : 3. Y agregamos el TextArea. /!\El textArea lo modificas a tu gusto. Ejemplo a dit : En el textArea deberemos agregar "..ComoLePongasATuTabla[1].." En ComoLePongasATuTabla pones el nombre de tu tabla, en mi caso es "mensajes" entonces colocaré "..mensajes[1].." 4. Ahora agregaremos el comando que permitirá agregar el mensaje al chat. Empezaremos agregando la función de comando. Ejemplo a dit : Agregaremos el if + cómo será el comando para los mensajes Ejemplo a dit : En mi caso pondré "m" Ahora, pondremos lo que se agregará a la tabla. Ejemplo a dit : Esta parte es donde debes editar, pon cuidado! Edita: mensajes = por la tabla de tus mensajes LO QUE SE AGREGARÁ = apariencia del mensaje. En mi caso pondre: "<v>["..player.."]<n> "..cmd:sub(3).."<br>" Al final, siempre deberás poner el <br> para que los mensajes no se vean mal. Ya terminado será así: Ejemplo a dit : Al terminar todo este minitutorial tendremos como resultado esto: http://trospaste.hol.es/htdocs/view/940b6733 ![]() TextAreas. - Diseño y contenido. Los TextAreas son cosas importantes en los juegos que se hacen en la casa de la tribu, puesto a que como no se puede usar el script de poner un mensaje en el chat de la sala, se usa esto como lugar para mensajes. Un TextArea es así: ![]() 1 : Es la ID del TextArea. Esta ID permite el orden. 2 : Es el Texto, en esta colocas lo que quieres que el TextArea muestre. 3 : Acá va el nombre de la persona que verá el TextArea, si pones NIL se muestra a todos los jugadores. 4 : Es la coordenada X en la que el TextArea se ubicará. 5 : Es la coordenada Y en la que el TextArea se ubicará. 6 : Es el largo del TextArea. 7 : Es el ancho del TextArea. 8 : Es el color del fondo, coloca 0xColorHexadecimalAcá. 9 : Es el color del borde, coloca 0xColorHexadecimalAcá. 10 : Es la opacidad del TextArea, si colocas 0 se mostrará solo texto y no fondo. 11 : Es el boolean del TextArea, si pones true el textArea se quedará fijo en la pantalla en mapas largos, con false pasa todo lo contrario. ![]() El tema va dedicado a @Hinakagiyama por que si no fuera por él yo no sabría todo lo que sé ahora de lua. ♥ Si quieres que agregue algo, me dices en un comentario. Como dice la imagen, el tema está en construcción por lo tanto no lo he terminado y faltan cosas por agregar. Piensa antes de comentar. Lee bien todo y luego hazlo. No postees cosas como "Buen hilo :O #Pole." ![]() ![]() Dernière modification le 1447966440000 |
0 | ||
omg Perfecto tutorial, y eso que está en construcción. Cuando esté terminado será más genial aún :O mis dieces! <3 |
![]() « Citoyen » 1393261440000
| 0 | ||
Ops, se me olvidó reservar el primer post. Reservo acá~ |
0 | ||
Ah una cosita para las tablas. a dit : Estaría bien que pusieras cómo poner todos los elementos de la tabla, con el concat. a dit : Añádelo si quieres ^-^ |
![]() « Citoyen » 1393288800000
| 0 | ||
Aritxy a dit : Listo, gracias ♥ |
![]() 1393307340000
| | ||
[Modéré par Ana] |
0 | ||
Algunas cosas que quiero señalar de las tablas: Una tabla no es más que un conjunto de pares índice-valor (keys y values). El índice es lo que se usa para hacer referencia a un espacio de la tabla y el valor es lo que contiene. Code a dit : Las tablas puede tener índices numerados o literales, o ambos: Code a dit : También se puede hacer referencia a los índices literales usando el punto: Code a dit : Una tabla se puede crear y luego llenarla o se puede definir y construir al mismo tiempo: Code a dit : Cuando no se especifican índices a la hora de construir una tabla, automáticamente se le asigna el siguiente índice numerado disponible a partir de 1 en adelante: Code a dit : La función table.insert funciona con tablas ordenadas, añade el valor al siguiente espacio disponible entre los índices numerados. En la tabla anterior: Code a dit : table.remove funciona indicando el índice del valor a remover, no el valor en sí: Code a dit : Toma lo que sirve de aquí si quieres añadir o corregir algunas cosas. |
![]() 1393635660000
| | ||
[Modéré par Shyraa] |
![]() 1393684320000
| | ||
[Modéré par Rowne, raison : ^ Respuesta / Fuera de tema] |
![]() « Citoyen » 1396207740000
| 0 | ||
Se ha agregado un minitutorial de como hacer chats |
![]() 1396209780000
| | ||
[Modéré par Ana, raison : Fuera de tema] |
![]() ![]() « Citoyen » 1396274400000
| 0 | ||
|
![]() « Citoyen » 1396276860000
| 0 | ||
Eliaseeg a dit : A mi me sirve perfectamente xD http://prntscr.com/35rsnp Recarga la página e// Por ahora el servidor está caido e2// Ya entra |