[[http://www.siedler-games.de|{{:sg-link.jpg|}}]] ====== Limitierung der Scriptlänge ====== Der Editor akzeptiert (intern) ((bezieht sich auf das in die Map direkt eingebundene Script - per Script.Load eingebundene Scripts können auch größer sein)) nur Scripte bis zu einer Länge von 128KB. Sollte das eigene Script dieses Limit überschreiten, kann man es aber noch durch folgende Maßnahmen verkleinern: * Leerzeilen entfernen * Kommentare entfernen * Einrückung entfernen * Überflüssige Leerzeichen in einer Zeile entfernen * Leerzeichen vor und hinter Operatoren und Klammern entfernen * Optionale Semikolons am Ende der Zeile entfernen Die einfachste Möglichkeit ist, das Script [[http://web21.server3.bluestarhosting.de/lua/compress.php|automatisch verkleinern]] zu lassen. Hierdurch wird das Script allerdings extrem unleserlich. Man sollte also immer eine Sicherheitskopie aufbewahren, und das geschrumpfte Script nur in die fertige Map kopieren, aber nie direkt bearbeiten. Inzwischen existiert auch die Möglichkeit, diese Anwendung als [[http://www.chromix.de/dedk/TinyScript.exe|.EXE]] oder als [[http://www.chromix.de/dedk/TinyScript.zip|.ZIP]] herunterzuladen. Sollte euer Antivirus die Datei nicht akzeptieren, kann diese [[http://www.chromix.de/dedk/TinyScript_.exe|Variante]] verwendet werden. \\ Anstatt des Map-Editors muss diese Anwendung gestartet werden. Danach akzeptiert der Editor Skripte bis zu 4 MB Länge. * **Wenn das Script größer als 128KB ist**\\ Wenn trotz maximaler Verkleinerung das Script größer als 128KB ist, dann muss es als externes Script eingebunden werden. Häufig wird das per Script.Load ( "Lfw:\\Pfadangabe\\Dateiname.lua" ) mit einer **absoluten Pfadangabe** gemacht. Dieser Umstand bringt das Problem mit sich, dass wenn man seine Map (und die externe Scriptdatei nicht vergessen ;-)) zum Download anbietet, man die Verzeichnisstruktur auf dem fremden System ja nicht kennt. Folglich müsste derjenige, der sich die Map gedownloadet hat, diese Pfadangabe erst noch für sein System (im Editor) anpassen, bevor er die Map spielen könnte. Um das Editieren der Map zu umgehen, kann man sich aber eines Ordners bedienen, der auf jedem System vorhanden und gleich sein **//muss//**, nämlich des eigentlichen Map-Ordners. Dieser existiert jeweils unter:\\ Lfw.\[Pfad zum Siedler-DEdK Verz.]\DIE SIEDLER - Das Erbe der Könige\extra1(Nebelreich)|extra2(Legenden)\shr\maps\user\\ Um ein Script aus diesem Ordner in seine Map einzubinden, kann man es nun mit einer **relativen Pfadangabe** referenzieren:Script.Load ( "maps\\user\\Dateiname.lua" )wobei Dateiname natürlich durch den Namen deiner externen Scriptdatei zu ersetzen ist. Jetzt muss nichts mehr Editiert werden, sondern nur noch die Dateien (Map + Script) ins jeweils richtige Verzeichnis (extra1\shr\maps\user bzw. extra2\shr\maps\user) geschoben werden.\\ **Tipp:** Für einige Scriptbestandteile werdet Ihr zusätzlich sog. Comfort-Funktionen benötigen. Ordnet sie zweckmäßigerweise im unteren Teil des Scripts an und verseht sie mit aussagekräftigen Kommentar-Überschriften. Falls der Script zu umfangreich wird, könnt Ihr als erstes versuchen, nur durch die Auslagerung der Comfort-Funktionen mit dem Script doch noch innerhalb des Limits zu bleiben. Wählt einen passenden Namen, etwa MapNameComfort.lua. Die Einbindung erfolgt alalog zur obigen Anleitung mittels :Script.Load ( "maps\\user\\MapNameComfort.lua" ).\\ FIXME sollte immer mit einer evt. Ordner-Konvention abgeglichen werden, wie auch bei [[utilscripts:aiscript|Old McDonalds AI-Script]] [[:tutorials:index#s5-dedk|Zur S5-DEdK Übersicht]]