Los macros y tú.

Ir abajo

Los macros y tú.

Mensaje  HowlAntonDraven el Vie Jul 17, 2015 2:00 pm

Creación de Macros.

Primero que nada, cabe aclarar que esta guía anda rondando por la web en otros lados. Ademas, como fue hecha durante la BC, hay algunas cosas que pueden estar desactualizadas, si encuentran algo mas, avisen y buscamos soluciones.

Primero lo Primero: Lógica de Programación.
Para el que no sabe, un macro es un pedazo de código que reconoce el wow, por lo tanto, para poder crearlo, se debe conocer la base de todo lenguaje de programación: La Lógica.
Acá es donde la cabeza de uno empieza a trabajar. La lógica de un lenguaje comprende las acciones que el código debe hacer cumplir. Para hacer mas claro esto, se puede pensar en una acción cotidiana, como por ejemplo, leer un libro. Tenemos que seguir unos pasos básicos, 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 programación, 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 lógica:

/comando [condicionales] Accion/Descripcion; [condicionales] Accion/Descipcion;

Los Condicionales son totalmente OPCIONALES, los cuales los voy a explicar mas tarde.

Comandos a tener en cuenta

Bueno, ya sabiendo cual es la Lógica 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 paréntesis: Ej. (Rango 1) )
/stopcasting - Cancela el casteo de un Hechizo
/castrandom <Hechizo1>, <Hechizo2>, <Hechizo3> - Lanza un Hechizo aleatorio, los Hechizos son divididos por Comas (,)
/castsequence <Hechizo1>, <Hechizo2>, <Hechizo3> - Lanza Hechizos en Orden, uno por vez que se activa el Macro (no es afectado por el GCL)
/equip <Item> - Equipa un Item
/equipslot <ranura> <Item> - Equipa un item en una ranura especifica (útil para Abalorios y Anillos)*
/use <Item> - Utiliza un Item
/use <ranura> - Utiliza un Objeto en una Ranura*
/use <NumBolsa> <NumRanura> - Utiliza un objeto en una bolsa*
/userandom <Item1>, <Item2>, <Item3> - Utiliza un Item Aleatoriamente
/cancel - Cancela la Acción en Curso
/cancelaura <Aura> - Cancela un aura (buff) Activo
/focus - Establece un Foco*
/stopmacro - Detiene la Ejecución del Macro
/cancelform - Cancela la Forma Actual (Ej: un Druida en forma de Oso)
/changeactionbar <Num> - Cambia la Barra de Acción
/swapactionbar <Num1> <Num2> - Intercambia las Barras de Acción
/startattack [unidad] - Empieza a atacar a una Unidad, ( "[Unidad]" es cambiado por una unidad especifica, si no se pone, ataca al objetivo)
/stopattack - Detiene el Ataque
/petagressive - Modo agresivo del Pet
/petpassive - Modo pasivo del Pet
/petstay - Deja a la Mascota Quieta
/petattack - Manda al Pet a Atacar
/petautocaston <Hechizo> - Activa el Autocast de un Hechizo
/petautocastoff <Hechizo> - Desactiva el Autocast de un Hechizo
/petfollow - Activa el Seguir de la Mascota
/assist - Seleciona el "Objetivo de tu Objetivo" (osea, asiste a tu objetivo XD)
/clearfocus - Elimina el foco actual
/cleartarget - Elimina el Objetivo Actual
/target <nombre>/Focus - Selecciona como objetivo a alguien o a tu foco.
/targetenemy - Selecciona a un enemigo
/targetfriend - Selecciona a un Amigo
/targetlastenemy - Selecciona al ultimo enemigo seleccionado
/targetlastfriend - Selecciona al ultimo amigo seleccionado
/targetlasttarget - Selecciona a tu objetivo anterior
/targetparty - Selecciona a alguien de tu grupo
/targetraid - Selecciona a alguien de tu raid
/say <mensaje> - Dice un mensaje
/[numero_de_canal] <mensaje> - Dice un mensaje por el canal
/g <mensaje> - Dice un mensaje por la guild
/rw <mensaje> - Alerta de banda
/gp <mensaje> - Mensaje en el Grupo
/ra <mensaje> - Mensaje en la Raid
/dismount - Desmontarse de la montura

*Los Comandos Marcados se explicaran mas detalladamente.

Ahora, los Condicionales:

Bueno, ya sabiendo que disponemos de los comandos, ahora voy a dar una breve explicación 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] Conflagrar; Inmolar

