Originally Posted by
ExoticNx
I got it to work pretty well but I recommend changing the hue requirement cause it shoots at oranges sometimes. And i cant get the blue box to move even when adjusting the adjust right cause for me its not on the cross hair its to the right and up a little
Edit:
Also you should make it so if you press Q the triggerbot gets turned off for like 10 seconds or its a toggle cause you cant use mcrees ult with it
I added easier settings in the triggerbot to change color.
Code:
Public RedOrangeRange As Single = 13 ' adjust down to decrease targetting orange
Public RedVioletRange As Single = 346 ' adjust up to decrease targetting violet
Pressing Q while the right mouse button is not pressed down deactivates the triggerbot for 5 seconds so you can use mccrees ult. Blue box now moves when you modify:
Code:
Public AdjustDown As Integer = 0 'optional - move scanning up/down depending on where window is - negative values allowed
Public AdjustRight As Integer = 0 'optional - move scanning left/right depending on where window is - negative values allowed
Originally Posted by
Powernoodles
the checkbox doesnt allow checking/unchecking, so i delete it and re-add it, then the checkbox works
checking it and then pressing the button doesn't actually do anything though, I'm expecting some box to be drawn orso and i need to align it?
But nothing happens.
Tried re-building multiple times, never have any major faults/errors, other than the weird checkbox thing where I need to add it after the code
Any suggestions? Have the latest version of VB
Double click the checkbox/button and you'll see it's probably button2, button3, etc...
To fix it delete all the buttons/checkbox and add it again or double click the button (make sure they're named button1 and checkbox1) and add this code for the private sub
Code:
If t.Enabled = 0 Then
Button1.Text = "STOP"
t.Enabled = 1
Else
Button1.Text = "START"
t.Enabled = 0
End If
Do the same with the checkbox.
Code:
Dim i As Long
Application.DoEvents()
Using g As Graphics = Graphics.FromHwnd(IntPtr.Zero)
Dim rect As Rectangle = New Rectangle((Screen.PrimaryScreen.Bounds.Width / 2) - (ScanRange / 2) + AdjustRight, (Screen.PrimaryScreen.Bounds.Height / 2) - (ScanRange / 2) + AdjustDown, ScanRange, ScanRange)
Using lgb As New Drawing2D.LinearGradientBrush(rect, Color.Blue, Color.Blue, 90, True)
For i = 0 To 999
g.FillRectangle(lgb, rect)
Application.DoEvents()
If Not CheckBox1.CheckState = CheckState.Checked Then Exit Sub
Next i
End Using
End Using
CheckBox1.CheckState = CheckState.Unchecked
End Sub
Originally Posted by
BritStar500
Is there a simple way to set it to scan a specific application window, rather than what is currently displayed as the active window?
Edit:
Or a way to force Overwatch to set IsScreenCaptureEnabled to true?
Yes you can but I don't think it matters. You can set it to scan the desktop foreground, etc... There might be a way by using Window functions but I dunno: Window Functions (Windows)
"IsScreenCaptureEnabled" blocks bitblt, magnifying glass (accessibility), and printscreen, etc... You can test this out by creating a universal windows app and putting this code under app.xaml > app.xaml.vb > app > onlaunched and then just below Protected Overrides Sub OnLaunched:
Code:
Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().IsScreenCaptureEnabled = False
Take a screenshot or use bitblt and the app shows as black.
So I guess changing permissions, run as windows 7, virtual machine, directx / nvidia / ati video capture, etc... could get passed it.
Version 6 released:
Code:
Imports System.Runtime.InteropServices
Public Class Form1
'version 6
Private Declare Function GetTickCount Lib "kernel32" () As UInt32
Public t As New Timer With {.Interval = 1}
Public ScanRange As Long = 25
Public Pixels(ScanRange * ScanRange + ScanRange) As Integer
Public Pixels_Hue(ScanRange * ScanRange + ScanRange) As Single
Public Pixels_Brightness(ScanRange * ScanRange + ScanRange) As Single
Public Pixels_Saturation(ScanRange * ScanRange + ScanRange) As Single
Public LastFireTick As UInteger
'edit values below to modify triggerbot
'autofire delay - 510 for mccree and 1400 for widow
Public FireDelayRightMouseDown As UInteger = 1400 'autofire delay when right mouse is down
Public FireDelayRightMouseUp As UInteger = 510 'autofire delay when right mouse is up
Public ScanRangeRightMouseDown As Long = 25 'amount of pixels to scan for sniper - right click down
Public ScanRangeRightMouseUp As Long = 21 'amount of pixels to scan for right click up
Public RedOrangeRange As Single = 13 ' adjust down to decrease targeting orange
Public RedVioletRange As Single = 346 ' adjust up to decrease targeting violet
Public AdjustDown As Integer = 0 'optional - move scanning up/down depending on where window is - negative values allowed
Public AdjustRight As Integer = 0 'optional - move scanning left/right depending on where window is - negative values allowed
<DllImport("user32.dll")>
Shared Function GetAsyncKeyState(ByVal vKey As System.Windows.Forms.Keys) As Short
End Function
Private Const VK_RBUTTON = &H2
Private Const VK_LBUTTON = &H1
Private Const VK_Q = &H51
<DllImport("user32.dll")>
Private Shared Function ReleaseDC(ByVal hWnd As IntPtr, ByVal hDc As IntPtr) As IntPtr
End Function
<DllImport("user32.dll", SetLastError:=True)>
Private Shared Function GetActiveWindow() As IntPtr
End Function
<DllImport("gdi32")>
Public Shared Function BitBlt(ByVal hDestDC As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As IntPtr, ByVal SrcX As Integer, ByVal SrcY As Integer, ByVal Rop As Integer) As Boolean
End Function
Dim GCH As GCHandle = GCHandle.Alloc(Pixels, GCHandleType.Pinned)
Dim Bmp As New Drawing.Bitmap(ScanRange, ScanRange, 4 * ScanRange,
Imaging.PixelFormat.Format32bppArgb,
GCH.AddrOfPinnedObject)
<DllImport("user32.dll")>
Private Shared Function GetWindowDC(ByVal hwnd As IntPtr) As IntPtr
End Function
Declare Function GetWindowRect Lib "user32.dll" (
ByVal hwnd As Int32,
ByRef lpRect As Rectangle) As Int32
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If t.Enabled = 0 Then
Button1.Text = "STOP"
t.Enabled = 1
Else
Button1.Text = "START"
t.Enabled = 0
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AddHandler t.Tick, AddressOf Timer_tick
If FireDelayRightMouseDown < 100 Then FireDelayRightMouseDown = 100 ' don't make this too low to avoid suspicion - to make it lower use keypressdown and keypressup
If FireDelayRightMouseUp < 100 Then FireDelayRightMouseUp = 100 ' don't make this too low to avoid suspicion - to make it lower use keypressdown and keypressup
End Sub
Private Sub Timer_tick(sender As Object, e As EventArgs)
RunAimbot()
End Sub
Public Sub RunAimbot()
Dim Amountfound As Long
Dim AmountfoundCC1 As Long
Dim CCAmount(0 To 30) As Long
Dim I As Long
Dim lowestX As Long
Dim lowestY As Long
Dim highestX As Long
Dim highestY As Long
lowestX = 900
lowestY = 900
Dim avgHUE As Single
Dim avgBrightness As Single
Dim avgsaturation As Single
Dim AMountOfPixels As Single
Dim FireTriggered As Single
Dim YW As Single
Dim X As Single
Dim Y As Single
Dim YW2 As Single
Dim X2 As Single
Dim Y2 As Single
Dim YWY As Integer
Dim YW2Y2 As Integer
Dim CombinedLineFigure As Long
Dim screenwidth = CInt(Screen.PrimaryScreen.Bounds.Width)
Dim screenheight = CInt(Screen.PrimaryScreen.Bounds.Height)
Dim g As Graphics
Dim hdcDest As IntPtr = IntPtr.Zero
Dim desktopHandleDC As IntPtr = IntPtr.Zero
Dim desktopHandle As IntPtr
'change scan size based on whether mouse in down or up
If CheckRightMouse() = 0 Then
ScanRange = ScanRangeRightMouseUp 'settings for right mouse up
Else
ScanRange = ScanRangeRightMouseDown 'settings for right mouse down
End If
desktopHandle = GetActiveWindow()
Dim R As Rectangle = New Rectangle(CInt((Screen.PrimaryScreen.Bounds.Width / 2) - (ScanRange / 2)) + AdjustRight, CInt((Screen.PrimaryScreen.Bounds.Height / 2) - (ScanRange / 2)) + AdjustDown, ScanRange, ScanRange)
Bmp = New Bitmap(ScanRange, ScanRange, 4 * ScanRange,
Imaging.PixelFormat.Format32bppArgb,
GCH.AddrOfPinnedObject)
g = Graphics.FromImage(Bmp)
desktopHandleDC = GetWindowDC(desktopHandle)
hdcDest = g.GetHdc
Dim gf As Integer
Dim GH As Rectangle
gf = GetWindowRect(desktopHandle, GH)
Dim NewRectWidth As Integer
Dim NewRectheight As Integer
NewRectWidth = GH.Width - GH.Left
NewRectheight = GH.Height - GH.Top
BitBlt(hdcDest, 0, 0, ScanRange, ScanRange, desktopHandleDC, CInt((screenwidth / 2) - (ScanRange / 2) + AdjustRight), CInt((screenheight / 2) - (ScanRange / 2) + AdjustDown), CopyPixelOperation.SourceCopy)
g.ReleaseHdc(hdcDest)
ReleaseDC(desktopHandle, desktopHandleDC)
Bmp.Dispose()
g.Dispose() : g = Nothing
Dim myColor As Color
AMountOfPixels = ScanRange * ScanRange
For X = 2 To ScanRange - 3
YW = X * ScanRange
For Y = 2 To ScanRange - 3
YWY = YW + Y
myColor = Color.FromArgb((Pixels(YWY)))
Pixels_Hue(YWY) = myColor.GetHue
Pixels_Brightness(YWY) = myColor.GetBrightness
Pixels_Saturation(YWY) = myColor.GetSaturation
avgHUE = avgHUE + Pixels_Hue(YWY)
avgBrightness = avgBrightness + Pixels_Brightness(YWY)
avgsaturation = avgsaturation + Pixels_Saturation(YWY)
If Pixels_Hue(YWY) < RedOrangeRange Or Pixels_Hue(YWY) > RedVioletRange Then
If Pixels_Brightness(YWY) > 0.25 And Pixels_Brightness(YWY) < 0.65 And Pixels_Saturation(YWY) > 0.25 Then ' Target by hue to bypass 1.12
Amountfound = Amountfound + 1
'DEBUG
'RichTextBox1.AppendText("HUE=" & (myColor.GetHue()).ToString & vbTab & "SAT=" & myColor.GetSaturation().ToString & vbTab & "BGT=" & (myColor.GetBrightness()).ToString & vbTab & myColor.R & vbNewLine)
If lowestX > X Then
lowestX = X
End If
If lowestY > Y Then
lowestY = Y
End If
If highestY < Y Then
highestY = Y
End If
If highestX < X Then
highestX = X
End If
'advanced comparison
For X2 = (X - 2) To (X + 2)
YW2 = X2 * ScanRange
For Y2 = (Y - 2) To (Y + 2)
YW2Y2 = YW2 + Y2
'x2=0 and y2=0 produces additional triggered pixel
If Pixels_Hue(YW2Y2) < RedOrangeRange Or Pixels_Hue(YW2Y2) > RedVioletRange Then
If Pixels_Brightness(YW2Y2) > 0.25 And Pixels_Brightness(YW2Y2) < 0.65 And Pixels_Saturation(YW2Y2) > 0.25 Then ' Target by hue to bypass 1.12
AmountfoundCC1 = AmountfoundCC1 + 1
End If
End If
Next Y2
Next X2
CCAmount(AmountfoundCC1) = CCAmount(AmountfoundCC1) + 1
AmountfoundCC1 = 0
End If
End If
NExtY:
Next Y
Next X
'combine line figures together
If CheckRightMouse() = 0 Then
For I = 5 To 11
CombinedLineFigure = CombinedLineFigure + CCAmount(I) 'settings for right mouse up
Next I
Else
For I = 5 To 15
CombinedLineFigure = CombinedLineFigure + CCAmount(I) 'settings for right mouse down
Next I
End If
' CombinedLineFigure = CombinedLineFigure * 5
' RichTextBox1.AppendText("CombinedLineFigure=" & CombinedLineFigure & vbTab & "Amountfound=" & Amountfound & vbNewLine)
If CombinedLineFigure >= (ScanRange * 0.5) And (CombinedLineFigure * 2) >= Amountfound Then
If (lowestX + (ScanRange * 0.3)) <= highestX And (lowestY + (ScanRange * 0.3)) <= highestY Then
FireTriggered = 1
' RichTextBox1.AppendText("CombinedLineFigure=" & CombinedLineFigure & vbTab & "Amountfound=" & Amountfound & vbNewLine)
' RichTextBox1.AppendText("Fire" & vbNewLine)
End If
End If
avgHUE = avgHUE / AMountOfPixels
avgBrightness = avgBrightness / AMountOfPixels
avgsaturation = avgsaturation / AMountOfPixels
If avgHUE > 2 And avgHUE < 14 And avgBrightness < 0.45 And avgsaturation < 0.45 Then
FireTriggered = 0 ' don't fire
End If
If CheckKeyQ() = 1 And CheckRightMouse() = 0 Then
LastFireTick = GetTickCount + 5000 'pressing Q for ultimate delays firing by 5 secs when mouse is up. With widow use ultimate while zoomed to avoid delay.
End If
If FireTriggered = 1 Then
Fire()
End If
'debug and testing
' If LastFireTick = GetTickCount Then
' RichTextBox1.AppendText("CombinedLineFigure=" & CombinedLineFigure & vbTab & "Amountfound=" & Amountfound & vbNewLine)
' RichTextBox1.Text = ("avgHUE=" & avgHUE & vbTab & "avgSAT=" & avgsaturation & vbTab & "avgBGT=" & avgBrightness)
' RichTextBox1.AppendText ("avgHUE=" & avgHUE & vbTab & "avgSAT=" & avgsaturation & vbTab & "avgBGT=" & avgBrightness & vbNewLine)
'Dim i2 As Long
' For i2 = 0 To 18
' RichTextBox1.AppendText(CCAmount(i2) & vbTab)
' Next
' RichTextBox1.AppendText(vbNewLine)
' End If
End Sub
Public Sub Fire()
If (LastFireTick + FireDelayRightMouseDown) <= GetTickCount And CheckRightMouse() = 1 Then GoTo Fire
If (LastFireTick + FireDelayRightMouseUp) <= GetTickCount And CheckRightMouse() = 0 Then
Fire:
If CheckLeftMouse() = 0 Then 'don't fire when mouse is being manually clicked
SendKeys.Send("k")
' RichTextBox1.AppendText("avgHUE=" & avgHUE & vbTab & "avgSAT=" & avgsaturation & vbTab & "avgBGT=" & avgBrightness & vbNewLine)
End If
LastFireTick = GetTickCount
End If
End Sub
Public Function CheckRightMouse() As Long
If GetAsyncKeyState(VK_RBUTTON) <> 0 Then
Return 1
End If
End Function
Public Function CheckLeftMouse() As Long
If GetAsyncKeyState(VK_LBUTTON) <> 0 Then
Return 1
End If
End Function
Public Function CheckKeyQ() As Long
If GetAsyncKeyState(VK_Q) <> 0 Then
Return 1
End If
End Function
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
Dim i As Long
Application.DoEvents()
Using g As Graphics = Graphics.FromHwnd(IntPtr.Zero)
Dim rect As Rectangle = New Rectangle((Screen.PrimaryScreen.Bounds.Width / 2) - (ScanRange / 2) + AdjustRight, (Screen.PrimaryScreen.Bounds.Height / 2) - (ScanRange / 2) + AdjustDown, ScanRange, ScanRange)
Using lgb As New Drawing2D.LinearGradientBrush(rect, Color.Blue, Color.Blue, 90, True)
For i = 0 To 999
g.FillRectangle(lgb, rect)
Application.DoEvents()
If Not CheckBox1.CheckState = CheckState.Checked Then Exit Sub
Next i
End Using
End Using
CheckBox1.CheckState = CheckState.Unchecked
End Sub
End Class