매크로 게시판

전체보기

모바일 상단 메뉴

본문 페이지

[강좌] 매크로 입문 – 2. 매크로의 작동 방식

아이콘 시즈닝
댓글: 18 개
조회: 21946
추천: 118
2011-06-08 16:37:35




 

 

 

매크로 입문 – 2. 매크로의 작동 방식

 

이번 편은 매크로의 작동 방식에 대해서 간략하게 알아보겠습니다.

 

기본적으로 매크로를 작성하실 때에는

 

/명령1 [조건들1] 목적어1

/명령2 [조건들2] 목적어2

/명령3 [조건들3] 목적어3

 

과 같은 형식으로 줄을 나눠서 작성하게 됩니다.

 

이 경우 매크로를 실행하게 되면 와우 클라이언트는 여타 프로그램과 마찬가지로

제일 윗줄 명령1부터 실행을 하고,

그 이후에 명령2, 명령3을 차례로 실행하게 됩니다.

 

차례로 실행한다고는 하지만 사실 컴퓨터의 연산속도는 아시다시피 굉장히 빠르므로,

우리가 인식할 수 있는 정도로 유격을 두거나 하지는 않는다는 걸 아실겁니다.

 

하지만 이 순서가 중요한 이유가 바로 글쿨의 존재입니다.

 

또 한 번 사제의 스킬을 가져와서 예시를 들어보겠습니다.

 

/cast 파멸의 역병

/cast 어둠의 권능: 고통

 

이라는 딜링 매크로를 사용한다고 생각해봅시다.

 

이 매크로를 실행시키게 되면 첫 줄인 ‘/cast 파멸의 역병을 읽어와서

클라이언트가 파멸의 역병이라는 스킬을 사용합니다.

그 이후에 클라이언트는 그 아랫줄인 ‘/cast 어둠의 권능: 고통을 가져오게 되는데

이미 파멸의 역병이 사용되어 1.5초의 글쿨이 돌고 있는 상태이기 때문에

화면 상단에 아직 주문을 외울 수 없습니다등의 오류 메세지가 나오게 되는 겁니다.

 

이 글쿨의 존재 때문에라도 소위 말하는 원키매크로는 존재할 수가 없는 것이죠.

 

글쿨이 없는 스킬의 경우에는 한 키로 묶는 것이 가능해지는데,

 

/cast [@player] 마력 주입

/cast 상급 치유

 

- 제가 대격변 들어서는 다른 클래스를 해보지 않아

어떤 스킬이 있다 정도만 알지 정확한 예시를 드는 것이 불가능한 점 양해해주시기 바랍니다. -

 

위 매크로처럼 묶어서 쓰실 수가 있게 됩니다.

 

다음으로 볼 것은 명령어가 동일한 경우의 매크로입니다.

명령어가 동일할 경우에 한해서 명령어를 생략한 채 세미콜론으로 묶을 수도 있습니다.

 

/명령1 [조건들1] 목적어1

/명령1 [조건들2] 목적어2

 

와 같은 매크로의 경우에는

 

/명령1 [조건들1] 목적어1; [조건들2] 목적어2

 

와 같이 줄여서 쓰시는 것이 가능합니다.

[조건들1]이 충족될 경우에는 목적어1을 명령1로 실행하고,

[조건들1]이 충족되지 않을 경우에는 세미콜론 뒤로 넘어가서

[조건들2]를 검사해 충족될 경우 목적어2를 명령1로 실행합니다.

 

 

(추가)

위의 두 줄 매크로와 세미콜론으로 묶는 한 줄 매크로의 차이점이라면,

두 줄 매크로의 경우 [조건들1]이 참이든 거짓이든

아랫줄로 넘어가서 [조건들2]를 검사하고 그것이 참이라면 목적어2를 명령1로 수행합니다.

 

다만 세미콜론으로 한 줄로 묶는 매크로의 경우에는

[조건들1]이 거짓일 경우에만 세미콜론 뒤로 넘어가게 됩니다.

혼란을 끼쳐드린 점 사과드립니다.

 

 

 

다음으로는 조건들을 보겠습니다.

 

제가 위의 예시들에서 항상 조건들 이라고 복수로 사용한 이유는

매크로에서 복수 조건이 가능하기 때문입니다.

 

