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 2025
    2. Osterkalender 2024
    3. Osterkalender 2023
    4. Osterkalender 2022
    5. Osterkalender 2021
    6. Osterkalender 2020
    7. Osterkalender 2019
    8. Osterkalender 2018
    9. Osterkalender 2017
    10. 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 1.7 Inventar - Namen von Gegenständen vergeben LUA

  • Jörg
  • August 14, 2022 at 10:40 PM
  • January 14, 2025 at 7:37 PM
  • 9,513 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.

  • Gegenstände im Level einen Namen geben und im Inventar Größe, Position, Rotation und Drehung festlegen

    Um in unserem Level den Namen von Gegenständen wie Puzzle_Items, Key_Items, usw. und Größe, Position und Drehung im Inventar zu definieren, legen wir diese in der Gameflow.lua zwischen" level1.objects=" an.

    1 Eintrag in der Gamesflow.lua

    In der Praxis sieht das in der Gameflow.lua Datei sieht das Ganze so aus:

    Code
    level1.objects = {
        InventoryItem.new(
           "garden_key",
           ObjID.PUZZLE_ITEM1,
           0,
           0.5,
           Rotation.new(0, 0, 0),
           RotationAxis.Y,
           -1,
           ItemAction.USE
         )
    }
    Display More

    Nehmen wir als Beispiel den Garden Key aus dem Rome Level von Tomb Raider - die Chronik als Beispiel:

    level1.objects= {}

    level1 hier die Bezeichnung uneres Levelblocks. Dahinter schreiben wir durch einen "." getrennt das Wort "objects" und ein Gleichheitszeichen. In die geschweifte Klammer setzen wir nun alle unsere Gegenstände, die Lara benutzen kann wie Puzzle_Items, Key_Items, usw.

    InventoryItem.new()

    Nun setzen wir zwischen den Klammern unseren ersten Gegenstand, gefolgt von den folgenden Attributen, die wir jeweils durch ein Komma trennen:

    "garden_key"

    Hier vergeben wir einen Namen, den wir später auch in der Strings.lua vergeben.

    Anmerkung:

    Dies ist noch nicht der Name, der im Inventar erscheinen wird. Diesen vergeben wir in der Strings.lua (siehe unten)

    ObjID.PUZZLE_ITEM1

    Hier nennen wir den Slot, in den wir den Gegenstand gesetzt haben. Der Slotname dürfte der Gleiche wie bei der alten Engine sein. Zur Sicherheit kann man sich aber alle Slots verfügbaren Slots in der TEN Dokumentation von squidshire unter dem Menüpunkt "Objects.ObjID" ansehen.

    0

    Hier legen wir fest, wo sich der Gegenstand auf der Y-Achse befindet. Positive Werte bewegen den Gegenstand nach unten. Ein Wert von 100 zeigt den Gegenstand ungefähr direkt unter seiner gewöhnlichen Position.

    0.5

    Hier legen wir die Größe fest. 1 ist Standardgröße. Werte unter 1 werden mit einem Punkt geschrieben, z.B. 0.8.

    Rotation.new(0, 0, 0)

    Festlegen der Neigung bei der X-, Y-, und Z-Achse.

    RotationAxis.Y

    Hier geben wir die Achse an, um der sich das Objekt drehen soll, wenn wir es im Inventar aufrufen. Es gehen folgende 3 Werte:

    RotationAxis.X

    RotationAxis.Y

    RotationAxis.Z

    -1

    Dieser Wert steht für "meshbits". Leider ist er noch nicht implementiert und es gibt noch keine Erklärung dazu, nur dass es im Moment egal ist, welchen Wert man hier angibt.

    ItemAction.USE

    Hier kann man mehrere Werte hinter "ItemAction." setzen.

    Referenz:

    TombEngine 1.7.1 Lua API

    ItemAction.USE

    nimmt man für Gegenstände, die Lara benutzen kann, wie Puzzle Items und Keys usw.

    ItemAction.EXAMINE

    wohl für Gegenstände, die man untersuchen kann wie z.B. Schriftrollen oder auch einfach nur Secrets die man sammelt, wie z.B. der goldene Totenkopf aus dem Angkor Wat Level.

    ItemAction.EQUIP

    könnte für Gegenstände genommen werden, mit denen sich Lara ausrüstet, wie Waffen

    ItemAction.COMBINE

    wenn wir Puzzle Items haben die kombiniert werden können, wie beispielsweise ObjID.PUZZLE_ITEM1_COMBO1 und ObjID.PUZZLE_ITEM1_COMBO2 muss hier "ItemAction.Combine" gesetzt werden.

    Beispiel:

    Code
    level1.objects = {
        InventoryItem.new(
          "puzzle_item6",
          ObjID.PUZZLE_ITEM6,
          0,
          0.5,
          Rotation.new(-75,0,0),
          RotationAxis.Y,
          -1,
          ItemAction.USE
       ),
        InventoryItem.new(
          "puzzle_item6_combo1",
          ObjID.PUZZLE_ITEM6_COMBO1,
          0,
          0.5,
          Rotation.new(-75,0,0),
          RotationAxis.Y,
          -1,
          ItemAction.COMBINE
       ),
       InventoryItem.new(
          "puzzle_item6_combo2",
          ObjID.PUZZLE_ITEM6_COMBO2,
          0,
          0.5,
          Rotation.new(45,45,0),
          RotationAxis.Y,
          -1,
          ItemAction.COMBINE
       ),
    }
    Display More

    Tragen wir nun einen weiteren Gegenstand ein, setzen wir immer nach der geschlossenen Klammer des vorherigen Gegenstandes ein Komma ",".

    Beim letzten Gegenstand in der Liste, muss kein Komma mehr gesetzt werden. Man sollte aber nicht vergessen zum Schluss die geschlossene, geschweifte Klammer von "level.objects" zu setzen.

    Beispiel bei zwei Gegenständen:

    Code
    level1.objects = {
        InventoryItem.new(
           "garden_key",
           ObjID.PUZZLE_ITEM1,
           0,
           0.5,
           Rotation.new(0, 0, 0),
           RotationAxis.Y,
           -1,
           ItemAction.USE
         ),
         InventoryItem.new(
            "golden_key",
            ObjID.KEY_ITEM1,
            0,
           0.5,
           Rotation.new(0, 0, 0),
           RotationAxis.Y,
           -1,
          ItemAction.USE
         )
    }
    Display More

    2 Eintrag in der Strings.lua

    Nun müssen wir unseren Gegenstand noch in der Strings.lua anlegen. Der Vorgang ist eigentlich der Gleiche wie das Anlegen eines neuen Levelnamens.

    Wir öffnen die Strings.lua und setzen in der "local strings = {}" unseren Eintrag für den Garden Key, am besten am Ende der Liste.

    Code
        golden_key = {
            "Golden Key",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
        }

    Anmerkung:

    Auch hier nicht vergessen, nach der geschlossenen geschweiften Klammer ein Komma "," zu setzen, falls darunter weitere Einträge erfolgen. Nur beim letzten Eintrag vor der geschlossenen geschweiften Klammer von "local strings =" lässt man das "," weg.

    golden_key

    Hier verwenden wir den Namen, den wir auch schon in der Gamesflow.lua vergeben haben. (Zweiter Eintrag nach level1.objects =".)

    "Golden Key"

    Der nächste Eintrag ist der englische Name für den Gegenstand, welcher später auch im Inventar zu lesen sein wird.

    Anmerkung:

    In die daraufolgenden 7 Anführungszeichen würde man den Namen für den Gegenstand in anderen Sprachen setzen wie "Italienisch", "Deutsch", "Französisch", "Holländisch", "Spanisch", "Japanisch" und "Russisch". Allerdings weiß ich nicht, ob der TombIDE diese Sprachen schon unterstützt und ob man die Sprache schon umstellen kann bei TEN.

    In der Zwischenzeit habe ich gesehen, dass man die anderen Klammern für die Sprachen auch weglassen kann, wenn man z.B. eh nur Englisch als Sprache nimmt.

    Code
       golden_key = {
            "Golden Key"
        }

    Haben wir alles erledigt, können wir unseren Eintrag in unserem Level mit dem entsprechenden Gegenstand testen.

    Wichtige Anmerkung:

    In der Tomb Engine Version 1.0 setzt Lara "Puzzle_Items" nur ein, wenn man den entsprechenden KEY Trigger und mindestens einen weiteren Trigger gesetzt hat. Wird in der nächsten Version wieder geändert, so dass Lara auch ohne Trigger den Gegenstand einsetzt.

    Seit Version 1.0.2 wurde "InvID" in "ObjID" geändert.



    Hinweis von illyaine

    Bitte aufpassen, dass die Einträge vor dem abschließenden "Flow.AddLevel(LEVELNAME)" hinzugefügt werden. Da ab der Zeile "Flow.AddLevel" das Level abgeschlossen ist, sonst wird eure Änderung nicht angezeigt werden.
    Bsp in meinem Fall Croft Manor Level:


    Croft_Manor.objects = {
    InventoryItem.new ("Garden_Key", ObjID.PUZZLE_ITEM1, 515, 0.7, Rotation.new(0, 0, 0), RotationAxis.Y, 0, ItemAction.USE);
    }

    Flow.AddLevel(Croft_Manor)


    Setze ich meine Zeile für die Beschriftung der Puzzle Items unter der "Flow.AddLevel" Zeile, wird diese Änderung nicht beachtet.

    • Examine
    • Inventory
    • Puzzle Item
    • Key Item

Share

  • Previous entry Funktionen (Functions) in Volume Trigger setzen LUA
  • Next entry Inventar Gegenstände (Anzahl und Menge) LUA
  • Changelog
  • PDF

Tomb Engine/Tomb Editor

Tomb Engine Version
1.6

Table of Contents

  • 1 Eintrag in der Gamesflow.lua
  • 2 Eintrag in der Strings.lua

Categories

  1. Archiv 8
    1. Tomb Editor_Alt 2
    2. TRNG_Alt 4
  2. Bauen 238
    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) 11
    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.15
TRLevel.de in the WSC-Connect App on Google Play
TRLevel.de in the WSC-Connect App on the App Store
Download