오토핫키를 배운지 3일째인데요.
막히는 부분이 잇어 문의드립니다.
아래 내요을 한마디로 요약하지면 이미지를 찾아서 평타3번>>스킬1>>스킬2>>스킬3>>스킬4를 무한반복하는 내용입니다.
블루스택에 비활성클릭으로 해놨습니다.
문제점은 매크로 실행시 평타3회>>스킬4번만 반복한다는건데요.
나머지 스킬1~3번에 대한 이미지를 못찾는것도 아닙니다.
수동으로 나머지 스킬은 한번씩 사용하면 이미지를 찾아서 스킬을 사용하기 때문인데요.
수동으로 누르지 않아도 나머지 스킬이 눌려지게끔 할수 있는방법이 없을까요?
gui, add, text, x30 y5 w100 h20, 러스티블러드
gui, add, text, x110 y5 w50 h20 vA, 준비
gui, add, checkbox, x20 y35 w100 h20 v공격 checked, 공격
gui, add, checkbox, x20 y55 w100 h20 v난무 checked, 난무
gui, add, checkbox, x20 y75 w100 h20 v바칼 checked, 바칼
gui, add, checkbox, x20 y95 w100 h20 v사분 checked, 사분
gui, add, checkbox, x20 y115 w100 h20 v회피 checked, 회피
gui, add, button, x20 y150 w50 h20 v시작버튼, 시작
gui, add, button, x80 y150 w50 h20 v종료버튼, 종료
gui, add, text, x50 y180 w90 h20, F2 : 정지
gui, show
global 매크로시작 := false
return
button시작:
{
GuiControl, disable, 반복횟수,
GuiControl, disable, 공격,
GuiControl, disable, 난무,
GuiControl, disable, 바칼,
GuiControl, disable, 사분,
GuiControl, disable, 회피,
GuiControl, disable, 시작버튼,
gui, submit, nohide
GuiControl, , A, 시작
CoordMode, pixel, screen
CoordMode, mouse, screen
매크로시작 := true
global 클리어횟수 := 0
while((매크로시작 = true) && ((클리어횟수 < 반복횟수) || (반복횟수 =0)))
{
WinGetPos, pos_x, pos_y, width, height, BlueStacks App Player
x_right := width + pos_x
x_bottom := height + pos_y
if (공격 = 1)
loop
{
ImageSearch, FoundX, FoundY, %pos_x%, %pos_y%, %x_right%, %x_bottom%, *50 %A_ScriptDir%\image1\공격.bmp
if ((errorlevel=0) && (매크로시작 = true))
{
비활성왼쪽클릭(foundX, FoundY) ;찾은좌표 클릭
sleep, 1000 ;대기시간 0.7초)
}
if a_index = 3
break
}
if (난무 = 1)
{
ImageSearch, FoundX, FoundY, %pos_x%, %pos_y%, %x_right%, %x_bottom%, *50 %A_ScriptDir%\image1\난무.bmp
if ((errorlevel=0) && (매크로시작 = true))
{
비활성왼쪽클릭(foundX, FoundY) ;찾은좌표 클릭
sleep, 1000 ;대기시간 0.7초)
}
}
if (바칼 = 1)
{
ImageSearch, FoundX, FoundY, %pos_x%, %pos_y%, %x_right%, %x_bottom%, *50 %A_ScriptDir%\image1\바칼.bmp
if ((errorlevel=0) && (매크로시작 = true))
{
비활성왼쪽클릭(foundX, FoundY) ;찾은좌표 클릭
sleep, 1000 ;대기시간 0.7초)
}
}
if (사분 = 1)
{
ImageSearch, FoundX, FoundY, %pos_x%, %pos_y%, %x_right%, %x_bottom%, *50 %A_ScriptDir%\image1\사분.bmp
if ((errorlevel=0) && (매크로시작 = true))
{
비활성왼쪽클릭(foundX, FoundY) ;찾은좌표 클릭
sleep, 1000 ;대기시간 0.7초)
}
}
if (회피 = 1)
{
ImageSearch, FoundX, FoundY, %pos_x%, %pos_y%, %x_right%, %x_bottom%, *50 %A_ScriptDir%\image1\회피.bmp
if ((errorlevel=0) && (매크로시작 = true))
{
비활성왼쪽클릭(foundX, FoundY) ;찾은좌표 클릭
sleep, 1000 ;대기시간 0.7초)
}
}
}
}
return
guiclose:
exitapp
Button종료:
{
GuiControl, enable, 반복횟수,
GuiControl, enable, 공격,
GuiControl, enable, 난무,
GuiControl, enable, 바칼,
GuiControl, enable, 사분,
GuiControl, enable, 회피,
GuiControl, enable, 시작버튼,
gui, submit, nohide
GuiControl, , A, 종료
매크로시작 := false
}
return
f2::
{
매크로시작 := false
gui, submit, nohide
GuiControl, , a, 정지
}
return
비활성왼쪽클릭(x좌표, y좌표)
{
wingetpos, w_x, w_y, w_w, w_h, BlueStacks App Player
내부좌표x := x좌표 - w_x
내부좌표y := y좌표 - w_y
Iparam := 내부좌표x|내부좌표y<<16
postmessage, 0x201, 1, %Iparam%, ,BlueStacks App Player
postmessage, 0x202, 0, %Iparam%, ,BlueStacks App Player
sleep, 100
}
내부좌표x := x좌표 - w_x
내부좌표y := y좌표 - w_y
좌표 x값에서.. 왜 창의 x값을 빼주시나요?
걍 포스메세지는 창의 캡션과 보더값만 빼주시면 되는게 아닌지?
툴팁으로 해당좌표애 잘뚜는 지 확인해보세요 ㅎㅎ.
음 간만이라 내가헤갈리는건가 ㅋ