매크로

조회 수 480 추천 0 댓글 18

이 소스 사용해보시고 저처럼 작동이중지되었습니다 라고 오류 나는지좀 알려주실분

10~30분정도 실행해보면 그렇게나오네여

비활성이라 시작눌러도 특정창 비활성 매크로라 작동은 안합니다

시작 눌러서 저처럼 오류 나는지 확인점 해주실분.....ㅠㅠ

부탁드립니다

힘들게 만들었는데 사용을 못하고있습니다



작동 잘되다가 10~30분정도있으면 이런 오류가 뜹니다

qR3xYIvs.png



ActiveID := "BlueStacks App Player"
DebugMode := 1

; 기본 설정

CoordMode, Pixel, Screen
CoordMode, ToolTip, Screen

SysGet, WindowCaptionHeight, 4 ; 캡션Height
SysGet, WindowBorderWidth, 32 ; 보더Width
SysGet, WindowBorderHeight, 33 ; 보더Height

; 이미지 서치

; seconds : 시간 지정 (기본설정상 1초 = 10번 시도, 0.5초 = 5번 시도함)

; imgX, imgY : 리턴받기 위해 사용

; fromX , fromY , toX , toY : 이미지 서치 범위 지정

; 리턴값 : 1 = 이미지 찾음 , 0 = 이미지 못찾음, -1 = 이미지 파일 없음

CheckImage(img, seconds=0, ByRef imgX="", ByRef imgY="", fromX=0, fromY=0, toX=0, toY=0)
{
global ActiveID, DebugMode
Sleep, 10
If ( ActiveID)
WinGetPos, winX, winY, winW, winH, % ActiveID
Else
winX := 0, winY := 0, winW := A_ScreenWidth, winH := A_ScreenHeight
sleepTime := 100
times := seconds * (1000 / sleepTime)
If ( times=0)
times := 1
x := winX, y := winY, w := winX+winW, h := winY+winH
If (fromX && fromY && toX && toY)
{
w := x+toX, h := y+toY, x := x+fromX, y := y+fromY
If ( DebugMode = 1)
{
ToolTip, 범위시작, x, y, 11
ToolTip, 범위끝, w, h, 12
}
}

Loop, %times%
{
ImageSearch, oX, oY, x, y, w, h, *50 %A_ScriptDir%\%img%
If ( ErrorLevel = 0)
{
imgX := oX
imgY := oY
If ( DebugMode = 1)
{
;ToolTip, %img%, imgX, imgY, 10
}
Return 1
}
Else If ( ErrorLevel = 2)
{
MsgBox, , , 이미지 없음 : %img% , 1
Return -1
}
Sleep, %sleepTime%
}
Return 0
}

; 비활성 이미지 클릭

; seconds : 시간 지정 (CheckImage 설정에 따름)

; fromX , fromY , toX , toY : 이미지 서치 범위 지정

; 리턴값 : 1 = 이미지 찾음 , 0 = 이미지 못찾음, -1 = 이미지 파일 없음

ClickImage(img, seconds=0, fromX=0, fromY=0, toX=0, toY=0)
{
Sleep, 10
result := CheckImage( img, seconds, x, y, fromX, fromY, toX, toY)
If (result = 1)
{
global ActiveID, DebugMode, WindowCaptionHeight, WindowBorderWidth, WindowBorderHeight
WinGetPos, winX, winY, winW, winH, % ActiveID

px:=x-winX-WindowBorderWidth
py:=y-winY-WindowBorderHeight-WindowCaptionHeight
p := px|py<<16

If ( DebugMode = 1)
{
;ToolTip, 이미지 클릭 %img%, x, y, 10
}
PostMessage, 0x201, 0, %p%, , % ActiveID
PostMessage, 0x202, 0, %p%, , % ActiveID
}
Sleep, 200
Return result
}

; 비활성 좌표 클릭

; x, y 좌표를 클릭

