Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorials:limitierung_der_scriptlaenge

Limitierung der Scriptlänge

Der Editor akzeptiert (intern) 1) 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 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 .EXE oder als .ZIP herunterzuladen. Sollte euer Antivirus die Datei nicht akzeptieren, kann diese 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 Old McDonalds AI-Script

Zur S5-DEdK Übersicht

1)
bezieht sich auf das in die Map direkt eingebundene Script - per Script.Load eingebundene Scripts können auch größer sein
tutorials/limitierung_der_scriptlaenge.txt · Zuletzt geändert: 2021/09/18 19:16 (Externe Bearbeitung)