728x90
    반응형

    와우를 하다보니까 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초를 가리킨다.. 작동이 제대로 안된다면 시간을 조금씩 늘려봐야 한다. 그러면서 매크로 명령어의 순서도 계속해서 변경하는 것을 추천한다. 

    반응형
    글 내용이 마음에 든다면 공유해 보세요


    Posted by 마음을 따스하게