ClickPosition(x, y)
{
global ActiveID, DebugMode, WindowCaptionHeight, WindowBorderWidth, WindowBorderHeight
Sleep, 10

px:=x-WindowBorderWidth/2
py:=y-WindowBorderHeight/2-WindowCaptionHeight
p := px|py<<16
PostMessage, 0x201, 0, %p%, , % ActiveID
PostMessage, 0x202, 0, %p%, , % ActiveID

If ( DebugMode = 1)
{
WinGetPos, winX, winY, winW, winH, % ActiveID
;ToolTip, 좌표클릭, winX+px, winY+py, 10
}
Sleep, 200
Return 1
}

; 비활성 마우스 드래그

; (fromX, fromY) 좌표에서 (toX, toY) 로 드래그함

MouseDrag(fromX, fromY, toX, toY)
{
global ActiveID, DebugMode, WindowCaptionHeight, WindowBorderWidth, WindowBorderHeight
Sleep, 10

px1 := fromX-WindowBorderWidth/2
py1 := fromY-WindowBorderHeight/2-WindowCaptionHeight
p1 := px1|py1<<16

px2 := toX-WindowBorderWidth/2
py2 := toY-WindowBorderHeight/2-WindowCaptionHeight
p2 := px2|py2<<16

PostMessage, 0x201, 0, %p1%, , % ActiveID
PostMessage, 0x200, 0, %p2%, , % ActiveID
PostMessage, 0x202, 0, %p2%, , % ActiveID

If ( DebugMode = 1)
{
WinGetPos, winX, winY, winW, winH, % ActiveID
;ToolTip, 드래그시작, winX+px1, winY+py1, 11
;ToolTip, 드래그종료, winX+px2, winY+py2, 12
}
Sleep, 200
Return 1
}

Gui, Add, GroupBox, x12 y10 w232 h150 +center cred va, 대기중
Gui, Add, Text, x35 y40 w200 h30 , F1 : 매크로 시작?
Gui, Add, Text, x35 y80 w200 h30 , F2 : 매크로 종료
Gui, Add, Text, x35 y120 w200 h30 ,F3 : 매크로 정지
Gui, Add, Text, x160 y170 w110 h20 , 만든이? 백곰e
; Generated using SmartGUI Creator 4.0
Gui, Show,, 천하제일 용병단 매크로
Gui, Show, w255 h190,
Return

GuiClose:
ExitApp
return

f2::
GuiControl,,a,게임 종료
ExitApp ; 종료한다

f3::
GuiControl,,a,매크로 일시정지
reload ; 일시정지한다

f1::

SetDefaultMouseSpeed,0
SetKeyDelay,-1
SetControlDelay,-1
SetBatchLines, -1
SetWinDelay,-1
SetMouseDelay,-1

IfWinExist, BlueStacks App Player

WinActivate, BlueStacks App Player
WinMove, BlueStacks App Player, , 0, 0, 640, 480
WinSet, AlwaysOnTop, On, BlueStacks App Player
WinGetPos, X, Y, W, H, BlueStacks App Player
X2:=X+W
Y2:=Y+H

CoordMode, Screen
GuiControl,,a,게임 진행중


돌발:?
Loop
{
If ( ClickImage( "image\오류확인.png" ) = 1)
{
Sleep, 500
}
Else If ( CheckImage( "image\출석보상.png" ) = 1 )
{
Sleep, 500
ClickImage("image\출석보상 엑바.png")
Sleep, 500
gosub, 모험시작
}
Else If ( CheckImage( "image\스피드핵.png") = 1 )
{
Sleep, 500
ClickImage( "image\스피드핵 확인.png")
Sleep, 500
}
Else If ( ClickImage( "image\용병단 아이콘.png") = 1 )
{
Sleep, 500
}
Else If ( ClickImage( "image\용병단 메인화면.png") = 1 )
{
Sleep, 500
}
Else If ( CheckImage( "image\이벤트창.png") = 1 )
{
Sleep, 500
ClickImage( "image\이벤트창 확인.png")
Sleep, 500
}
Else If ( CheckImage( "image\특가구매.png") = 1 )
{
Sleep, 500
ClickImage( "image\특가구매 엑바.png")
Sleep, 500
ClickImage( "image\특가구매 엑바 확인.png")
Sleep, 500
}
Else
{
gosub, 모험시작
}
}

