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 Inventar Gegenstände (Anzahl und Menge) LUA

  • Jörg
  • September 8, 2022 at 10:10 AM
  • September 18, 2022 at 3:18 PM
  • 4,630 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.

  • Inventar Gegenstände (Anzahl und Menge) LUA

    Bei der TEN Engine haben wir ebenfalls die Möglichkeit, Anzahl und Menge von Gegenständen im Inventar festzulegen.

    1 Anzahl und Menge beim Start des Levels festlegen

    Um z.b. die Anzahl von Medipacks, Fackeln usw. festzulegen, die ein Spieler beim Start des Levels im Inventar haben soll, verwenden wir folgenden LUA Befehl.

    Code
    SetItemCount(ObjID.SMALLMEDI_ITEM, 1)

    ObjID

    In die Klammer schreiben wir den Slot des Gegenstandes mit dem vorherigen Prefix "ObjID".

    Eine Auflistung, der Slot Namen finden wir in der Dokumentation von squidshire unter dem Punkt Objects.ObjID.

    1

    Hier legen wir die Anzahl fest. 0 bedeutet, dass der Gegenstand nicht im Inventar ist. -1 gibt eine unendliche Menge.

    Wir haben nun zwei Möglichkeiten, diesen Script Befehl in unsere LUA Level Datei zu setzen:

    1. Wir setzen die Befehle direkt in die .OnStart LevelFuncs.

    Code
    LevelFuncs.OnStart = function() 
    
    SetItemCount(ObjID.FLARE_INV_ITEM, 10)
    SetItemCount(ObjID.BIGMEDI_ITEM, 3)
    SetItemCount(ObjID.SMALLMEDI_ITEM, 5)
    SetItemCount(ObjID.BINOCULARS_ITEM, 1)
    
    end

    Diese Möglichkeit kann aber schnell unübersichtlich werden, vor allem wenn wir noch weitere LUA Scripts in .OnStart setzen wollen.

    2. Wir setzen den Script Befehl in eine normale Funktion. In der .OnStart LevelFuncs. Funktion verweisen wir dann auf diese mit "ItemsInventory ()":

    Code
    LevelFuncs.OnStart = function() 
    
    ItemsInventory ()
    
    end
    
    function ItemsInventory ()
    
             SetItemCount(ObjID.FLARE_INV_ITEM, 10)
             SetItemCount(ObjID.BIGMEDI_ITEM, 3)
             SetItemCount(ObjID.SMALLMEDI_ITEM, 5)
             SetItemCount(ObjID.BINOCULARS_ITEM, 1)
         
             
    end
    Display More

    So können wir leicht in die Funktion weitere Gegenstände setzen, ohne dass die .OnStart Funktion unübersichtlich wird.

    2 Menge im Spiel ändern

    Um im Spiel die Menge eines Gegenstandes anzupassen, gibt es folgenden LUA Befehl:

    Code
    GiveItem(ObjID.BIGMEDI_ITEM, 1)

    ObjID

    In die Klammer schreiben wir den Slot des Gegenstandes mit dem vorherigen Prefix "ObjID".

    1

    Hier geben wir die Menge an, die wir hinzufügen wollen.

    Setzen wir hier "0", wird hier die Standardmenge gegegeben, die bei TR IV üblich ist, z.B. bei der Armbrust Ammo 10.

    Anmerkung:

    Unterschied zum "SetItemCount" ist hier, dass die Menge zur bestenden Menge hinzugefügt wird.

    Wir setzen den Befehl in eine LevelFuncs. Funktion, die wir im Spiel durch einen Volume Trigger auslösen.

    Code
    LevelFuncs.Give1BigMedi = function ()
               GiveItem(ObjID.BIGMEDI_ITEM, 1)
    end

    3 Einen Gegenstand entfernen

    Um einen Gegenstand zu entfernen gibt es seit Version 1.0.2 folgende Möglichkeit:

    Code
    TakeItem(ObjID.PISTOLS_ITEM,1)

    ObjID

    In die Klammer schreiben wir den Slot des Gegenstandes mit dem vorherigen Prefix "ObjID".

    1

    Hier geben wir die Menge an, die wir entfernen wollen. Keine Angabe entfernt die Standardmenge. Hat keinen Effekt, wenn der Spieler eine unendliche Menge hat.

    Den Befehl können wir sowohl in eine LevelFuncs. Funktion setzen und in in einem Volume Trigger auslösen, oder in eine normale Funktion, die wir dann in .OnStart auslösen.

    Anmerkung:

    Wie oben schon beschrieben, können wir den Befehl auch direkt in OnStart setzen. Aber aufgrund der Übersichtlichkeit empfehle ich, es in eine normale Funktion zu setzen, auf die wir dann in .OnStart verweisen.

    Code
    LevelFuncs.TakePistolsAway = function ()           
               TakeItem(ObjID.PISTOLS_ITEM,1)
    end
    Code
    LevelFuncs.OnStart = function() 
    RemovePistols ()
    
    end
    
    
    function RemovePistols ()
    
               TakeItem(ObjID.PISTOLS_ITEM,1)         
    end

    4 Eine Bedingung festlegen, wenn eine bestimmte Anzahl im Inventar ist

    Möchten wir dass etwas passiert, wenn eine bestimmte Menge von einem Gegenstand im Inventar ist, verwenden wir eine IF....WHEN Bedingung und diesen Script Befehl.

    Code
    GetItemCount(ObjID.BIGMEDI_ITEM)

    Wir setzen den Code nun in eine normale Funktion:

    Code
    LevelFuncs.OnControlPhase = function() 
    medipack ()
    end
    
    function medipack ()
             local bigmedipack = GetItemCount(ObjID.BIGMEDI_ITEM)
             if bigmedipack == 1 then
             local door = GetMoveableByName("gatedoor")
             door:Enable()
             
             end
    
    end
    Display More

    In die lokale Variable bigmedipack setzen wir die aktuelle Menge eines Gegenstandes, hier im Beispiel "BIGMEDI_Item".

    Bei der IF....WHEN Bedignung sagen wir, wenn im Inventar die Menge von 4 BigMedipacks ist, dann soll sich eine Tür mit dem Lua Namen "gatedoor" öffnen.

    In der .OnControlPhase LevelFuncs. Funtkion setzen wir noch einen Verweis auf die Funktion. Somit wird ständig geprüft, ob die Bedingung wahr ist.

    medipack ()

    Anmerkung:

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

    • Inventar
    • Inventory

Share

  • Previous entry Inventar - Namen von Gegenständen vergeben LUA
  • Next entry Item Spawner
  • Changelog
  • PDF

Table of Contents

  • 1 Anzahl und Menge beim Start des Levels festlegen
  • 2 Menge im Spiel ändern
  • 3 Einen Gegenstand entfernen
  • 4 Eine Bedingung festlegen, wenn eine bestimmte Anzahl im Inventar ist

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.16
TRLevel.de in the WSC-Connect App on Google Play
TRLevel.de in the WSC-Connect App on the App Store
Download