ImageSearch in Minecraft verhält sich ungewöhnlich.

Stelle Fragen zur Automatisierung von Spielen

Moderator: jNizM

Cha0sPudd1ng
Posts: 4
Joined: 30 Mar 2016, 16:16

ImageSearch in Minecraft verhält sich ungewöhnlich.

Post by Cha0sPudd1ng » 13 Sep 2020, 09:48

Hallo,

wie im Titel schon gesagt, verhält sich die Bildersuche in Minecraft in mir nicht nachvollziehbarer weise.

Bisher ist mir das aber auch nur bei den Gold-/Eisenbarren aufgefallen. Ansonsten hat es bisher bei allen anderen Bildern die ich mit ImageSearch in Minecraft gesucht habe funktioniert.

Nehmen wir z.B. die Goldhacke. Wenn ich eine im Inventar habe (bei geöffnetem Inventar) und danach suchen lasse findet er diese problemlos.

Mit dem Goldbarren funktioniert das wiederum nicht.

Wenn ich nun aus dem Bild von dem Goldbarren einen Teil herausschneide findet er es plötzlich.

Ich habe das Script mit den Bildern hier angehängt.
Damit die Bildersuche in Minecraft überhaupt funktioniert muss das Spiel im Fenstermodus ausgeführt und maximiert werden.
Attachments
Verrückter Fehler bei Bildsuche in Minecraft.rar
(2.18 KiB) Downloaded 42 times
gregster
Posts: 9000
Joined: 30 Sep 2013, 06:48

Re: ImageSearch in Minecraft verhält sich ungewöhnlich.

Post by gregster » 16 Sep 2020, 13:56

Naja, die Goldbarren/Bilder haben offensichtlich kleine Farbunterschiede und da du keine Variation in den Optionen für die ImageSearch zulässt, ist das Ergebnis wahrscheinlich erklärbar.
Wenn ich nun aus dem Bild von dem Goldbarren einen Teil herausschneide findet er es plötzlich.
Grundsätzlich sollten die Bildausschnitte möglichst klein sein (eben ein eindeutiger Auschnitt für das Suchobjekt, der aber sonst nicht im Suchfeld vorkommt) - warum verwendest du nicht dieses Teilbild?

Bin allerdings kein Experte für Spiele oder Imagesearch, aber grundsätzlich erhöhst du deine Chancen auf Hilfe, wenn potentielle Helfer nicht extra Skripte oder Dateien herunterladen müssen. So kannst du Code zwischen [code][/code]-Tags posten und grundsätzlich auch Bilder über Attachments > Add files > (ggf. Place inline) im Editor dem Post hinzufügen (obwohl ich befürchte, dass das Forum die Bilder etwas komprimiert - also bleibt eine Upload-Datei im Falle von Imagesearch-Problemen wie hier wahrscheinlich eine sinnvolle Alternative). Ich demonstriere das mal (den Code kannst du auf jeden Fall so posten - idealerweise immer auf das wesentliche beschränken):

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

*!<::
reload
return

!y::
ImageSearch, ButtonPosX, ButtonPosY, 0, 0, A_ScreenWidth, A_ScreenHeight, *TransBlack GoldIngot1.png
	If (ErrorLevel = 0)  ;Wenn bild gefunden.
		{
		msgbox, Goldbarren gefunden! (GoldIngot1)
		}
	If (ErrorLevel = 1)  ;Wenn bild gefunden.
		{
		msgbox, Goldbarren nicht gefunden! (GoldIngot1)
		}
	If (ErrorLevel = 2)  ;Wenn bild gefunden.
		{
		msgbox, Fehler
		}
return


!x::
ImageSearch, ButtonPosX, ButtonPosY, 0, 0, A_ScreenWidth, A_ScreenHeight, *TransBlack GoldIngot2.png
	If (ErrorLevel = 0)  ;Wenn bild gefunden.
		{
		msgbox, Goldbarren gefunden! (GoldIngot2)
		}
	If (ErrorLevel = 1)  ;Wenn bild gefunden.
		{
		msgbox, Goldbarren nicht gefunden! (GoldIngot2)
		}
	If (ErrorLevel = 2)  ;Wenn bild gefunden.
		{
		msgbox, Fehler
		}
return


!c::
ImageSearch, ButtonPosX, ButtonPosY, 0, 0, A_ScreenWidth, A_ScreenHeight, *TransBlack GoldIngot3.png
	If (ErrorLevel = 0)  ;Wenn bild gefunden.
		{
		msgbox, Goldbarren gefunden! (GoldIngot3)
		}
	If (ErrorLevel = 1)  ;Wenn bild gefunden.
		{
		msgbox, Goldbarren nicht gefunden! (GoldIngot3)
		}
	If (ErrorLevel = 2)  ;Wenn bild gefunden.
		{
		msgbox, Fehler
		}
return


!v::
ImageSearch, ButtonPosX, ButtonPosY, 0, 0, A_ScreenWidth, A_ScreenHeight, *TransBlack GoldHoe.png
	If (ErrorLevel = 0)  ;Wenn bild gefunden.
		{
		msgbox, Goldhacke gefunden! (GoldHoe)
		}
	If (ErrorLevel = 1)  ;Wenn bild gefunden.
		{
		msgbox, Goldhacke nicht gefunden! (GoldHoe)
		}
	If (ErrorLevel = 2)  ;Wenn bild gefunden.
		{
		msgbox, Fehler
		}
return
GoldIngot1.png
GoldIngot1.png (251 Bytes) Viewed 702 times
GoldIngot2.png
GoldIngot2.png (258 Bytes) Viewed 702 times
So... wenn ich dein Skript oben laufen lasse (und die 3 Bilder bspw. per Irfanview anzeigen lasse, dann werden alle drei Varianten individuell gefunden. Dein Problem ist nun, dass du gerne nur eine Image-Such-Variante durchführen, die alle drei (leicht unterschiedlichen) Bilder finden soll, richtig?

Wie gesagt, idealerweise verkleinere das Suchbild soweit wie möglich auf einen für alle Varianten einheitlichen, eindeutigen Ausschnitt - den du ja offenbar schon hast.
Zusätzlich, wenn notwendig, könnntest/musst du dann ggf. noch Variationsgrade erlauben (*n-Option)), wobei das die Suche zusätzlich verlangsamen wird.
Post Reply

Return to “Spiele”