Register for your free account! | Forgot your password?

You last visited: Today at 18:08

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

 

Auto-Loot Bot/Macro

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2007
Posts: 53
Received Thanks: 4
Auto-Loot Bot/Macro

gibt es einen Speicherauslesenden Loot Bot der die Taste F drückt sobald "Durchsuchen" erscheint?

Habe es selbst mit IMG und Pixelsearch versucht, beides ist zu langsam.

wäre um Antworten dankbar.



kumpel100 is offline  
Old   #2


 
elite*gold: 2826
Join Date: Mar 2009
Posts: 4,258
Received Thanks: 6,099
Es gibt ne Addresse (UNICODE) mit dem Wert "Durchsuchen [F]".
Der dafür zuständige Code wird nur aufgerufen wenn das Fenster erscheint.

Hooken -> Aufsammeln


buFFy! is offline  
Old   #3
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by kumpel100 View Post
gibt es einen Speicherauslesenden Loot Bot der die Taste F drückt sobald "Durchsuchen" erscheint?

Habe es selbst mit IMG und Pixelsearch versucht, beides ist zu langsam.

wäre um Antworten dankbar.
Stellt sich die Frage warum es "zu langsam" ist.

Im Prinzip ist Pixelsearch schnell genug für deine zwecke, wir reden von wenigen Milisekunden, das merkst du garnicht.


da du aber meinst es ist zu langsam, wirst du wahrscheinlich schlichtweg den kompletten Bildschirm gescannt haben, nach einen viel zu großen Muster und mit absoluter Genauigkeit.


Das ist klar, das ist quark, das willst du garnicht und brauchst du gar nicht.


Beispiel in AutoIT mit PixelChecksum:

Code:
AutoItSetOption("PixelCoordMode", 2) ;relative to client

HotKeySet("{End}", "_exit")
Func _exit()
	Exit 1
EndFunc

HotKeySet("{PAUSE}", "_pause")
Global $isPaused = false
Func _pause()
	$isPaused = NOT $isPaused
	if ($isPaused == true) Then
		ToolTip("paused",0,0) ;display paused tooltip
		While $isPaused == true
			;paused loop
		WEnd
		ToolTip("") ;remove tooltip if no longer paused
	EndIf
EndFunc

Global $title = "Guild Wars 2"
Global $hwnd = WinGetHandle($title)
if (NOT $hwnd) Then
	MsgBox("", "Error", "No window found with title " & $title)
	Exit 2
EndIf

Func _checkForLoot()

;~ Scans for the Loot Icon for direct match
	local $checkSumForLoot = "1848261822"

	local $pixelCheckSum = PixelChecksum(1238, 689, 1253, 709, 1, $hwnd)
;~	ToolTip("CheckSum = " & $pixelCheckSum, 0, 0)

	if ($pixelCheckSum = $checkSumForLoot) Then
		_loot()
	EndIf

EndFunc

Global $lootKey = "f"
Func _loot()
	ControlSend($hwnd, "", "", $lootKey)
EndFunc

While True
	_checkForLoot()
WEnd

Das CheckForLoot muss man eben entsprechend anpassen, je nach Auflösung das man das Icon bekommt für den Loot wenn man eben F drücken will.


Die Geschwindigkeit ist wie gesagt im Millisekunden bereich.


Damit es wirklich funktioniert muss man etwas aufpassen das man keine Checksum erzeugt mit durchsichtigen teilen, die sind natürlich nicht immer identisch.

Die Checksum muss aber auch nur einen kleinen bereich abdecken.


Es geht natürlich auch mit Pixelsearch, aber auch hier sollte man die Suche auf einen kleinen bereich beschränken, den kompletten Bildschirm zu scannen ist zeitaufwendiger und schlichtweg unnötig.
TheOnlyOne652089 is offline  
Thanks
1 User
Old   #4


 
elite*gold: 2826
Join Date: Mar 2009
Posts: 4,258
Received Thanks: 6,099
Quote:
Originally Posted by TheOnlyOne652089 View Post
Stellt sich die Frage warum es "zu langsam" ist.

