와우 애드온 제작 ) 채팅 명령어
와우는 엄청난 채팅 명령어들을 지원합니다.
많이 사용하는 /다시불러오기, /reload 같은 것부터 Lua스크립트까지 채팅으로 실행할 수 있지요!
/script function f() for a=1,7,1 do print(a) end end f()
한번 이 문자열을 와우의 채팅창에 입력해보세요.
1부터 7까지 순서대로 채팅창에 출력이 됩니다.
우리는 이전에 만들었던 애드온에 채팅 명령어를 추가할 것입니다.
사용자가 /명령어 를 입력하면 특정 Lua함수가 실행되게 말이지요.
채팅창에 /명령어로 옵션 창을 열 수 있는 애드온들을 많이 접해보셨을 겁니다. 다들 이런 식으로 동작하는 것입니다.
일단 우리는 간단하게 /명령어 입력 시, print() 함수를 호출하여 확인부터 하도록 하겠습니다.
이전에 만들었던 애드온의. lua 파일입니다.
버튼을 누를 때 message() 함수를 호출하여 화면에 팝업창을 그리는 기능이 있었습니다. 그걸 전부 지우고 사진과 같이 입력해주세요.
SLASH_TEST1 = "/test1"
SLASH_TEST2 = "/addontest1"
SlashCmdList["TEST"] = function(msg)
print("Hello World!")
end
앞부터가 아니라 7번째 줄부터 봅시다.
SlashCmdList["TEST"]에 함수가 하나 들어있네요.
[] 안의 TEST가 포함된 SLASH 명령어가 입력되면 해당 함수를 호출하는 겁니다.
SlashCmdList["TEST"]는 함수를 담고 있습니다.
SLASH_명령어들은 TEST라는 문자열을 변수의 이름으로 포함하고 있습니다.
이때 SLASH명령어에 들어있는 특정 문자열(이곳에서는 /test1과 /addontest1입니다)이 입력되면
SlashCmdList["TEST"]가 실행됩니다.
만약 SlashCmdList["TETST"]라면 SLASH_TETST의 채팅 명령어로 함수를 호출할 수 있겠지요.
입력을 마쳤으면 저장을 하고 인게임에서 /reload, /다시불러오기를 입력해봅시다.
그리고 /test1, /addontest1을 입력해보세요.
잘 실행이 되는군요.
이 스크립트에서 함수의 인자로 들어가는 msg는 채팅 명령어와 같이 입력된 문자열입니다.
코드를 이렇게 수정해보시죠.
SLASH_TEST1 = "/test1"
SLASH_TEST2 = "/addontest1"
SlashCmdList["TEST"] = function(msg)
print("Hello World!")
if msg=="TEST" then
print("TEST")
end
end
그런 다음 저장을 하고 UI를 다시 불러온 다음
이번에는 /test1 TEST를 입력해봅시다.
채팅 명령어와 같이 입력된 문자열이 화면에 잘 출력이 됩니다.
이렇게 추가 문자열로 각각 다른 기능을 할 수 있게 스크립트를 작성할 수도 있답니다.