클럽 오디션 매크로 만들기



안녕하세요 :)


오랜만에 이렇게 포스팅 하는것 같습니다.

17년 초부터 업무가 많아 최근에 들어서야

여유가 생겨 이렇게 포스팅 하네요.


이번에는 클럽오디션 이라는 모바일게임의

키노트를 자동으로 인식후 눌러주는 매크로를

만들어 보도록 하겠습니다.


포스팅 순서는 클럽오디션에 대한 게임 안내

간단한 게임방법 에 대한 포스팅 이후 매크로 

 스크립트 일부를 공개하도록 하겠습니다.



시작하기전 당부의 말씀을 드리면 본 포스팅은 프로그램 배포는 하지않습니다.

제작방법을 알려드리는 포스팅 이며 제작방법에 대한 강의나 스크립트 의뢰는 가능합니다 :D






클럽 오디션 모바일 게임 - 간단한 소개


2000년대 초반 음악에 맞추어 마치 악기를 연주하는듯한 플레이로 

큰 인기를 누렸던 pc 게임이 모바일 게임으로도 출시한걸로 알고있습니다.


단순히 리듬에 맞추어 게임을 플레이 하는것뿐 아니라 캐릭터를 원하는 

스타일로 꾸밀수도 있어 많은 여성분들에게 인기를 끌었던 게임이 였죠.


최근 모바일 게임을 pc에서 플레이 할 수 있게 녹스,미뮤,지니모션,블루스택등 

많은 에뮬레이터들이 나와 모바일과 pc게임의 경계가 모호 해지긴 했습니다








클럽 오디션 모바일 게임 - 게임 방법 소개


게임설치이후 튜토리얼을 진행하게 되면 크게 스토리모드 / 커플모드 / 댄싱홀 모드를

중심으로 게임을 즐길 수 있으며 , 자신이 원하는 모드로 게임을 플레이 하시면 됩니다.


기본적으로 게임 플레이방법은 비슷한데 키노트가 2개인 경우와 4개인경우로 나뉩니다.

4개의 키노트를 사용하는것이 훨씬 어려우며 공통적으로 키노트를 모두 입력후에 


마지막으로 디스크를 타이밍에 맞게 터치 해주어야 춤을 추게 되며 콤보 달성시 많은

점수를 획들 할 수 있습니다. 플레이를 하며 느낀점은. 


키노트 2개인경우도 손으로 못누르는 필자의 똥손을 확인하였습니다..

매크로 제작을 진행한 결과는 상당히 만족 스러웠습니다. :)





BPM 자동인식후 자동 조정하며,

정확도는 대략 6~70%정도로 수정해두었습니다.

대기시간 공식을 1ms단위까지 좁혀 계산한다면.. 좀더 정확히 할 수 있겠죠 :) 

처음에 128 이라고 작성된것은 OCR에 의해 자동으로 인식하여 작성된것입니다.



아래 영상은 루비라는 캐시아이템을 자동으로 소모하는 과정 입니다.





     클럽 오디셔 매크로 제작기 - 매크로 제작방법은?


전체소스 공개는 무리가 있어 매크로 제작방법에 대한 

스크립트 안내의 포스팅으로 진행하겠습니다.


아래 스크립트에 대한 설명과 안내를 해두었으며 더이상 바이러스나 랜섬웨어같은 

악성 프로그램에 대한 걱정없이 직접 프로그램을 만들어 보는건 어떨까요?



오토핫키 스크립트 작성법이나 다른 스크립트 제작의뢰도 같이 받고있습니다.

이메일 : cai6452@naver.com






스크립트



중복 이미지서치및 찾은 이미지와 연관된 벼수에 특정 마킹을 남겨

찾은 이미지를 분류하고 순서대로 기억하여 호출하는 방식으로 스크립트를 작성하셔야 합니다.


중복 이미지서치는 여러 방법이 있지만

가장 간단한방법은 ImageSearch 변수를 바꾸어 가며 서치를 진행하시면 됩니다.


먼저 각자의 방식으로 중복이미지서치에 대한 Loop / Settimer / goto / 함수등을  설정합니다.


1. 해당 키 이미지를 중복 서치한뒤에 서치한 순서대로 배열 변수에 저장 합니다,.