Im Prinzip ist Pixelsearch schnell genug für deine zwecke, wir reden von wenigen Milisekunden, das merkst du garnicht.


da du aber meinst es ist zu langsam, wirst du wahrscheinlich schlichtweg den kompletten Bildschirm gescannt haben, nach einen viel zu großen Muster und mit absoluter Genauigkeit.


Das ist klar, das ist quark, das willst du garnicht und brauchst du gar nicht.


Beispiel in AutoIT mit PixelChecksum:

Code:
AutoItSetOption("PixelCoordMode", 2) ;relative to client

HotKeySet("{End}", "_exit")
Func _exit()
	Exit 1
EndFunc

HotKeySet("{PAUSE}", "_pause")
Global $isPaused = false
Func _pause()
	$isPaused = NOT $isPaused
	if ($isPaused == true) Then
		ToolTip("paused",0,0) ;display paused tooltip
		While $isPaused == true
			;paused loop
		WEnd
		ToolTip("") ;remove tooltip if no longer paused
	EndIf
EndFunc

Global $title = "Guild Wars 2"
Global $hwnd = WinGetHandle($title)
if (NOT $hwnd) Then
	MsgBox("", "Error", "No window found with title " & $title)
	Exit 2
EndIf

Func _checkForLoot()

;~ Scans for the Loot Icon for direct match
	local $checkSumForLoot = "1848261822"

	local $pixelCheckSum = PixelChecksum(1238, 689, 1253, 709, 1, $hwnd)
;~	ToolTip("CheckSum = " & $pixelCheckSum, 0, 0)

	if ($pixelCheckSum = $checkSumForLoot) Then
		_loot()
	EndIf

EndFunc

Global $lootKey = "f"
Func _loot()
	ControlSend($hwnd, "", "", $lootKey)
EndFunc

While True
	_checkForLoot()
WEnd

Das CheckForLoot muss man eben entsprechend anpassen, je nach Auflösung das man das Icon bekommt für den Loot wenn man eben F drücken will.


Die Geschwindigkeit ist wie gesagt im Millisekunden bereich.


Damit es wirklich funktioniert muss man etwas aufpassen das man keine Checksum erzeugt mit durchsichtigen teilen, die sind natürlich nicht immer identisch.

Die Checksum muss aber auch nur einen kleinen bereich abdecken.


Es geht natürlich auch mit Pixelsearch, aber auch hier sollte man die Suche auf einen kleinen bereich beschränken, den kompletten Bildschirm zu scannen ist zeitaufwendiger und schlichtweg unnötig.
in deine schleife solltest du ein Sleep(0) tun. einfach nur deiner cpu auslastung zu liebe.


buFFy! is offline  
Old   #5
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by buFFy! View Post
in deine schleife solltest du ein Sleep(0) tun. einfach nur deiner cpu auslastung zu liebe.
Sicherlich sinnvoll, merkt man erst richtig auf Low-End Laptops ^^
TheOnlyOne652089 is offline  
Old   #6
 
elite*gold: 0
Join Date: Apr 2007
Posts: 53
Received Thanks: 4
Quote:
Originally Posted by buFFy! View Post
Es gibt ne Addresse (UNICODE) mit dem Wert "Durchsuchen [F]".
Der dafür zuständige Code wird nur aufgerufen wenn das Fenster erscheint.
Hooken -> Aufsammeln
ich versuche es gerade über 4Byte Adresse für die Ausgabe 0 und 1, bisher habe ich noch nicht die Statische gefunden.

Das Unicode hatte ich schon versucht allerdings nur mit "Durchsuchen".
werde ich später mit Durchsuchen [F] nochmal versuchen.


Pixelerkennung habe ich auf 2 Pixel im Wort "Durchsuchen" festgelegt.

