1. TRLevel
  2. Forum
    1. Unresolved Threads
    2. Articles
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Trophy
    5. Search Members
  4. Tutorials
  5. Levels
  6. Downloads
  7. Adventskalender
    1. Kalender 2025
    2. Kalender 2024
    3. Kalender 2023
    4. Kalender 2022
    5. Kalender 2021
    6. Kalender 2020
    7. Kalender 2019
    8. Kalender 2018
    9. Kalender 2017
  8. Osterkalender
    1. Osterkalender 2026
    2. Osterkalender 2025
    3. Osterkalender 2024
    4. Osterkalender 2023
    5. Osterkalender 2022
    6. Osterkalender 2021
    7. Osterkalender 2020
    8. Osterkalender 2019
    9. Osterkalender 2018
    10. Osterkalender 2017
    11. Osterkalender 2016
  9. Mediathek
    1. Albums
    2. Video channels
  • Login
  • Register
  • Search
Tutorials
  • Everywhere
  • Articles
  • Pages
  • Forum
  • Tutorials
  • Files
  • Images
  • Videos
  • More Options
  1. TRLevel.de
  2. Lexicon

Lua Scripting LUA Dateien - Erste Einführung

  • Jörg
  • August 11, 2022 at 9:41 AM
  • October 2, 2022 at 4:32 PM
  • 4,161 times viewed

WICHTIG