2. 아래는 이중배열에 대한 나열로 저장한 배열을 아래 함수를 이용하여 나열 한 이후 

   그 순서대로 호출하여 불러내면 됩니다.

3. BPM 에 따른 최종 디스크 클릭 시간을 달리 주어야 하기 때문에 OCR 프로그램을

   이용하여 BPM 속도를 읽은 이후 슬립시간을 달리 주어 클릭하게 하여야 합니다.


  물론 BPM을 굳이 OCR로 읽어 들일필요는 없으며 숫자이미지인식을 통하여 코딩을

  하여도 무방합니다. 하지만 이미지숫자를 일일이 따기 귀찮다면 OCR을 이용하시면 됩니다 :)

OCR은 문자인식 프로그램으로 Capture2Text 프로그램을 이용하였으며

문자 인식의 경우 숫자나 영문같은경우는 정확도가 매우 높습니다. lol



Sort2DArray(Byref TDArray, KeyName, Order=1) {

   ;TDArray : a two dimensional TDArray

   ;KeyName : the key name to be sorted

   ;Order: 1:Ascending 0:Descending

 

    For index2, obj2 in TDArray {           

        For index, obj in TDArray {

            if (lastIndex = index)

                break

            if !(A_Index = 1) &&  ((Order=1) ? (TDArray[prevIndex][KeyName] > TDArray[index][KeyName]) : (TDArray[prevIndex][KeyName] < TDArray[index][KeyName])) {    

               tmp := TDArray[index][KeyName] 

               TDArray[index][KeyName] := TDArray[prevIndex][KeyName]

               TDArray[prevIndex][KeyName] := tmp  

            }         

            prevIndex := index

        }     

        lastIndex := prevIndex

    }

}



클럽오디션/ 클럽/ 오디션/ 매크로/ 오토핫키 / 리듬게임 / 매크로만들기/ 매크로 제작


매크로 /오토핫키 /클럽 /오디션/

Posted by Khan64
,

메이플스토리 매크로 만들기




안녕하세요

오늘은 메이플스토리 매크로에 대한

제작 포스트를 쓰도록 하겠습니다.


먼저 진행하기 앞서 찾아와주신

모든분들 정말 감사합니다.   :)


포스팅은 제작기에 대한 간략한 설명

어떠한 방식으로 만드는지, 제작후 영상,

마지막으로 테스트 스크립트 공개순으로 

포스팅 하였습니다.


시작하기전 당부의 말씀을 드리면 본 포스팅은 프로그램 배포는 하지 않습니다.

제작방법을 알려드리는 포스팅이며 제작방법에 대한 강의나 스크립트 의뢰는 가능합니다 :D



메이플 매크로


메이플스토리 매크로 제작이야기 - 1



사실 작년 초여름 이미 메이플 스토리 매크로를 제작했었고 제작내용에 관하여 포스트 한 적이

있었습니다. 하지만 한시적으로 소수인원을 대상으로 테스트정도만 진행하였고 포스트 글또한

금방 내려두었습니다.  그동안 메일이나 쪽지등으로 매크로를 공유받고 싶다는 요청의 연락을

매우 많이 받았었습니다만 개인적으로 답장을 보내드리지 못해서 죄송했습니다.


오늘은 단순히 메이플스토리 매크로를 만들고 그에관한 자료 공유 포스트가 아니라 직접만들고

제작당시 작성했던 소스를 공개할 예정입니다.   여기서 소스란 하나의 프로그램이 되기전,

즉 컴파일하기이전의 것으로 매크로가 어떻게 작동하는지 그 방법을 모두 살펴 볼 수 있습니다.


대부분의 매크로 만드시는분들은 개인적으로 쓰시거나 / 비싸게 팔거나 / 비공개 커뮤니티를 통해

공유하는 방식으로 사용합니다. 이유는 매크로 배포는 약관위반과 더불어  법률 위반이기 때문입니다.

또한 사용하는것 자체만으로도 약관상 위배 이기때문에 매크로의 제작및 사용여부는 본인의 판단하에

이루어져야 할것입니다. 




서론이 길었지만,

