오토핫키를 이용해서 만드는 세븐 나이츠 매크로
2015년 10월 22일 시작
==========================================================
비활성 픽셀 서치 함수,
결국 좌표식 서치로 만들어야 겠다!
먼저 무한의 탑을 완성 시켜보자.
대충 입장 순서를 정리하자면 [전투입장 -> 무한의 탑 -> 황금의 방 -> ~]
으로 진행이 되어지니깐.
먼저 전투 입장을 할 수있게 만들어야 겠지.
~ 제작 중 ~
2015년 10월 22일 끝
==========================================================
전체 페이지뷰
2015년 10월 22일 목요일
2015년 10월 21일 수요일
[세븐나이츠]오토핫키 프로그램 제작 5일차
오토핫키를 이용해서 만드는 세븐 나이츠 매크로
2015년 10월 21일 시작
==========================================================
비활성을 위한 소스 중 하나.
PixelColor(pc_x, pc_y, pc_wID)
{
If pc_wID
{
pc_hDC := DllCall("GetDC", "UInt", pc_wID)
WinGetPos, , , pc_w, pc_h, ahk_id %pc_wID%
pc_hCDC := CreateCompatibleDC(pc_hDC)
pc_hBmp := CreateCompatibleBitmap(pc_hDC, pc_w, pc_h)
pc_hObj := SelectObject(pc_hCDC, pc_hBmp)
pc_hmCDC := CreateCompatibleDC(pc_hDC)
pc_hmBmp := CreateCompatibleBitmap(pc_hDC, 1, 1)
pc_hmObj := SelectObject(pc_hmCDC, pc_hmBmp)
DllCall("PrintWindow", "UInt", pc_wID, "UInt", pc_hCDC, "UInt", 0)
DllCall("BitBlt" , "UInt", pc_hmCDC, "Int", 0, "Int", 0, "Int", 1, "Int", 1, "UInt", pc_hCDC, "Int", pc_x, "Int", pc_y, "UInt", 0xCC0020)
pc_fmtI := A_FormatInteger
SetFormat, Integer, Hex
DllCall("GetBitmapBits", "UInt", pc_hmBmp, "UInt", VarSetCapacity(pc_bits, 4, 0), "UInt", &pc_bits)
pc_c := NumGet(pc_bits, 0)
SetFormat, Integer, %pc_fmtI%
DeleteObject(pc_hBmp), DeleteObject(pc_hmBmp)
DeleteDC(pc_hCDC), DeleteDC(pc_hmCDC)
DllCall("ReleaseDC", "UInt", pc_wID, "UInt", pc_hDC)
Return pc_c
}
}
CreateCompatibleDC(hdc=0) {
return DllCall("CreateCompatibleDC", "UInt", hdc)
}
CreateCompatibleBitmap(hdc, w, h) {
return DllCall("CreateCompatibleBitmap", UInt, hdc, Int, w, Int, w)
}
SelectObject(hdc, hgdiobj) {
return DllCall("SelectObject", "UInt", hdc, "UInt", hgdiobj)
}
DeleteObject(hObject) {
Return, DllCall("DeleteObject", "UInt", hObject)
}
DeleteDC(hdc) {
Return, DllCall("DeleteDC", "UInt", hdc)
}
검색을 하다 찾은 소스인데
특정 응용프로그램이 최소화 되어있지 않다면
원하는 위치의 Pixel 값을 가져오는 기능!
즉, 화면이 가려져도 Pixel 값을 가져올수 있지!
하지만... 여기서 큰 문제점은
시간이 너무 오래걸려 ㅠ_ㅠ
물론 범위를 주고 최소한의 범위를 주면 시간도 줄겠지
그래! 그래서 범위를 가로 100픽셀 세로 40픽셀만 줘봤지.
ㅋㅋㅋㅋㅋ 스캔시간이 8초나 걸린다고
어짜피 세븐나이츠는 2D게임이니깐 고정좌표로 할까..?
흠...
2015년 10월 21일 끝
==========================================================
2015년 10월 21일 시작
==========================================================
비활성을 위한 소스 중 하나.
PixelColor(pc_x, pc_y, pc_wID)
{
If pc_wID
{
pc_hDC := DllCall("GetDC", "UInt", pc_wID)
WinGetPos, , , pc_w, pc_h, ahk_id %pc_wID%
pc_hCDC := CreateCompatibleDC(pc_hDC)
pc_hBmp := CreateCompatibleBitmap(pc_hDC, pc_w, pc_h)
pc_hObj := SelectObject(pc_hCDC, pc_hBmp)
pc_hmCDC := CreateCompatibleDC(pc_hDC)
pc_hmBmp := CreateCompatibleBitmap(pc_hDC, 1, 1)
pc_hmObj := SelectObject(pc_hmCDC, pc_hmBmp)
DllCall("PrintWindow", "UInt", pc_wID, "UInt", pc_hCDC, "UInt", 0)
DllCall("BitBlt" , "UInt", pc_hmCDC, "Int", 0, "Int", 0, "Int", 1, "Int", 1, "UInt", pc_hCDC, "Int", pc_x, "Int", pc_y, "UInt", 0xCC0020)
pc_fmtI := A_FormatInteger
SetFormat, Integer, Hex
DllCall("GetBitmapBits", "UInt", pc_hmBmp, "UInt", VarSetCapacity(pc_bits, 4, 0), "UInt", &pc_bits)
pc_c := NumGet(pc_bits, 0)
SetFormat, Integer, %pc_fmtI%
DeleteObject(pc_hBmp), DeleteObject(pc_hmBmp)
DeleteDC(pc_hCDC), DeleteDC(pc_hmCDC)
DllCall("ReleaseDC", "UInt", pc_wID, "UInt", pc_hDC)
Return pc_c
}
}
CreateCompatibleDC(hdc=0) {
return DllCall("CreateCompatibleDC", "UInt", hdc)
}
CreateCompatibleBitmap(hdc, w, h) {
return DllCall("CreateCompatibleBitmap", UInt, hdc, Int, w, Int, w)
}
SelectObject(hdc, hgdiobj) {
return DllCall("SelectObject", "UInt", hdc, "UInt", hgdiobj)
}
DeleteObject(hObject) {
Return, DllCall("DeleteObject", "UInt", hObject)
}
DeleteDC(hdc) {
Return, DllCall("DeleteDC", "UInt", hdc)
}
검색을 하다 찾은 소스인데
특정 응용프로그램이 최소화 되어있지 않다면
원하는 위치의 Pixel 값을 가져오는 기능!
즉, 화면이 가려져도 Pixel 값을 가져올수 있지!
하지만... 여기서 큰 문제점은
시간이 너무 오래걸려 ㅠ_ㅠ
물론 범위를 주고 최소한의 범위를 주면 시간도 줄겠지
그래! 그래서 범위를 가로 100픽셀 세로 40픽셀만 줘봤지.
ㅋㅋㅋㅋㅋ 스캔시간이 8초나 걸린다고
어짜피 세븐나이츠는 2D게임이니깐 고정좌표로 할까..?
흠...
2015년 10월 21일 끝
==========================================================
2015년 10월 16일 금요일
[세븐나이츠]오토핫키 프로그램 제작 4일차
오토핫키를 이용해서 만드는 세븐 나이츠 매크로
2015년 10월 17일 시작
==========================================================
일이 바빠서 프로그램에 전혀 손을 대지 못했네 ㅠㅠ
아! 그리고 일하면서 계속 생각하면서 시간 날 때마다 20~30분 실험을 했더니,
비활성이 가능하게 되었네? ㅋㅋㅋㅋ
소스를 활성 서치 -> 비활성 서치로 바꾸고.....
처음부터 다시 짜는게 좋겠지!
좋아. 이왕 비활성 도전하는거 다시 처음부터 짜보자!
음.. 그래도 클릭 함수와 키보드 함수는 쓸만할테니 그대로 쓰고.
Gui도 바꿀 필요 없으니 가져다가 쓰고.
~ 제작 중 ~
==========================================================
2015년 10월 17일 시작
==========================================================
일이 바빠서 프로그램에 전혀 손을 대지 못했네 ㅠㅠ
아! 그리고 일하면서 계속 생각하면서 시간 날 때마다 20~30분 실험을 했더니,
비활성이 가능하게 되었네? ㅋㅋㅋㅋ
소스를 활성 서치 -> 비활성 서치로 바꾸고.....
처음부터 다시 짜는게 좋겠지!
좋아. 이왕 비활성 도전하는거 다시 처음부터 짜보자!
음.. 그래도 클릭 함수와 키보드 함수는 쓸만할테니 그대로 쓰고.
Gui도 바꿀 필요 없으니 가져다가 쓰고.
~ 제작 중 ~
==========================================================
피드 구독하기:
글 (Atom)