안녕하세요. 초보입니다.
생각처럼 잘 안되서 이렇게 질문 올립니다.
우선 라벨이 없는 루프를 그냥 루프라고 부르겠습니다.
컨트롤키를 누르면 루프로 되어있는 이미지서치를 한 후에 이미지가 있으면 해당 작업을 실행 후에 뿅 이라는 라벨로 가서 그걸 실행하던가, 이미지서치가 안되도 뿅이라는 라벨로 가서 실행을 하고 싶습니다.
그리고 뿅 이라는 라벨을 수행 하다가도 루프에 있는 이미지를 서치하게 되면 잠깐 뿅 이라는 라벨에서 실행하던걸 일시정지 하고 루프에 있는 것들을 실행한 후에 뿅의 라벨에 있는 일시정지 작업을 이어서 실행하는걸 반복하고 싶습니다.
그런데 이렇게 해두면 루프에서 처음에 실행하고 그 이후에 뿅만 실행합니다. 루프는 일시정지는 고사하고 뿅 라벨만 계속 무한 실행 하더라구요.. 방법이 없을까요?
원하는 기능
1 : 컨트롤키로 시작한다.
2 : 루프를 스크립트를 실행한다.
3 : 뿅 라벨로 가서 뿅 라벨 스크립트를 실행한다.
4 : 뿅 라벨 스크립트 실행 도중에도 루프의 이미지가 발견되면 뿅 라벨을 일시정지 하고 루프를 실행한다.
5 : 루프를 다 실행했으면 다시 뿅 라벨로 돌아와서 하던 작업을 이어서 한다.
6 : 루프의 이미지가 없을 경우에는 뿅 라벨을 계속 무한반복한다.
Ctrl::
Loop, 300
{
ImageSearch, vx, vy, 0,0, A_ScreenWidth, A_ScreenHeight, *70 XXX.png
If Errorlevel = 0
{
Send, {u}
sleep, 300
Send, {a}
sleep, 300
Send, {u}
sleep, 300
Send, {b}
sleep, 300
Send, {u}
sleep, 300
Send, {c}
sleep, 300
Send, {u}
sleep, 300
Send, {d}
sleep, 300
Send, {u}
sleep, 300
Send, {e}
sleep, 300
Send, {u}
sleep, 300
Send, {f}
sleep, 300
Send, {u}
sleep, 300
Send, {g}
sleep, 300
Send, {u}
sleep, 300
Send, {h}
sleep, 300
Send, {u}
sleep, 300
Send, {i}
sleep, 300
Send, {u}
sleep, 300
Send, {j}
sleep, 300
Send, {u}
sleep, 300
Send, {k}
sleep, 300
Send, {u}
sleep, 300
Send, {l}
sleep, 300
Send, {u}
sleep, 300
Send, {m}
sleep, 300
Send, {u}
sleep, 300
Send, {n}
sleep, 300
Send, {u}
sleep, 300
Send, {o}
sleep, 300
Send, {u}
sleep, 300
Send, {p}
gosub, 뿅
}
IF ErrorLevel = 1
{
gosub, 뿅
}
}
뿅:
{
Loop, 300
{
ImageSearch, vx, vy, 0,0, A_ScreenWidth, A_ScreenHeight, *70 XX.png
If Errorlevel = 0
{
vx:=vx+5
vy:=vy+5
Mouseclick, left, %vx%,%vy%
sleep, 8000
Loop, 615
{
Send, {space}
sleep, 180
}
}
IF ErrorLevel = 1
{
Random, A, 1,4
if ( A = 1)
{
loop, 6
{
Send, {Left}
sleep, 150
}
}
else if ( A = 2)
{
loop, 6
{
Send, {up}
sleep, 150
}
}
else if ( A = 3)
{
loop, 6
{
Send, {right}
sleep, 125
}
}
else if ( A = 4)
{
loop, 18
{
Send, {Down}
sleep, 125
}
}
}
}
}
return
Alt::Reload
F7::Pause
Esc::ExitApp
SetTimer 쓰세요