어쨋든 오늘 이포스트가 다 끝날때 쯤에는 들러주신 모든분들이

원하는 정보를 얻으시고 그 지식을 함께 공유해 나갈 수 있었으면 좋겠습니다.




메이플스토리 매크로 제작과정 - 2



첫째로 매크로는 AutoHotkey 를 이용해서 제작하려고 합니다.

가볍고 꽤 강력한 프리웨어로서 C를 기반으로두었기때문에 매크로 이외에도 그 쓰임새가 넓습니다.


둘째로 이번 제작을 해볼 게임은 " 메이플스토리 " 입니다.

워낙 유명한 게임이니 대부분 아시리라 생각합니다. 예전에 만들어둔 백업자료가 거의다 날라가고

남은게 이미지자료 정도 뿐이 안되서 빨리작업한데다가  많은분들이 쉽게 따라하실 수 있도록 하기

위하여 쉬운명령어들로만 구성하였습니다.


자동사냥 매크로가 단순하다 뛰어나다의 그 기준은

얼마나 예외옵션을 많이두는지 / 가독성이 얼마나 뛰어나는지, 에서 차이가 나게 됩니다.


예외옵션이란 매크로는 사용자가 입력한 명령에서 절대 벗어나지 않습니다.

하지만 모든상황에는 예외가 발생합니다. 이러한 예외처리를 해두지 않으면 그 상황에서

아무 입력이 안되어 정지하거나, 반대로 꼬여버리는 현상이 발생하게 됩니다.

혹은 예외옵션을 활용하여 인공지능인척(?) 도 가능합니다. 이런 활용적인부분은

나중에 따로 포스트 하도록 하겠습니다.


게임매크로는 뭐라해도 반응속도가 생명인만큼 가독성이 뛰어나야 우리가 원하는 속도의

매크로를 만들 수 가 있겠습니다 :) 소스를 보기좋게 정리하는것부터가 그 시작입니다.

그이후에야 알고리즘의 개선이나 서브루틴및 함수의 활용이 더해지는거라고 생각합니다.







아래는 이번주 제작했던 메이플스토리 매크로 영상 입니다.





메이플 스토리 매크로 제작은? - 3



사실은 매크로는 자신이 어떻게 만드냐에 따라 그 기능과 효율차이가 많이 납니다.

또한 스크립트에 많은 기능을 담을수록 힘들고 어려워 집니다. 


위 사진처럼 1000줄을 쓸수도.. 15000줄을 쓸수도 300줄을 쓸수도

그 기능에 따라 소스의 길이나 내용은 완전 달라집니다.


스크립트를 전부 공개하는것은 악용될 소지가 많아 영상처럼 테스트용으로 

작성했던 스크립트만 공개 하도록 하겠습니다. 해당 스크립트를 기반으로 다양한 기능을

추가해보시거나 소스를 응용하여 직접 만들어 보시는건 어떨까요? :)


오토핫키 스크립트 작성법이나 다른 스크립트 제작의뢰도 같이 받고있습니다.

이메일 : cai6452@naver.com







스크립트




Gui,3: +LastFound +AlwaysOnTop -Caption +ToolWindow 

Gui,3: Add, Button, x20 y10 w82 h16 gBop,Option

Gui,3: Add, Button, x20 y30 w82 h16 gBst,Start

Gui,3: Add, Picture, x0 y0 BackgroundTrans, C:\KHAN\Mps\bn.png

Gui,3: Show, x400 y100 w500 h357, Mps


Gui,1: Color, FFFAFA

Gui,1: Add, GroupBox, x11 y14 w250 h190 cgreen, Option

Gui,1: Add, GroupBox, x271 y14 w180 h85 cgreen, Sub Skill

Gui,1: Add, GroupBox, x271 y100 w180 h82 cgreen, Buff

Gui,1: Add, Text, x23 y47 w70 h20 , 사냥터

Gui,1: Add, Text, x23 y87 w100 h20 , 물약  f11/f12

Gui,1: Add, Text, x23 y117 w100 h20 , 탐지기 알림

Gui,1: Add, Text, x23 y167 w50 h20 , 주스킬

Gui,1: Add, Text, x153 y167 w50 h20 , 점프

