매크로

조회 수 216 추천 0 댓글 6
▼ 어제 소스만 고치고 테스트는 너무 피곤해서 안해봤는데(집에 가면 해보려구요.)
혹시 고쳐야 곳이 있는지요?


Menu, Tray, Icon, Image\\Icon.ico
Gui, Add, GroupBox, x22 y19 w260 h270 , 동작
Gui, Add, Button, x42 y49 w110 h30 gRunApp, 게임실행
Gui, Add, Button, x42 y89 w110 h30 gStart, 경속시작
Gui, Add, Button, x42 y129 w110 h30 gOneShot, 한방기부
Gui, Add, Button, x42 y169 w50 h30 gGold, 원보
Gui, Add, Button, x102 y169 w50 h30 gCoin, 은화
Gui, Add, Button, x42 y209 w110 h30 gStop, 정지
Gui, Add, Text, x172 y39 w80 h20 +Center, [ 핫키 목록 ]
Gui, Add, Text, x162 y59 w100 h20 , F9 :  좌클릭 연타
Gui, Add, Text, x162 y79 w100 h20 , F10 :  동작정지
Gui, Add, Text, x162 y99 w100 h20 , F12 :  화면 넘기기
Gui, Add, Picture, x192 y119 w80 h160 , Image\\Icon2.png
Gui, Add, Text, x42 y259 w160 h20 , 문의 : m****@naver.com

; Generated using SmartGUI Creator 4.0
Gui, Show, x215 y645 h323 w315, HellSam v1.0
Return

GuiClose:
ExitApp
;-----------------------------------------------------------------------;



;------------------------------------------ Mouse Click
ClickHere(x, y) ; Sleep(1초) 클릭함수
sleep, 100
SysGet, wCaption, 4
SysGet, wFrame, 7

lX := x
lY := y
x := x  - wFrame
y := y - wCaption - wFrame
Coor := x | y<<16

WinGet, ActiveID, ID, BlueStacks App Player
if not getkeystate("Ctrl" , "p")
{
PostMessage, 0x201, 1, %Coor%,, ahk_id %ActiveID% ; 마우스 왼쪽 버튼 다운, 좌표 Coor
PostMessage, 0x202, 0, %Coor%,, ahk_id %ActiveID% ; 마우스 왼쪽 버튼 업, 좌표 Coor
sleep, 1000
}
}


ClickHere2(x, y) ; Not Sleep 클릭함수
sleep, 100
SysGet, wCaption, 4
SysGet, wFrame, 7
lX := x
lY := y
x := x  - wFrame
y := y - wCaption - wFrame
Coor := x | y<<16

WinGet, ActiveID, ID, BlueStacks App Player
if not getkeystate("Ctrl" , "p")
{
PostMessage, 0x201, 0, %Coor%,, ahk_id %ActiveID%
PostMessage, 0x202, 0, %Coor%,, ahk_id %ActiveID%
}


;-------------------------------------------- Image 함수
Bmp1(ByRef clickX, ByRef clickY, ImageName) ; @@색상오차57 이미지함수
{
CoordMode, Pixel, Screen
RealWinSize(posX, posY, width, height, "BlueStacks App Player")

appWidth := posX + width
appHeight := posY + height
ImageSearch, vX, vY, posX, posY, appWidth, appHeight, *57 %ImageName%
IfNotExist, %ImageName%
{
return false
}

  if (ErrorLevel = 0)
  {
    clickX := vX - posX
    clickY := vY-  posY
    return true
  }

  if (ErrorLevel = 1)
  {
    clickX := 0
    clickY := 0
    return false
  }
}


BmpArea(ByRef clickX, ByRef clickY, ImageName, sX, sY, eX, eY) ; @@색상오차80 이미지 영역 함수
{
CoordMode, Pixel, Screen
RealWinSize(posX, posY, width, height, "BlueStacks App Player")

sX := sX + posX
sY := sY + posY

eX := eX + posX
eY := eY + posY
ImageSearch, vX, vY, sX, sY, eX, eY, *80 %ImageName%
IfNotExist, %ImageName%
{
return false
}
if (ErrorLevel = 0)
  {
    clickX := vX - posX
    clickY := vY-  posY
    return true
  }

  if (ErrorLevel = 1)
  {
    clickX := 0
    clickY := 0
    return false
  }
}