Das Pixelsearch trotz sleep, 750 vor dem Hotkey F und sleep, 250 nach dem looten brachte nach ca 2 stunden das macro zum crashen.
eine abfrage von dem pixel zur treffgenauigkeit (loop 3x) mit je 50ms pause habe ich auch drin.Insgesamt funktioniert das looten auch nicht schlecht.
Nur über auslesen der Adresse wird das ganze einfach geschmeidiger.

Img search war zu langsam keine Ahnung weshalb.
das Img search war auf eine größe von ca 20x20mm festgelegt und nicht screenwide.


Edit: Ich Arbeite mit Autohotkey welches AutoIt sehr ähnelt.
kumpel100 is offline  
Old   #7


 
elite*gold: 2826
Join Date: Mar 2009
Posts: 4,258
Received Thanks: 6,099
Quote:
Originally Posted by kumpel100 View Post
ich versuche es gerade über 4Byte Adresse für die Ausgabe 0 und 1, bisher habe ich noch nicht die Statische gefunden.

Das Unicode hatte ich schon versucht allerdings nur mit "Durchsuchen".
werde ich später mit Durchsuchen [F] nochmal versuchen.
Ist doch egal o0
Wenn du nach Durchsuchen suchst findest er auch Durchsuchen [F]

Das eine ist eben UNICODE[11] und das andere UNICODE[15].
Nur anders rum würde das nicht gehen.

Oh und achja, als boolean gibts das nicht.
buFFy! is offline  
Old   #8
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by buFFy! View Post
Ist doch egal o0
Wenn du nach Durchsuchen suchst findest er auch Durchsuchen [F]

Das eine ist eben UNICODE[11] und das andere UNICODE[15].
Nur anders rum würde das nicht gehen.

Oh und achja, als boolean gibts das nicht.
Naja im Prinzip gibts das auch als boolean, wenn der Unicode entweder "0" oder belegt ist.

Also im Prinzip kann man das auch mit boolean machen ^^ (also schlichtweg 1 Bit) wenn einen tatsächlich nur interessiert ob da etwas steht oder nicht (den eine Logik muss ja existieren ob es angezeigt wird oder nicht, meist eine art "isVisible" was eben auch boolean ist).
TheOnlyOne652089 is offline  
Old   #9


 
elite*gold: 2826
Join Date: Mar 2009
Posts: 4,258
Received Thanks: 6,099
Quote:
Originally Posted by TheOnlyOne652089 View Post
Naja im Prinzip gibts das auch als boolean, wenn der Unicode entweder "0" oder belegt ist.

Also im Prinzip kann man das auch mit boolean machen ^^ (also schlichtweg 1 Bit) wenn einen tatsächlich nur interessiert ob da etwas steht oder nicht (den eine Logik muss ja existieren ob es angezeigt wird oder nicht, meist eine art "isVisible" was eben auch boolean ist).
Nein. Boolean ist in VC++10 einfach nur ein Int der als Boolean interpretiert wird.
Und das wurde hier nunmal verwendet.

Die Logik dahinter dahinter ist doch kein Ding. Es gibt ne Addresse die 0/3 ist, je nachdem ob's angezeigt wird oder nicht. Von da aus einfach ein bisschen durchsteppen und man versteht's relativ fix


buFFy! is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
Talisman Online Bot, auto heal, auto pick loot
OK first of all, if u opened this topic, and read PRESS THE THANKS BUTTON!!!! now i was now going to release this cuz u ppl dont know how to thank...
22 Replies - General Gaming Discussion
does 5bot work?/i need working auto leveler and auto loot
hey i need a good auto loot bot and auto level bot for conquer i understand 5bot you need to pay, but does it still work? is it worth it? anyone have...
5 Replies - CO2 Main - Discussions / Questions
GG Updated... Auto Hp, Auto loot, Auto summon not working anymore
GG Updated again! all of my pinacle are not working...
21 Replies - Dekaron



All times are GMT +2. The time now is 18:08.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy
Copyright ©2017 elitepvpers All Rights Reserved.