Gui,1: Add, Text, x425 y39 w15 h20, /s

Gui,1: Add, Text, x425 y69 w15 h20, /s

Gui,1: Add, Text, x425 y122 w15 h20, /s

Gui,1: Add, Text, x425 y152 w15 h20, /s


Gui,1: Add, ComboBox, x101 y44 w150 h100 vBa, 또 다른 망각의길4|남겨진 용의 둥지1|준비중

Gui,1: Add, Radio, x121 y84 w50 h20 vR1, On

Gui,1: Add, Radio, x171 y84 w70 h20 , Off

Gui,1: Add, Radio, x121 y114 w50 h20 Group vR2, On

Gui,1: Add, Radio, x171 y114 w70 h20, Off

Gui,1: Add, ComboBox, x74 y164 w60 h80 vB1, Ctrl||Shift|Alt|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|f11

Gui,1: Add, ComboBox, x191 y164 w60 h80 vB2, Alt||Shift|Ctrl|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z


Gui,1: Add, CheckBox, x281 y36 w20 h20 vC1,

Gui,1: Add, CheckBox, x281 y66 w20 h20 vC2,

Gui,1: Add, ComboBox, x305 y36 w65 h60 vB3, a||b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z

Gui,1: Add, ComboBox, x305 y66 w65 h60 vB4, a||b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z

Gui,1: Add, Edit, x381 y36 w40 h24 vE1,10

Gui,1: Add, Edit, x381 y66 w40 h24 vE2,10


Gui,1: Add, CheckBox, x281 y119 w20 h20 vC3,

Gui,1: Add, CheckBox, x281 y149 w20 h20 vC4, 

Gui,1: Add, ComboBox, x305 y119 w65 h60 vB5, PgDn||PgUp|Home|End|Ins|Del|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z

Gui,1: Add, ComboBox, x305 y149 w65 h60 vB6, PgUp||PgDn|Home|End|Ins|Del|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z

Gui,1: Add, Edit, x381 y119 w40 h24 vE3, 60

Gui,1: Add, Edit, x381 y149 w40 h24 vE4, 60


Gui,1: Add, Button, x271 y185 w85 h20 gBld, Load

Gui,1: Add, Button, x366 y185 w85 h20 gBok, Ok


OnMessage(0x201, "WM_LBUTTONDOWN")

WM_LBUTTONDOWN() 

PostMessage, 0xA1, 2,,, A 

}

WinSet, Transparent, 205 , Mps

WinSet, Region, R35-35 W500 H357 0-0

Pause

return


Bop:

Gui,1: +LastFound +AlwaysOnTop -Caption +ToolWindow 

Gui,1: Show, x700 y400 h272 w576, option

WinSet, Transparent, 230 , option

WinSet, Region, R10-10 W576 H272 0-0

Gui,Submit,nohide

return


Bld:

IniRead, L_C1, C:/KHAN/Mps/save.ini, ini, C1, 0 

GuiControl,,C1, %L_C1% 

IniRead, L_C2, C:/KHAN/Mps/save.ini, ini, C2, 0 

GuiControl,,C2, %L_C2% 

IniRead, L_C3, C:/KHAN/Mps/save.ini, ini, C3, 0 

GuiControl,,C3, %L_C3% 

IniRead, L_C4, C:/KHAN/Mps/save.ini, ini, C4, 0 

GuiControl,,C4, %L_C4% 

IniRead, L_E1, C:/KHAN/Mps/save.ini, ini, E1, 0 

GuiControl,,E1, %L_E1% 

IniRead, L_E2, C:/KHAN/Mps/save.ini, ini, E2, 0 

GuiControl,,E2, %L_E2% 

IniRead, L_E3, C:/KHAN/Mps/save.ini, ini, E3, 0 

GuiControl,,E3, %L_E3% 

IniRead, L_E4, C:/KHAN/Mps/save.ini, ini, E4, 0 

GuiControl,,E4, %L_E4% 

IniRead, L_R1, C:/KHAN/Mps/save.ini, ini, R1, 0 

GuiControl,,R1, %L_R1% 

IniRead, L_R2, C:/KHAN/Mps/save.ini, ini, R2, 0 

