Compilación de macros de World of Warcraft, solicite a expertos que la resuelvan.
¿Definir una función?
/ejecutar función SIS_M(a, b, c, d, e, f, g, tipo) --Definir función SIS_M para enviar mensajes de chat p>
SendChatMessage( --Este método llamado se utiliza para enviar una cadena como "[HH:mm:ss] [AA]'s [BB] interrumpió [CC]'s [DD]".
"[" --Agregar corchetes a la marca de tiempo
..date("H:M:S",a) --Formatear la marca de tiempo, se almacena el parámetro a La hora hexadecimal del mensaje obtenido actualmente
.."] [" -- Deje un espacio entre la marca de tiempo y el mensaje
..b --El parámetro b almacena el nombre del Jugador 1
.."]\124cff71d5ff\124Hspell:" --Añadir código de enlace a la habilidad lanzada por el jugador 1
..d --El parámetro d se almacena El valor ID de la habilidad lanzada por el jugador 1
.."\124h[" --Agrega corchetes al nombre de la habilidad lanzada por el jugador 1
..e --Parámetro e Almacena el nombre de la habilidad lanzada por el jugador 1
.."]\124h\124r Interrumpido [" --Agregar "Interrumpido" en el medio
..c - -El parámetro c almacena el nombre del jugador 2
.."]\124cff71d5ff\124Hspell:" --Agrega código de enlace a la habilidad lanzada por el jugador 2
..f - -El parámetro f almacena el valor de ID de la habilidad lanzada por el jugador 2
.."\124h[" --Agrega corchetes al nombre de la habilidad lanzada por el jugador 2
.. g --El parámetro g almacena el nombre de la habilidad lanzada por el jugador 2
.."]\124h\124r.", --Agrega un punto al final,
tipo -- El segundo parámetro de SendChatMessage especifica el método para enviar información de chat
); --Combinar cadenas y luego enviar información de chat
fin --Fin de la definición de la función;
La segunda macro
/ejecutar la función EV_M(...) --Defina la función EV_M para filtrar los registros de combate, dejando solo los registros de combate que interrumpen el lanzamiento de hechizos. Los parámetros de la función EV_M son "...", que es un método de definición especial del lenguaje LUA, que indica que el número de parámetros es incierto
local a, v, _, b, _, _, c, _, d, e, _, f, g=...; define algunas variables temporales para obtener datos de los registros de combate en orden. La variable "_" es una variable reservada de LUA y generalmente se usa como. una variable temporal para asignaciones múltiples p>
si (v=="SPELL_INTERRUPT" y SIS_M) entonces -- Determinar cuándo el tipo de mensaje obtenido por la variable temporal v es "SPELL_INTERRUPT" y la función SIS_M ha sido definida y ejecute la declaración en if
SIS_M(a, b, c, d, e, f, g, "YELL" --Llame a la combinación SIS_M para interrumpir la cadena de información del mensaje de lanzamiento de hechizos); , y enviarlo en forma de "YELL" (gritar).
fin --fin de la declaración if
fin --fin de la definición de función.
La tercera macro
/run if (not MSG_F) then -- Determina si se ha creado el marco MSG_F
CreateFrame("Frame", "MSG_F ",UIParent); --Crear marco MSG_F para recibir mensajes;
fin --Fin de la declaración if
MSG_F: RegisterEvent("COMBAT_LOG_EVENT"); --Para MSG_F El mensaje el tipo recibido por el registro del marco es "COMBAT_LOG_EVENT";
MSG_F: SetScript( --Script para configurar la ejecución del evento para MSG_F
"OnEvent", --Especifique qué evento MSG_F desea set Script, aquí configurado en "OnEvent",
function(_, _,...) -- comienza la definición de la función, los parámetros 1 y 2 no se utilizan y son recibidos por las variables reservadas de LUA p>
if (EV_M) then --if se usa aquí para evitar que aparezcan mensajes de error de Lua y para determinar si se ha usado la segunda macro
EV_M(...); llame a la función EV_M para que coincida Después de recibir el mensaje, envíe el mensaje de chat en forma de "YELL"
fin --fin de la declaración if
fin --fin de la función; definición
); --SetScript finaliza.
Los párrafos anteriores explican las funciones de estas tres macros respectivamente. Por supuesto, todavía recomiendo que pruebe el siguiente contenido, porque es posible que algunas personas no estén satisfechas con el efecto de esta macro.
● Algunas personas sienten que gritar en voz alta es peor que simplemente mostrarlo en su historial de chat, por lo que pueden cambiar la primera macro a esta:
/run function SIS_M(a, b, c, d, e, f, g, _) DEFAULT_CHAT_MESSAGE: AddMessage("["..date("H:M:S",a).."] ["..b.."]\ 124cff71d5ff \124Hspell: "..d.."\124h["..e.."]\124h\124r interrumpido ["..c.."]\124cff71d5ff\124Hspell: "..f.. "\124h[ "..g..."]\124h\124r.
"); fin
● Algunas personas piensan que este conjunto de macros es bueno. Puede recordarles a todos en la arena quién interrumpió el lanzamiento, pero no quieren que los enemigos en la arena vean esto. mensaje , ¿qué debo hacer? No importa, cambiar la segunda macro (tenga en cuenta que la versión anterior de la macro de solicitud de conversión de interrupciones se cambia a la tercera macro):
/ejecutar función EV_M(.. .) local a, v, _, b, _, _, c, _, d, e, _, f, g=... si (v=="SPELL_INTERRUPT" y SIS_M) entonces SIS_M(a, b , c, d, e, f, g, "RAID"); fin fin
Comparar con la segunda macro antes
/ejecutar función EV_M(...) local a, v, _, b, _, _, c, _, d, e, _, f, g=...; si (v=="SPELL_INTERRUPT" y SIS_M) entonces SIS_M(a, b, c, d, e, f, g, "YELL"); end end
Se puede ver que el cambio solo cambió el último "YELL" a "RAID". ¿Por qué se cambia así? WOW es poderoso. Hay varios métodos de chat, incluidos "Hablar", "Gritar", "Escuadrón", "Equipo", "Gremio", "Campo de batalla", etc. Aquí puede especificar qué método de chat usar para enviar. A continuación se muestra una lista de todas las macros que se pueden utilizar. Método de chat utilizado:
DECIR hablar (/s)
EMOTAR expresión (/e)
Equipo PARTY (/p)
Campo de batalla BATTLEGROUND (/bg)
Gremio GUILD (/g)
Oficial OFICIAL (/o)
Gritos YELL (/y)
Equipo RAID (/ra)
Alerta de equipo RAID_WARNING (/rw)
Handu explicaciones de otras personas, es un poco Me resulta problemático explicarme, así que no daré ninguna otra explicación.
p>