Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 01:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Crosshair Overlay

Discussion on Crosshair Overlay within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2009
Posts: 13
Received Thanks: 0
Question Crosshair Overlay

Hallo Community

In letzter Zeit spiele ich MW3 und wollte mir dafür ein kleines Script schreiben, welches einen perfekten Quickscope macht. An sich funktioniert alles, jedoch habe ich bemerkt, dass es ein Wenig schwer ist ohne Crosshair. Hier im Forum habe ich gefunden und habe dort den Code verwendet, um ein kleines Kreuz nach klicken einer Taste über allem auf dem Bildschirm anzuzeigen.

Das ganze funktioniert gut, nun habe ich auch noch eingebaut, dass er immer die negative Farbe von einem Pixel neben dem Crosshair nimmt. Dies funktioniert ebenfalls, jedoch wird durch das aktualisieren mein RAM bis auf 4 GB vollgemüllt mit Farbwerten, welche ich am liebsten löschen will. Jedoch kriege ich das nicht hin.

Nun zum Code:
Meine Funktion, welches das GUI erstellt (kopiert vom genannten Thread):
PHP Code:
Func _Crosshair()
    If 
$Crosshair True Then
        $hDummy 
GUICreate("")
        
$hGUI GUICreate("", @DesktopWidth, @DesktopHeight00$WS_POPUPBitOR($WS_EX_LAYERED$WS_EX_TOPMOST,$WS_EX_TRANSPARENT),$hDummy)
        
GUISetBkColor(0xABCDEF$hGUI)
        
_WinAPI_SetLayeredWindowAttributes($hGUI0xABCDEF255)
        
GUISetState()
    Else
        
_GDIPlus_GraphicsDispose($hGraphics)
        
_GDIPlus_BitmapDispose($hBitmap)
        
_GDIPlus_PenDispose($hPen)
        
GUIDelete($hGUI)
    EndIf
EndFunc 
Meine Endlosschleife, welche die Keys sucht und wenn das Crosshair an ist die Farbe aktualisiert:
PHP Code:
While 1
    
