Cómo escribir macros en World of Warcraft
Expresión de juicio, Expresión de juicio (conjunto de opciones): se compone de varios elementos de juicio y es una expresión de valor de verdad encerrada entre corchetes []. Heredado del modelo de seguridad, es la única forma de juicio a la que se le permite operar en un entorno protegido.
1. Reglas básicas para escribir macros
La aplicación más importante de las macros es el lanzamiento de hechizos con juicio, que también es el modelo de aplicación principal a continuación. Una macro típica de este tipo se puede resumir en la siguiente forma:
Código(c):
/cast [Expresión 1-1][Expresión 1-2]Habilidad 1; [Expresión 2] Habilidad 2; Habilidad 3
--Modelo macro
[Elemento 1, Elemento 2, Elemento 3, ...]
-- Modelo de expresión
--Nota: La unidad target= o @ definida en la expresión no es una condición de juicio, pero vuelve a especificar el objeto para todos los juicios posteriores relacionados con el objetivo y el lanzamiento final de habilidades. Por ejemplo, después de especificar @mouseover, los juicios posteriores como ayuda/existe/muerto se basarán en la unidad sobre la que se encuentre el mouse.
Bajo este modelo, analice:
1. Lógica y orden de juicio (¡La Ley 1,! es extremadamente importante)
Cuando hay juicios involucrados, hay verdad. valor, pero no se deje intimidar por los fuertes matices matemáticos y de programación de la palabra. En resumen, hay dos oraciones:
<1>La relación entre los elementos entre corchetes es Y, separados por comas. Solo si cada elemento es verdadero, todo el corchete (expresión) es verdadero. . No existe ningún requisito de pedido entre los artículos entre corchetes.
<2>Hay una relación OR entre cada corchete, y el orden de juicio es de izquierda a derecha. Cuando se determina que el primer corchete es verdadero, el juicio finaliza y todos los elementos posteriores. son ignorados.
Esta es la razón por la que la mayoría de las macros son incorrectas/inutilizables/confusas. Al escribir macros, debe colocar juicios con condiciones fuertes (o alta prioridad) al principio y juicios débiles (de propósito general) al final. Por ejemplo, ayer respondí una pregunta de alguien en el área de preguntas y respuestas. Su macro
Código(c):
1:#showtooltip
2:/. lanzar [nomod,spec:2]Impacto infernal;[nomod,target=mouseover,exists,harm,spec:2]Impacto infernal
No se puede lanzar sobre el objetivo que se encuentra sobre el mouse. La razón es que la expresión [nomod,spec:2] es más débil que la última
[nomod,target=mouseover,exists,harm,spec:2], que no sólo no requiere teclas modificadoras y segunda especialización, al mismo tiempo, debe haber un objetivo atacable al pasar el mouse para que sea verdadera, lo que significa que cuando lo último es verdadero, lo primero debe ser verdadero.
De acuerdo con <2> arriba, en orden de izquierda a derecha, la expresión anterior siempre será verdadera primero, por lo que Infernal Impact no se puede lanzar sobre el objetivo que flota. El método de modificación es muy simple, simplemente intercambie las posiciones de los dos juicios:
Código (c):
1:#showtooltip
2:/cast [ nomod,target=mouseover,exists,harm,spec:2]Impacto Infernal;[nomod,spec:2]Impacto Infernal
3:--Macro Modificado
Por supuesto que yo En la respuesta también se proporciona un plan de optimización, y cómo optimizarlo se describirá en detalle más adelante.
2. Integración de habilidades (Regla 2)
Solo existe un formato para integrar múltiples habilidades en un comando /cast y juzgar y lanzar automáticamente diferentes habilidades en diferentes condiciones: Usar. punto y coma para separar diferentes habilidades. Para obtener más detalles, consulte el modelo macro propuesto al comienzo de este capítulo.
Cabe señalar que un /cast solo puede lanzar como máximo una habilidad bajo cualquier circunstancia, y las <2> reglas de orden de juicio mencionadas anteriormente aún se siguen entre corchetes.
3. Acumulación de habilidades (Regla 3)
Si deseas liberar dos o más habilidades al mismo tiempo con un solo clic, debes tener varias líneas de comandos /cast. es acumulación de habilidades. Esta macro se usa generalmente para habilidades explosivas, beber medicamentos, abrir joyas y habilidades de apertura que deben completarse al mismo tiempo.
La regla es: solo puedes tener como máximo una habilidad que genere/se vea afectada por GCD. Afortunadamente, las habilidades explosivas, las pociones y otros elementos están casi todos diseñados para no ocupar GCD.
Código(c):
1:#showtooltip
2:/lanzar mejora arcana
3:/usar 13< / p>
4:/use 14
Dicha macro es factible porque las baratijas y [Mejora Arcana] en sí no generan GCD, incluso agregando dos líneas
Código(c ):
/cast Calmness
/cast Arcane Blast
también es legal. Sin embargo, las macros de la siguiente forma son ilegales:
Código(c):
1:#showtooltip
2:/cast exorcism
3:/cast Judgment
4:/cast Crusader Strike
Debido a que los tres generan GCD y/o se ven afectados por GCD, el efecto final solo es equivalente a La primera línea [El exorcismo] es útil. No espere que este método pueda lograr una transmisión de habilidades basada en prioridades.
4. Sustitución de habilidades (Regla 4)
La sustitución de habilidades es un mecanismo muy interesante introducido desde CTM. Este mecanismo permite que una [Habilidad Básica] sea reemplazada por otra [Habilidad Sustituta] bajo circunstancias especiales, e incluso en el caso de sustitución, cuando la [Habilidad Básica] se lanza a través de un comando macro, se dirigirá automáticamente al [ Habilidad sustituta], que finalmente El resultado es que [Habilidad de reemplazo] se lanza normalmente y el ícono de la macro cambiará en consecuencia.
Este mecanismo tiene dos situaciones:
1) Sustitución unidireccional, /cast [habilidad de reemplazo] no lanzará la habilidad básica, pero /cast [habilidad básica] es Universal en cualquier situación.
Ejemplo: La [Palabra Santa: Castigo] del Divino Sacerdote se convierte en [Estática] y [Bendición] debajo de la rueda amarilla y la rueda azul, siempre que se use la macro.
Código (c):
1:#showtooltip
2:/cast Holy Word: Punishment
puede cambiar automáticamente las habilidades según el color de la rueda, pero porque esto es [Castigo] se reemplaza en una dirección. Por otro lado, si la macro escribe [silencio] o [bendecir], la habilidad no se liberará debajo de la rueda roja.
2) Equivalencia bidireccional, [Habilidades Básicas] y [Habilidades de Reemplazo] son completamente equivalentes, como la misma habilidad. En cualquier caso, el resultado de usar una macro para lanzar cualquier habilidad es liberar. la habilidad actualmente activada. Por ejemplo, [Corrosión] y [Sacrificio], los jugadores de las SS pueden probarlos con diferentes talentos.
Este mecanismo es muy beneficioso para escribir macros. No necesitamos abrir otra macro para reemplazar la habilidad. Profundizando más, es necesario destacar las siguientes dos habilidades:
Código(c):
1:#showtooltip
2:/cast Secret Bomb p>
3:--Esta habilidad corresponde a [Tormenta del Vacío], [Bomba de Hielo] y [Bomba Móvil] en los talentos de nivel 75 del Mago. [Bomba Arcana] ha sido reemplazada por One Direction.
Código(c):
1:#showtooltip
2:/lanzar Holy Burst
3:--Esta habilidad corresponde El talento de nivel 90 del sacerdote también es un reemplazo unidireccional.
Si otras profesiones tienen habilidades de talento básicas similares, no dudes en agregarlas.
2. El alma de escribir macros: lógica y prioridad
El autor y muchas personas en mi círculo han dicho que escribir macros en realidad tiene poco que ver con la programación. un poco de matemáticas. Especialmente en aquellas macros de integración de habilidades, debe tener una buena idea de qué habilidad es la prioridad en diversas condiciones de juicio.
En realidad, esta es la deducción de la regla uno <2> anterior. En esencia, todavía organiza toda la secuencia de habilidades y juicios en orden de prioridad. Debido a esto, la Regla 1 anterior es la regla más importante para las macros, y la prioridad es el alma de la escritura de macros.
Código(c):
1:#showtooltip
2:/cast [help,dead][mod:shift,help][mod:shift ,@player]Piedra del alma;[mod]¿Alma?
Enlace;Resolución interminable
3:/targetlasttarget [help,dead]
4:--Para ejemplo Esta macro de brujo es lógicamente equivalente a:
5:--Si [el objetivo está muerto y puede ser asistido] o [mantenga presionada la tecla Mayús y se puede ayudar al objetivo] u [otras situaciones en las que se mantiene presionada la tecla Mayús ] Auto] lanzar [Piedra del Alma]
6:--De lo contrario, si [se presiona cualquier otra tecla modificadora], lanzar Enlace del Alma
7:--De lo contrario, lanzar cualquier en otro caso, Shield Wall
8:--Además, si [el objetivo muere y puede ser ayudado], también volverá al objetivo anterior. El propósito es cambiar el objetivo de nuevo al monstruo. después de que se reanude la batalla
Alguien puede preguntar, no entiendo la cadena [help,dead][mod:shift,help][mod:shift,@player]. ¿Primero y luego otro? Esto implica la cuestión de la prioridad.
Primero, [help,dead] especifica la situación de [el objetivo está muerto y puede ser asistido], que tiene la máxima prioridad. Siempre que se cumplan estas dos condiciones, cualquier otra condición recuperará el objetivo. independientemente de que se cumplan o no.
En segundo lugar, el juicio [mod:shift,help] significa [mantén presionada la tecla Mayús y el objetivo puede ayudar], pero también tiene una condición oculta. Porque para juzgar a este nivel, el primero [ayuda, muerto] primero debe ser falso, es decir, cuando [el objetivo no puede ser asistido o el objetivo no está muerto].
Entonces, de hecho, este juicio debería ser [(el objetivo no puede ser asistido o el objetivo no está muerto) y mantener presionada la tecla Mayús y el objetivo puede ser asistido]. El verdadero valor del juicio real debe ser [El objetivo es inmortal y mantiene el cambio y el objetivo puede ayudar], si se cumple esta condición, coloque la piedra del alma en el objetivo.
Nuevamente, [mod:shift,@player], aquí solo se usa un juicio, es decir, la modificación de turno. Como se mencionó anteriormente, @player no es una condición de juicio. Pero debido a que el juicio anterior ya se eliminó al mantener presionada la tecla Mayús, el juicio aquí significa [arrojar piedras del alma sobre ti mismo mientras mantienes presionada la tecla Mayús].
Entonces, [mod] es un juicio de tecla modificadora generalizada, que es cierto cuando se presiona uno o más de alt/shift/ctrl. Por supuesto, el cambio fue eliminado en el juicio anterior, así que lo que significa aquí es [presione uno o dos de alt/ctrl], lo que equivale a [presionar cualquier otra tecla modificadora] para lanzar enlace de alma.
Finalmente, la determinación sin fin no tiene juicio, es eterna. Es decir, Determinación infinita se lanzará bajo cualquier otra condición.
El ejemplo anterior es un poco complicado. A continuación se utilizará un ejemplo relativamente simple para ilustrar cómo utilizar este modo para escribir macros.
Macro de integración de contador de hechizos de mago y contador de enfoque/maldición flotante
Los requisitos son: el enfoque puede atacar y presionar cualquier tecla modificadora resultará en un contraataque de enfoque si no se presiona ninguna tecla modificadora. Y el objetivo hostil es contrarrestar al objetivo. Colocar el mouse sobre el objetivo amistoso es eliminar la maldición. El objetivo es el objetivo amistoso para eliminar la maldición.
Lo primero es aclarar prioridades.
Entonces las prioridades después de la clasificación son:
Primera prioridad: enfoque para contrarrestar objetivos hostiles, tipo de juicio [mod,@focus,exists,harm]
Segunda prioridad: flotar puede ayudar al objetivo a maldecir, juzgar [@mouseover,exists,help]
Tercera prioridad: resolver la maldición de objetivos amigos, juzgar [ayuda] p>
La cuarta prioridad: Contramedidas contra objetivos hostiles, tipo juicio [daño]
La quinta prioridad: Contramedidas, sin tipo juicio (Hengzhen)
* Cabe señalar que el daño está relacionado con la ayuda, pero no es ayuda=sin daño o daño=sin ayuda. Daño significa que el objetivo puede atacar, ayuda significa que el objetivo puede ayudar (puede agregarle sangre y beneficios, etc. Además, hay un estado en el que no puede atacar ni ayudar, llamado "Pasivo").
Ahora puedes escribir la macro directamente, es decir:
Código(c):
1:#showtooltip
2: /cast [mod,@focus,exists,harm]Contrahechizo;[@mouseover,exists,help][help]Eliminar maldición;[harm]Contrahechizo;Contrahechizo
3:- -El #showtooltip en el La primera línea no es una línea de comando, su función es mostrar información relevante sobre las habilidades en el indicador del mouse.
Esta macro funciona de acuerdo con los requisitos, pero se puede seguir optimizando. Lógicamente hablando, las prioridades cuarta y quinta se pueden combinar y no es necesario utilizarlas con daño y ayuda. Entonces la macro final es:
Código(c):
1:#showtooltip
2:/cast [mod,@focus,harm]Contador de hechizos Control;[@mouseover,help][help]Eliminar maldición; Contramedida de hechizo
Información ampliada:
Plantillas de macros utilizadas habitualmente:
1. Macro híbrida de habilidades, con puntero para lanzar hechizos o utilizada para eliminar ventajas y combinaciones de habilidades ofensivas:
Código(c):
1:#showtooltip
2 :/cast [@mouseover,help]Habilidades de curación;[harm]Habilidades de ataque;Habilidades de curación
2. La curación apunta a la macro y no al objetivo:
Código (c):
1:#showtooltip
2:/cast [@mouseover,help][]Habilidades curativas
3. Macro de integración de teclas modificadoras clásicas :
p>Código(c):
1:#showtooltip
2:/cast [mod]Habilidad 1;Habilidad 2
o más Habilidades:
Código(c):
1:#showtooltip
2:/cast [mod:shift]Habilidad 1;[mod :ctrl] Habilidad 2;[mod]Habilidad 3;Habilidad 4
4. Macro de paso de página:
Código(c):
1:#showtooltip
2:/cast Skill
3:/changeactionbar n
Esta macro se ha roto recientemente, n puede ser 1-6.
5. Macro elegante, criterio de tecla modificadora doble/tecla modificadora triple:
Código(c):
1:#showtooltip
2:/cast [mod:alt,mod:ctrl,mod:shift] Habilidades
Intégralo tú mismo según sea necesario, este es el truco.
6. Uso sofisticado:
Dividir 1+alt y alt+1 (secuencia de teclas).
*1+alt significa mantener presionado 1 primero, luego presionar alt sin soltarlo, mantener presionado alt y soltar 1 (liberar la habilidad en este momento) y finalmente soltar alt.
Este uso requiere desactivar la opción hacer clic para transmitir en la configuración de la interfaz.
Vincula alt+1 en la combinación de teclas y coloca la habilidad 1 en este botón de acción
Crea una macro
Código(c):
1:#showtooltip
2:/cast [mod]Habilidad 2;Habilidad 3
Pon esta macro en la tecla 1.
El resultado es que alt+1 libera la habilidad 1, 1+alt libera la habilidad 2 y presionar 1 libera directamente la habilidad 3.