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 Lara Gesundheit und Tod - LUA

  • Jörg
  • October 26, 2022 at 10:29 AM
  • October 27, 2022 at 9:25 AM
  • 1,936 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.

  • Lara Gesundheit und Tod - LUA

    Hier nenne ich mal einige Basis Lua Funktionen, wie man Laras Gesundheitsanzeige verändert und sie auf verschiedene Weise tötet.

    Alle hier aufgeführten "LevelFuncs." Funktionen schreiben wir in unsere Level Lua Datei und lösen diese durch Volume Trigger aus. Wie das geht, wird hier beschrieben.

    Wichtige Anmerkung:

    Lara hat unter den Moveables eine Sonderstellung und muss nicht erst durch den Befehl "GetMoveableByName(name)" einer Variabel zugewiesen werden.

    Es entfällt also die Zuweisung:

    local Lara = GetMoveableByName("laracroft")

    1 Laras Gesundheitswert verändern

    Wenn Laras Gesundheitsbalken vollständig aufgeladen ist, also 100%, hat Laras Gesundheit einen Wert von 1000.

    Diesen Gesundheitswert kann man mit folgender Funktion ändern:

    Code
    LevelFuncs.SetLaraHP = function ()
               Lara:SetHP(500)
    end

    Hier im Beispiel setzen wir Laras Gesundheit auf 500, sie hat also nur noch 50%, der Balken ist nur noch zur Hälfte voll.

    1.1 Laras Gesundheitswert reduzieren

    Möchte man Laras Gesundheitswert z.B. um 10 reduzieren, nimmt man folgende Funktion.

    Code
    LevelFuncs.LaraReduceHealth = function()
               Lara:SetHP(Lara:GetHP()-10)
    
    end

    Hier setzen wir Laras Gesundheitswert, indem wir durch "GetHP" erst den aktuellen Wert ermitteln und dann davon 10 abziehen.

    Anmerkung:

    Möchte man, dass ständig Gesundheit (-10) abgezogen wird, kann man einen Volume Trigger auf die entsprechenden Squares setzen und die Funktion in "When inside" setzen. Wie es auch ohne Volume Trigger und "When inside" geht, erkläre ich weiter unten unter "Damage Room simulieren".

    1.2 Laras Gesundheitswert erhöhen

    Genauso wie man Laras Gesundheitwert reduzieren kann, kann man ihn natürlich auch z.B. um 10 erhöhen.

    Code
    LevelFuncs.LaraAddHealth = function()
               Lara:SetHP(Lara:GetHP()+10)
    end

    Hier setzen wir Laras Gesundheitswert, indem wir durch "GetHP" erst den aktuellen Wert ermitteln und dann davon diesen um 10 erhöhen.
    Hat natürlich keine Auswirkung mehr, wenn Laras Gesundheitswert eh schon auf 100% bzw. 1000 ist.

    Anmerkung:

    Möchte man, dass ständig Gesundheit (+10) erhöht wird, kann man einen Volume Trigger auf die entsprechenden Squares setzen und die Funktion in "When inside" setzen.

    2 Lara töten

    Um Lara zu töten, haben wir mehrere Möglichkeiten:

    2.1 Laras Gesundheitswert auf 0 setzen

    Wir können mit SetHP() Laras Gesundheitswert auf 0 setzen. Dadurch stirbt sie sofort.

    Code
    LevelFuncs.KillLara = function ()
               Lara:SetHP(0)
    end

    2.2 Sterbeanimationen abspielen

    Man kann natürlich auch einfach eine Sterbeanimation setzen, die dann abgespielt wird, dann stirbt Lara auch. Die Standardanimation ist z.B. 138. Möchte man sie im Wasser sterben lassen, kann man auch einfach im Wasser die Sterbeanimation 132 abspielen lassen. (Laras Ertrinken Animation wird abgespielt und sie stirbt)

    Code
    LevelFuncs.KillLara = function ()
    Lara:SetAnim(138)
    end
    
    LevelFuncs.KillLara_Water = function ()
    Lara:SetAnim(132)
    end

    2.3 Lara explodieren lassen

    Es gibt einige vorgefertigte Lua Funktionen, um Moveables zu töten. Diese können wir auch für Lara verwenden.

    Code
    LevelFuncs.KillLara = function()
    Lara:Explode()
    PlaySound(106)
    PlaySound(30)
    end

    Der Befehl "Lara:Explode()" lässt Lara explodieren. Damit es realtischer wirkt, habe ich noch das Explosionsgeräusch "106" und Laras Schrei "30" hinzugefügt durch "PlaySound...."

    Theoretisch geht auch

    Lara:Shatter()

    Dann zerspringt sie wie eine Vase, die man zerschießt. Inwieweit das Sinn macht, darüber kann man sich natürlich streiten.

    2.4 Lara in Flammen aufgehen lassen

    Leider gibt es noch keine direkte Lua Funktion, um Lara direkt in Flammen aufgehen zu lassen.

    Es gibt aber einen kleinen Workaround:

    Beim alten Editor gab es das Nullmesh Objekt "Flame", welches man irgendwo im Level platzieren konnte. Auf allen Triggern, auf denen man dieses ausgelöst hast, ging Lara in Flammen auf.

    Quote

    Altes Handbuch

    FLAME

    Der Auslöser sorgt dafür, das Lara in Flammen aufgeht (wie das grüne DEATH Square). Das Objekt ist

    für Lara tödlich.

    Dieses können wir uns für eine Lua Funktion zunutze machen.

    Wir platzieren das Nullmesh Objekt irgendwo im Level und setzen folgende Funktion in einen Volume Trigger:

    Code
    LevelFuncs.burstflames = function ()
               local nullmesh = GetMoveableByName("Flame")
               nullmesh: Enable()
    
    
    end

    Wir nehmen den Lua Namen des Flame Nullmesh Objektes (hier im Beispiel "Flame") und triggern es durch "Enable()". Dadurch geht Lara auf jedem Square in Flammen auf, auf dem der Volume Trigger mit dieser Funktion gesetzt ist.

    Anmerkung:

    Das Nullmesh Objekt "Flame" ist leider nicht im Basis "TombEngine.Wad2" enthalten. Man muss es sich aus einem anderen Standard Wad wie z.b. "tut1" usw. rüberkopieren.

    3 Eigenen Damage Room simulieren

    Im Tomb Editor können wir unter "Room Options" ein Häkchen bei "Damage" machen. Dadurch wird ein Raum ein "Damage Room", in dem Lara kontinuierlich Energie verliert. Bisher gibt es leider in der TEN Engine noch keinen direkten Befehl, die Geschwindigkeit der Gesundheitsreduzierung selber zu bestimmen.

    Wir können uns aber eine Lua Funktion schreiben, in der wir selber bestimmten, wie schnell Laras Gesundheitsbalken reduziert wird.

    Code
    LevelFuncs.OnControlPhase = function()
                    LaraDamageRoom ()
    end
    
    
    function LaraDamageRoom ()
               if Lara:GetRoom() == 11 then
               Lara:SetHP(Lara:GetHP()-10)
               else
               Lara:SetHP(Lara:GetHP()+10)
    end
    end
    Display More

    Wir schreiben eine normale Funktion, die wir in .OnControlPhase ständig überprüfen lassen. Wenn Lara wie hier im Beispiel in den Raum 11 geht ( Überprüfung durch "GetRoom() ), werden hier ständig "-10" von ihrer Gesundheit abgezogen, verlässt sie den Raum 11 wieder, steigt ihre Gesundheitsanzeige wieder ständig um (+10).

    Anmerkung:

    Den Raum muss man natürlich entsprechend anpassen. (Hier im Beispiel war es Raum 11) Unter Room Options kann man herausfinden, welche Nummer der Raum hat, der zu einem Damage Room werden soll. Auch die Zahl "10" kann man natürlich beliebig anpassen. Je höher die Zahl, desto schneller wird Lara Energie abgezogen.

    • Lara
    • Lua Scripting
    • LUA

Share

  • Previous entry Ladebildschirm beim Beenden des Level festlegen
  • Next entry Lara mit Objekten kollidieren lassen und verletzen
  • Changelog
  • PDF

Table of Contents

  • 1 Laras Gesundheitswert verändern
    • 1.1 Laras Gesundheitswert reduzieren
    • 1.2 Laras Gesundheitswert erhöhen
  • 2 Lara töten
    • 2.1 Laras Gesundheitswert auf 0 setzen
    • 2.2 Sterbeanimationen abspielen
    • 2.3 Lara explodieren lassen
    • 2.4 Lara in Flammen aufgehen lassen
  • 3 Eigenen Damage Room simulieren

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