Lo que esto dice es: "Si tengo apretado la tecla Alt, casteo Conflagrar, sino (acá es donde se toma en cuenta el Punto y Coma), casteo Inmolar"
Entonces, se puede decir que "[modifier]" 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 actúa el condicional1, si el valor es positivo, el comando alli finaliza, sino, utiliza el condicional2, y así sucesivamente por cuantos condicionales tengamos.

Ahora, un par de condicionales:

[combat] - Evalúa si estas o no en combate
[help] - Evalúa si el objetivo es amistoso
[harm] - Evalúa si el objetivo es hostil
[equipped:<Ranura>/<tipoItem>] - Evalúa si tenes equipado X cosa*
[indoors] - Evalúa si estas dentro de algún lugar
[outdoors] - Evalúa si estas al aire libre.
[button:<num_boton>] - Evalúa el botón del mouse presionandose
[modifier] - Evalúa si se esta presionando un botón modificador, los cuales son Ctrl, Alt o Shift (el código quedaría, por ejemplo [modifier], si solo se utiliza [modifier] Evalúa si se presiona cualquiera de las 3 teclas)
[mounted] - Evalúa si estas montando
[swimming] - Evalúa si estas nadando
[flying] - Evalúa si estas volando
[flyable] - Evalúa si es un terreno apto para volar
[pet:<nombre_mascota>] - Evalúa si tener X pet activa
[stealth] - Evalúa si estas en Sigilo
[exists] - Evalúa si el objetivo existe
[dead] - Evalúa si el objetivo esta muerto
[actionbar:<numero_barra_de_acción>] - Evalúa la barra de acción activa
[stance:#] - Evalúa en que Forma o Actitud te encuentras
[channeling:<Hechizo>] - Evalúa si se esta canalizando o casteando un hechizo, el cual puede especificarse. No es obligatorio hacerlo.
[party] - Evalua si tu objetivo esta en tu Grupo
[raid] - Evalua si tu objetivo esta un tu Banda
[group/raid] - Evalua si estas en un grupo o banda
[pet:<Pet>] - Evalua s¡ tenes una pet activa, y, en el caso de especificarlo, evalua la clase de la misma
[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; Cólera 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/shift] Conflagrar; Inmolar

Esto me indica que si tengo apretado la tecla Alt o la tecla Shift, me devolverá 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 código esta incorrecto:

/cast [modifier:alt/button:2] Escudo Sagrado; < MUY MAL!!!!!

Lo que deberiamos haber hecho es:

/cast [modifier] [button] 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 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.

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] 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)
Bag (bolsa)
Shirt (camisa)
Chest (pechera)
Back (espalda)
Feet (pies)
Finger (dedo)
Hands (manos)
Head (cabeza)
Held In Off-hand (sotenido en la zurda)
Legs (piernas)
Neck (cuello)
Ranged (a distancia)
Off Hand (zurda)
Shoulder (hombros)
Tabard (Tabardo)
Thrown (arrojadiza)
Trinket (alhaja)
Waist (cintura)
One-Hand (una mano)
Main Hand (mano diestra)
Wrist (muñeca)

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 erróneo 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 Descripción 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 paréntesis, como puede ser Fuego Férrico (Feral), ya que el macro reconoce a (Feral) como el rango de Hechizos. Para solucionar esto se debe agregar un paréntesis "()" al final del hechizo, quedando el macro de esta manera:

/cast Fuego Féerico(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.

Como Sentencia y Sello de justicia, por ejemplo, no comparten el GCD, podemos castearlos juntos:

/cast Sello de Justicia
/cast Sentencia

Pero, por ejemplo, si se quiere hacer el macro:

/cast Maldición de Agonía
/cast Corrupción

No seria efectivo ya que el hechizo Maldición de Agonía tiene GCD y la comparte con el Hechizo Corrupción. 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 comparten 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.

Ej:
/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:
1 - Actitud de Batalla
2 - Actitud Defensiva
3 - Actitud Rabiosa

Druida:
1 - Forma de Oso
2 - Forma Acuatica
3 - Forma Felina
4 - Forma de Viaje
5 - Forma de Arbol
6 - Forma de Vuelo

Picaro:
1 - Sigilo

Sacerdote:
1 - Forma de las Sombras

Chaman:
1 - Forma de Lobo Fantasmal

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.

Cabe mencionar que los comandos varían si tu cliente está en inglés.

-Anton-

_________________
Z?
QUESTION SLEEP
avatar
HowlAntonDraven
Oficial
Oficial

Mensajes : 11
Fecha de inscripción : 08/07/2015

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.