월드오브워크레프트/애드온 제작

와우 애드온 제작 ) 채팅 명령어

denofevil 2022. 1. 10. 13:51

와우는 엄청난 채팅 명령어들을 지원합니다.

많이 사용하는 /다시불러오기, /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를 입력해봅시다.

채팅 명령어와 같이 입력된 문자열이 화면에 잘 출력이 됩니다.

이렇게 추가 문자열로 각각 다른 기능을 할 수 있게 스크립트를 작성할 수도 있답니다.