Guten Tag,
mein Ziel ist es, ein Script zu schreiben, was den Minecraft Chat ausliest und wenn Signalwörter vorkommen darauf reagiert.
Jedoch ist mein Problem, dass ich nicht genau weiß, wie ich den Minecraft Chat auslesen soll. Ich hatte mal im Internet etwas geguckt und bin dort auf ein Beitrag gestoßen, wo geschrieben steht, man muss eine geeignete API.dll + API.ahk downloaden und kann dann mit Befehlen wie GetChatLine den Chat auslesen. Jedoch weiß ich weder ob dies noch funktioniert, noch woher man diese Datei bekommt. Von daher wollte ich fragen, von wo man diese Dateien bekommt und falls dies nicht mehr klappt, wie ich es sonst machen kann?
Würde mich sehr über eine Antwort freuen.
Mit freundlichen Grüßen
StrikerLK
Minecraft Chat auslesen
Moderator: jNizM
Minecraft Chat auslesen
Last edited by BoBo on 31 May 2020, 11:45, edited 1 time in total.
Reason: Nach Spiele-Sektion verschoben.
Reason: Nach Spiele-Sektion verschoben.
Re: Minecraft Chat auslesen
Hi,
hast du Zugriff auf die Chatdatei?
Ich weiß nicht, was die von dir erwähnten Skripte tun,
aber du könntest mit AHK ganz einfach den Inhalt einer Textdatei einlesen und auswerten.
Wenn es um Live-Chat geht, müsste dieser ja auch in einer Datei protokolliert werden.
Soll das Skript dann dauerhaft laufen und somit den Chat prüfen?
Grüße
hast du Zugriff auf die Chatdatei?
Ich weiß nicht, was die von dir erwähnten Skripte tun,
aber du könntest mit AHK ganz einfach den Inhalt einer Textdatei einlesen und auswerten.
Wenn es um Live-Chat geht, müsste dieser ja auch in einer Datei protokolliert werden.
Soll das Skript dann dauerhaft laufen und somit den Chat prüfen?
Grüße
Re: Minecraft Chat auslesen
Hallo,
erstmal Schuldigung für meine späte Antwort und es sieht derzeit so aus:
Ich habe heraus gefunden, dass ich den Minecraft Chat über den Log auslesen kann.
Dazu habe ich jetzt eingestellt, dass der Log immer automatisch aktualisiert wird.
Es gibt zwar eine leichte Verzögerung, aber das sollte kein Problem sein.
Jedoch wollte ich dann versuchen, den Log auszulesen, aber immer wenn ich den Key betätige,
öffnet sich nur eine MsgBox mit keinem Inhalt.
Wo ist der Fehler?
Liebe Grüße
StrikerLK
erstmal Schuldigung für meine späte Antwort und es sieht derzeit so aus:
Ich habe heraus gefunden, dass ich den Minecraft Chat über den Log auslesen kann.
Dazu habe ich jetzt eingestellt, dass der Log immer automatisch aktualisiert wird.
Es gibt zwar eine leichte Verzögerung, aber das sollte kein Problem sein.
Jedoch wollte ich dann versuchen, den Log auszulesen, aber immer wenn ich den Key betätige,
öffnet sich nur eine MsgBox mit keinem Inhalt.
Wo ist der Fehler?
Code: Select all
1::
FileRead, Text, C:Users\StrikerLK\AppData\Roaming\.minecraft\logs\latest.log
msgbox %Text%
StrikerLK
Re: Minecraft Chat auslesen
Vielleicht ist die Datei zu groß für eine MessageBox?
Du kannst ja erstmal versuchen, die Datei einfach zu öffnen.
(Leg vorher fest, dass log-Dateien z.B. mit Notepad geöffnet werden sollen.,)
Danach entweder normal über Run oder FileOpen.
Vielleicht kannst du sie auch in Word öffnen und bestimmte Wörter markieren lassen.
Grüße
Du kannst ja erstmal versuchen, die Datei einfach zu öffnen.
(Leg vorher fest, dass log-Dateien z.B. mit Notepad geöffnet werden sollen.,)
Danach entweder normal über Run oder FileOpen.
Vielleicht kannst du sie auch in Word öffnen und bestimmte Wörter markieren lassen.
Grüße
Please use [code][/code] when posting code!
Keyboard: Logitech G PRO - Mouse: Logitech G502 LS - OS: Windows 10 Pro 64 Bit - AHK version: 1.1.33.09
Keyboard: Logitech G PRO - Mouse: Logitech G502 LS - OS: Windows 10 Pro 64 Bit - AHK version: 1.1.33.09
Re: Minecraft Chat auslesen
Ich würde mir erstmal den Inhalt von Errorlevel nach dem FileRead ansehen. Es kann z. B. sein das Minecraft grade was in die log Datei schreibt.
Recommends AHK Studio
Re: Minecraft Chat auslesen
Also, erstmal habe ich getestet, ob ich die Datei einfach mit Run öffnen kann, was geklappt hat.
Danach habe ich einfach mal ErrorLevel eingebaut, wo eine eins raus kam und damit mir gezeigt hat, es gibt ein Fehler.
Doch wo liegt der Fehler?
Danach habe ich einfach mal ErrorLevel eingebaut, wo eine eins raus kam und damit mir gezeigt hat, es gibt ein Fehler.
Doch wo liegt der Fehler?
Code: Select all
1::
FileRead, Text, C:Users\StrikerLK\AppData\Roaming\.minecraft\logs\latest.log
MsgBox, %ErrorLevel%
return
Re: Minecraft Chat auslesen
1 heißt, dass die Datei nicht existiert bzw nicht gefunden wurde. Ich nehme stark an, es liegt am fehlenden \ :
C:\Users\StrikerLK\...
C:\Users\StrikerLK\...
Re: Minecraft Chat auslesen
Ich habe das Slash hinzugefügt und jetzt funktioniert es.
Außerdem kann ich jetzt auch, wenn bestimmte Wörter drinnen vorkommen, darauf automatisch reagieren.
Doch wie schaffe ich es jetzt, dass immer nur die Wörter auf der letzten Zeile vom Log kontrolliert werden?
Was auch nur einmal passieren soll, bis es wieder eine neue letzte Zeile gibt.
Außerdem kann ich jetzt auch, wenn bestimmte Wörter drinnen vorkommen, darauf automatisch reagieren.
Doch wie schaffe ich es jetzt, dass immer nur die Wörter auf der letzten Zeile vom Log kontrolliert werden?
Was auch nur einmal passieren soll, bis es wieder eine neue letzte Zeile gibt.
Re: Minecraft Chat auslesen
Code: Select all
#Persistent
file := FileOpen("C:\Users\StrikerLK\AppData\Roaming\.minecraft\logs\latest.log", "r")
pos := file.Length
SetTimer, Log_Read, 100
return
Log_Read:
file.Seek(pos) ; Move file pointer to new position
lines := file.Read() ; Get new lines
pos := file.Pos ; Get new file pointer position
Loop, Parse, lines, `n, `r
{
if not A_LoopField ; Skip blank lines
continue
ToolTip % A_LoopField
; if InStr(A_LoopField, "keyword")
; Do things
}
return
Re: Minecraft Chat auslesen
Ich muss ehrlich sagen, ich habe noch nicht ganz verstanden wie der Code funktioniert, aber es klappt super.
Jetzt muss ich nur noch zwei Sachen ergänzen.
Die erste Sache wäre es, ob es auch möglich ist, das Signalwort auf die passende Farbe zu überprüfen.
Also das immer nur reagiert wird, wenn das Wort grün ist.
Jetzt muss ich nur noch zwei Sachen ergänzen.
Die erste Sache wäre es, ob es auch möglich ist, das Signalwort auf die passende Farbe zu überprüfen.
Also das immer nur reagiert wird, wenn das Wort grün ist.
Re: Minecraft Chat auslesen
Ich wäre verwundert, wenn die log-Datei Formatierungen wie Schriftfarbe speichern würde (obwohl es schon möglich wäre). Ich nehme an, dass die Schriftfarbe vom Minecraft-Chat gesetzt wird... für bestimmte Wörter - wahrscheinlich imer die gleichen, die man dann per Skript identifizieren könnte? Dafür enthält Ragnars Code ja schon (bislang auskommentierten) Beispielcode... ; if InStr(A_LoopField, "keyword") [...]
Oder wie muss man sich eine typische Zeile mit einem grünen Wort in der log-Datei vorstellen? Wie sind grüne Wörter dort markiert?
Tu einfach so, als hätte ich das Spiel noch nie gespielt und noch nie einen Minecraft-Chat gesehen (zumindest nicht bewusst)...
Oder wie muss man sich eine typische Zeile mit einem grünen Wort in der log-Datei vorstellen? Wie sind grüne Wörter dort markiert?
Tu einfach so, als hätte ich das Spiel noch nie gespielt und noch nie einen Minecraft-Chat gesehen (zumindest nicht bewusst)...
Re: Minecraft Chat auslesen
Okay, ich versuche das ganze mal zu beschreiben:
Um eine Nachricht in Farbe zu schreiben, muss man ein & und dann ein Farbcode vor der eigentlichen Nachricht angeben.
Zum Beispiel:
&a - grün
&6 - orange
Und wenn man dann die Nachricht absendet, sieht es so aus: Jedoch sieht man im Log nur folgendes: Und jetzt ist die Frage, ob man das irgendwie bei Notepad++ umstellen kann, dass die Farbcodes angezeigt werden oder ob man irgendwie anders die Farbe des bestimmten Wortes überprüfen kann?
Um eine Nachricht in Farbe zu schreiben, muss man ein & und dann ein Farbcode vor der eigentlichen Nachricht angeben.
Zum Beispiel:
&a - grün
&6 - orange
Und wenn man dann die Nachricht absendet, sieht es so aus: Jedoch sieht man im Log nur folgendes: Und jetzt ist die Frage, ob man das irgendwie bei Notepad++ umstellen kann, dass die Farbcodes angezeigt werden oder ob man irgendwie anders die Farbe des bestimmten Wortes überprüfen kann?
Re: Minecraft Chat auslesen
Das sieht nicht aus als würde die Farbformatierung überhaupt im Log gespeichert.
Re: Minecraft Chat auslesen
Ich hab damals mal angefangen für den GTA SA - Multiplayer eine Erkennung für die Payday-Aufforderung zu schreiben.
Ich habe versucht mit wenigen Markanten punkten (PixelSearch oder PixelGetColor) das Payday-Wort zu finden. Wenn es dann gefunden wurde, wurde mit der selben Methode versucht, die Zahlen danach zu erkennen. Das Ganze ist dann daran gescheitert, dass ich mit dem verfügbaren Maß an Fleiß keine stabile und performante Lösung hinbekommen habe. Hauptproblem hierbei war, dann auch, die Zahlen danach zu entziffern. Aber ich bin immernoch davon überzeugt, dass das eigentlich nicht so schwer ist.
Ich habe versucht mit wenigen Markanten punkten (PixelSearch oder PixelGetColor) das Payday-Wort zu finden. Wenn es dann gefunden wurde, wurde mit der selben Methode versucht, die Zahlen danach zu erkennen. Das Ganze ist dann daran gescheitert, dass ich mit dem verfügbaren Maß an Fleiß keine stabile und performante Lösung hinbekommen habe. Hauptproblem hierbei war, dann auch, die Zahlen danach zu entziffern. Aber ich bin immernoch davon überzeugt, dass das eigentlich nicht so schwer ist.
Re: Minecraft Chat auslesen
Es gibt für die Texterkennung sogenannte OCR Programme die das für dich machen. Wenn du dir so eins suchst wird das ganze eventuell um einiges leichte für dich.
In Minecraft würde man für die meisten Dinge mit der eingebauten Skriptsprache arbeiten.
Weiterhin gibt es die Möglichkeit die Serversoftware ziemlich leicht um mods zu erweitern.
Manche dieser mods bieten ihre eigenen eingebauten Sprachen an um das Spiel zu modifizieren.
In Minecraft würde man für die meisten Dinge mit der eingebauten Skriptsprache arbeiten.
Weiterhin gibt es die Möglichkeit die Serversoftware ziemlich leicht um mods zu erweitern.
Manche dieser mods bieten ihre eigenen eingebauten Sprachen an um das Spiel zu modifizieren.
Recommends AHK Studio
-
- Posts: 3
- Joined: 30 May 2020, 18:31
Re: Minecraft Chat auslesen
Ich habe gerade versucht das zu verwenden, jedoch habe ich dabei 2 Probleme gehabt:Ragnar wrote: ↑23 May 2019, 16:52Eine performante Methode, die ich häufig zum Auslesen von LOG-Dateien verwendet habe. Sollte relativ zuverlässig sein. Sprich, es werden keine Zeilen ausgelassen oder doppelt ausgewertet.Code: Select all
#Persistent file := FileOpen("C:\Users\StrikerLK\AppData\Roaming\.minecraft\logs\latest.log", "r") pos := file.Length SetTimer, Log_Read, 100 return Log_Read: file.Seek(pos) ; Move file pointer to new position lines := file.Read() ; Get new lines pos := file.Pos ; Get new file pointer position Loop, Parse, lines, `n, `r { if not A_LoopField ; Skip blank lines continue ToolTip % A_LoopField ; if InStr(A_LoopField, "keyword") ; Do things } return
1) Ich habe ingame ständig neben dem Mauszeiger die letzte Zeile des Chatlogs, was ich nicht brauche bzw sogar ziehmlich nervig ist. Was muss man machen damit die nicht mehr angezeigt wird
2) Ich hätte gerne, dass bei erkennen des "Keywords" der Spieler 1 Block vorwärts geht, der Chat geöffnet wird, /track eingegeben wird, Enter
Wie du vielleicht schon gemerkt hast kenne ich mich kaum aus, da ich erst seit 10 tagen sachen mit AHK mache.
LG Rainer
Re: Minecraft Chat auslesen
Zeile ToolTip % A_LoopField suchen und auskommentieren (; davorsetzen) oder entfernen.CalledRainer wrote: 1) Ich habe ingame ständig neben dem Mauszeiger die letzte Zeile des Chatlogs, was ich nicht brauche bzw sogar ziehmlich nervig ist. Was muss man machen damit die nicht mehr angezeigt wird
Kann ich dir nicht genau beantworten, weil ich Minecraft nicht spiele. Theoretisch musst du hier den Send-Befehl verwenden, der die Taste fürs Vorwärtslaufen (W? - wahrscheinlich mehrmals), die Taste fürs Chatöffnen (Enter?), "/track" und anschließend Enter sendet. Zum Beispiel: Send, {w 5}{Enter}/track{Enter}2) Ich hätte gerne, dass bei erkennen des "Keywords" der Spieler 1 Block vorwärts geht, der Chat geöffnet wird, /track eingegeben wird, Enter
Who is online
Users browsing this forum: No registered users and 8 guests