GuiControl,,R2, %L_R2% 

IniRead, L_B1, C:/KHAN/Mps/save.ini, ini, B1, 0 

GuiControl,,B1, %L_B1% 

IniRead, L_B2, C:/KHAN/Mps/save.ini, ini, B2, 0 

GuiControl,,B2, %L_B2% 

IniRead, L_B3, C:/KHAN/Mps/save.ini, ini, B3, 0 

GuiControl,,B3, %L_B3% 

IniRead, L_B4, C:/KHAN/Mps/save.ini, ini, B4, 0 

GuiControl,,B4, %L_B4% 

IniRead, L_B5, C:/KHAN/Mps/save.ini, ini, B5, 0 

GuiControl,,B5, %L_B5% 

IniRead, L_B6, C:/KHAN/Mps/save.ini, ini, B6, 0 

GuiControl,,B6, %L_B6% 

return


Bok:

Gui, Submit, Hide

GuiControlget,E1

IniWrite,%E1%, C:\KHAN/Mps/save.ini, ini, E1

GuiControlget,E2

IniWrite,%E2%, C:\KHAN/Mps/save.ini, ini, E2

GuiControlget,E3

IniWrite,%E3%, C:\KHAN/Mps/save.ini, ini, E3

GuiControlget,E4

IniWrite,%E4%, C:\KHAN/Mps/save.ini, ini, E4

GuiControlget,B1

IniWrite,%B1%, C:\KHAN/Mps/save.ini, ini, B1

GuiControlget,B2

IniWrite,%B2%, C:\KHAN/Mps/save.ini, ini, B2

GuiControlget,B3

IniWrite,%B3%, C:\KHAN/Mps/save.ini, ini, B3

GuiControlget,B4

IniWrite,%B4%, C:\KHAN/Mps/save.ini, ini, B4

GuiControlget,B5

IniWrite,%B5%, C:\KHAN/Mps/save.ini, ini, B5

GuiControlget,B6

IniWrite,%B6%, C:\KHAN/Mps/save.ini, ini, B6

GuiControlget,R1

if R1 = 1

{

Settimer, Ma, 300

}

IniWrite,%R1%, C:\KHAN/Mps/save.ini, ini, R1

GuiControlget,R2

if R2 = 1

{

Settimer, Mb, 1000

}

IniWrite,%R2%, C:\KHAN/Mps/save.ini, ini, R2

GuiControlget,C1

if C1 = 1

{

Settimer, S1,%E1%000

}

IniWrite,%C1%, C:\KHAN/Mps/save.ini, ini, C1

GuiControlget,C2

if C2 = 1

{

Settimer, S2,%E2%000

}

IniWrite,%C2%, C:\KHAN/Mps/save.ini, ini, C2

GuiControlget,C3

if C3 = 1

{

Settimer, S3,%E3%000

}

IniWrite,%C3%, C:\KHAN/Mps/save.ini, ini, C3

GuiControlget,C4

if C4 = 1

{

Settimer, S4,%E4%000

}

IniWrite,%C4%, C:\KHAN/Mps/save.ini, ini, C4

GuiControlget,Ba

if Ba = 또 다른 망각의길4

{

Settimer, Aak, 300

Settimer, Mve1, 2500

Settimer, Upr1, 500

}

if Ba = 남겨진 용의 둥지1

{

Settimer, Bak, 230

Settimer, Mve2, 1000

Settimer, Upr2, 500

}

return


]::

pause

Sendinput, {%B1% Up}

return


Bst:

WinWait, MapleStory, 

IfWinNotActive, MapleStory, , WinActivate, MapleStory, 

WinWaitActive, MapleStory, 

WinMove, 0, 0

Settimer, cfm, 1800000

Settimer, Err, 600000

return




Aak:

Thread, Notimers

Gui, Submit, nohide

Imagesearch, vr, vt, 1, 1, 1024, 768, *63 C:\KHAN\Mps\nw.bmp

Imagesearch, vx, vy, vr-320, vt-250, vr, vt, *11 C:\KHAN\Mps\mv.bmp

If Errorlevel = 0