BmpTransBlack(ByRef clickX, ByRef clickY, ImageName) ; @@색상오차55 TransBlack이미지함수
{
CoordMode, Pixel, Screen
RealWinSize(posX, posY, width, height, "BlueStacks App Player")

appWidth := posX + width
appHeight := posY + height
ImageSearch, vX, vY, posX, posY, appWidth, appHeight, *55 %ImageName%
IfNotExist, %ImageName%
{
return false
}

  if (ErrorLevel = 0)
  {
    clickX := vX - posX
    clickY := vY-  posY
    return true
  }

  if (ErrorLevel = 1)
  {
    clickX := 0
    clickY := 0
    return false
  }
}



;----------------------------------------- 기타 함수
RealWinSize(ByRef posX, ByRef posY, ByRef width , ByRef height, ProcessID)
{
WinGetPos, X, Y, W, H, %ProcessID%
SysGet, wFrame, 7
SysGet, wCaption, 4
posX := X 
posY := Y
width := W - wFrame * 2
height := H - wFrame * 2 - wCaption
return
}




;------------------------------- Gui Button 

RunApp: ; 게임실행 Button
run, "C:\Program Files (x86)\BlueStacks\HD-RunApp.exe" -p war.god.kingdom -a com.zhancheng.android.hjsg.HJSG ?HD-RunApp.exe ;게임실행
return


Start:
Loop
{
if(Bmp1(clickX, clickY, "Image\Main\End2.bmp")) ; 여포 클리어 완료
{
break
}
if(Bmp1(clickX, clickY, "Image\Main\End.bmp")) ; 여포 클리어 완료
{
break
}
if(Bmp1(clickX, clickY, "Image\Stage\ClearG.bmp")) ; 관문클리어
{
Click(322, 270)
Sleep, 2500
SelectGroup()
}
; 화살표 이미지 클릭
if(Bmp1(clickX, clickY, "Image\Hero\A1.bmp"))
{
Click(clickX, clickY)
}
if(Bmp1(clickX, clickY, "Image\Main\Waiting.bmp"))
{
AttackMonster()
}
if(Bmp1(clickX, clickY, "Image\Main\Attack.bmp"))
{
Click(clickX, clickY)
Sleep, 2500
}
if(Bmp1(clickX, clickY, "Image\Main\Next.bmp"))
{
Click(clickX, clickY)
}
}
return


SelectWorld()
{
Loop, 2
{
; 세계지도 이미지
if(Bmp1(clickX, clickY, "Image\Stage\W" A_Index ".bmp")=true) 
{
Click(clickX, clickY)
}
}
}
return


SelectGroup()
{
Loop, 2
{
if(Bmp1(clickX, clickY, "Image\Stage\G" A_Index ".bmp")=true) 
{
Click(clickX, clickY)
}
}
}
return


