매크로

조회 수 225 추천 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
분류 제목 글쓴이 최근변경 추천
질문 너무 머리가 복잡하네요 좋은아이디어 부탁드립니다. 8 깡당구 2018.07.07 0/0
질문 너무궁금합니다 도와주세요!ㅜ숫자새는법 9 소리없이 2015.03.22 0/0
자유 너무어렵네요 매크로~~~ 피로도만땅 2022.08.16 0/0
질문 네뷸라매크로 해상도 레지 1 hhnzxz 2015.05.12 0/0
질문 네뷸라에서 오토핫키 코드에 대해 질문 있습니다. amoure 2016.01.23 0/0
질문 네이버 검색창 비우는 방법이 있을까요? 2 cis105 2023.01.21 0/0
공유 네이버 실시간 검색어 크롤링 10 BotLoi 2020.07.24 1/0
질문 네이버 웹파싱 질문 2 fnwj 2018.03.17 0/0
정보 네이버에서 현재시간 가져오기 6 와이로 2016.11.14 1/0
자유 넥슨 제작 의뢰 1 gamejiis 2018.04.11 0/0
질문 넥쓘게임이미지서치가적용이 안돼요 1 텔텔텔대 2017.08.13 0/0
정보 노트북 모니터만 끄기? 입니다 모르시는 분들이 계신거... 5 낭군이 2016.09.13 0/0
질문 노트북 이미지서칭만 안되요! 제발 도와주세요(사례) 12 세macro 2015.06.27 0/0
자유 노트북 해상도 안맞아서 불편하네요 ㅜ 3 그을린요강 2015.01.19 0/0
정보 노트북사용자(윈도우8) 해상도 문제 해결 팁입니다 6 순수kay 2015.03.13 2/0
질문 노트북에서 이미지서치가 안됩니다... 3 yodda 2015.01.19 0/0
질문 노트북에서만 gdip 비활성관련 코딩이 안먹힙니다... 6 hiki 2017.09.19 0/0
질문 노트패드를 켤때마다 창 위치를 겹치지 않게 하고 싶어요 2 리엔니케니스타 2020.03.11 0/0
질문 녹스 화면축소 관련 1 제발등업좀2 2018.11.23 0/0
질문 녹스 adb devices 질문합니다 4 천행 2019.08.27 0/0
Board Pagination Prev 1 ... 464748495051525354 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글