Diese Tutorials sind beim schreiben immer mit der aktuellsten TEN/TE Version erstellt worden.
Leider kann sich von Version zu Version des Tomb Editor oder der Tomb Engine immer etwas am Code ändern. Daher können manche Teile der Tutorials veraltet sein, bzw. nicht mehr funtkionieren.
Wenn euch hier etwas auffällt, teilt uns dies BITTE mit. Damit man sich das Tutorial ansehen und überarbeiten kann. Dazu bitte einfach ein Thema im "TRLevel Forum" eröffnen.

  • Einführung LUA Dateien

    Die TEN Engine kommt mit der Programmiersprache LUA. Das bedeutet, dass das gewohnte Scripting, so wie wir es vom alten Level Editor her gewohnt waren, entfällt. Auch ist TEN nicht kompatibel mit der TRNG Engine und ihren Script Befehlen.

    Statt einer script.txt und einer English.txt finden wir nun folgende Dateien mit der Endung ".lua" im Scripts Ordner der TEN Engine. Wir sehen diese übrigens, auch wenn wir im neuen TombIDE bei einem neuen TEN Project das Scripting Studio öffnen.

    Wichtig:

    Änderungen und neue Einträge in den Lua Dateien können wir einfach speichern und dann unser Level starten.. Man muss nicht mehr aus einer ".txt" Datei eine ".dat" Datei konvertieren.

    1 Überblick über die einzelnen LUA Dateien

    EventSequence: Dieses EventSequence Modul wird benötigt, um in der Level Lua Datei eine EventSequence setzen zu können.

    Gameflow: Diese ist mit der script.txt vergleichbar, hier kann man neue Level hinzufügen und Eigenschaften im Level festlegen, wie Hintergrund Audio Track, Name des Levels, Ladebild usw.

    Settings: Beinhaltet einige Einstellungsmöglichkeiten über Fehlerdokumentation und spezielle Moves von Lara wie Crouchroll usw. (befindet sich noch in Entwicklung).

    Strings: Diese ist mit der English.txt vergleichbar. Hier befinden die Namen der Inventargegenstände, der Level usw. Auch neue Textzeilen, die man im Spiel einblenden kann.

    Timer: Dieses Timer Modul wird benötigt, um in der Level Lua Datei einen Timer setzen zu können.

    Util: Diese Datei, enthält einen Code mit einigen Funktionen, die das LUA Scripten einfacher machen.


    Anmerkung:

    Zusätzlich gibt es noch Lua Dateien, die man für jedes Level und die Title anlegt, hier im Beispiel TestLevel.lua und Title.lua.

    2 Gameflow.lua

    Schauen wir uns die Gameflow.lua Datei etwas genauer an. Hier können wir wie bei der alten script.txt Datei unsere Level verwalten, neue hinzufügen oder Eigenschaften für unsere Level hinzufügen.

    Die Gameflow.lua lässt sich in 3 Blöcke einteilen:

    erster Block: Festlegung allgemeiner Systemdateien und Grundeinstellungen für alle Level wie z.B. die generelle Sichtweite.

    Title Block: Eintragungen für das Title Level (dieses sieht man beim Start des Levels).

    Level Block : Eintragungen für ein Level. (für mehrere Level erstellt man hier mehrere Level Blöcke)

    3 Hinzufügen eines neuen Levels

    Um ein neues Level in der Gameflow.lua hinzuzufügen, benötigen wir diese Grundeinträge:

    Code
    level1 = Level.new()
    
    
    level1.nameKey = "tombofdanger"
    level1.scriptFile = "Scripts\\tombofdanger.lua"
    level1.ambientTrack = "108"
    level1.levelFile = "Data\\tombofdanger.ten"
    level1.loadScreenFile = "Screens\\image.jpg"
    
    Flow.AddLevel (level1)

    level1

    Um Einträge der verschiedenen Level unterscheiden zu können, vergeben wir für jeden neuen Levelblock einen Namen. Man kann zur Vereinfachung z.B. wie hier im Beispiel Level1, Level2 nehmen.

    Für jedes Level benötigen wir noch diese 2 Standardeinträge, die sich nach umserem vergebenen Namen im Levelblock richten und sich je am Anfang und am Ende unseres Levelblocks befinden:

    Anfang des Levelbocks:

    level1 = Level.new()

    Ende des Levelblocks:

    Flow.AddLevel (level1)

    Hinter dem Levelblocknamen (hier als Beispiel level1) folgen weitere Standard Attribute, die wir durch einen "." hinzufügen und zwischen Anführungszeichen setzen:

    Level1.namekey=

    Diesen Namen muss man auch in der Strings.lua hinzufügen. (siehe Kapitel Hinzufügen eines Levels in der Strings.lua)

    Level1.scriptfile=

    Hier verweisen wir auf den Namen der Lua Datei, die jedes Level haben muss und die man neu erstellt. (siehe "Anlegen einer neuen Lua Datei für das neue Level)"

    Level1.ambientTrack=

    Hier legen wir die Hintergrundmusik fest, die beim Starten des Level als Loop läuft. Standardmäßig im Engine/Audio Ordner.

    Level1.levelFile=

    Das ist der Name der Level Datei, die sich standardmäßig im Engine/Data Ordner befindet.

    Anmerkung:

    Die Endung von den neuen Tomb Engine Leveln ist ".ten" und nicht mehr ".tr4".

    Level1.loadScreenFile=

    HIer verweisen wir auf das Bild, welches beim Laden des Levels geladen wird. Standardmäßig im Engine/Screens Ordner.

    Anmerkung:

    Es gibt noch weitere Attribute wie ".horizon", ".fog", ".layer1" usw. Diese werden in einem weiteren Tutorial erklärt.

    3.1 Hinzufügen eines Levelnamens in der Strings.lua

    Nun müssen wir noch den Levelnamen, den wir unter "level1.namekey=" vergeben haben, in der Strings.lua eintragen.

    Hierzu öffnen wir die Strings.lua im TOMBIDE und kopieren am besten die Struktur eines vorherigen Strings und setzen ihn am besten am Ende des Strings ein, allergins vor TEN.Flow.SetStrings(strings)

    Code
    ,
    tombofdanger= {
    "Tomb of Danger",
    "",
    "",
    "",
    "",
    "",
    "",
    ""
    }
    Display More

    Hinter der geschweiften Klammer des vorletzten Strings dürfen wir nicht vergessen ein Komma zu setzen.

    Nun vergeben wir zunächst den Namen, den wir auch bei "level1.namekey=" vergeben haben, hier als Beispiel "tombofdanger".

    Die anderen "" sind Platzhalter für die verschiedenen Sprachen, in die erste "" Zeile setzen wir als hier als Beispiel "Tomb of Danger" für Englisch. Diese wird dann auch bei der Auswahl der Levels im Spiel erscheinen.

    Anmerkung:

    Leider weiß ich noch nicht, ob der TombIDE nun andere Sprachen als Englisch unterstützt. Auf jeden Fall ist man auf der sicheren Seite, wenn man jeweils die "" Zeile für Englisch nimmt.

    3.2 Anlegen einer neuen Lua Datei für das neue Level

    Nun müssen wir noch eine neue Lua Datei mit dem Namen anlegen , den wir unter "Level1.scriptfile=" vergeben haben.

    In TombIDE gehen wir dazu rechts in den FileExplorer im Scripting Studio und erstellen eine neue .lua Datei.

    Anmerkung:

    Wichtig ist bei File Format ".LUA (Lua file)" auszuwählen.

    In die leere .Lua datei setzen wir noch folgenden Code:

    Code
    LevelFuncs.OnLoad = function() end
    LevelFuncs.OnSave = function() end
    LevelFuncs.OnStart = function() end
    LevelFuncs.OnControlPhase = function() end
    LevelFuncs.OnEnd = function() end

    Anmerkung:

    Später können wir in diese Datei noch Funktionen setzen, bestehend aus Programmiercode, die wir mit den neuen Volume Triggern verbinden können, um damit Ereignisse, Bedingungen, Aktionen usw. in diesem Level auszulösen.

    Nun sollte alles für unser neues Level funktionieren. Natürlich müssen wir dieses erst im TombEdtior mit einer ".prj2" Datei anlegen und unter Level Settings die richtigen Zuweisungen machen. Dies habe ich im ersten Tutorial über die TEN Engine erklärt.

    • Basic Scripting
    • Lua Scripting
    • Lua Dateien

Share

  • Previous entry Levelstart - Items auf eine bestimmte Anzahl setzen / beschränken
  • Next entry Secrets - LUA
  • Changelog
  • PDF

Table of Contents

  • 1 Überblick über die einzelnen LUA Dateien
  • 2 Gameflow.lua
  • 3 Hinzufügen eines neuen Levels
    • 3.1 Hinzufügen eines Levelnamens in der Strings.lua
    • 3.2 Anlegen einer neuen Lua Datei für das neue Level

Categories

  1. Archiv 8
    1. Tomb Editor_Alt 2
    2. TRNG_Alt 4
  2. Bauen 239
    1. Tomb Editor (TE) 107
      1. Tipps und Tricks 19
      2. SoundTool 5
      3. TombIDE 6
      4. WadTool 11
      5. NodeEditor 2
    2. Tomb Engine (TEN) 72
      1. Tipps und Tricks 17
      2. Lua Scripting 35
    3. TRNG Engine 194
      1. Scripting 4
      2. NG Center 20
      3. Allgemein 7
      4. Neue TRNG Script Befehle 66
      5. Neue TRNG Trigger 66
      6. Neue TRNG OCB Werte 9
      7. TRNG Plugins 6
      8. Tipps und Tricks 5
      9. TRNG Engine Praktische Beispiele 8
    4. NGLE (Next Generation Level Editor) 12
    5. Tomb Raider Level Editor 86
      1. Licht 4
      2. Geometrie 8
      3. Levelbau 110
      4. Tipps und Tricks 12
      5. Script 3
      6. Sounds 2
      7. Texturen 2
      8. OCB 4
      9. Sonstiges 3
      10. Dxtre3D 1
  3. Tools 21
    1. Metasequoia 5
      1. Metasequoia 3.x 2
      2. Metasequoia 4.x 3
    2. StrPix und WADMerger 4
      1. StrPix 2
      2. WADMerger 2
    3. FLEP 9
    4. Tools 2
    5. TREP 7
      1. Flipeffect Editor 1
      2. Custom Patches 2
    6. TRViewer 1
    7. Blender 0
  4. Allgemeine Tipps und Tricks 3
  5. Level Editor Lexikon 107
    1. Tomb Editor 1
    2. Tools 3
      1. TREP/FLEP 3
      2. WADMerger 0
      3. Strpix 0
    3. NGLE/LE 97
    4. Allgemein 6
      1. WAD Slots 5
    5. NGEngine 0
  1. Privacy Policy
  2. Contact
  3. Legal Notice
Lexicon 7.1.17, developed by www.viecode.com
Powered by WoltLab Suite™ 6.1.18
TRLevel.de in the WSC-Connect App on Google Play
TRLevel.de in the WSC-Connect App on the App Store
Download