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.4 Levelstart - Items auf eine bestimmte Anzahl setzen / beschränken

  • l.m.
  • October 16, 2024 at 8:39 PM
  • October 16, 2024 at 10:03 PM
  • 715 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.

  • 1 Umsetzung mit Lua

    Wenn man bestimmte Items wie zb. kleine und große Medipaks beschränken möchte kann man das mit folgenden Script tun.
    Setzt zu Start nur 1 kleines und 0 große Medipaks:

    Code
    LevelFuncs.OnStart = function() 
        SetItemCount(TEN.Objects.ObjID.BIGMEDI_ITEM, 0)
        SetItemCount(TEN.Objects.ObjID.SMALLMEDI_ITEM, 1)
    end

    Das funktioniert wenn man ein Level / Projekt hat, was nur aus einem Level besteht - oder man zum nächsten Level wechselt OHNE jemals zum ersten Level zurückkehren kann.

    Nun kann es aber ja sein, dass man das Level erneut besucht (als Hub Level).

    Dann würde auch bei einem erneuten Besuch des Level (man beendet das Level und kehrt zurück) die Anzahl gesetzt werden, obwohl man vielleicht im Level schon ein kleines und großes Medipak gefunden hat und man eigentlich 2 kleine und 1 großes Medipak im Inventar hat. Um dies zu umgehen kann man folgendes in das Script einbauen:

    Code
    GameVars.SetInitialItems = false
    LevelFuncs.OnStart = function() 
        if not GameVars.SetInitialItems then
            SetItemCount(TEN.Objects.ObjID.BIGMEDI_ITEM, 0)
            SetItemCount(TEN.Objects.ObjID.SMALLMEDI_ITEM, 1)
            GameVars.SetInitialItems = true
        end
    end

    Erklärung:

    Mit einer GameVars. Variable setzt man eine "Globale" Variable die im gesamten Spiel und nicht nur im Level gültig ist. (Im Gegensatz zu einer LevelVars. Variable die NUR im aktuellen Level gültig ist)

    Wenn man diese zu Anfang auf "false" setzt und dann nachfragt ob diese "false ist" (if not GameVars.SetInitialItems then) wird der Code innerhalb des IF ausgeführt, nämlich die Anzahl der Medipaks auf 0 bzw. 1 zu setzen.

    Außerdem wird die GameVars.SetInitialItems auf true gesetzt. Was bedeutet, dass die Abfrage if not GameVars.SetInitialItems then danach nicht mehr erfüllt wird. Und zwar im gesamten Spiel nicht mehr (ausser ihr setzt diese wieder auf false)

    2 Umsetzung mit Node Editor

    Wenn ihr das nicht mit Lua machen wollt, sondern mit dem Node Editor, so geht das auch.

    Dazu geht ihr in den Tomb Editor und wählt "Edit / Edit global event sets ... " aus.

    Dort erstellt ihr ein neues Event wie dieses hier:

    Wichtig ist, dass ihr oben rechts bei Event: "On Level Start" auswählt, damit das Event nur dort gestartet wird.

    Im Grunde macht dies dasselbe wie in Lua.

    Es setzt eine Game Variable (GameVars.xxx) auf 0 (false). (If game variable is ..)

    Dann entfernt ihr die Items wie Big und Small Medipaks und setzt das Small Medipak auf 1 (Add Item to Inventory)

    Da es noch kein "Set Item" im Node Editor gibt, müssen wir mit "Remove Item und "Add Item" arbeiten. Remove Item (0) entfernt ALLE Items. (wird im Tooltip auch so angezeigt).

    Anschließend setzen wir die Game Variable "SetInitialItems" wieder auf 1 (True) damit dies nur einmal im Spiel passiert.

    Und das wars. Damit entfernt ihr einmalig im Spiel Items und setzt deren Anzahl einmalig im Spiel.

Share

  • Previous entry Level.Funcs über Volume Event mit mehreren Argumenten / Parameter aufrufen
  • Next entry LUA Dateien - Erste Einführung
  • Changelog
  • PDF

Table of Contents

  • 1 Umsetzung mit Lua
  • 2 Umsetzung mit Node Editor

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