[AHK] - Zahlen aus letzter Chatlinie auslesen?
- Black_Mamba
- Geschlossen
- Erledigt
-
-
Code
RegExMatch(line, "Hallo ich gebe dir (.*)$", result) if(result0 > 100){ ;Größer 100 }else{ ;kleiner oder gleich 100 }
Eventuell musst du das Dollarzeichen backslashen, weiß ich grad nicht. Das würde dann so aussehen:
CodeRegExMatch(line, "Hallo ich gebe dir (.*)\$", result) if(result0 > 100){ ;Größer 100 }else{ ;kleiner oder gleich 100 }
Ist beides ungetestet.
-
Beitrag von Black_Mamba ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Code
RegExMatch(line, "Hallo ich gebe dir (.*)$", result) if(result0 > 100){ ;Größer 100 }else{ ;kleiner oder gleich 100 }
Eventuell musst du das Dollarzeichen backslashen, weiß ich grad nicht. Das würde dann so aussehen:
CodeRegExMatch(line, "Hallo ich gebe dir (.*)\$", result) if(result0 > 100){ ;Größer 100 }else{ ;kleiner oder gleich 100 }
Ist beides ungetestet.
Ok jetzt noch eine Frage, wie geht das wenn zum Beispiel steht: "Du hast von Spieler Black_Mamba 200$ bekommen"?
Der Spielername ist ja dann nicht immer der selbe, wie kann man da die Zahl auslesen? -
-
Ich stell hier mal den Code rein, funktioniert irgendwie nicht so wie es sollte
Code
Alles anzeigen1:: SetTimer,fischen,2000 AddChatMessage("Fischen {00FF00}Aktiviert") return 2:: SetTimer,fischen,off AddChatMessage("Fischen {FF0000}Deaktiviert") return fischen: SendChat("/fish") SetTimer,fischen,off sleep 100 GetChatLine(0,chat) if(InStr(chat, "Tasche")) { SetTimer,fischen,off AddChatMessage("Fischen {FF0000}Deaktiviert") AddChatMessage("Verkaufe die Fische nun!") return } else { RegExMatch(chat, "* Du hast einen (.*) gefangen, Gewicht: (.*) Kg.",result0,gewicht) if(gewicht > 50) { AddChatMessage("{00FF00}Dieser Fisch hat mehr als 50 Kg") SetTimer,fischen,2000 return } else { SendChat("/throwback") AddChatMessage("{FF0000}Dieser Fisch hat unter 50 Kg und wurde daher zurückgeworfen") SetTimer,fischen,2000 return } } return
-
Du hast mein Beispiel oben leicht missverstanden.
Code
Alles anzeigenRegExMatch(chat, "\* Du hast einen (.*) gefangen, Gewicht: (.*) Kg\.", result) if(result1 > 50) { AddChatMessage("{00FF00}Dieser Fisch hat mehr als 50 Kg") SetTimer,fischen,2000 return } else { SendChat("/throwback") AddChatMessage("{FF0000}Dieser Fisch hat unter 50 Kg und wurde daher zurückgeworfen") SetTimer,fischen,2000 return }
So sollte es funktionieren.
Erster Fehler
Du musst bestimmte Zeichen escapen, weil diese durch die Funktion RegExMatch() reserviert sind und erkannt werden.
Die zu escapenden Zeichen kannst du dieser Seite entnehmen (unten unter "Remarks").
http://www.autohotkey.com/docs/commands/RegExMatch.htmZweiter Fehler
RegExMatch() funktioniert nicht wie die format() Funtkion in PAWN.
Du kannst nur eine Variable für die Ergebnisse angeben.
An diese Variable wird immer ein Index angehangen. Dieser richtet sich nach der Reihenfolge im Text.In deinem Beispiel würde result0 also die Fischart enthalten und result1 das Gewicht.
-
So, hat noch nicht ganz funktioniert, die results sind nicht 0 und 1 sondern 1 und 2, und ich musste zuerst überprüfen ob result2 eine Zahl ist und wenn ja dann den rest
Aber danke für deine schnellen Antworten
Jetzt funktioniert es
-
breadfish.de
Hat das Thema geschlossen.