문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. == 매크로 == LNX 스크립트 매크로의 개념은 [http://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D) 기존 프로그래밍 언어에 존재하는 개념인 함수] 와 유사합니다. 매크로는 여러 명령들을 묶어 놓은 것이라고 볼 수 있습니다. 반복적으로 쓰이는 여러줄의 스크립트가 있을 경우 이를 매크로로 묶은 후 이 매크로를 호출한다면 더욱 스크립트가 편리하고 깔끔하게 유지될 수 있을것 입니다. === 매크로 호출 === 매크로 호출은 만들어둔 매크로를 '''실행''' 한다는 뜻 입니다. 어떠한 매크로를 호출하고 싶다면 아래 그림과 같이 매크로의 이름을 대괄호로 묶고 부가적인 매개변수들을 전달해주어야 합니다. 매크로마다 필수적으로 넣어주어야 하는 매개변수와 생략해도 되는 매개변수가 있기 때문에 메뉴얼을 잘 숙지하셔야 합니다. http://i.imgur.com/rGNVNuB.png === 매크로의 특징 === 매크로에는 아래와 같은 몇가지 특징이 있습니다. 이는 문법_사용자정의매크로 에도 동일하게 적용됩니다. ==== 특징1. 확장인자 ==== 매크로 '''확장인자''' 는 특별한 매개변수입니다. 현재 매크로_대화 , 매크로_독백 와 같은 매크로가 '''확장인자''' 를 전달받고 있습니다. 확장인자는 매크로 바로 아랫줄에 세미콜론을 이어가며 사용하게 됩니다. 아래 그림 '집나간 멍구'에서 사용된 매크로_독백 을 보시면, 독백 매크로가 출력하려는 내용을 확장인자로 전달받는 것을 볼 수 있습니다. 확장인자에 대해서 더 자세히 살펴보려면 [[Lnx:extended param|확장인자]] 를 참고하세요. <lnx> [독백] ;표정이 안좋을 수밖에.. 지금 유진이의 상태는 최악이다. ;어제 그녀가 기르던 애완견 멍구가 집을 나갔다고 한다. ; ;그녀의 아버지가 환기를 시키겠다고 잠깐 문을 열어둔 사이 밖으로 나가버린 것이다. ;밤새 기다려보았지만 멍구는 돌아오지 않았다고 한다. </lnx> ==== 특징2. 인자변수 ==== 매크로를 실행하기 전에, 미리 매개변수 값을 지정 할 수 있습니다. LNX 스크립트에서는 이것 매개변수와 구분하기 위해 '''인자변수''' 라고 부르고 있습니다. <lnx> 매크로명.매개변수명 = 값 </lnx> 위와 같은 형태로 미리 값을 대입해 둘 수 있습니다. 아래 예제에서 '''1번째 라인부터 6번째 라인까지의 코드와 10번째 라인의 정확히 동일하게 동작''' 합니다. 그리고 문법_사용자정의매크로 또한 동일하게 활용 가능합니다. <lnx># 매크로 인자변수를 이용하여 호출 대사창수정.아이디 = "대화" 대사창수정.이미지 = "textArea.png" 대사창수정.색상 = "255,255,255,255" 대사창수정.위치 = "0,720" 대사창수정.영역 = "1070,200" 대사창수정.여백 = "100,60" [대사창수정] # 매크로 호출 [대사창수정 아이디="대화" 이미지="textArea.png" 색상="255,255,255,255" 위치="0,720" 영역="1070,200" 여백="100,60"] </lnx> ==== 특징3. 호출시 매개변수의 순서 ==== 매크로 호출시 매개변수의 순서는 상관이 없습니다. 즉 아래와 같이해도 두 줄의 스크립트는 동일하게 동작하게 됩니다. <lnx> [텍스트 텍스트="좌우 흔들기" 색상="255,0,0" 크기=45] [텍스트 크기=45 텍스트="좌우 흔들기" 색상="255,0,0"] </lnx> ==== 특징4. 매개변수의 유지 ==== 모든 매크로는 어떠한 매개변수가 전달되어 호출됬을 경우 해당 매개변수를 모두 계속 기억하고 있는 특징을 가지고 있습니다. '''만약 이렇게 기억된 매개변수를 모두 지우고 기본 매개변수 기억하고 있는 초기의 상태로 돌아가고 싶을 경우 [[reference:param initialize|인자변수초기화 매크로]] 를 호출하면 됩니다.''' 그럼 아래와 같은 예를 봅시다. <lnx>[대화 이름="멍구"] ;킁.. [대화] ;킁킁..? [대화] ;여기가 어디지?" </lnx> http://i.imgur.com/C6NwLZY.gif 위 예제에선 대화 매크로를 이용하여 멍구라는 캐릭터가 대사를 치는 장면이 나옵니다. 만약에 연속으로 "멍구"라는 이름의 캐릭터가 계속 대화를 하여야 한다면 위처럼 최초의 대화 매크로 호출시에만 <code>이름</code> 매개변수에 "멍구"라는 값을 전달하여 주면 됩니다. 물론 매번 전달하여도 상관 없습니다. 또한 이러한 특성은 다른 매크로의 모든 매개변수에도 똑같이 적용됩니다. 이렇듯 매개변수가 유지가 되는 특성을 이용하여 스크립트를 좀 더 보기 쉽거나 짧게 작성할수 있습니다. Lnx:macro 문서로 돌아갑니다.