AcontecimientosUn detonador puede tener uno o más de estos, algunos de los más usados son:
Jugador - Chat message: Usado para sistemas de comandos por mensajes como el "All Pick" de DotA, también puede ser usado para determinar el número de muertes para conseguir la victorias en mapas "Hero Arena"
Jugador - Cinematic Skipped: Este evento se usa para cuando un jugador presiona la tecla "Esc"
Tiempo - Time Elapsed: Se detona al pasar X segundos, y solo correrá UNA vez
Tiempo - Periodic Event: Se detona cada X segundos, es un loop(bucle), o sea que correrá una y otra vez sin parar(se puede ordenar que se detenga con una acción, pero lo veremos más adelante)
Unidad - Generic Unit Event: El evento más usado(por lo menos para mí), ya que engloba casi todos los eventos de unidad del juego (excepto Unidad - Recibe daño) y a partir de este evento se crean los spells, unir items, y muchas cosas más.
Unidad - Unit Enters Rect: Significa que cuando una unidad entre en X región, se disparará el evento, usado para crear regiones asesinas, regiones a las cuales no se puede acceder, incluso para regiones capturables. Se debe recalcar que debemos crear primero una región para utilizar este evento
Unidad - Unit Leaves Rect: Significa que cuando una unidad salga de X región, se disparará el evento, usado para evitar que una unidad escape. Se debe recalcar que debemos crear primero una región para utilizar este evento
CondicionesSe puede tener ninguna, una, o muchas. La lista de condiciones es corta, sin embargo cada condición tiene muchas "Sub-Condiciones"
Pero las Condiciones más usadas son:
Boolean Comparison: Los valores que toma, devolverán verdadero o falso. Por ejemplo: Si una unidad es enemiga de otra (o es enemiga[verdadero] o no lo es[falso])
Ability Comparison: Para comparar habilidades, se utiliza casi puramente en spells. Por ejemplo: (Ability being cast) Igual a Rayo de tormenta
Hero Skill Comparison: Sirve para comparar la habilidad que se aprendió y solo para eso.
Integer Comparison: Para comparar números enteros. Y, a diferencia de las anteriores que solo permiten "Igual a" y "No igual a", permite también "Mayor que o igual a", "Mayor que", "Menor que o igual a" y "Menor que"
Real Comparison: Sirve para comparar números reales.
AccionesPuedes tener cuantas quieras hasta donde yo sé. La lista es larga, ya que la cantidad de cosas que podemos hacer en WorldEdit es casi ilimitada(incluso podemos crashear el juego xD)
Enumerarlas aquí sería imposible pero podemos decir que las acciones más "especiales" son:
Custom Script: Esta acción nos permite colocar una línea de JASS en nuestro detonador, permitiendo acceder a otras acciones imposibles de usar en GUI (más tarde o en otro curso profundizaremos esto)
Set Variable: Nos permite darle un valor a las variables (http://www.worldofeditors.net/t46-guia-sobre-variables). Leer el link adjunto al texto para más información de variables
If / Then / Else : Nos permite insertar una condición en nuestras acciones y si es verdadera dicha condición, se realizan las acciones en "Then" (Entonces), si es falta, se realizan las acciones "Else"(Otros). Puedes tener "Then" y/o "Else" sin acciones y no causará ningún error. Se recomienda el uso del If/Then/Else que permite múltiples acciones porque es mejor para leer y modificar
For Each Integer: Cualquiera de sus 3 versiones, A, B y Variable son loops, que realizarán las acciones colocadas allí desde el número inicial al final. Para referirnos a la instancia del loop usamos "Integer A" (Aparece como "For Loop Integer A"), "Integer B" (Aparece como "For Loop Integer B") o la variable que seleccionamos.
Todas estas acciones son útiles pero en definitiva, no hacen nada por sí sola, se las utiliza en conjunto con otras acciones para hacer lo que queramos hacer
[/code]
(https://viviraprendiendo.co/comunidad/proxy.php?request=http%3A%2F%2Fi.minus.com%2FivYVZQD1BgAH4.png&hash=3c8a67f50c444843a0166f2688383d92d2461e1f)
Detonadores básicosVamos a hacer cosas muy básicas aquí, sin uso de variables.
Detonador N° 1
Nombre: Soy un detonador
Evento: Tiempo - Time Elapsed
Que hará: Mostraremos un cartel durante 8 segundos que nos diga una verdad.
[gui]Soy un detonador
Acontecimientos
Tiempo - Elapsed game time is 5.00 seconds
Condiciones
Acciones
Partida - Display to (All players) for 8.00 seconds the text: Este cartel es gene...[/gui]
El texto entero dice:
Este cartel es generado por un detonador, y esto es solo un ejemplo de lo que podemos hacer
Podemos usar esta acción(o la auto-timed) cuando tenemos detonadores con errores y muchos If/Then/Else para tratar de buscar a dónde se nos estanca.
Este detonador no utiliza condiciones y su única acción es:
Partida - Text message (Explicitly Timed)
(https://viviraprendiendo.co/comunidad/proxy.php?request=http%3A%2F%2Fi.minus.com%2FivYVZQD1BgAH4.png&hash=3c8a67f50c444843a0166f2688383d92d2461e1f)
Detonador N° 2
Nombre: Spawns de creeps
Evento: Tiempo - Time Periodic
Que hará: Crearemos 5 unidades y les ordenaremos atacar a otra región.
[gui]Spawns de creeps
Acontecimientos
Tiempo - Every 30.00 seconds of game time
Condiciones
Acciones
Unidad - Create 5 Soldado raso for Neutral hostil at (Center of RegionCrearCreeps <gen>) facing Vista edificio predeterminada (270.0) degrees
Grupo de unidad - Pick every unit in (Last created unit group) and do (Actions)
Bucle: Acciones
Unidad - Order (Picked unit) to Atacar-mover a (Center of RegionAtacar <gen>)[/gui]
Este deto sirve para oleadas, es bastante simple PERO tiene fugas de memoria (los llamaremos leaks)
Para saber qué es un leak y como evitarlos dirigete a:
http://www.worldofeditors.net/t49-fugas-de-memoria-gui
En cuanto a explicación del detonador, Creamos 5 soldados rasos para el neutral hostil en el centro de una región y luego tomamos a cada una de esas unidades (Last created unit group nos devuelve el último grupo de unidades creadas).
Como verán, dentro del bucle, usamos "Picked Unit", esta es la unidad que está siendo tomada por el bucle actualmente. Le ordenamos que Ataque hacia el centro de la región.
Grupo de unidad - Pick every unit in unit group es una acción muy útil, esta realiza las acciones que colocamos en el bucle para cada unidad en el grupo, un ejemplo de su uso sería para dañar a las unidades enemigas en círculo alrededor del caster
(https://viviraprendiendo.co/comunidad/proxy.php?request=http%3A%2F%2Fi.minus.com%2FivYVZQD1BgAH4.png&hash=3c8a67f50c444843a0166f2688383d92d2461e1f)
Detonador N° 3
Nombre: Agregar Oro
Evento: Jugador - Chat Message
Que hará: Colocamos un texto y nos agrega oro.
[gui]Agregar Oro
Acontecimientos
Jugador - Jugador 1 (rojo) types a chat message containing -add as Una subcadena
Condiciones
Acciones
Jugador - Add (Integer((Substring((Entered chat string), 5, (Length of (Entered chat string)))))) to (Triggering player) Oro actual
[/gui]
Esto solo sirve para el jugador 1, pero puedes agregar los eventos para los otros 11 jugadores facilmente. Lo importante es revisar como acomodamos las cosas:
Si miran el evento, dice al final del mismo "as Una subcadena", esto significa que reaccionará cuando -add sea parte del texto escrito.
Luego, si miran en la acción, que es Jugador - Add property.
Dice (Integer((Substring((Entered chat string), 5, (Length of (Entered chat string))))))
Como ven, es largo y feo de leer. Sin embargo, lo podemos hacer más lindo de leer con un par de variables. Si quieres saber de variables dirigete a:
http://www.worldofeditors.net/t46-guia-sobre-variables
Volviendo a la acción. Para lograr ese resultado, debemos realizar los siguientes pasos:
(https://redcdn.net/ihimg/a/img208/485/fgjg.jpg)
Espero que hayan entendido.
(https://puu.sh/sflFm/bd237b939e.png)
Con eso terminamos este tutorial básico, y espero que se animen a tratar con el editor de detonadores porque es enorme y es ahí, donde se hace magia con WorldEdit