Inhaltsangabe
Vorwort
Ich möchte mit diesen Guide eine kleine Hilfestellung geben für Dota 2 Spieler, die zuvor noch keine Erfahrung mit Valve Source Engine gesammelt bzw. sich noch nicht mit dem Scripten vertraut gemacht haben. Die Hilfestellung soll den Effekt haben, dass Leser des Guides eigenständig Scripte erstellen können bzw nachvollziehen können, wie man bestimmte gewünschte Ergebnisse erzielt und mit Hilfe einer Nachlese-Möglichkeit diese reproduziert und an sein Bedürfnisse anpasst.
Was sind überhaupt Scripte ?
Scripte im Valve Universum sind Befehlsketten oder auch Befehlsreihenfolgen, die beim Auslösen einer vordefinierten Taste nacheinander durchgeführt werden und somit eine Vereinfachung ermöglichen können (, dass liegt im Auge des Betrachters).
Ein Couier, der per Tastendruck, alle Items von einem Spieler in den Stauraum packt und mit Haste zu diesem fliegt, die Items in deren Spielerinventar packt und zurückfliegt, wäre ein Beispiel für ein Script.
Was brauch ich alles für mein Script ?
Kurz gesagt,
CFG-Dateien
Wir brauchen eine CFG Dateie, auch Configurations-Datei genannt, doofes Wort, wir bleiben lieber bei CFG Dateien, ist kürzer...
Da Dota 2 von Valve vermarktet wird, finden wir das Spiel auch in unseren Steam Ordner, dort müsst ihr euch zum Ordner "cfg" freikämpfen ("Steam\steamapps\common\dota 2 beta\dota\cfg"), dort angekommen, findet ihr lauter toller CFG Dateien.
Nun ist Vorsicht angesagt, uns sollte wenn überhaupt nur die config.cfg dort interessieren, diese ist für alle benutzerdefinierten Einstellungen standardmäßig vorgesehen. Diese beinhaltet unser Settings (Tastenbelegungen, Grafik-,Soundeinstellung und vieles mehr) und sollte vor uns Experimentwütigen erstmal unberührt gelassen werden.
Daher empfehlt es sich eine eigene CFG Datei zu erstellen, wo wir erstmal unsere Scripte und für uns wichtige Befehle speichern können, aus diesem Grund hat das Valve Team vorsorglich die autoexec.cfg eingebunden, obwohl diese Datei noch gar nicht vom Spiel aus vorhanden ist. Wir müssen dem nach also nur eine CFG Datei mit dem Namen autoexec erstellen, der einfachste Weg ist indem ihr eine CFG Datei kopiert, nicht ausschneidet und den Inhalt löscht und den Namen zu autoexec ändert.
Die autoexec hat nun den Vorteil, dass wir übersichtlich und ohne Risiko Dinge in Angriff nehmen können und zu Not immer noch die Standart Config haben, wo die Tastenbelegungen, läuffähigen Grafik- und Soundsettings abgespeichert sind auf die wir zurückgreifen können.
In unseren Fall müssten wir die autoexec.cfg aus dem cfg Ordner rausnehmen und Dota 2 würde, wenn es ein Setting Problem war, wieder normal laufen.
Die Tastenbelegung
Um unser Script zu benutzen brauchen wir eine Tastenamen und müssen auch wissen wo dieser zu finden ist, damit diese Befehlskette abgearbeitet wird. Dafür gibt es dieses tolle Bild, womit ihr Tastennamen auch den Postition zuordnen könnt.
Quelle : 4players.de
Syntax
Es fehlen nur noch ein paar Schritte und dann können wir unser eigenes Script in Angriff nehmen, im nächsten Schritt werde ich die Funktionen anhand eines Beispiels erklären, bevor wir aber dazu kommen, will ich kurz auf die Syntax eingehen (,wie Config und Co. Scripte wahrnimmt).
Mit der Syntax ist der Aufbau gemeint, wie die Funktionen und Befehle aneinandergereit werden, damit diese von Dota verstanden werden und weiterverarbeitet werden bzw. durchgeführt werden können .
Wenn ich zu einer Frau sagen würde, "ich liebe dir, weil ohne du kann ich nicht bin", würde diese mich auch sehr komisch anschauen und wäre sehr wahrscheinlich ein bisschen verwirrt (, wenn sie nicht JBO kennt).
Damit eure Meisterwerke auch nachher richtig laufen sollte eure Syntax so aussehen :
"Funktion" "Variable / Taste" "Was soll geschehen"
Funktionen
Funktionen sind so gesehen auch Befehle mit dem großen Unterschied, dass diese mit anderen Befehlen arbeiten, diese verarbeiten, einweisen oder nur den Benutzer informieren.
Mir sind diese Funktionen bekannt
Kommentar Funktion
Die wichtigste Funktion beim Scripten und allgemein beim Programmierung ist meiner Meinung nach der Kommentar, Bei Dota 2 muss man um diese Funktion anzuwenden zwei Slashes ("//") an der gewünschte Stelle eintippen. Kommentare sind wichtig um den Überblick zu behalten, also ein Segen auf Erden, wenn man sich ein Script anschaut, was nicht von einem selbst ist oder lange nicht mehr angerührt wurde. Kommentar sind zudem auch gut um Befehle, die man zZ. nicht braucht oder unsicher ist, auszuschalten, ohne das man sie komplett löschen muss (, da nach einen Kommentar die Zeile geblockt wird).
Bind Funktion
Kommen wir zum Befehl "bind", mit bind verknüpfen wir eine Taste mit einer Variablen (Platzhalter), einem befehl oder Befehlskette.
Anwendungsbeispiel "Kommentar & Bind"
Bei diesem Beispiel wird auf beim betätigen der F12 Taste der Befehl volumen 0.00 ausgeführt, der veranlässt, das der inGame auf 0 gesetzt wird, da hinter ist ein Kommentar zu finden der die Funktion beschreibt.
Anhang
Um Befehle an einander zuketten brauchen wir eine Funktion, hier erledigt dies das ";" (Zeichen), es erlaubt Befehle anzuhängen und diese nacheinander abzuarbeiten.
Alias Funktion
Die "Alias" Funktion erlaubt uns Befehlsketten einer Variablen (Platzhalter) zu zuweisen, auch ist es möglich selber auf eine Variable mit einer Variable zu verweisen. Allem in allem erspart uns dieser sehr viel Copy-Paste oder Tipparbeit und sorgt für ein bisschen Übersicht.
Echo Funktion
Mit der "Echo" Funktion kann man sich selbst Botschaften in Game übermitteln, die keiner sonst sehen soll, da sie für diese Person uninteressant sind und auf dauer nerven würde. Insgesamt ist der Befehl interessant für Scripte wo Wertänderungen Ingame durchgeführt werden, die man ansonsten schwerer nachvollziehen könnte, wie zB die Maussensibilität- oder Lautstärkeeinstellungen.
Um diese Funktion verwenden zu können, brauch man allerdings den Developer Modus (developer "1"), da ansonsten keine Echo Nachricht in Game angezeigt werden würde, dazu müsst ihr den Wert in eine ausführbare CFG Datei (config, autoexec zB.) reinschreiben.
Anwendungsbeispiel "Anhang, Alias und Echo"
Fast die selbe Funktion wie eben, nur dass 2 Befehle abgearbeitet werden, inGame wird der Sound ausstellt und ein Echo Befehl wird ausgegeben "Volumen_Mute".
Exec Funktion
Die Exec Funktion ist dazu da um CFG Dateien mit einzubinden, diese Funktion macht Sinn, wenn man bestimmte Werte nur gelegentlich brauch (binds überschreiben bei bestimmten Helden zB.) oder ein bisschen mehr Übersicht insgesamt schaffen möchte.
Anwendungsbeispiel "Exec"
Nachlese-Möglichkeiten
Wir sind eigentlich erstmal am Ende dieses Guides angekommen. Ihr habt Beispiele bekommen wie man die Funktionen anwenden kann und habt eine Übersicht, wo sich welche Taste befindet. Es fehlen eigentlich nur noch die zu verarbeitenen Befehle, da man die nicht alle Befehle merken kann, muss man sich eigentlich nur merken, wo man nachschlagen kann, dazu habe ich hier eine Mini Liste reingeschrieben.
Valve Wiki Console Commands List
ValveWiki.com Comand Line Options
dota2Wiki.com Console Commands List
Script Basic
Es gibt Scribt-Ansätze, die man immer und immer wieder brauch, wenn man für sich das Spiel einfacher machen möchte, in den nächsten Zeilen möchte ich euch diese vorstellen und erklären.
Toggle Script
Wenn wir von toggle reden, benutzen wir eine Taste für mehre Werte, Variablen oder Befehle, die per Tastendruck nach einer festgelegten Reihenfolge pro Druck ausgeführt werden, dies ist sinnvoll wenn man einen Wert stufenweise erhöhen möchte oder man mit einer Taste einen An- / Aus- Schalter haben möchte, aber wie geht das ?
Bei einem einfachen Toggle Script, brauch man eine feste Variablen und so viele Variablen, wie man Aktionen per Tastendrück ausführen möchte, die feste Variable wird auf eine Taste gebindet und man verbindet sie mit einen Variablen, die eine gewünschte Aktion ausführt. In den Variablen, die Aktionen ausführen, wird am Ende der Befehlskette, die feste Variable mit der nächsten gewünschten Variablen verknüpft, man überschreibt also den alten Wert und das geht immer so weiter, am Ende wird die letzte Variable mit der ersten verbunden und man hat einen Kreislauf.
Hier mal ein Anwendungsbeispiel :
-----
bind " "Taste" "iSound // die Variable iSound wird auf eine Taste gebindet
alias "iSound" "mSound" // iSound wird auf eine weitere Variable verwiesen mit dem Namen mSound
alias "mSound" "volume 0.00;alias iSound Sound05" // mSound wird beschrieben, Sound wird auf 0% gesetzt und die Variable iSound verweist nicht mehr auf mSound sondern auf Sound05
alias "Sound05" "volume 0.05;alias iSound Sound10" // das gleiche hier mit Sound05 und Sound10
alias "Sound10" "volume 0.10;alias iSound Sound15" // das gleiche hier mit Sound05 und Sound10
alias "Sound15" "volume 0.15;alias iSound mSound" // das gleiche hier mit Sound15 und mSound, der Kreis schliesst sich
Dies hier (drüber) ist ein Toggle Script, was die Lautstärke im Spiel per Tasten Drück regulieren kann, dabei erfasst das Script vier Werte, die es nach der Reihe abarbeitet (0/5/10/15% Ingame Sound).
In der ersten Zeile geben wir einer Taste die Variable iSound.
Als nächstes folgt, dass wir sagen, dass iSound auf die Variable mSound verweisen, wir verbinden also iSound mit einer weiteren Variable in dem Fall mit mSound.
Nun wird nun mSound beschrieben, mSound bedeutet der Ingame Sound wird auf 0% reguliert und nun folgt das wichtigste, wir überschreiben die alte Verbindung und ändern Sie zu Sound10, also wir sagen nachdem mSound durchgeführt wurd, dass iSound nun auf Sound10 verweist und somit hat iSound neue Befehlskette.
In den folgenden Zeilen wird, dass ganze wiederholt und am Ende mit der ersten Variable (mSound) verbunden, damit sich ein Kreislauf bildet.
Zusammengefasst wir haben die feste Variable iSound, die zu Anfang mit einer der 4 weitere Variablen verknüpft ist, die vier weiteren Variablen verknüpfen die feste Variable iSound, nachdem sie ihre eigentliche Aufgabe erfüllt haben, mit der nächsten Variablen und erschaffen somit einen Kreislauf.
-----
Schlusswort
Dieser Guide Ansatz ist bei weitem noch nicht fertig, die Wortwahl muss ich noch überarbeiten und die Beispiel für die Funktionen gefallen mir auch noch nicht so richtig.
Es fehlen noch paar sinnvolle Schablonen, wie ein Toggle und Meta Scripts und Ideen zur Optimierung / aufräumen der CFG Dateien,
dennoch will ich schon mal diesen Mini Beitrag hier los werden, um auf evtl. Wünsche und Kritik eingehen zu können (und weil ich ihn nicht mehr als Entwurf speichern kann im Briefkasten... over 10000).
Da ich große Probleme beim Lesen und Schreiben habe, wäre es nett, wenn ihr gefundene Fehler einfach per PM oder hier als Kommentar reinschreiben würdet.
MfG Xephas
- Vorwort
- Was sind überhaupt Scripte ?
- Was brauch ich alles für mein Script ?
- CFG Dateien
- Tastenbezeichnung
- Syntax
- Funktionen
- Nachlese-Möglichkeiten
- Script Basics
- Schlusswort
Vorwort
Ich möchte mit diesen Guide eine kleine Hilfestellung geben für Dota 2 Spieler, die zuvor noch keine Erfahrung mit Valve Source Engine gesammelt bzw. sich noch nicht mit dem Scripten vertraut gemacht haben. Die Hilfestellung soll den Effekt haben, dass Leser des Guides eigenständig Scripte erstellen können bzw nachvollziehen können, wie man bestimmte gewünschte Ergebnisse erzielt und mit Hilfe einer Nachlese-Möglichkeit diese reproduziert und an sein Bedürfnisse anpasst.
Was sind überhaupt Scripte ?
Scripte im Valve Universum sind Befehlsketten oder auch Befehlsreihenfolgen, die beim Auslösen einer vordefinierten Taste nacheinander durchgeführt werden und somit eine Vereinfachung ermöglichen können (, dass liegt im Auge des Betrachters).
Ein Couier, der per Tastendruck, alle Items von einem Spieler in den Stauraum packt und mit Haste zu diesem fliegt, die Items in deren Spielerinventar packt und zurückfliegt, wäre ein Beispiel für ein Script.
Was brauch ich alles für mein Script ?
Kurz gesagt,
- Eine Idee
- eine CFG-Datei
- eine freie Taste
- die Funktionen
- die Befehle
- das Wissen, wie man das ganze kombiniert
CFG-Dateien
Wir brauchen eine CFG Dateie, auch Configurations-Datei genannt, doofes Wort, wir bleiben lieber bei CFG Dateien, ist kürzer...
Da Dota 2 von Valve vermarktet wird, finden wir das Spiel auch in unseren Steam Ordner, dort müsst ihr euch zum Ordner "cfg" freikämpfen ("Steam\steamapps\common\dota 2 beta\dota\cfg"), dort angekommen, findet ihr lauter toller CFG Dateien.
Nun ist Vorsicht angesagt, uns sollte wenn überhaupt nur die config.cfg dort interessieren, diese ist für alle benutzerdefinierten Einstellungen standardmäßig vorgesehen. Diese beinhaltet unser Settings (Tastenbelegungen, Grafik-,Soundeinstellung und vieles mehr) und sollte vor uns Experimentwütigen erstmal unberührt gelassen werden.
Daher empfehlt es sich eine eigene CFG Datei zu erstellen, wo wir erstmal unsere Scripte und für uns wichtige Befehle speichern können, aus diesem Grund hat das Valve Team vorsorglich die autoexec.cfg eingebunden, obwohl diese Datei noch gar nicht vom Spiel aus vorhanden ist. Wir müssen dem nach also nur eine CFG Datei mit dem Namen autoexec erstellen, der einfachste Weg ist indem ihr eine CFG Datei kopiert, nicht ausschneidet und den Inhalt löscht und den Namen zu autoexec ändert.
Die autoexec hat nun den Vorteil, dass wir übersichtlich und ohne Risiko Dinge in Angriff nehmen können und zu Not immer noch die Standart Config haben, wo die Tastenbelegungen, läuffähigen Grafik- und Soundsettings abgespeichert sind auf die wir zurückgreifen können.
In unseren Fall müssten wir die autoexec.cfg aus dem cfg Ordner rausnehmen und Dota 2 würde, wenn es ein Setting Problem war, wieder normal laufen.
Die Tastenbelegung
Um unser Script zu benutzen brauchen wir eine Tastenamen und müssen auch wissen wo dieser zu finden ist, damit diese Befehlskette abgearbeitet wird. Dafür gibt es dieses tolle Bild, womit ihr Tastennamen auch den Postition zuordnen könnt.
Quelle : 4players.de
Syntax
Es fehlen nur noch ein paar Schritte und dann können wir unser eigenes Script in Angriff nehmen, im nächsten Schritt werde ich die Funktionen anhand eines Beispiels erklären, bevor wir aber dazu kommen, will ich kurz auf die Syntax eingehen (,wie Config und Co. Scripte wahrnimmt).
Mit der Syntax ist der Aufbau gemeint, wie die Funktionen und Befehle aneinandergereit werden, damit diese von Dota verstanden werden und weiterverarbeitet werden bzw. durchgeführt werden können .
Wenn ich zu einer Frau sagen würde, "ich liebe dir, weil ohne du kann ich nicht bin", würde diese mich auch sehr komisch anschauen und wäre sehr wahrscheinlich ein bisschen verwirrt (, wenn sie nicht JBO kennt).
Damit eure Meisterwerke auch nachher richtig laufen sollte eure Syntax so aussehen :
"Funktion" "Variable / Taste" "Was soll geschehen"
Funktionen
Funktionen sind so gesehen auch Befehle mit dem großen Unterschied, dass diese mit anderen Befehlen arbeiten, diese verarbeiten, einweisen oder nur den Benutzer informieren.
Mir sind diese Funktionen bekannt
- Kommentar
- Bind
- Anhang
- Alias
- Echo
- Exec
Kommentar Funktion
Die wichtigste Funktion beim Scripten und allgemein beim Programmierung ist meiner Meinung nach der Kommentar, Bei Dota 2 muss man um diese Funktion anzuwenden zwei Slashes ("//") an der gewünschte Stelle eintippen. Kommentare sind wichtig um den Überblick zu behalten, also ein Segen auf Erden, wenn man sich ein Script anschaut, was nicht von einem selbst ist oder lange nicht mehr angerührt wurde. Kommentar sind zudem auch gut um Befehle, die man zZ. nicht braucht oder unsicher ist, auszuschalten, ohne das man sie komplett löschen muss (, da nach einen Kommentar die Zeile geblockt wird).
Bind Funktion
Kommen wir zum Befehl "bind", mit bind verknüpfen wir eine Taste mit einer Variablen (Platzhalter), einem befehl oder Befehlskette.
Anwendungsbeispiel "Kommentar & Bind"
Bei diesem Beispiel wird auf beim betätigen der F12 Taste der Befehl volumen 0.00 ausgeführt, der veranlässt, das der inGame auf 0 gesetzt wird, da hinter ist ein Kommentar zu finden der die Funktion beschreibt.
Anhang
Um Befehle an einander zuketten brauchen wir eine Funktion, hier erledigt dies das ";" (Zeichen), es erlaubt Befehle anzuhängen und diese nacheinander abzuarbeiten.
Alias Funktion
Die "Alias" Funktion erlaubt uns Befehlsketten einer Variablen (Platzhalter) zu zuweisen, auch ist es möglich selber auf eine Variable mit einer Variable zu verweisen. Allem in allem erspart uns dieser sehr viel Copy-Paste oder Tipparbeit und sorgt für ein bisschen Übersicht.
Echo Funktion
Mit der "Echo" Funktion kann man sich selbst Botschaften in Game übermitteln, die keiner sonst sehen soll, da sie für diese Person uninteressant sind und auf dauer nerven würde. Insgesamt ist der Befehl interessant für Scripte wo Wertänderungen Ingame durchgeführt werden, die man ansonsten schwerer nachvollziehen könnte, wie zB die Maussensibilität- oder Lautstärkeeinstellungen.
Um diese Funktion verwenden zu können, brauch man allerdings den Developer Modus (developer "1"), da ansonsten keine Echo Nachricht in Game angezeigt werden würde, dazu müsst ihr den Wert in eine ausführbare CFG Datei (config, autoexec zB.) reinschreiben.
Anwendungsbeispiel "Anhang, Alias und Echo"
Fast die selbe Funktion wie eben, nur dass 2 Befehle abgearbeitet werden, inGame wird der Sound ausstellt und ein Echo Befehl wird ausgegeben "Volumen_Mute".
Exec Funktion
Die Exec Funktion ist dazu da um CFG Dateien mit einzubinden, diese Funktion macht Sinn, wenn man bestimmte Werte nur gelegentlich brauch (binds überschreiben bei bestimmten Helden zB.) oder ein bisschen mehr Übersicht insgesamt schaffen möchte.
Anwendungsbeispiel "Exec"
Nachlese-Möglichkeiten
Wir sind eigentlich erstmal am Ende dieses Guides angekommen. Ihr habt Beispiele bekommen wie man die Funktionen anwenden kann und habt eine Übersicht, wo sich welche Taste befindet. Es fehlen eigentlich nur noch die zu verarbeitenen Befehle, da man die nicht alle Befehle merken kann, muss man sich eigentlich nur merken, wo man nachschlagen kann, dazu habe ich hier eine Mini Liste reingeschrieben.
Valve Wiki Console Commands List
ValveWiki.com Comand Line Options
dota2Wiki.com Console Commands List
Script Basic
Es gibt Scribt-Ansätze, die man immer und immer wieder brauch, wenn man für sich das Spiel einfacher machen möchte, in den nächsten Zeilen möchte ich euch diese vorstellen und erklären.
Toggle Script
Wenn wir von toggle reden, benutzen wir eine Taste für mehre Werte, Variablen oder Befehle, die per Tastendruck nach einer festgelegten Reihenfolge pro Druck ausgeführt werden, dies ist sinnvoll wenn man einen Wert stufenweise erhöhen möchte oder man mit einer Taste einen An- / Aus- Schalter haben möchte, aber wie geht das ?
Bei einem einfachen Toggle Script, brauch man eine feste Variablen und so viele Variablen, wie man Aktionen per Tastendrück ausführen möchte, die feste Variable wird auf eine Taste gebindet und man verbindet sie mit einen Variablen, die eine gewünschte Aktion ausführt. In den Variablen, die Aktionen ausführen, wird am Ende der Befehlskette, die feste Variable mit der nächsten gewünschten Variablen verknüpft, man überschreibt also den alten Wert und das geht immer so weiter, am Ende wird die letzte Variable mit der ersten verbunden und man hat einen Kreislauf.
Hier mal ein Anwendungsbeispiel :
-----
bind " "Taste" "iSound // die Variable iSound wird auf eine Taste gebindet
alias "iSound" "mSound" // iSound wird auf eine weitere Variable verwiesen mit dem Namen mSound
alias "mSound" "volume 0.00;alias iSound Sound05" // mSound wird beschrieben, Sound wird auf 0% gesetzt und die Variable iSound verweist nicht mehr auf mSound sondern auf Sound05
alias "Sound05" "volume 0.05;alias iSound Sound10" // das gleiche hier mit Sound05 und Sound10
alias "Sound10" "volume 0.10;alias iSound Sound15" // das gleiche hier mit Sound05 und Sound10
alias "Sound15" "volume 0.15;alias iSound mSound" // das gleiche hier mit Sound15 und mSound, der Kreis schliesst sich
Dies hier (drüber) ist ein Toggle Script, was die Lautstärke im Spiel per Tasten Drück regulieren kann, dabei erfasst das Script vier Werte, die es nach der Reihe abarbeitet (0/5/10/15% Ingame Sound).
In der ersten Zeile geben wir einer Taste die Variable iSound.
Als nächstes folgt, dass wir sagen, dass iSound auf die Variable mSound verweisen, wir verbinden also iSound mit einer weiteren Variable in dem Fall mit mSound.
Nun wird nun mSound beschrieben, mSound bedeutet der Ingame Sound wird auf 0% reguliert und nun folgt das wichtigste, wir überschreiben die alte Verbindung und ändern Sie zu Sound10, also wir sagen nachdem mSound durchgeführt wurd, dass iSound nun auf Sound10 verweist und somit hat iSound neue Befehlskette.
In den folgenden Zeilen wird, dass ganze wiederholt und am Ende mit der ersten Variable (mSound) verbunden, damit sich ein Kreislauf bildet.
Zusammengefasst wir haben die feste Variable iSound, die zu Anfang mit einer der 4 weitere Variablen verknüpft ist, die vier weiteren Variablen verknüpfen die feste Variable iSound, nachdem sie ihre eigentliche Aufgabe erfüllt haben, mit der nächsten Variablen und erschaffen somit einen Kreislauf.
-----
Schlusswort
Dieser Guide Ansatz ist bei weitem noch nicht fertig, die Wortwahl muss ich noch überarbeiten und die Beispiel für die Funktionen gefallen mir auch noch nicht so richtig.
Es fehlen noch paar sinnvolle Schablonen, wie ein Toggle und Meta Scripts und Ideen zur Optimierung / aufräumen der CFG Dateien,
dennoch will ich schon mal diesen Mini Beitrag hier los werden, um auf evtl. Wünsche und Kritik eingehen zu können (und weil ich ihn nicht mehr als Entwurf speichern kann im Briefkasten... over 10000).
Da ich große Probleme beim Lesen und Schreiben habe, wäre es nett, wenn ihr gefundene Fehler einfach per PM oder hier als Kommentar reinschreiben würdet.
MfG Xephas
Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von Xephas ()