조건은 앞에서 말씀 드린 바와 같이 대괄호, 혹은 꺾쇠라고 불리는 괄호로 묶습니다.

 

/명령 [조건1][조건2][조건3]....[조건n] 목적어

 

와 같이 사용하실 수 있으며,

대괄호 안에서도 조건을 복수로 넣으실 수가 있습니다.

[조건1-1, 조건1-2, 조건1-3, … , 조건1-n] 과 같이 말입니다.

 

고등학교 시절 수학에서 배우는 알고리즘을 생각하시면

각 대괄호는 마름모꼴 yes/no 선택지라고 보시면 이해하시기 쉬우실 겁니다.

대괄호 안의 여러 조건들은 항상 and로 묶인다고 생각하시면 됩니다.

한 대괄호 안의 모든 조건들이 만족이 되어야 그 대괄호를 만족시키는 것으로 판정됩니다.

 

이해하시기 쉽게 풀어서 써 보겠습니다.

위의 예시 매크로의 작동 방식을 보면,

 

[조건1]이 충족되었다면 목적어를 명령으로 실행,

[조건1]이 충족되지 않았다면 [조건2]를 검사,

[조건2]가 충족되었다면 목적어를 명령으로 실행,

[조건2]가 충족되지 않았다면 [조건3]을 검사,

[조건3]이 충족되었다면 목적어를 명령으로 실행,

[조건n-1]이 충족되지 않았다면 [조건n]을 검사,

[조건n]이 충족되었다면 목적어를 명령으로 실행,

모든 조건이 충족되지 않았다면 실행하지 않음

 

이라는 뜻으로 해석하시면 됩니다.

 

따라서 힐러라면 흔히들 쓰는 매크로에서

1순위 마우스오버

2순위 주시

3순위 대상

4순위 자신

과 같이 스킬을 사용할 대상에 우선순위를 두는 경우에는

저 조건의 나열 순서를 바꿔주시면 원하시는 우선순위로 사용하실 수 있게 되는 것입니다.

 

마지막으로 한 가지만 더 말씀 드리고 이번 편을 마치도록 하겠습니다.

 

와우 상에서 매크로는 한 개당 최대 255자밖에 사용할 수 없습니다.

그래서 긴 매크로를 작성하실 때는 최대한 효율적으로 매크로를 작성하시는 것이 좋습니다.

 

그리고 매크로를 와우 상에서 한 번 실행을 시키시게 되면,

앞에서 말씀 드린 바와 같이 매크로를 위에서부터 차근차근 가장 아래 줄까지 실행하게 되는데

한 번 실행시킨 매크로를 중간에 멈출 수 있는 방법은 없습니다.

 

또한 매크로가 실행될 동안 게임이 멈추게 됩니다.

매크로를 실행하는 동안은 매크로만 실행하게 되지 클라이언트를 컨트롤할 수가 없습니다.

 

그렇기 때문에 과도한 실행을 시키는 매크로,

예를 들면 lua함수를 이용해서 반복문을 미칠듯이 돌린다던가 하는 일을 시킨다면

클라이언트가 다운된 것 마냥 멈춰서 버벅버벅대다가 매크로를 완전히 실행한 뒤에야

다시 원상태로 돌아오는 것을 보실 수 있을겁니다.

 

따라서 매크로로 너무 많은 것을 기대하신다거나 하시면 안된답니다.

하지만 일반적으로 짱깨가 아닌 우리가 일반적으로 사용하는 매크로는

그런 과도한 작업을 하는 것이 아니기 때문에 걱정 말고 사용하셔도 괜찮습니다.

 

 

(추가)

/stopmacro와 같이 매크로 내에서 특정 조건 하에 매크로를 중지시키는 명령이 있습니다.

하지만 이것 또한 매크로 내부에 존재하는 명령이기 때문에

저런 명령에 의해 매크로가 중지되는 것은 매크로를 완전히 실행한 것으로 간주해 굳이 언급하지 않았습니다.

 

특정 조건에서 특정 라인 이하의 명령을 수행하지 않도록 해 주는 명령은 분명 존재합니다.

애매한 말로 혼란을 끼쳐드린 점 다시 한번 사과드립니다.

 

 

다음 편부터는 /명령어를 계통에 따라 살펴보도록 하겠습니다.

Lv63 시즈닝

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 와우
  • 게임
  • IT
  • 유머
  • 연예