Checker:
gui, submit, nohide
if(imageSearcher(x,y, "\Image\팅김확인.bmp")=1)
{
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 레이븐팅김감지 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
재시작발생++
Guicontrol,,재시작발생,재시작발생 : %재시작발생%회
winkill, ahk_class WindowsForms10.Window.8.app.0.33c0d9d
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 5초후 시작됩니다 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
sleep, 5000
IniWrite,%업적발생%, option.ini, LOG 기록,업적발생
IniWrite,%통신실패%, option.ini, LOG 기록,통신실패
IniWrite,%결투패배%, option.ini, LOG 기록,결투패배
IniWrite,%결투승리%, option.ini, LOG 기록,결투승리
IniWrite,%행동물약%, option.ini, LOG 기록,행동물약
IniWrite,%연속탐험%, option.ini, LOG 기록,연속탐험
IniWrite,%레이드성공%, option.ini, LOG 기록,레이드성공
IniWrite,%레이드실패%, option.ini, LOG 기록,레이드실패
IniWrite,%길드전승리%, option.ini, LOG 기록,길드전승리
IniWrite,%길드전패배%, option.ini, LOG 기록,길드전패배
IniWrite,%재시작발생%, option.ini, LOG 기록,재시작발생
IniWrite,%요일레이드%, option.ini, LOG 기록,요일레이드
IniWrite,%보상획득%, option.ini, LOG 기록,보상획득
sleep, 1000
Reload
}
else
{
sleep, 300
}
gui, submit, nohide
if(imageSearcher(x,y, "\Image\통신실패.bmp")=1)
{
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 서버끈김김감지 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
통신끈김++
Guicontrol,,통신끈김,통신끈김 : %통신끈김%회
winkill, ahk_class WindowsForms10.Window.8.app.0.33c0d9d
;winkill, ahk_class #32770
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 5초후 시작됩니다 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
sleep, 5000
IniWrite,%업적발생%, option.ini, LOG 기록,업적발생
IniWrite,%통신실패%, option.ini, LOG 기록,통신실패
IniWrite,%결투패배%, option.ini, LOG 기록,결투패배
IniWrite,%결투승리%, option.ini, LOG 기록,결투승리
IniWrite,%행동물약%, option.ini, LOG 기록,행동물약
IniWrite,%연속탐험%, option.ini, LOG 기록,연속탐험
IniWrite,%레이드성공%, option.ini, LOG 기록,레이드성공
IniWrite,%레이드실패%, option.ini, LOG 기록,레이드실패
IniWrite,%길드전승리%, option.ini, LOG 기록,길드전승리
IniWrite,%길드전패배%, option.ini, LOG 기록,길드전패배
IniWrite,%재시작발생%, option.ini, LOG 기록,재시작발생
IniWrite,%요일레이드%, option.ini, LOG 기록,요일레이드
IniWrite,%보상획득%, option.ini, LOG 기록,보상획득
sleep, 1000
Reload
}
else
{
sleep, 300
}
gui, submit, nohide
if(imageSearcher(x,y, "\Image\탐험실패.bmp")=1)
{
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 탐험실패감지 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
탐험실패++
Guicontrol,,탐험실패,탐험실패 : %탐험실패%회
winkill, ahk_class WindowsForms10.Window.8.app.0.33c0d9d
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 5초후 시작됩니다 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
sleep, 5000
IniWrite,%업적발생%, option.ini, LOG 기록,업적발생
IniWrite,%통신실패%, option.ini, LOG 기록,통신실패
IniWrite,%결투패배%, option.ini, LOG 기록,결투패배
IniWrite,%결투승리%, option.ini, LOG 기록,결투승리
IniWrite,%행동물약%, option.ini, LOG 기록,행동물약
IniWrite,%연속탐험%, option.ini, LOG 기록,연속탐험
IniWrite,%레이드성공%, option.ini, LOG 기록,레이드성공
IniWrite,%레이드실패%, option.ini, LOG 기록,레이드실패
IniWrite,%길드전승리%, option.ini, LOG 기록,길드전승리
IniWrite,%길드전패배%, option.ini, LOG 기록,길드전패배
IniWrite,%재시작발생%, option.ini, LOG 기록,재시작발생
IniWrite,%요일레이드%, option.ini, LOG 기록,요일레이드
IniWrite,%보상획득%, option.ini, LOG 기록,보상획득
sleep, 1000
Reload
}
else
{
sleep, 300
}
gui, submit, nohide
if(imageSearcher(x,y, "\Image\인증실패.bmp")=1)
{
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 탐험실패감지 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
재시작발생++
Guicontrol,,재시작발생,재시작발생 : %재시작발생%회
winkill, ahk_class WindowsForms10.Window.8.app.0.33c0d9d
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 5초후 시작됩니다 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
sleep, 5000
IniWrite,%업적발생%, option.ini, LOG 기록,업적발생
IniWrite,%통신실패%, option.ini, LOG 기록,통신실패
IniWrite,%결투패배%, option.ini, LOG 기록,결투패배
IniWrite,%결투승리%, option.ini, LOG 기록,결투승리
IniWrite,%행동물약%, option.ini, LOG 기록,행동물약
IniWrite,%연속탐험%, option.ini, LOG 기록,연속탐험
IniWrite,%레이드성공%, option.ini, LOG 기록,레이드성공
IniWrite,%레이드실패%, option.ini, LOG 기록,레이드실패
IniWrite,%길드전승리%, option.ini, LOG 기록,길드전승리
IniWrite,%길드전패배%, option.ini, LOG 기록,길드전패배
IniWrite,%재시작발생%, option.ini, LOG 기록,재시작발생
IniWrite,%요일레이드%, option.ini, LOG 기록,요일레이드
IniWrite,%보상획득%, option.ini, LOG 기록,보상획득
sleep, 1000
Reload
}
else
{
sleep, 300
}
gui, submit, nohide
if(imageSearcher(x,y, "\Image\wifi.bmp")=1)
{
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% wifi감지 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
재시작발생++
Guicontrol,,재시작발생,재시작발생 : %재시작발생%회
winkill, ahk_class WindowsForms10.Window.8.app.0.33c0d9d
formattime , nowtime,,MM-dd HH:mm:ss
guicontrol,,notice_2, %message_2%
listMessage =%nowtime% 5초후 시작됩니다 %message_2%|%listMessage%
guicontrol,,notice_list, |%listMessage%
sleep, 5000
IniWrite,%업적발생%, option.ini, LOG 기록,업적발생
IniWrite,%통신실패%, option.ini, LOG 기록,통신실패
IniWrite,%결투패배%, option.ini, LOG 기록,결투패배
IniWrite,%결투승리%, option.ini, LOG 기록,결투승리
IniWrite,%행동물약%, option.ini, LOG 기록,행동물약
IniWrite,%연속탐험%, option.ini, LOG 기록,연속탐험
IniWrite,%레이드성공%, option.ini, LOG 기록,레이드성공
IniWrite,%레이드실패%, option.ini, LOG 기록,레이드실패
IniWrite,%길드전승리%, option.ini, LOG 기록,길드전승리
IniWrite,%길드전패배%, option.ini, LOG 기록,길드전패배
IniWrite,%재시작발생%, option.ini, LOG 기록,재시작발생
IniWrite,%요일레이드%, option.ini, LOG 기록,요일레이드
IniWrite,%보상획득%, option.ini, LOG 기록,보상획득
sleep, 1000
Reload
}
else
{
sleep, 300
}
return
F12::
SEND,#+{Left}
return
guiclose:
exitapp
return
; =============================== 함수선언 ==========================================
; 이미지 서치
; 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
}
; 비활성 마우스 드래그
; (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
}
; 비활성 좌표 클릭
; 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
}
;이미지 서치
imageSearcher( ByRef imgX, ByRef imgY, img)
{
global ActiveID
WinGetPos, winX, winY, winW, winH, %ActiveID%
ImageSearch, oX, oY, winX, winY, winX+winW, winY+winH, *50 %A_ScriptDir%\%img%
If ( ErrorLevel = 0)
{
imgX := oX
imgY := oY
return 1
}
else If ( ErrorLevel = 1){
return 0
}
}
;클릭
sendClick( x, y) {
global ActiveID
WinGetPos, winX, winY, winW, winH, %ActiveID%
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-winX-bordW
py:=y-winY-bordH-capH
p := px|py<<16
PostMessage, 0x201, 0, %p%, , %ActiveID%
PostMessage, 0x202, 0, %p%, , %ActiveID%
Sleep, 200
Return
}
sendClick2( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x201, 0, %p%, , %ActiveID%
PostMessage, 0x202, 0, %p%, , %ActiveID%
Sleep, 200
Return
}
;서치앤클릭
imageSearchClick(img)
{
If imageSearcher( x, y, img) = 1
{
sendClick( x, y)
Return 1
}
Return 0
}
;이미지 찾을때까지 대기
waitImage(img) {
Loop {
If imageSearcher( x, y, img) = 1
{
Break
}
Sleep, 500
}
Sleep, 200
Return
}
;이미지 찾을때까지 대기후 클릭
waitImageClick(img) {
Loop {
If imageSearchClick( img) = 1
{
Break
}
Sleep, 500
}
Sleep, 200
Return
}
sendDrag10( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
p1 := px+100|py<<16
PostMessage, 0x201, 1, %p%, , % ActiveID
Sleep, 100
PostMessage, 0x201, 1, %p1%, , % ActiveID
Sleep, 200
Return
}
sendDrag11( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x200, 1, %p%, , % ActiveID
Sleep, 100
Return
}
sendDrag12( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x202, 2, %p%, , % ActiveID
Sleep, 100
Return
}
sendDrag20( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
p1 := px+50|py+100<<16
PostMessage, 0x201, 1, %p%, , % ActiveID
Sleep, 100
PostMessage, 0x201, 1, %p1%, , % ActiveID
Sleep, 200
Return
}
sendDrag21( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x200, 1, %p%, , % ActiveID
Sleep, 100
Return
}
sendDrag22( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x202, 2, %p%, , % ActiveID
Sleep, 100
Return
}
sendDrag30( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
p1 := px-100|py<<16
PostMessage, 0x201, 1, %p%, , % ActiveID
sleep, 100
PostMessage, 0x201, 1, %p1%, , % ActiveID
sleep, 200
Return
}
sendDrag31( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x200, 1, %p%, , % ActiveID
sleep, 100
Return
}
sendDrag32( x, y)
{
global ActiveID
SysGet, capH, 4 ; 캡션Height
SysGet, bordW, 32 ; 보더Width
SysGet, bordH, 33 ; 보더Height
px:=x-bordW/2
py:=y-bordH/2-capH
p := px|py<<16
PostMessage, 0x202, 2, %p%, , % ActiveID
sleep, 100
Return
}
이미지 찾는 분들이 있어서 일단 링크 드립니다..
http://tailstar.net/macro_tips/11626695
페이지 가셔서 매크로 받으시면 안에 이미지 파일 있습니다
일단은 그냥 쓰셔도 되고요 추후 업데이트만 대응해서 쓰시면 됩니다