AHK coders lounge - discuss and share code menu

User Tag List

Page 6 of 6 FirstFirst ... 23456
Results 76 to 77 of 77
  1. #76
    spoofjack's Avatar Active Member
    Reputation
    23
    Join Date
    May 2009
    Posts
    187
    Thanks G/R
    14/22
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    What if we went Colorblind i wonder if we would have less troubles shooting things red?

    https://thumbs.gfycat.com/SolidEnchantedHart-mobile.mp4

    AHK coders lounge - discuss and share code
  2. #77
    Zolyrica's Avatar Banned
    Reputation
    12
    Join Date
    Feb 2013
    Posts
    24
    Thanks G/R
    0/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by spoofjack View Post
    Java Look

    Code:
    TraySetState(2)shoot()
    
    
    Func shoot()
     Local $text = FILEREADTOARRAY("C:\OBConfig\config.txt")
     Local $holdmousedown = $text[0]
     Local $keybind = $text[2]
     Local $waittillnextshot = $text[1]
     While 1
      $pos = MouseGetPos()
      $pixel = PixelSearch($pos[0] + 28, $pos[1] + 28, $pos[0] - 28, $pos[1] - 28, 11942961, 7)
      If NOT @error AND (WinActive("????") OR WinActive("Overwatch") OR WinActive("????") OR WinActive("????") OR WinActive("????????")) AND (getkeystate($keybind) = 1) Then
       MouseDown("primary")
       Sleep($holdmousedown)
       MouseUp("primary")
       Sleep($waittillnextshot)
      EndIf
      If (getkeystate(116) = 1) Then
       Local $text = FILEREADTOARRAY("C:\OBConfig\config.txt")
       Local $holdmousedown = $text[0]
       Local $keybind = $text[2]
       Local $waittillnextshot = $text[1]
      EndIf
     WEnd
    EndFunc
    
    
    Func getkeystate($vk_code)
     Local $a_return = DllCall("user32.dll", "short", "GetKeyState", "int", $vk_code)
     If $a_return[0] < -126 Then
      Return 1
     Else
      Return 0
     EndIf
    EndFunc
    Code:
    #NoTrayIcon
    #SingleInstance, Force
    #NoEnv
    #Include, gdip.ahk
    global layout, tooltipArray, pToken, Scan0, Stride, ts
    SetBatchLines,-1
    SetMouseDelay,-1
    coordmode,mouse,screen
    coordmode,tooltip,screen
    LoadLayout()
    Tooltip()
    ts := new TempSettings()
    ts.Refresh()
    altMouse := 1
    return
    
    ~F12::
    ~home::
    ~delete::
    Tooltip()
    return
    ~up::Tooltip(,-1)
    ~down::Tooltip(,1)
    ~right::Tooltip(1)
    ~left::Tooltip(-1)
    
    aim:
    if (!active) {
    	active := true
    	while (GetKeyState(strreplace(a_thishotkey,"~"),"P")) {
    		match := false
    		QPX(True)
    		
    		movepoint := new point(0,0)
    		movepoint2 := new point(0,-1)
    		
    		if (ts.alternative == 1) {
    			pbmp := Gdip_BitmapFromScreen(ts.search_offset.x "|" ts.search_offset.y "|" ts.dimensions.x "|" ts.dimensions.y)
    			E1 := Gdip_LockBits(pbmp, 0, 0, ts.dimensions.x, ts.dimensions.y, Stride, Scan0, BitmapData,1)
    		}
    		else if (ts.alternative == 2) {
    			
    		}
    		else {
    			pbmp := BitmapFromScreen2(ts.search_offset.x, ts.search_offset.y, ts.dimensions.x, ts.dimensions.y,ts.dc)
    			E1 := Gdip_LockBits(pbmp, 0, 0, ts.dimensions.x, ts.dimensions.y, Stride, Scan0, BitmapData,1,0x21808)
    		}
    		loop % (ts.dimensions.max()/ts.spread)**2 {
    			if ((-ts.dimensions.x/2 < movepoint.x) <= ts.dimensions.x/2) && ((-ts.dimensions.y/2 < movepoint.y) <= ts.dimensions.y/2) {
    				search_point := new point((movepoint.x*ts.spread) + (ts.dimensions.x/2), (movepoint.y*ts.spread) + (ts.dimensions.y/2))
    				if (search_point.x >= 0 && search_point.x < ts.dimensions.x) && (search_point.y >= 0 && search_point.y < ts.dimensions.y) {
    					
    					;~ GetRGB(search_point,"dwm|" handle,r,g,b)
    					GetRGB(search_point,"",r,g,b)
    					
    					if (r > 240 && g < 20 && b < 20) && (b > 0) && (g == 0) {
    						
    						match := true
    						
    						found_point := new point(search_point.x-3,search_point.y)
    						FindLeftEdge(found_point)
    						
    						mouse_point := new point((ts.search_offset.x+found_point.x)-ts.window_center.x, (ts.search_offset.y+found_point.y-ts.offset_y)-ts.window_center.y)
    						
    						DllCall("mouse_event", "UInt", 0x01, "UInt", (mouse_point.x+ts.mouse_offset.x)/ts.ingame_sens, "UInt", (mouse_point.y+ts.mouse_offset.y)/(ts.ingame_sens*2.41))
    						
    						;~ if (!altMouse)
    							;~ match_search_offset := new point(ts.window_center.x+(mouse_point.x*0.5)-ts.match_dimensions.x/1.5 , ts.window_center.y+(mouse_point.y*0.5)-ts.match_dimensions.y/2+ts.offset_y)
    						;~ else
    						match_search_offset := new point(ts.window_center.x+(mouse_point.x)-ts.match_dimensions.x+ts.mouse_offset.x, ts.window_center.y+(mouse_point.y)-ts.match_dimensions.y+ts.mouse_offset.y+ts.offset_y)
    					}
    				}
    			}
    			if (!match) {
    				if (movepoint.x == movepoint.y || (movepoint.x < 0 && movepoint.x == -movepoint.y) || (movepoint.x > 0 && movepoint.x == 1-movepoint.y)) {
    					movepoint2.swap()
    				}
    				movepoint.add(movepoint2.x,movepoint2.y)
    			}
    		} until (match)
    		
    		
    		if (match) {
    			ts.dimensions := new point(ts.match_dimensions.x,ts.match_dimensions.y)
    			ts.search_offset := match_search_offset
    			if (ts.overlayShow)
    				overlay(ts.search_offset.x, ts.search_offset.y, ts.dimensions.x, ts.dimensions.y,,1)
    			dur := QPX(false)
    			if (dur < 0.008) {
    				delay(0.008-dur)
    			}
    		}
    		else {
    			if (ts.dimensions.max() < ts.start_dimensions.min()) {
    				ts.dimensions.x += 200
    				ts.dimensions.y += 100
    				ts.search_offset.sub(100,50) 
    				if (ts.overlayShow)
    					overlay(ts.search_offset.x, ts.search_offset.y, ts.dimensions.x, ts.dimensions.y,,1)
    			}
    			else {
    				ts.dimensions := ts.start_dimensions
    				ts.search_offset := ts.start_search_offset
    				if (ts.overlayShow)
    					overlay(ts.search_offset.x, ts.search_offset.y, ts.dimensions.x, ts.dimensions.y)
    			}
    			dur := QPX(false)
    			if (dur < 0.008) {
    				delay(0.008-dur)
    			}
    			
    		}
    		
    		Gdip_UnlockBits(pbmp, BitmapData)
    		Gdip_DisposeImage(pbmp)
    		
    	}
    	active := false
    }
    ts.dimensions := ts.start_dimensions
    ts.search_offset := ts.start_search_offset
    overlay(ts.search_offset.x, ts.search_offset.y, ts.dimensions.x, ts.dimensions.y)
    return
    
    FindHPBar() {
    	
    }
    
    GetRGB(point,mode,byref r, byref g, byref b) {
    	mode := strsplit(mode,"|")
    	if (mode[1] == "dwm") {
    		Gdip_FromRGB(DllCall("gdi32.dll\GetPixel", "UInt", ts.dc, "Int", point.x, "Int", point.y, "UInt"),b,g,r)
    		
    	}
    	else
    		Gdip_FromRGB(NumGet(Scan0+0, (point.x*3)+(point.y*Stride)),r,g,b)
    }
    
    FindLeftEdge(byref found_point) {
    	mismatch := 0
    	loop 100{
    		if (found_point.x < 0 || found_point.x > dimensions.x)
    			mismatch := 9
    		GetRGB(search_point,"",r,g,b)
    		if !((r > 200 && g < 100 && b < 100))
    			mismatch++
    		else 
    			mismatch := 0
    		found_point.x-=2
    	} until % mismatch > 8
    }
    
    BitmapFromScreen2(s_x,s_y,s_w,s_h,dc) {
        chdc := CreateCompatibleDC(dc), hbm := CreateDIBSection(s_w, s_h, chdc), obm := SelectObject(chdc, hbm)
    	BitBlt(chdc, 0, 0, s_w, s_h, dc, s_x, s_y)
        
    	pbmp := Gdip_CreateBitmapFromHBITMAP(hbm)
    	SelectObject(chdc, obm), DeleteObject(hbm), DeleteDC(chdc)
        return pbmp
    }
    
    Gdip_FromRGB(RGB, ByRef R, ByRef G, ByRef B)
    {
    	R := (0x00ff0000 & RGB) >> 16
    	G := (0x0000ff00 & RGB) >> 8
    	B := 0x000000ff & RGB
    }
    
    Delay( D=0.001 ) {
        Static F
        Critical
        F ? F : DllCall( "QueryPerformanceFrequency", Int64P,F )
        DllCall( "QueryPerformanceCounter", Int64P,pTick ), cTick := pTick
        While( ( (Tick:=(pTick-cTick)/F)) <D ) {
            DllCall( "QueryPerformanceCounter", Int64P,pTick )
            Sleep -1
        }
        Return Round( Tick,3 )
    }
    
    QPX( N=0 ) {
    	Static F,A,Q,P,X
    	If	( N && !P )
    		Return	DllCall("QueryPerformanceFrequency",Int64P,F) + (X:=A:=0) + DllCall("QueryPerformanceCounter",Int64P,P)
    	DllCall("QueryPerformanceCounter",Int64P,Q), A:=A+Q-P, P:=Q, X:=X+1
    	Return	( N && X=N ) ? (X:=X-1)<<64 : ( N=0 && (R:=A/X/F) ) ? ( R + (A:=P:=X:=0) ) : 1
    }
    
    overlay(x ,y ,w ,h, create=0,c=0) {
    	static overlay_ID
    	if (!overlay_ID) {
    		Gui, 2: +E0x20 -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
    		Gui, 2: Show,,Window
    		overlay_ID := WinExist()
    	}
    	overlay_dib := CreateDIBSection(w, h)
    	overlay_dc := CreateCompatibleDC()
    	overlay_obm := SelectObject(overlay_dc, overlay_dib)
    	G := Gdip_GraphicsFromHDC(overlay_dc)
    	if (!c)
    		overlay_pen := Gdip_CreatePen(Gdip_ToARGB(255,255,0,0), 2)
    	else
    		overlay_pen := Gdip_CreatePen(Gdip_ToARGB(255,0,255,0), 2)
    	Gdip_DrawRectangle(G, overlay_pen, 0, 0, w, h)
    	Gdip_DeletePen(overlay_pen)
    	UpdateLayeredWindow(overlay_ID, overlay_dc, x, y, w, h)
    	SelectObject(overlay_dc, overlay_obm)
    	DeleteObject(overlay_dib)
    	DeleteDC(overlay_dc)
    	Gdip_DeleteGraphics(G)
    }
    
    class point {
    	__new(x,y) {
    		this.x := x
    		this.y := y
    	}
    	swap() {
    		ty := -this.y
    		this.y := this.x
    		this.x := ty
    	}
    	max() {
    		if (this.x > this.y)
    			return  % this.x
    		else
    			return % this.y
    	}
    	min() {
    		if (this.x < this.y)
    			return  % this.x
    		else
    			return % this.y
    	}
    	add(x,y) {
    		this.x += x
    		this.y += y
    	}
    	sub(x,y) {
    		this.x -= x
    		this.y -= y
    	}
    }
    
    pickItem(subs,val=0) {
    	temp := strsplit(layout[subs],"|")
    	if (instr(temp[1],"num")) {
    		temp2 := strsplit(temp[1],":")
    		newVal := temp[2]+(temp2[2]*val)
    		if (newVal >= 0) {
    			if (temp2[2] < 1)
    				temp[2] := round(newVal,2)
    			else
    				temp[2] := round(newVal,0)		
    		}
    		layout[subs] := temp[1] "|" temp[2]
    		return % temp[2]
    	}
    	else if (instr(temp[1],"bool")) {
    		temp2 := strsplit(temp[1],":")
    		temp[1] := temp2[1] ":" !temp2[2]
    		temp[2] := (temp2[2]) ? "Enabled" : "Disabled"
    		layout[subs] := temp[1] "|" temp[2]
    		return % temp[2]
    	}
    	;~ else if (instr(temp[1],"btn")) {
    		;~ if (val)
    		;~ MsgBox sup
    	;~ }
    	else {
    		temp[1] += val
    		retStr := strsplit(temp[2],";")[temp[1]]
    		if (!retStr)
    			temp[1] -= val
    		else if (subs == "1a. Mode" && val) {
    			LoadLayout(temp[1],temp[1]-val)
    		}
    		layout[subs] := temp[1] "|" temp[2]
    		return % strsplit(temp[2],";")[temp[1]]
    	}
    }
    
    Tooltip(newTab=0,newItem=0) {
    	static activeTab, activeItem, toggle, x, y
    	if (toggle == "")
    		toggle := 1
    	
    	if (!newTab && !newItem) {
    		toggle := ! toggle
    		mousegetpos,x,y
    	}
    	
    	
    
    	if (toggle) {
    		activeItem := (!newItem && !activeItem) ? 1 : activeItem+newItem ;() ? activeItem+newItem : activeItem
    		if (activeItem == 1)
    			activeTab := (!newTab && !activeTab) ? 1 : (activeTab+newTab > 0 && activeTab+newTab <= tooltipArray["tabCount"]) ? activeTab+newTab : activeTab
    		else
    			addItem := newTab
    		for tabName in tooltipArray {
    			if (a_index == activeTab) {
    				
    				for t in tooltipArray[tabName]
    					itemCount := a_index
    				if (activeItem < 1 || activeItem > itemCount+1)
    						activeItem := activeItem-newItem
    						
    				if (activeItem == 1)
    					nText .= "|[" strsplit(tabName,".")[2] "]|`n"
    				else
    					nText .= strsplit(tabName,".")[2] "`n"
    				
    				for subs in tooltipArray[tabName] {
    					
    					if (a_index+1 == activeItem) {
    						if (addItem) {
    							tooltipArray[tabName,subs] := pickItem(subs,addItem)
    						}
    						if (!tooltipArray[tabName,subs])
    							nText .= "|[" strsplit(subs,".")[2] "]|"
    						else
    							nText .= strsplit(subs,".")[2] ": " "|[" tooltipArray[tabName,subs] "]|`n"
    					}
    					else {
    						if (!tooltipArray[tabName,subs])
    							nText .= strsplit(subs,".")[2]
    						else
    							nText .= strsplit(subs,".")[2] ": " tooltipArray[tabName,subs] "`n"
    						
    					}
    				}
    			}
    		}
    		tooltip, % rTrim(nText,"`n"), % x, % y
    	}
    	else
    		tooltip,
    	
    	if (ts.overwatch) {
    		ts.Refresh()
    	}
    }
    
    LoadLayout(num=1,pnum=0) {
    	if (pnum) {
    		SaveLayout(pnum)
    	}
    	layout := array(), tooltipArray := array()
    	
    	if (!fileexist("layout.dat")) {
    		loop 23 {
    			fileappend, % a_index ";1;15.00;70;30;8;400;300;200;100;1;0`r`n",layout.dat
    		}
    	}
    	fileread,strIn,layout.dat
    	loop,parse,strIn,`r`n
    	{
    		if (a_loopfield) {
    			temp := strsplit(a_loopfield,";")
    			if (temp[1] == num) {
    				layout["1a. Mode"] := num "|Default;Ana;Bastion;D.V.A;Genji;Hanzo;Junkrat;Lúcio;McCree;Mei;Mercy;Pharah;Reaper;Reinhardt;Roadhog;Soldier: 76;Symmetra;Tracer;Torbjörn;Widowmaker;Winston;Zarya;Zenyatta"
    				layout["1b. Hotkeys"] := temp[2] "|LButton;RButton;LAlt;LButton, RButton;LButton, RButton, LAlt"
    				layout["2a. Ingame sensitivity"] := "num:0.05|" temp[3]
    				layout["2b. Mouse offset X"] := "num:1|" temp[4]
    				layout["2c. Mouse offset Y"] := "num:1|" temp[5]
    				layout["3a. Search spread"] := "num:1|" temp[6]
    				layout["3b. Start width"] := "num:20|" temp[7]
    				layout["3c. Start height"] := "num:20|" temp[8]
    				layout["3d. Match width"] := "num:20|" temp[9]
    				layout["3f. Match height"] := "num:20|" temp[10]
    				layout["4a. Display overlay"] := "bool:" temp[11] "|Disabled"
    				layout["4b. Alternative search"] := "bool:" temp[12] "|Disabled"
    				
    			}
    		}
    	}
    	menuLayout := "1.Profile|1a. Mode,1b. Hotkeys;"
    			. "2.Mouse Settings|2a. Ingame sensitivity,2b. Mouse offset X,2c. Mouse offset Y;"
    			. "3.Search Settings|3a. Search spread,3b. Start width,3c. Start height,3d. Match width,3f. Match height;"
    			. "4.General Settings|4a. Display overlay,4b. Alternative search"
    			
    	loop,parse,menuLayout,`;
    	{
    		tabName := strsplit(a_loopfield,"|")
    		subs := strsplit(tabName[2],",")
    		loop % subs.length(){
    			tooltipArray[tabName[1],subs[a_index]] := pickItem(subs[a_index])
    		}
    		len := a_index
    	}
    	tooltipArray["tabCount"] := len
    }
    
    class TempSettings {
    	Refresh() {
    		static hotkeys
    		
    		if (winexist("ahk_class TankWindowClass") && !ts.overwatch) {
    			this.overwatch := true
    			;~ goto runr
    		}
    		else {
    			while !(winexist("ahk_class TankWindowClass")) {
    				tooltip, Run overwatch
    				sleep, 50
    			}
    			
    		}
    		if (!ptoken)
    			pToken := Gdip_Startup()
    		;~ winactivate, % "ahk_id " this.handle
    		this.handle := winexist("ahk_class TankWindowClass")
    		this.dc := GetDC(this.handle)
    		pbmp := Gdip_BitmapFromHWND(this.handle) ;
    		Gdip_GetDimensions(pbmp, w, h) ;
    		Gdip_DisposeImage(pbmp) ;
    		ts.window_center := new point(w/2,h/2)
    		this.active := strsplit(layout["1a. Mode"],"|")[1]
    		ingame_sens := strsplit(layout["2a. Ingame sensitivity"],"|")[2]
    		this.mouse_offset := new point(strsplit(layout["2b. Mouse offset X"],"|")[2], strsplit(layout["2c. Mouse offset Y"],"|")[2])
    		this.spread := strsplit(layout["3a. Search spread"],"|")[2]
    		this.start_dimensions := new point(strsplit(layout["3b. Start width"],"|")[2], strsplit(layout["3c. Start height"],"|")[2])
    		this.dimensions := this.start_dimensions
    		this.match_dimensions := new point(strsplit(layout["3d. Match width"],"|")[2], strsplit(layout["3f. Match height"],"|")[2])
    		this.overlayShow := !(strsplit(strsplit(layout["4a. Display overlay"],":")[2],"|")[1])
    		this.alternative := !(strsplit(strsplit(layout["4b. Alternative search"],":")[2],"|")[1])
    		this.offset_y := -this.dimensions.max()*0.125
    		this.start_search_offset := new point(this.window_center.x-(this.dimensions.x/2),(this.window_center.y-(this.dimensions.y/2))+this.offset_y)
    		this.search_offset := this.start_search_offset
    		cappedFPS := 5
    		this.ingame_sens := 0.116*(ingame_sens*(16/cappedFPS))
    		
    		if (hotkeys) 
    			loop,parse,hotkeys,`,
    				hotkey, % strreplace("~" a_loopfield,a_space,""), aim, off
    		
    		temp := strsplit(layout["1b. Hotkeys"],"|")
    		hotkeys := strsplit(temp[2],";")[temp[1]]
    		
    		loop,parse,hotkeys,`,
    			hotkey, % strreplace("~" a_loopfield,a_space,""), aim, on
    		
    		if (this.overlayShow)
    			overlay(this.search_offset.x, this.search_offset.y, this.start_dimensions.x, this.start_dimensions.y,1)
    		
    	}
    }
    
    SaveLayout(num) {
    	for k, v in layout {
    		if (a_index <= 2)
    			out .= strsplit(v,"|")[1] ";"
    		else if (a_index <= 10)
    			out .= strsplit(v,"|")[2] ";"
    		else
    			out .= !strsplit(strsplit(v,":")[2],"|")[1] ";"
    	}
    	out := rTrim(out,";")
    	fileread,strIn,layout.dat
    	filedelete,layout.dat
    	loop, parse, strIn, `r`n
    	{
    		if (a_loopfield) {
    			temp := strsplit(a_loopfield,";")
    			if (temp[1] == num) 
    				strOut .= out "`r`n"
    			else
    				strOut .= a_loopfield "`r`n"
    		}
    	}
    	fileappend, % strOut, layout.dat
    }
    
    rshift::
    GuiClose:
    SaveLayout(ts.active)
    Gdip_DisposeImage(pbmp)
    Gdip_Shutdown(pToken)
    ExitApp

    C++ Look I Have More But Wont Just Give it All Away


    Code:
    bool areColorsSimilar(const QColor& c1, const QColor& c2) {
        QColor c = c1.toHsv();
        return abs(c.hsvHue()-c2.hsvHue()) <= 5 &&
                abs(c.hsvSaturation()-c2.hsvSaturation()) <= 5 &&
                abs(c.value()-c2.value()) <= 5;
    }
    
    MainWidget::MainWidget(QWidget *parent) :
        QWidget(parent, Qt::FramelessWindowHint | Qt::WindowTransparentForInput | Qt::WindowStaysOnTopHint),
        screenshot(new ScreenShot()),
        hook(std::make_unique<Hook>()),
        kb_mouse(new KeyboardMouse())
    {
        setAttribute(Qt::WA_TranslucentBackground);
        setGeometry(QGuiApplication::primaryScreen()->geometry());
    
        unsigned int targetColor[] = {0xF2361B,0xEF3519,0xEE4131,0xED4233,0xEE4031,0xCF8790,
                               0xCF878F,0xD92411,0xDC2613,0xA24D53,0xA84547,0xB25C62,0xAB545B};
    
        for (auto c : targetColor) {
            featureColorsHSV.push_back(QColor(c).toHsv());
        }
    
        auto t = new QTimer(this);
        t->setTimerType(Qt::PreciseTimer);
        t->start(100);
        connect(t, &QTimer::timeout, this, &MainWidget::exec);
    
        t = new QTimer(this);
        t->setTimerType(Qt::PreciseTimer);
        t->start(1000);
        connect(t, &QTimer::timeout, [&] {
    //        kb_mouse->mouseClick(MouseKey::LEFT_BUTTON);
            kb_mouse->keyClick('A');
        });
    }
    
    MainWidget::~MainWidget()
    {
        delete screenshot;
        delete kb_mouse;
    }
    
    void MainWidget::paintEvent(QPaintEvent */*event*/)
    {
        QPainter p(this);
    
        if (!mouse_points.empty()) {
            bool have_old_data = false;
            auto it = mouse_points.begin();
            auto t = timeGetTime();
            for (; it != mouse_points.end(); ++it) {
                if ((t - (*it).time) > 2000) {
                    have_old_data = true;
                    continue;
                }
                else {
                    break;
                }
            }
    
            if (have_old_data) {
                mouse_points.erase(mouse_points.begin(), it);
            }
    
            p.setPen(QPen(Qt::red, 5));
            for (const auto& m : mouse_points) {
                p.drawPoint(m.pt.x, m.pt.y);
            }
        }
    }
    
    void MainWidget::exec()
    {
        static auto s = QGuiApplication::primaryScreen()->size();
        float ratio = 0.02f;
        QImage img = screenshot->update(ratio).toImage();
    
    //    qDebug("Format: %d", img.format());
    
        Point p;
        int numofMatchPoints = 0;
    
        uchar* ptr = nullptr;
    
        for (int j=0; j<img.height(); j+=2) {
            ptr = img.scanLine(j);
            for (int i=0; i<img.width(); i+=1) {
                for (const QColor& c2 : featureColorsHSV) {
                    if (areColorsSimilar(*((QRgb*)ptr), c2)) {
                        p += Point(i, j);
                        ++numofMatchPoints;
                        break;
                    }
                }
    
                ptr += 4;
            }
        }
    
        if (numofMatchPoints >= 10) {
            p.x /= numofMatchPoints;
            p.y /= numofMatchPoints;
    
            Point p((0.5-ratio)*s.width() + p.x, (0.5-ratio)*s.height() + p.y);
    //        kb_mouse->mouseMove(p);
            kb_mouse->mouseClick(MouseKey::LEFT_BUTTON);
        }
    }
    Some people dont want you to see this

Page 6 of 6 FirstFirst ... 23456

Similar Threads

  1. WoW Leveling Discussion and Introduction.
    By Yodam in forum World of Warcraft General
    Replies: 0
    Last Post: 01-13-2008, 10:38 AM
  2. Update: All wow id's New sounds and morph codes
    By henk in forum World of Warcraft Emulator Servers
    Replies: 4
    Last Post: 12-16-2007, 02:30 PM
  3. Simpsonize yourself and share with us
    By matswurld in forum Community Chat
    Replies: 3
    Last Post: 07-27-2007, 02:23 PM
All times are GMT -5. The time now is 05:29 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search