매크로

조회 수 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
분류 제목 글쓴이 최근변경 추천
질문 구글번역Api 이것 되시는분 2 우후훅 2016.06.14 0/0
질문 구 리니지 2.0 매크로 유료 제작가능 문의 태대호 2023.06.05 0/0
질문 굉장히 쉬운 질문 같은데.... 2 비듀맨 2023.02.24 0/0
질문 광부 관심 가지던 매린이 질문입니다! 1 니리루 2019.05.12 0/0
질문 공부하다가요 함수에 대해서 궁금한점이 생겼어요! 15 투혼레몬 2015.07.10 0/0
질문 공부중인데 ... 포스트메세지에서 5 섬머워 2016.07.09 0/0
질문 공부중에 궁금한점 8 문의드립니다 2015.06.12 0/0
질문 고쳐야 할 부분이 있는지 봐주실 수 있을까요? 6 마토깽 2022.12.14 0/0
질문 고유의 컴퓨터 ID 뭐가있을까요? 6 _Crash 2019.11.26 2/0
질문 고수여러분 질문이 있습니다!! 현재상태 표시할수 있는... 2 톨톨이 2020.12.22 0/0
질문 고수분들 도와주세요 제이이제이 2019.09.28 0/0
질문 고수님들께 질문드립니다.. 2 자냐앙 2016.07.17 0/0
질문 고수님들께 질문드릴께요~ 2 퉁군 2015.04.24 0/0
질문 고수님들! 도와주세요! 주삐루따 2017.12.18 0/0
질문 고수님들! VMPROTECT로 패킹해도 잘 작동 되는가요? 2 스마트찬 2015.07.20 0/0
질문 고수님들 질문 있습니다. 한번씩 보시고 답글 부탁 드... 2 반수현 2015.02.10 0/0
질문 고수님들 질문 있습니다 7 달아올라 2017.08.11 0/0
질문 고수님들 조언좀 부탁드립니다. 1 내게오는길 2017.07.03 0/0
질문 고수님들 잘못된 곳 지적 부탁드려요 (__) 4 수리봉얼짱 2015.02.25 0/0
질문 고수님들 이 매크로의 잘못된점을 알수있을까요? 1 퍼스티스 2017.04.26 0/0
Board Pagination Prev 1 ... 129130131132133134135136137 ... 173 Next
/ 173

전체 최신 인기글

전체 주간 인기글