{

Sendinput, {Right Up}

Sendinput, {Left Down}

Sleep, 50

Sendinput, {%B1% Down}

Sleep, 1000

}

If Errorlevel = 0

{

Sendinput, {%B1% up}

}

Imagesearch, vr, vt, 1, 1, 1024, 768, *63 C:\KHAN\Mps\nw.bmp

Imagesearch, vx, vy, vr, vt-250, vr+320, vt, *11 C:\KHAN\Mps\mv.bmp

If Errorlevel = 0

{

Sendinput, {Left Up}

Sendinput, {Right Down}

Sleep, 50

Sendinput, {%B1% Down}

Sleep, 1000

}

If Errorlevel = 0

{

Sendinput, {%B1% up}

}

return



Mve1:

Thread, NoTimers

Imagesearch, va, vb, 117, 170, 157, 186, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Right up}

Sleep, 50

Sendinput, {Left Down}

}

Imagesearch, va, vb, 62, 147, 157, 167, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Right up}

Sleep, 50

Sendinput, {Left Down}

}

Imagesearch, va, vb, 92, 107, 157, 124, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Right up}

Sleep, 50

Sendinput, {Left Down}

}

Imagesearch, va, vb, 32, 127, 151, 144, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Left up}

Sleep, 50

Sendinput, {Right Down}

}

Imagesearch, va, vb, 32, 170, 117, 186, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Left up}

Sleep, 50

Sendinput, {Right Down}

}

return


Upr1:

Thread, NoTimers

Imagesearch, va, vb, 112, 170, 120, 186, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Left Up}

Sendinput, {Right Up}

Sleep, 50

Sendinput, {Up Down}

Sleep, 50

Sendinput, {Up up}

Sendinput, {Right Down}

}

Imagesearch, va, vb, 146, 127, 157, 144, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Down Down}

Sleep, 50

Sendinput, {%B2% Down}

Sleep, 50

Sendinput, {%B2% Up}

Sleep, 50

Sendinput, {Down Up}

}

return



Bak:

Thread, Notimers

Gui, Submit, nohide

Imagesearch, vr, vt, 1, 1, 1024, 768, *60 C:\KHAN\Mps\nw2.bmp

Imagesearch, vx, vy, vr-320, vt-250, vr, vt, *14 C:\KHAN\Mps\mv2.bmp

If Errorlevel = 0

{

Sendinput, {Right Up}

Sendinput, {Left Down}

Sleep, 50

Sendinput, {%B1% Down}

Sleep, 1000

}

If Errorlevel = 0

{

Sendinput, {%B1% up}

}

Imagesearch, vr, vt, 1, 1, 1024, 768, *60 C:\KHAN\Mps\nw2.bmp

Imagesearch, vx, vy, vr, vt-250, vr+320, vt, *14 C:\KHAN\Mps\mv2.bmp

If Errorlevel = 0

{

Sendinput, {Left Up}

Sendinput, {Right Down}

Sleep, 50

Sendinput, {%B1% Down}

Sleep, 1000

}

If Errorlevel = 0

{

Sendinput, {%B1% up}

}

return


Mve2:

Thread, Notimers

Imagesearch, PX, PY, 39, 169, 72, 187, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Left up}

Sleep, 50

Sendinput, {Right Down}

}

Imagesearch, PX, PY, 39, 145, 72, 166, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Left up}

Sleep, 50

Sendinput, {Right Down}

}

Imagesearch, PX, PY, 39, 125, 56, 143, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Left up}

Sleep, 50

Sendinput, {Right Down}

}

Imagesearch, PX, PY, 39, 108, 96, 125, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Left up}

Sleep, 50

Sendinput, {Right Down}

}

Imagesearch, PX1, PY1, 85, 169, 137, 187, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Right up}

Sleep, 50

Sendinput, {Left Down}

}

Imagesearch, PX1, PY1, 80, 145, 112, 166, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Right up}

Sleep, 50

Sendinput, {Left Down}

}

Imagesearch, PX1, PY1, 62, 125, 96, 143, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Right up}

Sleep, 50

Sendinput, {Left Down}

}

Imagesearch, PX3, PY3, 101, 128, 140, 166, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Up up}

Sendinput, {Right down}

Sleep, 50

