lua 매크로 실행안될 때 실행되게 만드는 방법
와우를 하다보니까 lua 파일 안에 자신만의 매크로를 만들어서 사용하는 유저들이 많이 있다. 그래서 나만의 매크로를 간단하게 만들어 보았다.
와우를 접속할 때 마다 적용되는 부분이 있고 적용되지 않는 부분이 생겨서 곰곰히 생각해보았다. 순서 혹은 딜레이 부분과 관련이 있다는 생각이 들었다. 그래서 여러 실험을 해 본 결과 해결했다.
예를 들어보겠다.
와우 폴더안에 자신만의 애드온 폴더를 만들어 놓은 유저들은 보통 이렇게 되어 있을 것이다.
(C:\Program Files (x86)\World of Warcraft\_retail_\Interface\AddOns\내가만든폴더) 마지막의 내가만든폴더로 들어가면 lua파일과 toc파일이 있을것이다.
이중에서 lua 파일을 메모장으로 열어서 안의 명령어를 살펴본다. 플레이어창의 크기와 타겟 크기조정, 미니맵크기조정으로 3개의 명령어가 들어있다고 가정해보자.
MinimapCluster:SetScale(0.8)
PlayerFrame:SetScale(0.7)
TargetFrame:SetScale(0.7)
위처럼 적혀 있다면, 각각의 명령어들의 순서를 바꿔봐야 한다. 어릴 때 여러 프로그램을 다루어 본 적이 있어서인지 순서도 중요하다는 것을 인식하고 있었다.
더욱이 lua 같은 가벼운 스크립트 언어는 순서 및 딜레이에 영향을 많이 받는다는 것을 알고 있었기에 딜레이를 줄 수 있는 명령어도 찾아 보았다.
외국 사이트에서 C_Timer.After(5, function() 라는 명령어로 딜레이를 준다는 사실을 알아내고 명령어를 조금씩 변경해 보았다.
C_Timer.After(2, function() MinimapCluster:SetScale(0.8); PlayerFrame:SetScale(0.7); TargetFrame:SetScale(0.7); end)
처음에는 작동이 되지 않았다. 순서를 여러번 바꾸어서 결과적으로 플레이어창과 타겟창을 먼저 쓰고 미니맵을 나중에 적어보았다.
C_Timer.After(5, function() PlayerFrame:SetScale(0.7); TargetFrame:SetScale(0.7); MinimapCluster:SetScale(0.8); end)
이렇게 해놓고 테스트를 해보니까, 완벽하게 작동하기 시작했다. 이글에서는 이해를 돕기위해서 예를 들은 명령어가 3개뿐이지만 실제로 내가 사용한 명령어는 10개가 넘는다. 순서를 서로 바꾸는 것만해도 시간이 많이 허비되었다...
'C_Timer.After(5' 에서 마지막 숫자5는 5초를 가리킨다.. 작동이 제대로 안된다면 시간을 조금씩 늘려봐야 한다. 그러면서 매크로 명령어의 순서도 계속해서 변경하는 것을 추천한다.
'중얼거리는 일상' 카테고리의 다른 글
영어일본어 동시공부하는 패턴회화 행동편 (0) | 2023.05.04 |
---|---|
북부 가시덤불 퀘스트 영상 (0) | 2023.02.03 |
와우 신종족 드랙티르 기원사 퀘스트 라인 대장정 (0) | 2022.11.23 |
오늘은 무엇을 하면서 지내야 할까 (0) | 2021.04.20 |
오배송 주소 정확하게 찾는 방법에 대해서 알아보자 (0) | 2021.02.22 |