심심해서 발로 써보는 히로매크로 강좌_1
http://tailstar.net/hiromacro/879641
심심해서 발로 써보는 히로매크로 강좌_2
http://tailstar.net/hiromacro/913778
세번째가 좀 늦었네요
일이 좀 많아서.. 여차저차 하다보니 지금 쓰게 됐습니다.
ㅋㅋㅋ
그럼 이번시간엔 자주 쓰일법한것들 스크립트를 알아보겠습니다.
설명하기에 앞서...?
매크로에 주석을 다는걸 먼저 알려드릴게요.
매크로를 쭈욱 작성하시다 보면, 아.. 저 부분 뭐였더라 -_- 하고 난감한 경우가 생길 수 있습니다.
그런걸 방지하기 위해서.. 주석을 달아놓을 수 있는데요
줄 맨 앞쪽에 슬러시 두개 '//' 를 그어놓으시면
그 줄은 무시하고 지나가게 됩니다.
//암걸리는 86스테이지
→ 이런 식으로요.
설명은 스크립트에다가 주석을 달아놓는 걸로 하겠습니다.
찬찬히 살펴봐주세요.
1. 횟수 세기
아마 제일 많이 쓰지 않을까.. 합니다.
용도야 뭐.. 던전3번 → 10분 휴식 → ?장비판매 → 다시던전3번
이런식의 알고리즘을 짜려고만 해도 던전 '3번'을 지정해줘야하죠.?
횟수를 지정하시려면,?
간단한 산수와 부등식만 이해하시면 됩니다.
그럼 아래 스크립트를 살펴봅시다.
-----------이하 스크립트-----------
//먼저, 변수를 지정해줍니다.
//제가 선언한 #count라는 변수는 숫자 0으로 지정되었습니다.
var #count 0
?//여기서부터 스크립트 시작
:start
//위에서 #count는 0이었습니다.
//#count에다가 1을 더하면 뭐가되나여?
//1이죠 ㅇㅇ?
//이 명령어로 인해서, #count는 1이라는 값을 갖게 되었습니다
#count = #count + 1
//if명령어로 #count값이 3을 초과하게 되면 :end로 이동하게 합니다.
//그럼 생각해볼게요
//맨 처음, #count 는 0으로 선언되어서 시작했습니다.
//그러고나서 1이란 값을 갖게 됐죠.
//그리고 이 if구문을 지나가게 됩니다.
//그런데 값이 아직 1이라 시작점으로 되돌아갑니다.
//다시 #count = #count + 1 이라는 명령어를 만나서 또 1을 더하게 됩니다.
//그럼 2가 되어서 내려오겠죠?
//아직도 3을 넘지 못했습니다. 그럼 다시 시작점으로 되돌아가고...
//이런식으로 과정을 총 3번 반복하게 되면, #count값은 4가 됩니다.
//이제서야 3을 초과하는 값을 갖게 되었고, :end로 이동하여 스크립트는 끝나게 됩니다.
if #count > 3
goto :end
endif
//이 부분에서 필요한 스크립트를 추가하시면 되겠습니다.
//if명령어를 만족하지 않으면, goto :end라는 명령어는 실행되지 않고
//위에서 아래로 순서대로 실행하는 매크로의 성격 때문입니다.
blah
blah
blah
blah
//이 부분이 중요합니다.
//이 명령어가 없다면, 그대로 :end로 가서 스크립트가 끝이 나게 됩니다.
//위와 같이 반복을 필요로 하는 구문에선, 항상 끝부분에 원래 지점으로 회귀하는 명령어를 추가하는게 중요합니다.
goto :start
//여기서 스크립트 끝
:end
-----------이하 스크립트-----------
자, 이렇게
단 열 몇줄의 스크립트로 해당하는 구간을 3번 반복할 수 있도록 만들었습니다.
수학에서 사용했던 모든 부등호를 이용하실 수 있습니다.
초과 >
미만 <
이상 >=
이하 <=
이런식으로요.?
다들 잘 알고 계시겠지만..?
초과는 해당하는 수를 포함하지 않는 그보다 큰 수
미만은 해당하는 수를 포함하지 않는 그보다 작은 수
이상은 해당하는 수를 포함하는 그보다 큰 수
이하는 해당하는 수를 포함하는 그보다 작은 수
입니다.?
저같은 경우엔 위처럼 반복구문을 지정하는게 편해서 그렇게 했습니다만...
조금만 더 생각해보면 다양한 방법이 나올 수 있습니다.
-----------이하 스크립트-----------
var #count 0
:start
#count = #count + 1
blah
blah
blah
if #count < 3
goto :start
endif
:end
-----------이상 스크립트-----------
맨 처음 설명드렸던 것과 마찬가지로, 딱 3번만 도는 스크립트지만
if명령어의 위치가 아래로 내려가고, 필요한 스크립트의 위치가 위로 올라갔습니다.
그러면서 #count가 3번 미만이면... 으로 조건문이 바뀌었죠?
다음과 같은 경우도 가능합니다.
-----------이하 스크립트-----------
var #count 0
:start
blah
blah
blah
#count = #count + 1
if #count = 3
goto :end
else
goto :start
endif
:endif
-----------이상 스크립트-----------
이번에는 #count 수를 더하는 명령과 if 조건문을 전부 아래로 내렸습니다.
그리고 if문을 약간 변형해서, 정확히 3이 되었을 때 :end로 이동하고?
그 외의 경우엔 전부 :start로 이동하게 했습니다.
보시면 알겠지만 이런 식의 다양한 변형이 가능합니다.
그때그때 쓰임새도 조금 다르고.. 필요한 경우도 다릅니다.
필요한 경우에 따라 다양하게 사용하시기 바랍니다.
으어.. 이거 간단한걸 풀어쓰다보니 생각보다 글이 기네요
이번 한회에 다 설명할라그랬는데...
지금은 너무 졸려서 좀 자고... 다음 시간에 다른걸 소개해드릴게요
감사합니다~ 잘 배웠어요