클럽 오디션 매크로 만들기



안녕하세요 :)


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

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
,

디아헬퍼 Diablo3 Helper



디아헬퍼라 불리는 디아블로3 헬퍼 설치및 사용방

더 나가서 직접 만드는 방법까지 알아보겠습니다 :)


오토핫키라는 툴로 제작되었습니다. 

매크로 걸리면 어쩌지? 라는 걱정은 안하셔도 됩니다.


단순 키반복 매크로는 사용 하여도 

괜찮다고 일부 인정하였다고 합니다.





디아3 헬퍼 다운로드



Dia 헬퍼.zip


스크립트 작성후 컴파일한 자료 입니다.

본 프로그램은 오토핫키로 제작되었으며 아래에 소스공개도 같이 해두었습니다.

디아3 헬퍼를 직접제작하여 구동하고 싶으신분들은 아래 스크립트를 참고해주시면 됩니다.


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

이메일 : cai6452@naver.com





Script 작성 방법 



AutoHotkey 다운http://www.autohotkey.com/download



#NoEnv

#NoTrayIcon

#SingleInstance force


SetKeyDelay, -1

SetWinDelay,-1

SetBatchLines,-1

SetControlDelay,-1


FileMoveDir, DImage, C:\DImage, 2

Gui,2: Add, Button, x315 y140 w80 h33 gBop, Option

Gui,2: Add, Picture, x-3 y-2 w406 h184, C:\DImage\a1.png

Gui,2: Show, x500 y200 w400 h180, Khan Macro

Gui,1: Add, Checkbox, x10 y25 w37 h20 vC1, 1

Gui,1: Add, Checkbox, x10 y55 w37 h20 vC2, 2

Gui,1: Add, Checkbox, x10 y85 w37 h20 vC3, 3

Gui,1: Add, Checkbox, x10 y115 w37 h20 vC4, 4

Gui,1: Add, Button, x24 y148 w60 h22 gBst, 확인

Gui,1: Add, Edit, x48 y25 w35 h20 vE1,

Gui,1: Add, Edit, x48 y55 w35 h20 vE2,

Gui,1: Add, Edit, x48 y85 w35 h20 vE3,

Gui,1: Add, Edit, x48 y115 w35 h20 vE4,

Gui,1: Add, Text, x40 y5 w40 h15 cBlue, Delay

Pause

return



Bop:

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

Gui,1: Color, C0C0C0

Gui,1: Show, y200 h190 w110, option

WinSet, Transparent, 230 , option

WinSet, Region, R10-10 W110 H190 0-0

Gui,Submit,nohide

return 



Bst:

Gui,Submit,hide

Settimer, b1, %E1%

Settimer, b2, %E2%

Settimer, b3, %E3%

Settimer, b4, %E4%

return



b1:

Thread, NoTimers

Gui,Submit, nohide

Guicontrolget, C1

if C1 = 1

{

Sendinput, 1

Sendinput, 1

}

return


b2:

Thread, NoTimers

Gui, Submit, nohide

Guicontrolget, C2

if C2 = 1

{

Sendinput, 2

Sendinput, 2

}

return


b3:

Thread, NoTimers

Gui, Submit, nohide

Guicontrolget, C3

if C3 = 1

{

Sendinput, 3

Sendinput, 3

}

return


b4:

Thread, NoTimers

Gui, Submit, nohide

Guicontrolget, C4

if C4 = 1

{

Sendinput, 4

Sendinput, 4

}

return


2GuiClose:

ExitApp

return


`::pause





Posted by Khan64
,