Die interne Scriptansicht im MapEditor eignet sich nur für kurze Änderungen an Texten o.ä., aber nicht um ein komplettes Missionsscript zu schreiben. Dies liegt an der schlechten Bedienbarkeit und den mangelnden Features des internen Editors. Daher sollte man sein Script, wie in Schnelles Testen beschrieben, exportieren und mit einem externen Editor bearbeiten.
Der Vorteil von Entwicklungseditoren ist vor allem das Syntax-Highlighting, d.h. wichtige Funktionen und Schlüsselbegriffe (if, then, function, end, for, …) werden farbig hervorgehoben, was die Übersichtlichkeit erhöht. Von diesen Editoren gibt es sehr viele und die (Hobby-) Programmierer von euch haben da sicherlich schon ihre Favoriten. Im Folgenden werden zwei Editoren empfohlen.
B:Lua ist ein speziell für Lua entwickelter Editor. Er bietet den großen Vorteil, daß der Code in Echtzeit auf Syntaxfehler und beispielsweise falsch geschriebene Variablennamen überprüft wird (Screenshot). Einsteiger, die häufig Probleme mit Syntaxfehlern haben, sollten zunächst diesen Editor verwenden. Später ist Notepad++ dann die bessere Wahl, da B:Lua seit einiger Zeit nichtmehr weiterentwickelt wird.
B:Lua befindet sich noch im Alpha Stadium, ist also noch nicht 100% stabil. Daher sollte man bei der Benutzung gelegentlich mal STRG + S drücken (speichern).
Der verlinkte Download ist eine standalone Version. Runterladen, installieren, benutzen.
Falls (und nur falls) die verlinkte Version zu instabil läuft, kann noch diese Alternativversion ausprobiert werden. Sie setzt allerdings eine korrekt installierte (und aktuelle) Java Version voraus.
Notepad++ ist ein leicht zu bedienender, universeller Editor, der auf Deutsch erhältlich und für unsere Zwecke völlig ausreichend ist. Hier gehts direkt zur Downloadseite.
Ansonsten ist die Oberfläche genau wie bei Word oder WordPad mit Speichern, Laden usw. Im Menü „Ansicht“ könnt ihr noch ein wenig rumspielen und es euch so einrichten wie ihr es am liebsten habt. Die vielen anderen Funktionen braucht ihr nicht zu beachten.
Beim Öffnen einer .lua
Datei, wird das Syntaxhighlighting automatisch aktiviert. Andernfalls unter „Sprache“ in der Menüleiste „Lua“ anklicken.
Notepad++ wurde nicht speziell für Lua entwickelt. Es ist allerdings möglich, dies durch diverse Erweiterungen, zu verbessern.
Mit diesem hilfreichen Feature können Fehler vermeiden und die Arbeit erleichtert werden. Per Tastendruck (STRG + Leertaste) können diverse Schlüsselbegriffe automatisch vervollständigt werden, obwohl man nur die ersten paar Buchstaben davon geschrieben hat. Weiterhin ist es möglich, sich die Liste der verfügbaren Funktionen im Editor anzusehen.
Damit dies funktioniert, muss die Datei lua.api in das bestehende Verzeichnis Plugins\APIs
im Notepad++ Programmverzeichnis gespeichert werden.
Zum Ansehen gibt es ein kurzes Demonstrationsvideo.
Mit ein wenig Aufwand kann man einen Variablencheck in Notepad++ einbauen. Dadurch wird es möglich, das Script einfach per Tastendruck auf falsch geschriebene Variablen- und Funktionsnamen zu prüfen. Man braucht also nichtmehr das Spiel zu starten, und die Karte durchzuspielen, um diese Art von Fehlern zu finden. Es erleichtert die Fehlerfindung also enorm.
Damit es funktioniert, benötigt man mindestens Notepad++ Version 3.0, und muss einmalig dieser Einrichtungsprozedur folgen.
C:\Programme\Notepad++
ausgegangen.F5
drücken. Die „Run…“ beziehungsweise „Ausführen“ Dialogbox erscheint. C:\Programme\Notepad++\lua.exe C:\Programme\Notepad++\checkglobals.lua "$(FULL_CURRENT_PATH)"
VarCheck
angeben.F10
auswählen.
Die Einrichtung ist nun abgeschlossen. Zukünftig braucht nurnoch auf F10
gedrückt werden, um den Check für die aktuelle Datei zu starten. Wichtig: Es wird nur die Datei auf der Festplatte geprüft, somit sollte man Änderungen zunächst speichern (STRG + S).
Nun einfach mal auf F10
drücken. Wenn nichts passiert, enthält das Script entweder keine erkennbaren Fehler, oder etwas ist falsch eingestellt.
In dem Fall einfach „foo = bar“ in eine neue Zeile im Script schreiben. Diese Verwendung von eigentlich unbenutzen Variablen wird erkannt.
Nun das Script mit STRG + S speichern, und F10 für den Variablencheck drücken. Jetzt sollte ein Fenster geöffnet werden in dem die Zeilennummer und die Art des Fehlers angezeigt werden.
Hinweis: Vor jedem Variablencheck wird automatisch auch ein Syntaxcheck durchgeführt. Den nachfolgenden Syntaxcheck braucht man sich nur einrichten, falls man öfter einen Syntaxcheck ohne gleichzeitigen Variablencheck durchführen möchte.
Ein Syntaxcheck lässt sich, genau wie der Variablencheck, in Notepad++ integrieren. Dieses braucht man nur zu tun, wenn man den Variablencheck nicht nutzen möchte. Dadurch wird es möglich, das Script einfach per Tastendruck auf Syntaxfehler zu überprüfen. Man braucht also nichtmehr das Spiel starten, um diese Art von Fehlern zu finden.
Damit es funktioniert, benötigt man mindestens Notepad++ Version 3.0, und muss einmalig dieser Einrichtungsprozedur folgen.
C:\Programme\Notepad++
.F5
drücken. Die „Run…“ beziehungsweise „Ausführen“ Dialogbox erscheint. C:\Programme\Notepad++\LuaCmod.exe -p "$(FULL_CURRENT_PATH)"
Syntaxcheck
angeben.F9
auswählen.
Die Einrichtung ist nun abgeschlossen. Zukünftig braucht nurnoch auf F9
gedrückt werden, um einen Syntaxcheck für die aktuelle Datei zu starten. Wichtig: Es wird nur die Datei auf der Festplatte geprüft, somit sollte man Änderungen zunächst speichern (STRG + S).
Nun einfach mal auf F9
drücken. Wenn nichts passiert, enthält das Script entweder keine Syntaxfehler, oder etwas ist falsch eingestellt.
In dem Fall einfach ein „a“ in eine neue Zeile im Script schreiben. Dies ist dann ein Syntaxfehler.
Nun das Script mit STRG + S speichern, und F9 für den Syntaxcheck drücken. Jetzt sollte ein Fenster geöffnet werden in dem die Zeilennummer und die Art des Fehlers angezeigt werden.
Mit einem speziellen Plugin kann der Editor alle erstellten Funktionen in einer Liste anzeigen. Das hilft dabei die Übersicht zu behalten und falsch oder doppelt geschriebene Namen schneller zu erkennen.
Installation:
Plugins
im Notepad++ Programmverzeichnis entpacken.Plugins
→ Function List
→ View List
Mit einem Klick auf einen Funktionsnamen springt man direkt zur Funktion. Wenn man per Cursor im Editor in eine Funktion bewegt, springt der Balken in der Funktionsliste automatisch auf diese Funktion.