?
모험시작:
Loop
{
if ( ClickImage( "image\모험시작.png" ) = 1)
{
Sleep, 500???????????????????????????????????????????????
}
Else If ( ClickImage( "image\어려움.png" ) = 1 )
{
Sleep, 500????????????????????????????????????????????
}
Else If ( ClickImage( "image\요정의숲.png") = 1 )????
{
Sleep, 500??????????????????????????????????????????????
}
Else If ( ClickImage( "image\1-3.png" ) = 1 )????
{
Sleep, 500????????????????????????????????????????????
}
Else If ( ClickImage( "image\입장하기.png" ) = 1 )????
{
Sleep, 500?????
}
If ( ClickImage( "image\다시하기.png" ) = 1 )????
{
Sleep, 500????????
}
Else
{?
gosub, 스킬
}
}

스킬:
Loop
{?
If ( CheckImage( "image\스킬.png" ) = 1)
{
ClickPosition(535, 305)?
sleep, 1000
}
If ( CheckImage( "image\스킬.png" ) = 1)
{
ClickPosition(600, 305)
sleep, 1000
}
If ( CheckImage( "image\스킬.png" ) = 1)
{
ClickPosition(495, 375)?
sleep, 1000
}
If ( CheckImage( "image\스킬.png" ) = 1)
{
ClickPosition(560, 375)?
sleep, 1000
}
Else
{
break?
gosub, 에너지
}
}


?
에너지:
LOOP,
{
If ( CheckImage( "image\에너지부족.png" ) = 1)
{
Sleep, 500
ClickImage( "image\에너지부족 확인.png" )
Sleep, 30000
gosub, 돌발
}
Else If ( CheckImage( "image\부족.png") = 1 )
{
Sleep, 500
ClickImage( "image\부족 메인메뉴.png")
Sleep, 30000
gosub, 돌발
}
Else If ( ClickImage( "image\에너지구입.png") = 1 )
{
Sleep, 500
ClickImage( "image\에너지구입 취소.png")
Sleep, 500
ClickPosition(485, 145)?
sleep, 500
ClickPosition(23, 81)?
sleep, 500
ClickPosition(23, 81)?
sleep, 30000
gosub, 돌발
}
Else
{?
gosub, 보관함부족
}
}

보관함부족:
Loop,
{?
If ( CheckImage( "image\장비보관함부족.png") = 1 )
{
Sleep, 500
ClickImage( "image\장비보관함부족 확인.png")
Sleep, 500
gosub, 장비판매
}
Else If ( ClickImage( "image\보관함확장.png") = 1 )
{
Sleep, 500
ClickImage( "image\보관함확장 취소.png")
Sleep, 500
ClickPosition(485, 145)?
sleep, 500
ClickPosition(23, 81)?
sleep, 500
ClickPosition(23, 81)?
sleep, 500
gosub, 장비판매
}
Else
{?
gosub, 돌발
}
}

