월드 오브 워크래프트 매크로 편집, 전문가에게 해결을 요청하세요.
함수를 정의하시겠습니까?
/run function SIS_M(a,b,c,d,e,f,g,type) --채팅 메시지를 보내기 위한 SIS_M 함수 정의
p>
SendChatMessage( --호출된 이 메서드는 "[HH:mm:ss] [AA]의 [BB]가 [CC]의 [DD]를 중단했습니다."와 같은 문자열을 보내는 데 사용됩니다.
"[" --타임스탬프에 대괄호 추가
..date("%H:%M:%S",a) --타임스탬프 형식 지정, 매개변수 a는 16진수 시간을 저장합니다. 현재 획득한 메시지
.."] [" -- 타임스탬프와 메시지 사이에 공백을 둡니다.
..b --매개변수 b는 플레이어 1의 이름을 저장합니다. p>
.."]\124cff71d5ff\124Hspell:" --플레이어 1이 시전한 스킬에 링크 코드를 추가합니다.
..d --매개변수 d는 스킬 시전의 ID 값을 저장합니다. by 플레이어 1
.."\124h[" --플레이어 1이 시전한 스킬 이름에 대괄호를 추가합니다.
..e - -매개변수 e는 플레이어의 이름을 저장합니다. 플레이어 1이 시전한 스킬
.."]\124h\124r Interrupted [" --중간에 "interrupted"를 추가합니다.
.c --매개변수 c는 이름을 저장합니다. of player 2
.."]\124cff71d5ff\124Hspell:" --플레이어 2가 시전한 스킬에 링크 코드를 추가합니다.
.f --매개변수 f는 ID를 저장합니다. 플레이어 2가 시전한 스킬의 값
.."\124h[" --플레이어 2가 시전한 스킬 이름에 대괄호를 추가합니다.
..g --매개변수 g는 플레이어 2가 시전한 스킬의 이름을 저장합니다.
.."]\124h\124r.", --끝에 마침표를 추가하고,
유형 --두 번째 SendChatMessage의 매개변수는 채팅 정보를 보내는 방법을 지정합니다.
) --문자열을 결합한 후 채팅 정보를 보냅니다.
end --함수 정의의 끝입니다.
두 번째 매크로
/run function EV_M(...) -- 전투 기록을 필터링하고 주문 시전을 방해하는 전투 기록만 남기는 EV_M 함수를 정의합니다. EV_M 함수의 매개변수는 "..."로 LUA 언어의 특수 정의 방식으로 매개변수 개수가 불확실함을 나타냅니다.
local a,v,_,b,_, _,c,_ ,d,e,_,f,g=...; --전투 기록에서 순서대로 데이터를 얻기 위해 일부 임시 변수를 정의합니다. "_" 변수는 LUA 예약 변수로 일반적으로 사용됩니다. 다중 할당을 위한 임시 변수 p>
if (v=="SPELL_INTERRUPT" and SIS_M) then -- 임시 변수 v에서 얻은 메시지 유형이 "SPELL_INTERRUPT"이고 SIS_M 함수가 정의된 시기를 결정하고 if
SIS_M(a,b,c,d,e,f,g,"YELL")에서 명령문을 실행합니다. --주문 시전 프롬프트의 정보 문자열을 중단하려면 SIS_M 조합을 호출하세요. , 그리고 "YELL"(고함을 지르다) 형태로 보내세요.
end --if 문의 끝
end --함수 정의의 끝.
세 번째 매크로
/run if (MSG_F 아님) then -- MSG_F 프레임이 생성되었는지 확인
CreateFrame("Frame", "MSG_F ",UIParent); --메시지를 수신할 MSG_F 프레임워크 생성;
end --if 문의 끝
MSG_F:RegisterEvent("COMBAT_LOG_EVENT"); --MSG_F 메시지의 경우 프레임워크 등록에 의해 수신된 유형은 "COMBAT_LOG_EVENT"입니다.
MSG_F:SetScript( --MSG_F에 대한 이벤트를 설정하기 위해 실행된 스크립트
"OnEvent", --어떤 MSG_F 이벤트를 지정합니다. 스크립트 설정, 여기서는 "OnEvent"로 설정,
function(_,_,...) -- 함수 정의가 시작되고 매개변수 1과 2는 사용되지 않으며 LUA 예약 변수에 의해 수신됩니다.
p>
if (EV_M) then --if는 Lua 오류 메시지가 표시되는 것을 방지하고 두 번째 매크로가 사용되었는지 확인하는 데 사용됩니다.
EV_M(...) -- 호출 EV_M 함수 매칭 메시지를 받은 후 "YELL" 형식으로 채팅 메시지를 보냅니다.
end --end of if 문의
end --end of function 정의
) --SetScript가 종료됩니다.
위 단락에서는 이 세 가지 매크로의 기능을 각각 설명합니다. 물론 이 매크로의 효과에 만족하지 못하는 사람도 있을 수 있으므로 다음 내용을 시도해 보는 것이 좋습니다.
● 큰 소리로 외치는 것이 채팅 기록에 표시하는 것보다 더 나쁘다고 생각하는 사람들은 첫 번째 매크로를 다음과 같이 변경할 수 있습니다.
/run function SIS_M(a, b,c,d,e,f,g,_) DEFAULT_CHAT_MESSAGE:AddMessage("["..date("%H:%M:%S",a).."] ["..b.." ]'s\124cff71d5ff\124Hspell:"..d.."\124h["..e.."]\124h\124r ["..c.."]'s\124cff71d5ff\124Hspell:"..을 중단했습니다. f.."\124h["..g.."]\124h\124r.");end
● 어떤 사람들은 이 매크로 세트가 좋다고 생각합니다. 투기장. 주문을 발동한 사람은 투기장에 있는 적들이 그러한 정보를 보는 것을 원하지 않습니다. 그는 어떻게 해야 합니까? 상관없습니다. 두 번째 매크로를 변경하세요(인터럽트 캐스팅 프롬프트 매크로의 이전 버전이 세 번째 매크로로 변경되었다는 점에 유의하세요).
/run function EV_M(...) local a,v ,_, b,_,_,c,_,d,e,_,f,g=...;if (v=="SPELL_INTERRUPT" 및 SIS_M) 그러면 SIS_M(a,b,c,d,e ,f, g,"RAID");end end
이전 두 번째 매크로와 비교
/run function EV_M(...) local a,v,_,b, _,_,c,_,d,e,_,f,g=...;if (v=="SPELL_INTERRUPT" 및 SIS_M) 그러면 SIS_M(a,b,c,d,e,f,g, "YELL");end end
마지막 "YELL"이 "RAID"로 변경된 것을 볼 수 있습니다. WOW에는 여러 가지 채팅 방법이 있다는 것을 우리는 모두 알고 있습니다. " 말하기", "외침", "분대", "팀", "길드", "전장" 등을 포함합니다. 여기서 보낼 채팅 방법을 지정할 수 있습니다.
다음은 이 매크로 세트에 사용할 수 있는 모든 채팅 방법 목록입니다.
SAY say(/s)
EMOTE 표현(/e)
PARTY 팀 (/ p)
BATTLEGROUND (/bg)
GUILD (/g)
OFFICER (/o)
YELL 외침(/y)
RAID 팀(/ra)
RAID_WARNING 팀 알람(/rw)
설명하기가 좀 귀찮네요 다른 설명 없이 제가 직접 설명합니다