Тогда еще вопрос, вот собственно код. Ищет пиксель, находит, запоминает его x,y рисует линию к x200 y570 все отлично, но если не находит, он все равно рисует линию, но уже от x0, y0 до x200 y570.По задумке нужно что если пиксель не был найден, то он ничего не рисовал, продолжая поиск пикселя. Не могу понять почему так, хелп пожалуйста.
CoordMode, mouse,Screen
#IfWinActive Dota 2
MyLines := new c_DrawLinesOnScreen()
F1::MyLines.DrawLine()
Esc::ExitApp
#Include Gdip.ahk
Class c_DrawLinesOnScreen {
Lines := []
__New(o="") {
Gui, New, +Hwndhwnd
Gui %hwnd%: -Caption +E0x80000 +ToolWindow +AlwaysOnTop +OwnDialogs +Hwndhwnd
Gui %hwnd%: Show, NA
hbm := CreateDIBSection(A_ScreenWidth, A_ScreenHeight), hdc := CreateCompatibleDC(), obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
if (G < 1)
pToken := Gdip_Startup(), G := Gdip_GraphicsFromHDC(hdc), this.pToken := pToken
Gdip_SetSmoothingMode(G, 4), Gdip_SetInterpolationMode(G, 7)
PenColor := (o.PenColor) ? o.PenColor : "ffff0000", PenWidth := (o.PenWidth) ? o.PenWidth : 3
pPen := Gdip_CreatePen("0x" PenColor, PenWidth)
UpdateLayeredWindow(hwnd, hdc, 0, 0, A_ScreenWidth, A_ScreenHeight)
this.hwnd := hwnd, this.hbm := hbm, this.hdc := hdc, this.obm := obm, this.G := G, this.pPen := pPen
}
Где-то тут ошибка
DrawLine() {
Hotkey := RegExReplace(A_ThisHotkey, (A_IsUnicode = 1) ? "(*UCP)^(\w* & |\W*)" : "^(\w* & |\W*)")
While (GetKeyState(Hotkey, "p") = 1) {
Loop,
{
PixelSearch, x, y, 0, 570, 200, 760, 0xFFFFFF, 10, fast rgb
Gdip_GraphicsClear(this.G)
Gdip_DrawLine(this.G, this.pPen, pLine.1, pLine.2, pLine.3, pLine.4)
Gdip_DrawLine(this.G, this.pPen, x, y, 200, 570) ; draw new line
UpdateLayeredWindow(this.hwnd, this.hdc)
Sleep, 200
}
}
}