(본문은 매크로를 상업적인용도로 제작,판매하는 쓰레기작자들때문에 작성됬습니다 )
보통 오토핫키로 매크로를 제작할때 쉬운방법과 귀찮지만 그만큼 효율적인 방법 크게 2가지로 나뉜다고 볼수있겟네요
쉬운방법은 별거없습니다 그냥 좌표 떄려박으면 되는거죠
(아래부터 설명될내용중 Alick 이란 단어는 사이트특성상 해당단어가 작성불가되어 추후 스크립트제작시에는 Alick에서 A만 C로 바꾸어서 작성해주세요)
예제
F1::
loop,
{
mouseAlick left, 1269, 920
sleep, 10000
mouseAlick left, 598, 404
sleep, 2300
mouseAlick left, 926, 842
sleep, 100
send, {ESC down}
sleep, 200
send, {ESC up}
sleep, 200
mouseAlick left, 914, 871
sleep, 100
send, {enter}
sleep, 200
mouseAlick left, 812, 546
sleep, 100
}
return
F2::Pause
위의 스크립트는 매니저모드에 사용되는 스크립트입니다
보다시피 별거없고 그저 좌표에따른 마우스클릭 , 지정된키 작동 그리고 무한반복 이것뿐이죠
이렇게 좌표를 베이스로 제작된 스크립트에서의 장단점을 말씀드리자면
장점-굉장히 간단함, 해상도만 일치시키면 어떤 pc에서든 작동가능
단점-매크로꼬이면 리그포기등 스트레칭올라오는 일이 발생함
정도되겟구요
지금부터 제가 알려드릴부분은 바로 이미지서치를 사용한 매크로입니다
이에대한 장점과 단점부터 알려드리겟습니다
장점-해당이미지만 찾아서 움직임으로 다른버튼눌를 일이 전혀없음 , 정확도100퍼센트
단점-솔찍히 귀찬습니다 만들기.... 그리고 이유는 모르겟고 타PC에서는 작동하지않는것같더군요
정도되것네요
자 서론은 여기서마치고 본론으로 들어갑시다
매크로를 만들때에 필요한것으론 오토핫키프로그램,메모장,그림판,네이버? 정도되겟네요
일단 필자가 제작, 사용중인 스크립트를 보여드리자면
F5::
loop
{
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC시뮬레이션1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 200
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC경기결과1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
{
send, {enter}
}
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC랜덤선택1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC랜덤선택2.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC다음1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
{
send, {enter}
}
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC다음2.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC다음3.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
{
mouseAlick left, 100, 100
sleep, 200
send, {enter}
}
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC계약연장1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC다음4.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC확인1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC계약연장2.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC완료1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
}
F6::
Pause
의 스크립트1개와
F3::
loop
{
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC얼티.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC얼티다음.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC얼티다음2.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC조진행.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC조추첨.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
}
F4::
Pause
스크립트 두개를 나눠서 사용중입니다
한개는 기본적인 시뮬레이션 진행을위한 스크립트이고 밑에것은 리그진행완료후 일정재생성및 컵대회진행 스크립트인데요
이둘을 나누어 사용하는이유는 저또한 전문가는 아니라 정확한이유는 모르지만 두 스크립트를 한번에 작동시키자니 씹혀버리는 경우가 발생하더군요
그러기에 두개의스크립트를 작성, 두개의 매크로를 실행시켜 리그시뮬레이션을 돌립니다
이제 제작방법을 알려드리겟습니다
우선 가장 첫번째로 알아야할것 매크로를 작동시키고 중지시키는 키를 지정하는것이지요
ex) 작동시작 F1 / 작동중지및 재시작 F2 라고 가정하였을시
F1:: <이라는 단어로 시작후
스크립트 맨 마지막에
F2::
Pause
라는 문구로 마무리를 지어줍니다 그렇게되면 매크로실행후 F1버튼을 누르면 작동이 시작되며 F2를 누르면 중지 및 재시작을 할수있습니다
그리고 두번째순서
이미지를 찾아 작업을 수행할라면 이미지가 있어야겟죠???
예를들어서

리그모드를 들어가면 우측하단에 이런 화면이 있을겁니다
여기서

이런식으로 이미지를 딴다고치면 저 작은 이미지 왼쪽상단 모서리가 바로 마우스가 클릭되는 지점입니다
이미지서치를 작업할때에 항상 이점 유의하셔서 이미지작업을하셔야지 잘못해서
저 시뮬레이션버튼 전체를 작업해버리면 마우스 클릭이 안되는수가생깁니다
이런식으로 작업을해서 저 시뮬레이션버튼 이미지를 시뮬레이션1.PNG 라고 저장을 해둡시다
이제 스크립트에 저이미지를 찾아서 클릭을 해라!! 라는 문구를 작성해보자면
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC시뮬레이션1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
이런 식으로 되겟네요
여기서 이글을 보고 따라하시는분들이 중요시해야할부분은
C:CCC시뮬레이션1.png 이부분인데요 시뮬레이션1.PNG 라는 이미지파일이 저장된 경로를 정확히 입력해주셔야 그이미지를 찾아서 클릭을 하게됩니다
즉 저런식으로
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC이미지1.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC이미지2.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC이미지3.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
이라는 스크립트를 작성하게되면 이는 이미지1을 찾아 클릭후 0.1초간 휴식, 그후 다시 이미지2를찾아 클릭 > 휴식> 이미지3클릭> 휴식
이런 순서로 작업을 진행하게됩니다
이제 이렇게 시뮬레이션을 진행하면서 나오는 모든 버튼을 작업해서 저렇게 스크립트를 짜주시면 90퍼센트 제작이 완료됩니다
나머지10퍼센트 별거없습니다
저대로 그냥작성하고 F2:: PAUSE 하고 끝내버리면 단 한번 작동하고 매크로는 중지합니다
이를 무한대로 작동하게하려면
첫문구인
F1:: <<에서 바로밑에
loop <<
{ <<라고 적어주시고
맨마지막에
F2::
Pause 부분에서 }하나 붙여서
}
F2::
Pause
라고 스크립트를 끝맞춰주시면 3시간후 2차비번이뜨기전까지 쭈욱돌아가게됩니다 (물론 자신에 잘못하여 다음화면으로 진행되지않을수있는부분을 제외하고)
이제 총정리를 하자면
F3::
loop
{
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC얼티.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC얼티다음.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC얼티다음2.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC조진행.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
ImageSearch, x1, y1, 0,0, A_ScreenWidth,A_ScreenHeight, *30 C:CCC조추첨.png
if(ErrorLevel=0){
Alick, %x1%, %y1%
}
sleep, 100
}
F4::
Pause
이런 스크립트가 작성되겟네요
아 그리고 가장유의하셔야할점..... 스크립트 다짜고 컴파일하고 실행시키셔야지 컴파일하지않은 상태에서 실행시 프로그램감지떠서 게임종료됩니다
그리고 본인이 작업한 이미지들 추가적으로 보여드리겟습니다








이외에는 업로드갯수초과로 생략합니다
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.