Creación de Macros
Creación de Macros
Creación de Macros
Primero que nada, cabe aclarar que esta guia es de creacion propia, y ya anda rondando por la web en otros lados donde la postie anteriormente. Ademas, como la cree durante la BC, hay algunas cosas que pueden estar desactualizadas, si encuentran algo mas, avisenme por favor. Primero lo Primero: Logica de Programacion. Para el que no sabe, un macro es un pedazo de codigo que reconoce el wow, por lo tanto, para poder crearlo, se debe conocer la base de todo lenguaje de programacion: La Lgica. Aca es donde la cabeza de uno empieza a trabajar. La logica de un lenguaje comprende las acciones que el codigo debe hacer cumplir. Para hacer mas claro esto, se puede pensar en una accion cotidiana, como por ejemplo, leer un libro. Tenemos que seguir unos pasos basicos, como pueden ser: -Pararse (en el caso de estar sentado) -Caminar -Tomar el Libro -Abrirlo -Buscar la Pagina -Leer De esta forma es como se maneja un lenguaje de programacion, paso por paso, y de esta misma forma es como el wow maneja a sus macros. Entonces, Como se maneja un Macro en el WoW? En el WoW, los macros interpretan y realizan acciones usuales del usuario, simplificandolas. Algunas de estas acciones pueden ser: Castear un Hechizo, Equiparse un Objeto, cambiar de Objetivo a un mob/amigo/a vos mismo/a tu foco, unirse a canales, sacarse un buff, etc. Los macros utilizan la siguiente logica /comando [condicionales] Accion/Descripcion; [condicionales] Accion/Descipcion; Los Condicionales son totalmente OPCIONLES, los cuales los voy a explicar msa tarde. Comandos a tener en cuenta Bueno, ya sabiendo cual es la Logica del Macro, Tenemos que conocer cuales son los comandos con los que estos trabajan: /cast <Hechizo> - Lanza un Hechizo (se puede poner el rango entre /petpassive - Modo pasivo del Pet parentesis: Ej. (Rango 1) ) /petstay - Deja a la Mascota Quieta /stopcasting - Cancela el casteo de un Hechizo /petattack - Manda al Pet a Atacar /castrandom <Hechizo1>, <Hechizo2>, <Hechizo3> - Lanza un /petautocaston <Hechizo> - Activa el Autocast de un Hechizo Hechizo aleatorio, los Hechizos son divididos por Comas (,) /petautocastoff <Hechizo> - Desactiva el Autocast de un Hechizo /castsequence <Hechizo1>, <Hechizo2>, <Hechizo3> - Lanza Hechizos /petfollow - Activa el Seguir de la Mascota en Orden, uno por vez que se activa el Macro (no es afectado por el /assist - Seleciona el "Objetivo de tu Objetivo" (osea, asiste a tu GCL) objetivo XD) /equip <Item> - Equipa un Item /clearfocus - Elimina el foco actual /equipslot <ranura> <Item> - Equipa un item en una ranura especifica /cleartarget - Elimina el Objetivo Actual (util para Abalorios y Anillos)* /target <nombre>/Focus - Selecciona como objetivo a alguien o a tu /use <Item> - Utiliza un Item foco. /use <ranura> - Utiliza un Objeto en una Ranura* /targetenemy - Selecciona a un enemigo /use <NumBolsa> <NumRanura> - Utiliza un objeto en una bolsa* /targetfriend - Selecciona a un Amigo /userandom <Item1>, <Item2>, <Item3> - Utiliza un Item /targetlastenemy - Selecciona al ultimo enemigo seleccionado Aleatoriamente /targetlastfriend - Selecciona al ultimo amigo seleccionado /cancel - Cancela la Accion en Curso /targetlasttarget - Selecciona a tu objetivo anterior /cancelaura <Aura> - Cancela un aura (buff) Activo /targetparty - Selecciona a alguien de tu grupo /focus - Establece un Foco* /targetraid - Selecciona a alguien de tu raid /stopmacro - Detiene la Ejecucion del Macro /say <mensaje> - Dice un mensaje /cancelform - Cancela la Forma Actual (Ej: un Druida en forma de Oso) /[numero_de_canal] <mensaje> - Dice un mensaje por el canal /changeactionbar <Num> - Cambia la Barra de Accin /g <mensaje> - Dice un mensaje por la guild /swapactionbar <Num1> <Num2> - Intercambia las Barras de Accion /rw <mensaje> - Alerta de banda /startattack [unidad] - Empieza a atacar a una Unidad, ( "[Unidad]" es /gp <mensaje> - Mensaje en el Grupo cambiado por una unidad especifica, si no se pone, ataca al objetivo) /ra <mensaje> - Mensaje en la Raid /stopattack - Detiene el Ataque /dismount - Desmontarse de la montura /petagressive - Modo agresivo del Pet *Los Comandos Marcados se explicaran mas detalladamente. Ahora, los Condicionales: Bueno, ya sabiendo que disponemos de los comandos, ahora voy a dar una breve explicacion de los condicionales: Los condicionales "preguntan" ciertos valores al juego, los cuales son devueltos como un valor Verdadero o Falso, la estructura del condicional maneja al Punto y Coma ( ; ) como divisor de valores, lo cual significa que "Si pasa tal cosa, voy a hacer esto, si no, esto otro": les voy a dar un ejemplo mas claro: /cast [modifier:alt] Conflagrar; Inmolar Lo que esto dice es: "Si tengo apretado la tecla Alt, casteo Conflagrar, sino (aca es donde se toma en cuenta el Punto y Coma), casteo Inmolar" Entonces, se puede decir que "[modifier:alt]" Es un condicional. Voy a explicar el caso dado al comienzo: /comando [condicional1] Accion/Descripcion (<Valor Verdadero del Condicional1>); [condicional2] Accion/Descipcion (<Valor Dalso del Condicional1 y Verdadero del Condicional2>); Accion/Descripcion (<Valor Falso condicional1 y 2, osea, cualquier otra cosa>) Aqui se puede apreciar que cada condicional maneja un valor positivo y uno negativo, y de esta forma se van descartando opciones, entonces, primero actua el condicional1, si el valor es positivo, el comando alli finaliza, sino, utiliza el condicional2, y asi sucesivamente por cuantos condicionales tengamos. Ahora, un par de condicionales: [combat] - Evalua si estas o no en combate [outdoors] - Evalua si estas al aire libre. [help] - Evalua si el objetivo es amistoso [button:<num_boton>] - Evalua el boton del mouse presionandose [harm] - Evalua si el objetivo es hostil [modifier] - Evalua si se esta precionando un boton modificador, los [equipped:<Ranura>/<tipoItem>] - Evalua si tenes equipado X cosa* cuales son Ctrl, Alt o Shift (el codigo quedaria, por ejemplo [indoors] - Evalua si estas dentro de algun lugar [modifier:shift], si solo se utilza [modifier] evalua si se preciona
cualquiera de las 3 teclas) activa [mounted] - Evalua si estas montando [stance:#] - Evalua en que Forma o Actitud te encontras [swimming] - Evalua si estas nadando [channeling:<Hechizo>] - Evalua si se esta canalizando o casteando un [flying] - Evalua si estas volando hechizo, el cual puede especificarse. No es obligatorio hacerlo. [flyable] - Evalua si es un terreno apto para volar [party] - Evalua si tu objetivo esta en tu Grupo [pet:<nombre_mascota>] - Evalua si tener X pet activa [raid] - Evalua si tu objetivo esta un tu Banda [stealth] - Evalua si estas en Sigilo [group:party/raid] - Evalua si estas en un grupo o banda [exists] - Evalua si el objetivo existe [pet:<Pet>] - Evalua s tenes una pet activa, y, en el caso de [dead] - Evalua si el objetivo esta muerto especificarlo, evalua la clase de la misma [actionbar:<numero_barra_de_accion>] - Evalua la barra de accion [actionbar:#] - Evalua la barra de accion activa Plantear Varias Condiciones: Para Agregar mas de un condicional se debe utilizar una Coma (,) que actuaria como un "y" logico. Ejemplo: /cast [combat,equipped:Escudos] Escudo de Vengador; Clera Vengativa Aqui se plantea un doble condicional, osea, para acceder al valor positivo, debe cumplir con las dos condiciones: Valor Logico "o": Se puede agregar una Barra (/) para separar las opciones de ciertos condicionales, planteando un valor logico "o". Por ejemplo: /cast [modifier:alt/shift] Conflagrar; Inmolar Esto me indica que si tengo apretado la tecla Alt o la tecla Shift, me devolvera el valor POSITIVO. Como ven, se pueden separar las OPCIONES de los condicionales, y no los condicionales en si, para ello se debe separar los condicionales, por ejemplo: el siguiente codigo esta incorrecto: Lo que deberiamos haber hecho es: /cast [modifier:alt/button:2] Escudo Sagrado; < MUY MAL!!!!! /cast [modifier:alt] [button:2] Escudo Sagrado; < BIEN !!! Esta seria la forma correcta de separar los condicionales. Aqui casteariamos Escudo Sagrado si tenemos apretado alt o si clickeamos con el boton derecho del mouse Un Truco: Se puede Agregar la sentencia "no" antes de un condicional para negar la accion, osea, que el resualtado de la pregunta queda invertido, ejemplo: /cast [nostealth,nocombat] Sigilo; Esfumarse Esto plantea que si no estoy en sigilo y no estoy en combate, utilizo Sigilo, sino, utilizo Esfumarse Ahora, ya estan en condiciones de crear Macros bastante Avanzados. Ahora me toca explicar Algunas cosas de lo que marque con un asterisco (*): Ranuras y Lugares en las Bolsas: Bueno, algunos comandos como /equipslot, /use o condicionales como [equipped:<>] tienen la opcion de utilizar, en vez de los nombres de los items, la ubicacion del mismo. Para ubicar un item en el inventario, se utiliza un numero, del 1 al 19. Para explicarlo mejor tomo una imagen de http://www.wow-europe.com/ : http://www.wow-europe.com/shared/wow-com/images/basics/macros/macro-slots.jpg Teniendo esto en cuenta esto, vamos a platear una hipotesis: Me quiero equipar el abalorio "Icon of the Silver Cressent" y el "Shiffar's Nexus Horn" por lo tanto el codigo quedria: /equipslot 13 Icon of the Silver Cressent /equipslot 14 Shiffar's Nexus Horn Para seleccionar un item en la bolsa, se debe contar las bolsas, enpezando por la primera a la derecha como si esta fuese un "0", la segunda un "1", la tercera "2", la cuarta "3" y la quinta "4". Cada una de estas, tiene Slots, y estos se cuentan de izquierda a derecha, empezando por el uno. Entonces suponiendo que mi Icon of the Silver Cressent se encuentre en el lugar 0 13 y mi Shiffar's Nexus Horn en el 1 15 el codigo seria el siguiente /equip 0 13 /equip 1 15 Tambien se puede utilizar el comando /equipslot: /equipslot 13 0 13 /equipslot 14 1 15 Bueno, por ultimo el condicional [equipped:] puede chequear si tengo algo equipado en un X lugar, por ejemplo en lugar 17 (escudos) /cast [equipped:17] Escudo Sagrado; Sello del Cruzado Lo que Hariamos en este caso es chequear si tengo algo equipado en el lugar 17 (escudos y armas de mano izquierda), casteo Escudo sagrado, sino, casteo Sello del Cruzado El condicional [equpped:] tambien puede chequear si tenes alguno de estos items equipados: Two-Hand (2 manos) Neck (cuello) Bag (bolsa) Ranged (a distancia) Shirt (camisa) Off Hand (zurda) Chest (pechera) Shoulder (hombros) Back (espalda) Tabard (Tabardo) Feet (pies) Thrown (arrojadiza) Finger (dedo) Trinket (alhaja) Hands (manos) Waist (cintura) Head (cabeza) One-Hand (una mano) Held In Off-hand (sotenido en la zurda) Main Hand (mano diestra) Legs (piernas) Wrist (mueca) Por lo tanto si yo quisiese hacer lo mismo que el codigo anterior diria: /cast [equipped:Escudos] Escudo Sagrado; Sello del Cruzado Opcion Especial: Reset En comandos como "/castsequence" se puede insertar la orden: reset=<tiempo_en_segundos>/target/combat Esto significa que si el ciclo no se completo hasta pasar X segundos, o al cambiar de objetio, o al entrar/salir de combate, se reinicia. Opcion Especial: Target Tenemos una Opcion, que se utiliza como un Condicional (solo que no devuelve valores positivos o negativos), que es el [target=]
Se utiliza para, por ejemplo, castear una habilidad sobre vos mismo sin cambiar el objetivo, o sobre el objetivo de tu objetivo sin cambiar de objetivo. Los distintos modificadores pueden ser [target=player] - Se utiliza sobre ti mismo [target=focus] - Se utiliza sobre tu foco [target=targettarget] - Se utiliza sobre el objetivo de tu objetivo [target=pettarget] - Se utiliza para seleccionar el objetivo de tu pet [target=mouseover] - Se utiliza para seleccionar al objetivo que se encuentra sobre el puntero del mouse. Extremadamente Util Ejemplo: /cast [target=targettarget] Sanacion Superior Lo que hariamos es Castear Sanacion Superior en el objetivo de tu objetivo. Macro Feedback (comandos #show y #showtooltip): Estos comandos son utilizados para darle apariencia al macro. Con esto me refiero al Icono del macro y a la explicacion que aparece al poner el puntero sobre el icono. Por defecto, el icono del Macro, en caso de haber elejido el Signo de Pregunta, es el icono de la primera habilidad o item que se pueda leer en el codigo. Un ejemplo: /cast Sello de Rectitud /cast Sentencia Aqui el Icono del Macro sera el Icono de la habilidad Sello de Rectitud. Entonces, que pasa si quiero que el Icono sea otro?. Se utiliza el comando #show <Hechizo/Item> al empezar el macro. Supongamos que quiero ver el icono de Sentencia: #show Sentencia /cast Sello de Rectitud /cast Sentencia Ahora, todos sabemos que al pasar el puntero del mouse sobre una habilidad/item se ve la descripcion del mismo, los macros, tambien tienen lo suyo. Por Defecto, como descripcion se ve el nombre del macro, pero esto se puede cambiar. Por Ejemplo, yo tengo el macro anterior con el nombre "Sentencias", y quiero que en la descripcion aparezca la descripcion del hechizo Sentencia: #showtooltip Sentencia /cast Sello de Rectitud /cast Sentencia Tambien se pueden combinar las dos opciones anteriores, pero con solo declarar un hechizo en la sentencia #showtooltip, el icono de este hechizo sera por defecto el declarado anteriormente. El codigo errneo seria #show Sentencia #showtooltip Sello de Rectitud /cast Sello de Rectitud << MAL /cast Sentencia Lo que se deberia Hacer es: #show #showtooltip Sello de Rectitud /cast Sello de Rectitud /cast Sentencia Y entonces se mostrara Icono y Descripcin del hechizo Sello de Rectitud. A estos Comandos tambien se les puede agregar condicionales. Problemas Con los Nombres de Hechizos: Bueno, como ya sabemos, se puede especificar el casteo de un rango de hechizos, por ejemplo /cast Inmolar(Rango 1) Esto muchas veces entra en conflicto con habilidades que ya tienen parentesis, como puede ser Fuego Frrico (Feral), ya que el macro reconoce a (Feral) como el rango de Hechizos. Para solucionar esto se debe agregar un parentesis "()" al final del hechizo, quedando el macro de esta manera: /cast Fuego Frrico(Feral)() Esos parentesis al final indican el rango de hechizo, si no se completa el hechizo a castear sera el del rango mas alto aprendido. Hasta aqui la solucion. El Global Cooldown (GCD): Un factor Importante (sino importantisimo) al crear un macro, es el Global Cooldown. Todos sabemos que hay spells con tiempo de Reutilizacion (cooldown), como por ejemplo la habilidad Sprint. Pero hay otro tiempo de reutilizacion, el global. El GCD es lo que impide que castees 85 mil habilidades instantaneas todas juntas. Para explicarlo mejor, cuando utilizas una habilidad, la barra de accion se "recarga". Eso es el GCD. Pero, una imagen vale mas que mil palabras: http://img339.imageshack.us/img339/7058/aaaf.jpg Como se puede ver, la barra de acciones esta recargando, pero miren al hechizo Sentencia. Se encuentra intacto!! Esto significa que este hechizo no tiene Global Cooldown, por lo tanto, se puede castear directamente despues de otra habilidad, permitiendonos hacer algo como: /cast Sello de Justicia /cast Sentencia Pero, por ejemplo, si se quiere hacer el macro: /cast Maldicin de Agona /cast Corrupcin Este no seria efectivo ya que el hechizo Maldicin de Agona tiene GCL y la comparte con el Hechizo Corrupcin. Entonces, el casteo del primer spell seria correcto, y el segundo nos devolveria un error. Los Items (en muchos casos abalorios) y ciertas habilidades no comparteng GCD, lo cual permite hacer cosas como: /use Icon of the Silver Cresent /cast Pyroexplosion Como no comparten GCD, se puede usar una cosa atras de la otra. Como conclusion, les recomiendo tener mucho cuidado al armar los macros, siempre tengan en cuenta el GCD por que es un error muy comun.
Simular Clicks (Comando /click): Una opcion Bastante util es la de simular un click. Esta opcion simula que se clickea a un boton, en una barra de accion activa. Entonces, podemos de esta forma armar macros un poco mas grandes que 255 letras. El comando es /click y se utiliza de la siguiente manera: /click [BarraDeAccion]# Los Nombres respectivos de la barra de accion son: ActionButton# Barra Activa BonusActionButton# Barra dinamica que cambia en las Formas de los Druidas, El Sigilo o los modos de los Warriors MultiBarBottomLeftButton# Barra Inferior Izquierda MultiBarBottomRightButton# Barra Inferior Derecha MultiBarRightButton# Barra Derecha MultiBarLeftButton# Barra Derecha 2 (a la izquierda de la derecha) PetActionButton# Barra de la Mascota ShapeshiftButton# Formas de los druidas, Auras del Pala, Modos de los Warriors y Sigilo del Picaro. Ahora, vamos a dar un ejemplo. Supongamos que yo tengo la siguiente barra de accion: http://img339.imageshack.us/img339/7058/aaaf.jpg Entonces, por ejemplo, si yo quisiera hacer un click en el lugar donde esta la habilidad Sentencia, utilizaria el codigo: /clcik ActionButton2 Si no estan seguros donde esta lo que quieren clickear, solo tienen que abrir un cuadro de dialogo, posicionar el mouse sobre el boton que quieren saber cual es e ingresar el siguiente texto: /run local f = GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end Esto les devolvera la ubicacion actual del puntero del mouse, la cual es la misma que se utiliza para el comando /click. Condicional [stance:#]: Este Condicional chequea si estas en una sierta forma. Por ejemplo las formas del druida, o el Sigilo, o los Modos de un warrior. Las stances son: Guerrero: 6 - Forma de Vuelo 1 - Actitud de Batalla 2 - Actitud Defensiva Picaro: 3 - Actitud Rabiosa 1 - Sigilo Druida: Sacerdote: 1 - Forma de Oso 1 - Forma de las Sombras 2 - Forma Acuatica 3 - Forma Felina Chaman: 4 - Forma de Viaje 1 - Forma de Lobo Fantasmal 5 - Forma de Arbol Entonces, un ejemplo de este condicional seria: /cast [nostance] Forma de Oso Lo cual, si no estoy en ninguna forma, me transformaria en oso. Utilizar el Focus: Utilizar el comando /focus es extremadamente util para lidiar, por ejemplo con 2 enemigos a la vez, lo que se hace es asignar un foco a un objetivo, para luego poder realizar acciones sobre el sin tener que cambiar nuestro objetivo actual. El comando es: /focus [unidad] Un Macro muy utilizado es, luego de hacer focus a un enemigo: /gt Casteando Polimorfia a %focus. No Atacar /cast [target=focus] Polimorfia Lo que hariamos es castear Poliforfia sobre el focus, sin cambiar de objetivo. Para limpiar el Focus se utiliza el comando /clearfocus. Y creo que ya no hay nada mas que decir, solo que espero sus comentarios sobre el post.