Funciones nativas

Funciones nativas

> Tutorial de LeekScript

¡Ahora vamos a hablar sobre las funciones del LeekScript!

Las funciones son un aspecto esencial de la programación. Te permiten memorizar una serie de acciones que puedes reutilizar cuando quieras.

En Leek Wars, podemos distinguir dos tipos de funciones:

Solo hablaremos de funciones nativas por ahora.

Qué es ?

Las funciones nativas son las funciones que el LeekScript pone a tu disposición, son las que te permitirán obtener mucha información sobre la pelea. También es gracias a ellos que podrás controlar las acciones de tu puerro.

Las funciones se reconocen rápidamente por su sintaxis:

functionName(parámetros);

Ya los ha visto en la IA básica durante el capítulo sobre el Editor. Como recordatorio :

// Cuatro funciones muy útiles var enemigo = getNearestEnemy(); establecer Arma(ARMA_PISTOLA); mover hacia (enemigo); useWeapon(enemigo);

getNearestEnemy, setWeapon, moveToward y useWeapon son cuatro funciones que el LeekScript pone a tu disposición.

Una comprensión mínima puede ayudar a comprender la utilidad de una función sin tener que consultar la documentación. Los nombres de las funciones suelen explicarse por sí mismos y muestran para qué se utilizan.

El regreso

¿Qué es el "retorno" de una función? No es sistemático, pero una función puede devolver información.

Este es el caso en este ejemplo:

var enemigo = getNearestEnemy();

Si prestaste atención al capítulo anterior, entiendes que se crea una variable "enemiga". Y a la vez se le asigna un valor con el símbolo de igual '='.

Pero, ¿qué se le asigna exactamente? Aquí es donde entra en juego la función getNearestEnemy. Esta función devuelve la identificación del enemigo más cercano.

Entonces, cuando tu puerro ejecute este código, llamará a la función getNearestEnemy. Esto devolverá el identificador del puerro más cercano que luego se almacenará en la variable "enemigo";

Si tiene curiosidad, puede agregar una depuración:

var enemigo = getNearestEnemy(); depurar (enemigo);

Si ejecuta este código en una pelea de prueba 1v1, debería ver el número 1 o 0. Las ID de puerro en combate no son más que números. Para una pelea de 4 puerros, estos se numerarían del 0 al 3.

Como puede ver, debug es una función nativa de LeekScript. Quizás se pregunte por qué ponemos la variable "enemigo" entre paréntesis. Llegamos allí.

La configuración

Así es como se llama lo que está dentro de los paréntesis: parámetros. Estas pequeñas bestias son muy útiles. La acción que realizará una función dependerá de sus parámetros.

Para volver a la función debug, muestra un mensaje en los registros de combate. Y este mensaje, eres tú quien indica su contenido, gracias a un parámetro.

Si le das el valor 5 en el parámetro a debug, el mensaje será "5". Si le das el texto "Me gusta la sopa de puerros" a debug, el mensaje será "Me gusta la sopa de puerros".

Esto es lo que sucede con estas funciones:

var enemigo = getNearestEnemy(); establecer Arma(ARMA_PISTOLA); mover hacia (enemigo); useWeapon(enemigo);

setWeapon hace que tu puerro equipe un arma. Para indicarle que arma debe equipar, debes pasarle como parámetro el identificador del arma. Aquí está "WEAPON_PISTOL", es una constante que designa el arma Pistol. Esta constante corresponde al número 37, el identificador del arma. Podrías escribir 37 en lugar de WEAPON_PISTOL, tendría el mismo efecto. Pero usar la constante hace que el código sea más comprensible y evita tener que memorizar los identificadores de cada arma/chip.

moveToward te permite mover tu puerro hacia otro. La función necesita la identificación de un puerro objetivo para esto. Aquí es donde sacas tu variable "enemigo". Recuerda que ahora contiene el ID de tu oponente más cercano. Pasar esta variable a moveToward lo dirigirá a ese desagradable puerro.

Con useWeapon tu puerro intentará dispararle a un puerro. De la misma manera, le dices a la función que quieres dispararle a tu enemigo.

Sin retorno ni parámetros

Algunas funciones no devuelven un valor, ni lo esperan. ¡Pero no son inútiles!

Por ejemplo, la función pausa. Te permite pausar la pelea cuando la miras. (No tiene impacto en la pelea, es lo mismo que presionar manualmente el botón "Pausa" o el