Sendinput, {Down down}

Sendinput, {%B2% Down}

Sleep,50

Sendinput, {%B2% up}

Sleep,100

Sendinput, {Down Up}


}

return


Upr2:

Thread, NoTimers

Gui, Submit, Nohide

Imagesearch, PX2, PY2, 75, 174, 86, 187, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Up up}

Sleep, 50

Sendinput, {Left down}

Sleep, 50

Sendinput, {%B2% down}

Sleep, 50

Sendinput, {%B2% up}

Sleep, 200

Sendinput, {Up down}

Sendinput, {Left Up}

}

Imagesearch, PX2, PY2, 75, 157, 86, 164, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Up up}

Sleep, 50m

Sendinput, {Left down}

Sendinput, {%B2% down}

Sleep, 50

Sendinput, {%B2% up}

Sleep, 200

Sendinput, {Up down}

Sendinput, {Left up}

}

Imagesearch, PX2, PY2, 60, 134, 68, 144, *12 C:\KHAN\Mps\bs.bmp

If Errorlevel = 0

{

Sendinput, {Up up}

Sleep, 50

Sendinput, {%B2% down}

Sleep, 50

Sendinput, {%B2% up}

Sleep, 200

Sendinput, {Up down}

}

return




S1:

Thread, NoTimers

Gui, Submit, Nohide

Sleep, 100

Sendinput, {%B3% down}

Sleep, 50

Sendinput, {%B3% up}

return


S2:

Thread, NoTimers

Gui, Submit, Nohide

Sleep, 100

Sendinput, {%B4% down}

Sleep, 50

Sendinput, {%B4% up}

return


S3:

Thread, NoTimers

Gui, Submit, Nohide

Sleep, 50

Sendinput, {%B5% down}

Sleep, 50

Sendinput, {%B5% up}

Sleep, 4000

return


S4:

Thread, NoTimers

Gui, Submit, Nohide

Sleep, 50

Sendinput, {%B6% down}

Sleep, 50

Sendinput, {%B6% up}

Sleep, 4000

return



Ma:

Thread, NoTimers

Imagesearch, p1, p2, 340, 730, 365, 790, *10 C:\KHAN\Mps\h1.bmp

If Errorlevel = 1

{

Sendinput, {F11 down}

Sleep,50

Sendinput, {F11 up}

}

Imagesearch, p3, p4, 500, 750, 515, 790, *10 C:\KHAN\Mps\h2.bmp

If Errorlevel = 1

{

Sendinput, {F12 down}

Sleep,50

Sendinput, {F12 up}

}

return


Mb:

Thread, NoTimers

ImageSearch, VX, VY, 1, 1, A_ScreenWidth, A_ScreenHeight, *10 C:\KHAN\Mps\gt.bmp

If Errorlevel = 0

{

Soundplay, C:\KHAN\Mps\Collide.mp3

pause

}

return



cfm:

Thread, NoTimers

Urldownloadtofile, http://mynewblogcai2.blogspot.kr/2016/05/blog-post.html, C:\KHAN\Temp2.txt

Fileread, Int, C:\KHAN\Temp2.txt

Ifinstring, Int, 0x01

{

filedelete,C:\KHAN\Temp2.txt

}

else

{

filedelete,C:\KHAN\Temp2.txt

ExitApp

}

return


Err:

Sleep, 10000

return


GuiClose:

ExitApp

return


3GuiContextMenu:

ExitApp

return









로, 매크로만들기,매크로제작, 메이플,메이플스토리, 메이플 스토리, 메이플 매크로 메이플매크로, 매크로제작, 메이플매크로 만들기, 매크로 만들기,메이플스토리매크로메이플스토리매크로 메이플 스토리 매크로















Posted by Khan64
,

테일즈위버 매크로 만들기



안녕하세요

오늘은 테일즈위버 매크로에 대한

포스틀 하도록 하겠습니다. :D


먼저 찾아와주신 분들께 정말 감사드리며,

포스트 내용은 매크로 코드 작성 에 대한


간략한정보와 테일즈위버 매크로의 제작과정및 

계획구성순으로 포스팅 하도록 하겠습니다.





테일즈위버 매크로 제작이야기 - 서론


 

