Primeros pasos con Eluna

Desde
30 May 2020
Mensajes
234
Reacciones
333
Honor
82
Que necesitamos antes de empezar:
Un emulador con Eluna
Un editor de codigo
Nociones basicas de Lua
Tener abierto https://elunaluaengine.github.io/index.html

Funciones:
Una funcion es un pequeño programa dentro de nuestro script. Ejecuta una serie de comandos, comprueba si se cumplen condiciones...
La estructura de una funcion es la siguiente:

function NomrbeDeLaFuncion(argumento1, argumento2)
contenido de la funcion
end

Y la usariamos escribiendo el nombre de la funcion y, entre parentesis, los valores que queremos dar a sus argumentos:

NombreDeLaFuncion(valor, valor)

No es obligatorio dar un valor a todos los argumentos, podriamos ejecutar la funcion sin ningun argumento.

Cuando creamos una funcion podemos hacer que tenga argumentos. Al invocar una funcion damos un valor a estos argumentos y los podemos utilizar en la funcion.
Por ejemplo este codigo nos sumara los argumentos al ejecutarlo en la terminal (no en WoW):

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

1.png


Como habeis visto es posible (y muy habitual) ejecutar funciones desde otras funciones. En el ejemplo anterior llame a la funcion SumaArgumentos() desde la funcion print(). Esta es una tecnica que usaremos a menudo.

Eventos:
Para casi cualquier cosa que programemos en Eluna necesitaremos un evento que lo "dispare".
Podemos hacer una funcion que nos de un objeto, pero no hara nada hasta que la activemos con un evento. Por ejemplo, podriamos activarla al entrar por primera vez en el juego, al unirnos a una hermandad... Para todo esto tenemos eventos con los que hemos de registrar nuestra funcion.

Para registrar un evento lo primero que necesitamos saber que tipo de evento sera. Tenemos eventos de jugador, de hermandad, de objeto, de campo de batalla... Podemos ver una lista de todos los tipos de evento buscando "register" en la documentacion de eluna o en el codigo https://github.com/ElunaLuaEngine/Eluna/blob/master/Hooks.h

Cuando sepamos que tipo de evento queremos registrar entramos a su pagina en la documentacion y nos informamos de como se usa.
Nada mas abrir la pagina vamos a ver un trozo de codigo. No os asusteis, es muy facil de entender. Este codigo se divide en tres columnas y lo usaremos para saber que evento en concreto vamos a usar. Para ello tenemos que leer la primera de las tres columnas, la que nos trae el nombre del evento. Es muy descriptiva y no vamos a tener ningun problema en identificar el evento que necesitamos.
Una vez tengamos el evento que queremos tenemos que mirar la segunda columna, donde veremos un numero. Este numero es el identificador del evento, lo necesitaremos para registrarlo.
En la tercera columna estan los argumentos que puede tener la funcion ejecutada por ese evento.

En el apartado "Sypnosis" nos dice como llamar el evento que hemos escogido y en "Arguments" nos da una pequeña explicacion de cada argumento de la funcion para registrar el evento.

Cuando queramos registrar un evento tenemos que guiarnos por la sipnosis. Lo mas facil es copiarla y pegarla en nuestro script y modificar los argumentos.
Los argumentos tipicos son el numero de evento y el nombre de la funcion a ejecutar.

Script de ejemplo - Curar a jugador cuando sale de combate:
Quiero que cuando el jugador salga de combate recupere automaticamente toda su vida.
Se que el evento que necesito es del jugador, asi que me voy a https://elunaluaengine.github.io/Global/RegisterPlayerEvent.html
Encuentro el evento que necesito
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Y lo registro:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Al registrarlo decidi que la funcion se iba a llamar CurarJugador. A esta funcion le corresponden los argumentos event y player, pero solo usaremos player.

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Ahora que hemos creado la funcion tenemos que rellenarla. Para esto es importante estar agil con la documentacion de Eluna para no dar muchas vueltas.
Como quiero modificar la vida del jugador busco "health"

2.png


Veo que no tengo ninguna funcion que automaticamente cure completamente al jugador, asi que vamos a usar dos funciones: Leer la vida maxima del jugador y cambiar la vida del jugador (GetMaxHealth y SetHealth).
El objetivo es obtener la vida maxima del jugador y modificar sus puntos de vida para que sean los mismos que los maximos.
Para llamar a una de estas funciones usamos el argumento player (a quien van a afectar).
Asi pondriamos la vida del jugador a 1000:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Pero como lo mas probable es que la vida maxima del jugador no sea de 1000, tenemos que cambiar ese numero por su vida maxima. ¿Como lo hacemos?
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Y combinandolo todo la funcion nos quedaria tal que asi:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

