×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • Guías y Tutoriales
  • /
  • [Guía] Sobre las funciones y eventos (Básico)
[Guía] Sobre las funciones y eventos (Básico)
Haku
« Sénateur »
1389105120000
    • Haku#0807
    • Profil
    • Derniers messages
#1
  1
En la documentación de la API, ligeramente descrita en el hilo de Tigrounette ( Topic-451587 ), puedes ver que Tig separa los "Eventos" de las "Funciones". Para entender qué hacen estas dos cosas primero veremos qué es una función.

Funciones en Lua
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Una función es un bloque de código que se ejecuta en secuencia desde que comienza la función hasta que termina. Y solo se ejecutará cada vez que nosotros llamemos a dicha función.

Por ejemplo, tenemos una función mostrarMensajes(), que mostrará dos mensajes en pantalla a todos:

a dit :
function mostrarMensajes()
ui.addPopup (1, "Hola, esto es un mensaje", nil, 350, 140, 100)
ui.addPopup (2, "Hola, esto es un segundo mensaje", nil, 350, 200, 100)
end

Pero como acabamos de decir, esa función se ejecutará solo cuando la llamemos. Para llamar a una función simplemente escribiremos el nombre de la función seguido de sus argumentos (ya hablaremos de esto):

a dit :
mostrarMensajes()

^Al escribir esto en cualquier parte del código, llamaremos a la función que escribimos antes, mostrando ambos mensajes de ayuda.

Es importante repetir que lo que está dentro del bloque de una función SOLO se ejecutará si la llamamos. Si la función nunca es llamada en el código principal, nunca ocurrirá nada. Es decir que si nuestro script tiene 20 funciones pero no las llamamos no harán nada.


El código principal / main
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

El código principal es todo aquello que se encuentra fuera de cualquier función. O sea en el script, suelto. Y se ejecuta por sí solo al iniciar el script.

Este código siempre se ejecutará secuencialmente, desde arriba hacia abajo. Es importante mencionar que si hay una función creada manualmente (como mostrarMensajes), no podemos llamarla antes de haber sido creada.

Es decir que si quisiéramos terminar nuestro script, tendríamos que llamar a la función después de definirla:

a dit :
function mostrarMensajes()
ui.addPopup (1, "Hola, esto es un mensaje", nil, 350, 140, 100)
ui.addPopup (2, "Hola, esto es un segundo mensaje", nil, 350, 200, 100)
end

mostrarMensajes()



Eventos
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Los eventos son funciones como cualquier otra, pero con la peculiaridad de que no necesitamos llamarlas.

Si no hay que llamarlas, entonces ¿cuándo se ejecutan? Se ejecutarán cada vez que cierto 'evento' ocurre. (por eso el nombre. Por ejemplo, la función/evento eventEmotePlayed se ejecutará cada vez que alguien use un emoticón, la función eventChatCommand se ejecutará cada vez que alguien escriba un !comando en el chat, etc.

Los eventos no se pueden crear a gusto, solo se pueden usar los eventos que nos entrega la API en el hilo de Tig. Sin embargo podemos redefinirlos para que hagan lo que nosotros deseamos.

Por ejemplo, si quisieramos mostrarMensajes() cada vez que alguien use un emoticón cualquiera, haríamos lo siguiente:

a dit :
function eventEmotePlayed()
mostrarMensajes()
end

Y debido a que los eventos se llaman por sí solos, no hace falta escribir nada en nuestro código main. Solo tenemos que agregar nuestra función y nuestro evento para completar nuestro script:

a dit :
function mostrarMensajes()
ui.addPopup (1, "Hola, esto es un mensaje", nil, 350, 140, 100)
ui.addPopup (2, "Hola, esto es un segundo mensaje", nil, 350, 200, 100)
end

function eventEmotePlayed()
mostrarMensajes()
end
Kaisa2011
« Citoyen »
1389108480000
    • Kaisa2011#1454
    • Profil
    • Derniers messages
    • Tribu
#2
  0
Gracias Hina, me viene perfecto para lo que quiero hacer x3
Markhlar
1396624620000
    • Markhlar#0000
    • Profil
    • Derniers messages
#3
[Modéré par Ana]
Vicnicodsds
1396807020000
    • Vicnicodsds#0000
    • Profil
    • Derniers messages
    • Tribu
#4
[Modéré par Shyraa]
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • Guías y Tutoriales
  • /
  • [Guía] Sobre las funciones y eventos (Básico)
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27