먼저,, 처음 테일즈위버를 접하게 된건 2~3년 전쯤 이였던것 같습니다.

친구의 소개로 처음해본 게임이였고 그당시 285가 만렙이였습니다.

한참 떠오르는 사냥터가 신전이였고 그 전엔 시오칸이였던걸로 기억합니다.



많은 게임들이 그렇듯이 테일즈위버 또한 만렙까지 쉽지는 않더라구요

정말 좋은 사냥터이기는 했지만 경험치 필요량이 억대 이다보니

하루에 많이 사냥해도 1억이상 채우기 어려웠었던걸로 기억합니다.

물론 신전부터는 좀더 경험치량이 좋은건있었죠 ㅎ



사실 그당시 저는 테일즈위버를 짧게밖에 하지 않았지만, 

265~285까지는 보름정도 소요 되었던거 같습니다.

신전퀘스트나 시오칸퀘스트가 귀찮은 저로서는 캐시 아이템인

초대장이나 조금더 편하게 이용하기위해 바깃, 펫, 펫스킬 캐시

구매해서 조금더 빠르고 편하게 이용했었죠 :)








[ 테일즈위버 매크로 ] - 제작과정



매크로 제작을 진행하면서 항상 많은 질문을 받는게 있습니다.

제작과정에 포스트 하기전에 몇가지 답변을 드리고 시작하겠습니다 :)



첫째는  " 매크로 자료를 여기서 받을수 있어요? " 입니다. 

답은.. 세모(?) 입니다 . 이유는 사실 조금은 민감한부분이 있어서 

공개적으로 오픈은 하지않고있고 있습니다. 



두번째 "매크로를 돌리면 안전해요?" 입니다.

이것도.. 세모(?) 입니다. 실제로 매크로를 이용하시는 분들중에선

개인용 매크로 사용하시는분들도 많고 

이미 제작된 걸 사용하시는분들도 있지만 

그중에 걸리신분도 있고 안걸리고 쭉 사용하는분들도 계십니다. 

물론 안전장치야 해두지만 결과는 솔직히 장담은 못한다는거죠.

99% 안전하다고 하여도 만에하나라는 경우가 생겨

누군가에겐 거의 0%지만 또 누군가에겐 100%가 될 수 있기 때문입니다.




만렙까지 필요한 경험치와 시간을 계산한 이미지 입니다.



255~285 까지 필요한 경험치량은 대략 78억 정도이며..

레벨에 따라 다르지만 신전의경우 1~1.5  시오칸의 경우 0.5~0.9정도 됩니다.


캐시아이템 사용시 시간당 2000만 많게는 8000만정도 올리게 되는것같습니다.

하루에 많이 사냥해서 2~3억씩 채운다하면 30일 가량 됩니다.


매크로는 바깃사용시 시간당 500+@ 정도 올렸던거 같습니다.

물론 레벨에 따라 스펙에 따라 획득하는 경험치량은 다르겠죠 :)



경험치 사진 출처 : http://blog.naver.com/tjdals_7/220086458661




[ 테일즈위버 매크로 ] - 제작은?



테일즈위버 매크로 테스트 동영상

http://haha92.tistory.com/21


테일즈위버 매크로 테스트 자료

[ 벤야 ] 진페참셋/천공해머로 했으며 스펙에 따라 차이가 발생할수있습니다.

http://haha92.tistory.com/category/%ED%85%8C%EC%9D%BC%EC%A6%88%EC%9C%84%EB%B2%84%20%E3%80%8F/%EB%A6%AC%ED%8F%AC%ED%8A%B8%20%E3%80%8F




6/5 현재 모든 제작은 완료된 상태이며 그동안 1주씩 진행하였던

3번의 테스트를 거치며 완성도면에서 많이 좋아진것 같습니다.

제작에 대해 관심있으신분은 덧글/이메일/카페에서 찾아뵙겠습니다

이상 테일즈위버 매크로 제작이야기였습니다. 찾아주신 모든분들 감사합니다  



오토핫키 스크립트 작성법이나 다른 스크립트 제작의뢰도 같이 받고있습니다.

이메일 : cai6452@naver.com




Posted by Khan64
,