El script completo seria este:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Instalar nuestro script
Instalar nuestro script es tan sencillo como gurdarlo en formato .lua, moverlo a la carpeta lua_scripts del emulador y ejecutar el comando .reload eluna
Al recargar Eluna tenemos que estar atentos a la consola world para ver si nos da algun error. Un fallo tipico es olvidarse un parentesis:

3.png


El mismo worldserver nos dice cual es el fallo y donde esta. A veces el fallo no sale a la luz hasta que ejecutamos el script, asi que si no funciona lo primero que tenemos que hacer es mirar la consola!

Webs de referencia:
https://www.lua.org/pil/contents.html
https://elunaluaengine.github.io/index.html
https://github.com/ElunaLuaEngine/Eluna
https://github.com/ElunaLuaEngine/ElunaTrinityWotlk
https://github.com/ElunaLuaEngine/Scripts

Como ultimo punto dire que la mejor manera de aprender es pegarse con ello. Si teneis una idea intentad hacer el script y pelearos con ella hasta que salga.
 
Desde
30 May 2020
Mensajes
234
Reacciones
333
Honor
82
Hace mucho tiempo que no escribo un tutorial, asi que ando bastante oxidado. Si hay algun punto que creais que necesita algo de desarrollo o ser aclarado me avisais en una respuesta y lo intento mejorar.
 

Raverkai

Guardian
Desde
23 Apr 2020
Mensajes
190
Reacciones
221
Honor
82
Muchísimas gracias Osler por el hermoso tutorial!
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Estoy muy interesado en este tema y perdón por mi ignorancia @osler pero ¿nos podrías dar indicaciones mas especificas sobre donde instalar esta herramienta y como accionarla? por ahí yo este pecando de "vago" al no hacerlo por mi mismo pero es que en este punto estoy trabado, perdón por las molestias.
 

Raverkai

Guardian
Desde
23 Apr 2020
Mensajes
190
Reacciones
221
Honor
82
Estoy muy interesado en este tema y perdón por mi ignorancia @osler pero ¿nos podrías dar indicaciones mas especificas sobre donde instalar esta herramienta y como accionarla? por ahí yo este pecando de "vago" al no hacerlo por mi mismo pero es que en este punto estoy trabado, perdón por las molestias.
 
Desde
30 May 2020
Mensajes
234
Reacciones
333
Honor
82
Estoy muy interesado en este tema y perdón por mi ignorancia @osler pero ¿nos podrías dar indicaciones mas especificas sobre donde instalar esta herramienta y como accionarla? por ahí yo este pecando de "vago" al no hacerlo por mi mismo pero es que en este punto estoy trabado, perdón por las molestias.
Pues la mejor guía es la que ha enlazado Raverkai, pero está en inglés. Intenta seguirla y, si en algún punto te atascas, escribe un mensaje en este tema y te intento echar un cable.
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Mi mente estuvo muy agotada estos días y me costo prestar atenciones, en fin ya me di cuenta que una de las primeras cosas que tengo que hacer es instalar el git bash, pero no se que lenguaje de programación ponerle.
 
Última edición:
Desde
30 May 2020
Mensajes
234
Reacciones
333
Honor
82
Mi mente estuvo muy agotada estos días y me costo prestar atenciones, en fin ya me di cuenta que una de las primeras cosas que tengo que hacer es instalar el git bash, pero no se que lenguaje de programación ponerle.
¿A que te refieres con lenguaje de programación?
Git bash es, como su nombre indica, bash. Pero no necesitas saber bash, con 4 comandos de git te basta.
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Perdón, no me exprese bien, lo que quise decir es que quiero saber que opción tengo que elegir en este paso de la instalación de git bash:
git instalacion.jpg
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Pensé que este paso era importante porque se relacionaba directamente con la compatibilidad de wow pero al parecer no tiene nada que ver, muchas gracias y perdón por las molestias
 
Última edición:

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Perdón que moleste de nuevo, pero no logro averiguar como hacer que git bash abra Eluna, me siento muy apenado por preguntar algo que para muchos es tan básico, pero no le encuentro la vuelta.
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Voy a intentar hacer una guía completa de cómo instalar Eluna, hoy o mañana intento tenerla subida.
Eso seria genial y un gran aporte a la comunidad, muchas gracias!
 
Última edición:

Raverkai

Guardian
Desde
23 Apr 2020
Mensajes
190
Reacciones
221
Honor
82
te consulto, lograste instalar el git? y al hacer clic derecho te figuran las siguientes opciones=
1638802902565.png
 

Crea una cuenta o inicia sesión para comentar

Debes ser usuario para poder dejar un comentario.

¡Regístrate!

Crea una cuenta en nuestra comunidad. ¡Es fácil!

Acceder

¿Ya tienes una cuenta? Accede aquí

3,742Temas
24,623Mensajes
15,332Usuarios
PalerkÚltimo usuario
Top