En el World of Warcraft, un macro consiste en agrupar una cantidad de comandos de barra (/) que se ejecutan juntos cuando presionas un boton. A cualquier momento se pueden tener 36 macros que seran disponibles para todos los personajes que hay en una misma cuenta, y otros 18 macros que estaran disponibles para cada personaje en especifico, para un total de 54 macros en cada personaje al que tengas acceso, desde la version 3.0 aquellos macros pueden ser almacenados aparte en los servidores de Blizzard. Adicionalmente hay addons que pueden permitirte especificar y usa macros adicionales.
Un macro tambien puede referirse a un metodo automatico (Movimientos y teclas programadas) para pelear o repetir alguna accion. Si los macros son usados fuera del estandar del cliente del juego puede ser considerado Cheater. No tengas miedo: Todo lo que puedes hacer con los macros dentro del juego estara bien.
Comandos de Barra ( / )
Para entender como funciona todo, necesitaras saber que es un comando de barra. WoW te permite poner comandos simples al juego en forma de barra (/) seguido por el nombre del comando. Puedes poner estos comandos directamente, escribiendo en la ventana de conversacion. Un ejemplo podria ser el comando follow "/follow". Si tu seleccion es un amigo y escribes "/follow" (Sin las comillas) entonces tu personaje comenzara a seguirlo. Puedes obtener una lista de algunos de los comandos de barra escribiendo "/help".
Hay una cantidad severa de comandos de barra. Algunos son designados a realizar acciones del juego Ejemplo: (/follow, /assist, /cast) , otros estan relacionados con los comandos para conversaciones Ejem: (/yell, /chatlist, /s, /g) o para obtener informacion (/who). Tambien tenemos comandos con emociones Ejem: (/laugh, /bow, /dance).
Finalmente, hay un comando de barra que es muy especial "/script", que sera explicado mas adelante.
Macros
El proposito de un macro es permitirte crear de una manera muy simple, personalizar acciones y tareas basadas en las acciones existentes del juego. Un macro es solo una secuencia de comandos de barra, que se ejecutan en orden, cuando activas el macro. Para crear un nuevo macro, solo escribe "/macro" (Sin las comillas), o presiona el icono de la ventana de conversacion y selecciona macro. A continuacion puedes darle un nombre al macro, un icono y empezar a escribir unas lineas de comandos de barras. El macro es creado en la forma de una accion o habilidad que puedes traer hacia tu barra. Puedes activar el macro con tan solo presionar el boton resultante en tu barra.
Un ejemplo de macro podria ser:
/cast Fireball(Rank 1)
/say "I am frying it!"
Este macro simplemente lanzara fireball, entonces tu personaje les dira a todos los que estan cerca que lo estas lanzando.
Los Macros tienen unos severos limites, y solo están destinados a tareas muy simples. El limite mas severo es que es muy dificil lanzar mas de un hechizo a la vez usando un macro (Sin embargo es posible, usando API SpellStopCasting). Este limite existe para que los macros no puedan automatizarse demasiado para nuestro uso. Puedes tener muchos comandos dentro de los 255 caracteres de limite, como tu quieras.
Scripts
Los scripts son programas de computadora escritos en un lenguaje de programacion. En general los lenguajes de programacion son categorizados como (interpretado o compilado) esto se refiere a los detalles de cada paso que son necesarios para ejecutar el codigo fuente. Las personas escriben sus programas como archivos de texto, los cuales son llamados "fuentes" del programa. Los lenguajes de programacion pueden ejecutar estas fuentes, con solo pasarlas a un interprete. Otros lenguajes como C/C++ y Java requieren por lo menos un paso intermedio para compilar el codigo fuente dentro del formato nativo de la maquina, o posiblemente en un formato especial "Maquina Virtual" como con Java.
El cliente de World of Warcraft incluye un poderoso lenguaje de programacion llamado Lua. Esto significa que el cliente del WoW puede directamente interpretar y ejecutar programas basados en Lua. (Este hecho, es una practica bastante comun ... incluyendo un lenguaje de programacion como Lua o TCL dentro de un programa mas grande para darle soporte a una personalizacion mas flexible del usuario ... siendo Lua uno de los 2 lenguajes mas comunmente usados para este proposito en especifico.
Los Scripts Lua son usados en los siguientes lugares:
/script [Comando] : Si colocamos el comando de barra "/script" en la ventana de conversacion, puedes seguirlo con una o mas declaraciones validas del lenguaje Lua, separadas por punto y coma ( ; ).
Macros: puedes colocar scripts como parte de los macros, con colocar uno o mas comandos "/script" en el macro.
Addons: Estos extienden el cliente del WoW con nuevos comandos de barra y a menudo elementos de la interfaz del usuario. Esta nueva funcionalidad es traida por los scripts Lua (conteniendo la logica actual del complemento). Las extensiones de la interfaz del usuario estan definidas en archivos XML. (XML por cierto no es un lenguaje de programacion). Es una marca que contiene la fuente del codigo, pero tambien pueden contener contenido de comunicacion o referenciadas externa, posiblemente una red remota de recursos de comunicacion ... incluyendo otros archivos XML. Sin embargo, XML es guardado como estructurado, sintacticamente un complejo texto y es parseado e interpretado en formas que lo hacen similar al lenguaje de programacion.
Entonces que puede hacer un script? Hay demasiados recursos en los scripts Lua. Revisen la pagina de Lua para conseguir mas acerca del lenguaje. Sin embargo el punto mas importante es que los scripts son capaces de realizar muchas mas acciones del juego que los comandos de barra. Esto se hace debido a una cantidad de funciones (Llamadas API o Application Programming Interface; Interfaz de aplicacion programada) que el Wow trae disponibles para el uso de scripts. Aqui hay una extensiva lista de todas las funciones API disponibles para el uso de scripts en el World of Warcraft API
Despues de toda esta explicacion, aqui tenemos un ejemplo de un script:
Este script es muy simple. Cuando los ejecutes, si tu eres el lider de una party, entonces obtenfas un mensaje diciendo que tu eres el lider de la party. Para usar este script, tienes que hacerlo a traves del comando "script" Ejemplo:if (IsPartyLeader()) then
ChatFrame1:AddMessage("I am the leader of my party!")
end
Puedes escribir esto directamente en la ventana de conversacion, o hacer de esa linea parte de un macro, entonces esto puede ser reusado./script if (IsPartyLeader()) then ChatFrame1:AddMessage("I am the leader of my party!"); end
En Resumen: un script en el WoW es un programa escrito en el lenguaje Lua, capaz de interactuar con el juego y hacer acciones dentro del mismo. Puedes usar un script incluyendolo como parte de algo mas, ejemplo: poniendolo en un macro a traves del comando /script, o poniendolo en un addon.
Tengan en cuenta que Blizzard ha hecho grandes esfuerzos para limitar la funcionabilidad de los scripts y macros para prevenir que los jugadores automatizen demasiado la forma de juego. Si son demasiado automatizados por los jugadores entonces podrian tener una ventaja injusta contra otros en PvP (JvJ) y podrian ser capaces de granjear mucho mas rapido, lo cual podria traer inestabilidades en la economia virtual.