
기본적인 것들을 배웠으니 이제 뭔가 해봅시다.
이 글을 다 보시면

애드온의 창을 명령어로 열고, 버튼을 통해 닫을 수 있게 됩니다.

이전 글에서 소개한 AddOn Studio를 사용하겠습니다.
먼저 프로젝트를 하나 만들고 기본으로 있는 Frame1의 크기를 조정해주세요.

오른쪽의. toc파일은 일단 무시하세요.
맨 왼쪽 Solution Explorer에서 프로젝트 이름을 우클릭하시고 다음과 같이 New Item... 을 눌러줍시다.
저는 zzz_addon이란 이름으로 프로젝트를 만들었습니다.
그러면 인게임 애드온 메뉴에서 하단에 위치할테니 더 찾기 쉬워지겠지요.

Lua파일을 하나 만들어줍시다.
이름은 맘에드는거로 하시죠.

그다음. toc파일에서 방금 추가한 lua 파일을 적어줍니다.

이제 lua 파일을 수정하겠습니다.
다음과 같이 적어주세요.
SLASH_TEST1 = "/test1"
SLASH_TEST2 = "/addontest1"
SlashCmdList["TEST"] = function(msg)
if msg=="off" then
Frame1:SetAlpha(0)
elseif msg=="on" then
Frame1:SetAlpha(1)
end
end
사용자가 /test1 off를 입력하면 해당 프레임(이곳에서는 Frame1입니다)의 알파 값을 0으로 바꿉니다. 투명하게 만들어준다고요.
사용자가 /test on을 입력하면 해당 프레임의 투명화를 풀어줍니다.
다 작성하셨으면 빌드하는 것을 잊지 마세요.
이제 인게임으로 가서 확인을 해 봅시다.

잘 되는군요!
그런데 채팅창으로 프레임을 열긴 했지만 닫는 것도 굳이 그래야만 할까요?
x버튼을 통해 창을 닫는다면 더 편할 거 같군요.

버튼을 추가해줍시다.

버튼을 클릭한 후 Text 속성을 변경하여 버튼에 들어갈 텍스트를 편집할 수 있습니다.
저는 종료로 하겠습니다.

그리고 버튼의 최상위 요소(FrameXML Tree View에서 선택할 수 있습니다)를 선택하고 번개모양의 탭으로 이동한 후 OnClick을 더블클릭해주세요.

그럼 다음과 같은 lua 파일이 열립니다.
function Button1_OnClick()
Frame1:SetAlpha(0)
end
해당 코드를 추가해주세요.

.toc 파일에도 해당 lua 파일을 추가해 줍시다.
이제 빌드하고 인게임으로 가봅시다.

잘 작동하는군요.
그런데 매번 로그인할 때마다 해당 창이 계속해서 열리는 게 맘에 안 드네요.

프레임을 누르고 알파 값을 0으로 수정해줍시다.

원하는 대로 작동하는군요.
접속하면 처음에는 숨겨져 있다가 사용자가 입력한 명령어로 창을 띄우고 버튼으로 닫을 수 있게 되었습니다.
하지만 프레임은 사실 계속 띄워져 있는 것입니다.
알파만 바꾸었으니까요. 그래서 프레임이 있는 곳 위에 마우스 우클릭을 하고 시점이동을 하며 이동하려 한다면 시점이 돌아가지 않을 것입니다.
프레임의 열고 닫기는 Hide(), Show()입니다.

프레임의 Alpha 속성은 다시 1로 바꾸어주고 Hidden은 True로 설정해 줍시다.
이러면 로딩을 하고 나서 보이지 않을 것입니다. 사용자의 명령어로만 창이 보이게 될 것입니다.

버튼 클릭 이벤트 함수는 이렇게 바꿔줍시다.

생성했던 lua 파일은 이렇게 바꿔줍시다.
이제 off일 때는 필요가 없으니까요.

이제 잘 되는군요.
만족스럽습니다.
와우는 채팅으로 lua 스크립트를 이용할 수 있습니다.
이 텍스트를 채팅창에 입력해보세요.
/script GameMenuButtonRatings:SetAlpha(0)
그 후. esc를 눌러보면

메뉴에 게임 등급을 보여주는 버튼이 애드온 아래에 있었는데 없어졌군요.
기본 블리자드 UI와 상호작용 또한 가능합니다.
상호작용 하고 싶은 UI의 이름은 이렇게 알 수 있습니다.
https://www.curseforge.com/wow/addons/varrendevtool
위 링크로 가서 애드온을 설치해주세요.
그런 다음 채팅창에 /vdt라고 입력을 하면

이런 창이 열립니다.
/fstrack 버튼을 눌러보세요.

마우스를 움직일 때마다 초록색으로 마우스 오버된 UI를 표시해주고
해당 UI의 이름이 무엇인지 알려줍니다.
-->로 표시된 ObjectoveTrackerFrameScaleMover가 지금 마우스 오버된 UI네요.
'월드오브워크레프트 > 애드온 제작' 카테고리의 다른 글
| 와우 애드온 제작 ) 채팅 명령어 (0) | 2022.01.10 |
|---|---|
| 와우 애드온 제작 ) toc - 메타데이터 (0) | 2022.01.10 |
| 와우 애드온 제작 ) 제작 환경 (0) | 2022.01.10 |
댓글