AttackMonster()
{
Loop, 2
{
if(BmpTransBlack(clickX, clickY, "Image\Hero\TransM" A_Index ".bmp")=true)
{
Click(clickX, clickY)
}
}
}
return

  • 제발등업좀2 2015.07.16 11:34
    if(Bmp1(clickX, clickY, "Image\Main\End2.bmp")) ; 여포 클리어 완료
    {
    break
    }

    요부분?? 잘되시는지요?
    if 문이붙으면 먼가 뭐라해야하나 .. 대조문 같은게 있어야 할것같은데
    if(Bmp1(clickX, clickY, "Image\Main\End2.bmp")=true) 
    이것처럼 해야 할듯한데요..
    해석하면  만약에 이미지서치를 했는데 리턴값이 참 이면 . 하위 명령을 실행하라...
    이렇게 되겠네요;; 개인적인 생각이였습니다 ^^ 참고하시길 ..
  • a_sec 2015.07.16 12:42

    bmp1 함수보면 리턴값이 ture false로 돌아 오죠

  • 리체 2015.07.16 13:34

    별도로 정의하지 않은 이상 true는 항상 1값을 가지고 false는 0값을 가집니다.
    if (bbb)
    이렇게 if문을 주었을때, 비교할 대상이 없으므로 단지 변수만을 따집니다.

    bbb에 어떤 값이 들어있다면 참, 없거나 0 이면 거짓이 됩니다.

  • 제발등업좀2 2015.07.16 13:42
    그렇군요.. 참과거짓은.. 컴오브젝 으로 엑셀.. 제어할때 써보고 안써봐서 ..몰라는대.. 기본적으로 0과 1 의값을 가지고있는군요... 또좋은거 배워가네요
  • 마토깽 2015.07.16 22:24
    모바게님, 등업님, 리체님, a_sec님 덕분에 현재 진행하고 있는 소스가
    엄청 가벼워 졌고 수월하게 작업하고 있습니다.
    감사합니다.
  • 모바게 2015.07.16 13:59
    if문에서 따로 대조문이 없으면 기본적으로 false 혹은 0 이 아니면 보통 참으로 해석합니다.
    함수를 사용해 true/false 가 확실한 경우 외에, 가능하면 비교문으로 작성하는 습관이 들면 좋겠죠^^

List of Articles
분류 제목 글쓴이 최근변경 추천
정보 이미지파일 세밀하게 캡쳐하기 12 부비수달 2017.08.13 0/0
질문 오토핫키 gui에 관해서.... 4 부비수달 2015.07.05 0/0
자유 오토핫키 ...질문 및 요청좀 ㅠ.ㅠ 17 강남몬드 2015.07.08 0/0
질문 [질문]듀얼모니터 가상 화면으로 보내기 + 위치고정 춥다람쥐 2015.07.05 0/0
질문 DLL관련 변수선언, Guicontrol관련 질문. 2 아잉뿌잉 2015.07.06 0/0
질문 getkeystate 정지 시키는방법도 잇나요? 2 바유무 2015.07.04 0/0
질문 오토핫키를 통해서 블로그 관리도 가능한가요? 5 궁극의 2015.07.07 0/0
질문 아두이노 연동을 통한 확장이 될가요? 6 궁극의 2015.07.04 0/0
질문 이미지서치 이미지직접클릭에 대한 질문이있어요 ㅠㅠ 2 투혼레몬 2015.07.03 0/0
질문 Postmessage wparam, lparam 질문입니다. 5 레이븐 2015.07.04 0/0
질문 외치기님이 작성하신 비활성 이미지 함수를 이용중 오... 10 찬늘 2015.11.26 0/0
질문 (GUI) edit에 입력받은 변수로 대기시간을 설정하는 스... 6 잠튕이 2015.07.02 0/0
질문 구이 에 인터넷 창 띄우기 2 제발등업좀2 2015.07.02 0/0
질문 이미지서치 질문있습니다. 4 법돌 2015.07.02 0/0
질문 edit에 대해서 간단한거 하나만 질문합니다. 4 치즈치즈해 2015.07.02 0/0
질문 winmove 질문좀 드리겠습니다. 7 우앙쿵쾅 2015.08.04 0/0
질문 winhide로 숨긴 창에 postmessage 쏠 수 없나요? 2 인형 2015.07.05 0/0
질문 리스트박스에서 더블클릭하면 복사되게하는 법 질문죰 2 오호라욧 2015.07.03 0/0
질문 주어진 시간만큼 쉬고, 클릭을 하게 만들고 싶은데.. 2 헐키 2015.06.30 0/0
정보 탭타이탄 연타 매크로 입니다. (초보만) 2 피겨맨 2015.07.01 1/0
Board Pagination Prev 1 ... 158159160161162163164165166 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글