장비판매:
Loop
{?
If ( ClickImage( "image\용병단.png") = 1 )
{
sleep, 5000
ClickPosition(144, 250)?
sleep, 1000
}
Else If ( ClickImage( "image\장비인벤.png") = 1 )
{
Sleep, 3000
ClickPosition(351, 188)?
Sleep, 1000
}
Else If ( ClickImage( "image\장비판매.png") = 1 )
{
ClickImage("image\등급판매.png")
Sleep, 500
}
Else If ( CheckImage( "image\A급판매.png") = 1 )
{
Sleep, 500
ClickImage( "image\등급판매 확인.png")
Sleep, 500
}
Else If ( CheckImage( "image\B급판매.png") = 1 )
{
Sleep, 500
ClickImage( "image\등급판매 확인.png")
Sleep, 500
}
Else If ( CheckImage( "image\C급판매.png") = 1 )
{
Sleep, 500
ClickImage( "image\등급판매 확인.png")
Sleep, 500
}
Else If ( CheckImage( "image\판매완료.png") = 1 )
{
Sleep, 500
ClickImage( "image\판매완료 확인.png")
Sleep, 500
}
Else If ( ClickImage( "image\용병정보 1.png") = 1 )
{
Sleep, 500
}
Else If ( ClickImage( "image\용병정보 2.png") = 1 )
{
sleep, 3000
gosub, 돌발
}
}






  • theruin 2015.04.12 16:01

    스킬: 여기서

    Else
    {
    break?
    gosub, 에너지
    }


    확인해보세요.

  • theruin 2015.04.12 16:34
    이거 다음에 return이 없어서 아래부분이 실행이 되버리긴 하네요. 이거참..정리가 좀 필요할듯 싶네요.
    시작은 있고 끝이 없네요. 돌발 라벨부터 시작해서gosub으로 계속 돌발발로 돌아와서 계속 나가네요 끝이 없네요
  • 백곰e 2015.04.12 16:37

    io1tCyF.png


    그부분에 문제있는건가여?

    돌아가는건 잘돌아가고 오류는 이런 오류가나오는건데

  • theruin 2015.04.12 16:40
    계속 메모리만 잡아 먹다가 튕기게 될걸요?
  • 백곰e 2015.04.12 19:40
    어후 그럼 또 어케 수정을 해야하나여...ㅠㅠ
    제가 아직 잘몰라서 일부러 반복하게해논건데 저것때문에 팅기는거라면.....ㅜㅜ
  • theruin 2015.04.12 20:20
    순서도 같은거 그려보세요. 지금은 그냥 전체 뭉퉁그려서 다 돌리는거 밖에 안되자나요. 순서도 그려서 거기에 맞춰서 하시면될거에요
  • 제발등업좀2 2015.04.12 17:52
    Else
    {
    break
    gosub, 에너지
    }
    }

    요부분? 잘되시나요?
    블럭 다음에 고쉽이 있으면 어네지 라벨로 안가지읺나요?
    고쉽가기전에 루프가 깨지니까요...

    Ps.. 비활성.. 성공 추카드립니다..^^사용법 터득하셧네요 ㅋ
  • 백곰e 2015.04.12 19:39
    에너지라벨로 갑니다 ^^
    사용법 터득하긴했는데 위에처럼 오류나서 사용못하고있어여 ㅎㅎ
    어렵네여...ㅠㅠ
  • 리체 2015.04.12 20:18

    위의 코드는 닫히지 못하고 대기 상태(또는 유휴)로 남게 되는 스레드가 쌓이기 때문일 겁니다.

  • 백곰e 2015.04.13 10:39
    닫히지 못한다는게 return 게 없어서 그런다는 말씀이신가여?
    정말 어떻게 해야할지를 모르겠네여...ㅠㅠ
  • 리체 2015.04.13 11:08

    당연하지요, gosub를 쓰셨으면 리턴되게 하세요.
    백곰e님의 코드는 gosub으로 다른라벨로 넘어가기만 하고 return이 없습니다.
    return을 기다리는 스레드가 중첩될수밖에요.
    위의 코드에서는 gosub 대신 goto를 사용하셨어야 하고, 그랬다면 아마도 중지는 없을겁니다.

    위의 댓글에 지적한

    Else
    {
    break
    gosub, 에너지
    }

    이부분은 수정하셔야 하고요.

  • 제발등업좀2 2015.04.13 23:34
    지금 보니 잘갈수밖에 없네요 블럭으로 루프를깨면 아래 스크립트인.. 에너지 스크립트가 실핼됩니다.. 고쉽으로 실행 되는게 아니걸요?? 루프를 깨면 블럭 아래 먕랑어 즉 고쉽은 작동인하고 그냥 그아래 즉 오핫특성상 아래 스크립트가 가 진행되는게 아닐까여?
  • 제발등업좀2 2015.04.13 16:55
    지금보니 리턴이 하나도 없네요... 잘보시네요 다른분들...ㄷㄷㄷㄷ 개인적으류 매크로만들때 전 고쉽 고투 는 거이 안씁니다. 나중에 문제 찾기도힘들고.. 해서.. 걍 대용으로 함수나 펑션 을 만들어서.. 쓰고있습니다. 그리되면 어떤부분이 오류인지 수정하기도 편하고 스크립트 보기도 편하구요
    이참에 고쉽으로 나가는 부분을 펑션 으로 만들어서 대처해보시길 바랍니다.
  • 백곰e 2015.04.13 17:01
    오토핫키를 접한지 얼마안돼서 복붙하면서 하는정도 수준밖에안돼여.....^^;;
    어디가서 개인교습이라도 했으면 좋겠네여 ㅎㅎ
  • 제발등업좀2 2015.04.13 18:26
    구냥 간단히 쓰셔도 되요 예로
    에너지 (1)
    Return

    이렇게만 해도 에너지 관련 스크립트를
    고쉽이나 고투 안쓰고 펑션으로 처리해서 불러올수있겠죠
    이런식으로 간단한 스크립트를.. 펑션으로 만들어 고쉽이나 고투되신쓰게되면 편합니다. 나중에 드랍다운리스트등 아님 체크박스 랑도 연동하기 쉬워지구요

    에너지 (start)
    {
    If (start=1)
    {
    이미지서치
    생략
    }
    Return
    }
  • 제발등업좀2 2015.04.13 18:28
    에너지부분 고쉽으로 넘어가는부분을 저렇식으로 펑션으로 만들면 꼬일일 이없습니다
  • 백곰e 2015.04.15 00:21

    ZOESMfn.png

    저는 일단 바꾸기는 아직 미숙해서 그냥 있는거에 수정해서 오류는 안나고 완성은 했는데 먼가 잘못됐는지 어느부분은 빠르고 어느부분은 느리고하네여...ㅋㅋㅋㅋ
    그래도 일단은 작동돼는걸로 만족합니다

  • 매크로맨서 2015.04.16 14:10

    될수있으면 32비트 쓰시는걸 추천합니다


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 gdip_imagesearch 사용하시는 분들 중에 tolerance 건... 12 매크로맨서 2015.10.08 1/0
질문 gui 질문좀할께여 8 백곰e 2015.04.15 0/0
질문 블루스텍 구동시 화면깨짐 현상.. 1 흑염제 2015.04.15 0/0
질문 임의의 숫자가들은 변수를 소트하는방법을 좀 부탁드려요. 14 우후훅 2015.04.15 0/0
질문 지니모션 복제실행 6 나는황제다 2015.04.22 0/0
자유 여기서 개발하시는분들은 보안도 신경쓰셔야할거같아요. 15 외치기 2015.07.26 0/0
질문 화면 해상도 4 나는황제다 2015.04.23 0/0
질문 게임상나오는숫자 이미지서칭으로 찾는방법요 28 우후훅 2015.04.24 0/0
질문 블루스택 터치문제 4 불꽃앞점멸 2015.04.15 0/0
질문 오토핫키 Gui Button 텍스트에 색 입히기 질문 2 아잉뿌잉 2015.04.13 0/0
질문 비활성에 대한 질문입니다. 또 메시지에 대한 질문입니... 13 케리의비밀 2015.04.15 0/0
질문 postmessage 사용법 질문이요~ 4 olano 2015.04.16 0/0
질문 제 소스보시고 오류 테스트점 해주실분....ㅠㅠ 18 백곰e 2015.04.16 0/0
질문 [질문] 갯수 : 2개 8 USW 2015.04.13 0/0
질문 드롭다운리스트 사용법좀요.ㅠ 15 낭군이 2015.04.13 0/0
질문 카트라이더는 오토핫키가 안되나요? 11 달이되었다 2015.10.04 0/0
질문 이미치서치 질문좀 드리겠습니다. 8 낭군이 2015.04.11 0/0
정보 별되-오토핫키매크로 <팁> 중복유의. 1 sanman 2015.05.03 0/0
질문 오토핫키 작동중지 오류 도와주세여 8 백곰e 2015.04.15 0/0
질문 제가 메크로를 만들어보려고 하는데 ... 14 케리의비밀 2015.04.13 0/0
Board Pagination Prev 1 ... 172173174175176177178179180 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글