If _IsPressed($keyPause$dllThen
        _TogglePause
()
    EndIf
    If 
_IsPressed($keyExit$dllThen
        _Terminate
()
    EndIf
    If 
_IsPressed($qsHotkey$dllThen
        _Quickscope
()
    EndIf
    If 
_IsPressed($chHotkey$dllThen
        $Crosshair 
Not $Crosshair
        Sleep
(200)
        
_Crosshair()
    EndIf
    If 
$Crosshair True Then
        _GDIPlus_GraphicsDispose
($hGraphics)
        
_GDIPlus_BitmapDispose($hBitmap)
        
_GDIPlus_PenDispose($hPen)
        
$hGraphics _GDIPlus_GraphicsCreateFromHWND($hGUI)
        
$hBitmap _GDIPlus_BitmapCreateFromGraphics(@DesktopWidth, @DesktopHeight$hGraphics)
        
$hBackBuffer _GDIPlus_ImageGetGraphicsContext($hBitmap)
        
$hPen _GDIPlus_PenCreate("0x" Hex(_InvertColor(PixelGetColor(@DesktopWidth/2, @DesktopHeight/2)), 8),2)
        
_GDIPlus_GraphicsDrawLine($hGraphics$wedith-10$height$wedith+10$height$hPen)
        
_GDIPlus_GraphicsDrawLine($hGraphics$wedith$height-10$wedith$height+10$hPen)
        
_GDIPlus_GraphicsDrawImage($hGraphics$hBitmap$wedith$height)
    EndIf
WEnd 
Ich weiss jetzt nicht, ob das mit dem _GDIPlus_PenDispose() usw. das Richtige ist, denn weder mit noch ohne dem schreibt er den RAM voll.

Ich hoffe ihr wisst wie ich das machen kann.

Freundliche Grüsse
subzeroowner
subzeroowner is offline  
Old 05/19/2012, 14:36   #2


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Statt jedesmal die GUI neu zu erstellen, solltest du mit @SW_SHOW und @SW_HIDE arbeiten.
So sparst du dir schonmal diesen Code:
Code:
$hDummy = GUICreate("") 
        $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST,$WS_EX_TRANSPARENT),$hDummy) 
        GUISetBkColor(0xABCDEF, $hGUI) 
        _WinAPI_SetLayeredWindowAttributes($hGUI, 0xABCDEF, 255) 




 _GDIPlus_GraphicsDispose($hGraphics) 
        _GDIPlus_BitmapDispose($hBitmap) 
        _GDIPlus_PenDispose($hPen) 
        GUIDelete($hGUI)
Ansonsten bau doch einfach mal in deine Schleifen ein Sleep(10-100) ein.
Lawliet is offline  
Thanks
1 User
Old 05/19/2012, 14:54   #3
 
elite*gold: 0
Join Date: Jan 2010
Posts: 106
Received Thanks: 2
geht das für jedes spiel?

EDIT: ah ja und ein screen wäre net
holbirne is offline  
Old 05/19/2012, 15:55   #4


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Das ist kein Release!
Lawliet is offline  
Old 05/19/2012, 16:43   #5
 
elite*gold: 0
Join Date: Oct 2009
Posts: 13
Received Thanks: 0
Ich habe nun wie du gesagt hast den Code ein Bisschen gekürtzt und das Neuerstellen rausgenommen und nun sieht das mit dem RAM schon viel besser aus.

Hier der Code:
PHP Code:
Func _Crosshair()
    
$Crosshair Not $Crosshair
    Sleep
(200)
    If 
$Crosshair True Then
        $hGUI 
GUICreate("", @DesktopWidth, @DesktopHeight00$WS_POPUPBitOR($WS_EX_LAYERED$WS_EX_TOPMOST,$WS_EX_TRANSPARENT))
        
GUISetBkColor(0xABCDEF$hGUI)
        
_WinAPI_SetLayeredWindowAttributes($hGUI0xABCDEF255)
        
$hGraphics _GDIPlus_GraphicsCreateFromHWND($hGUI)
        
$hBitmap _GDIPlus_BitmapCreateFromGraphics(@DesktopWidth, @DesktopHeight$hGraphics)
        
$hBackBuffer _GDIPlus_ImageGetGraphicsContext($hBitmap)
        
GUISetState()
    Else
        
_GDIPlus_GraphicsDispose($hGraphics)
        
_GDIPlus_BitmapDispose($hBitmap)
        
_GDIPlus_PenDispose($hPen)
        
GUIDelete($hGUI)
    EndIf
EndFunc 
PHP Code:
While 1
    Sleep
(50)
    If 
$Crosshair True Then
        $hPen 
_GDIPlus_PenCreate("0x" Hex(_InvertColor(PixelGetColor(@DesktopWidth/2, @DesktopHeight/2)), 8),2)
        
_GDIPlus_GraphicsDrawLine($hGraphics$wedith-10$height$wedith+10$height$hPen)
        
_GDIPlus_GraphicsDrawLine($hGraphics$wedith$height-10$wedith$height+10$hPen)
        
_GDIPlus_GraphicsDrawImage($hGraphics$hBitmap$wedith$height)
    EndIf
WEnd 
Nun habe ich aber noch das Problem, dass das Script wahrscheinlich trotzdem mit dem Pen immer drübermalt und nicht das vorherige Fadenkreuz löscht. Das wirkt sich im 2 Stelligen kByte Bereich aus aber auch so wird der RAM irgendwann einmal voll sein. Wie kann ich das mit _GDIPlus_GraphicsDrawLine und _GDIPlus_GraphicsDrawImage gezeichnete komplett entfernen?
subzeroowner is offline  
Old 05/19/2012, 18:57   #6


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
_GDIPlus_PenDispose
Habe noch nicht viel mit GDI+ gemacht, aber du kannst ja mal versuchen in Zeitabständen über ProcessGetStats den RAM zu prüfen und entsprechend GDI+ zu beenden und wieder zu starten.
Statt Sleep() kannst du auch deine Crosshair Funktion mit einem TimeStamp callen
Code:
_Crosshair(TimerInit())

Func _Crosshair($timestamp)
If $Crosshair and TimerDiff($timestamp) > 200 then
....
endif
EndFunc
So werden andere Funktionen, die evl. noch ausgeführt werden nicht blockiert.
Lawliet is offline  
Reply


Similar Threads Similar Threads
Overlay Aimer...
11/18/2012 - Counter-Strike - 4 Replies
Hoi suche ein Coder der das kann....p/me zwecks Preis usw (wire safe etc)!!
[Release] Auto Quickscope & Crosshair overlay [MW3]
10/14/2012 - Call of Duty Hacks, Bots, Cheats & Exploits - 32 Replies
Hey epvpers. Hier zwei kleine Tools (nicht von mir) Status: For Ever Undetected, dudes ;** Screen: http://i.imgur.com/0Sy0t.png Scan:
Teamspeak 3 Overlay for LoL
12/12/2010 - League of Legends - 11 Replies
Hey, Ich habe eben nach einem TS3 Overlay gesucht das auch in LoL funktioniert und habe eins gefunden. Als erstes müsst ihr es euch Downloaden ( Klick mich ). Dann installiert es und geht in den Installationsordner von Voipoverlay (Normal: C:\Program Files\Sytexis Software\VoipOverlay). Kopiert die ts3playclaw.dll in dem Ordner und fügt sie in euren Teamspeak 3 Plugins Ordner ein (D:\Program Files\Teamspeak3\plugins).
Mumble Overlay für WoW
10/30/2010 - World of Warcraft - 5 Replies
Hallo Leute, weiß einer wie man das Overlay einstellt das es wirklich funktioniert? Hab 2Stunden gegogeld hat nichts gebracht.. lg
LF a good overlay map
11/16/2009 - Conquer Online 2 - 0 Replies
as title says looking for a good overlay map so i can see all types of gear on ground RUES link me lol thanks in advance SEE YOU ON CCO



All times are GMT +1. The time now is 01:47.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.