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 EnemyHP Counter für alle anvisierten Gegner - LUA

  • Jörg
  • April 12, 2023 at 3:54 PM
  • July 8, 2023 at 3:24 PM
  • 2,687 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.

  • EnemyHP Counter für alle anvisierten Gegner

    Hier mal 2 Varianten, um einen Enemy HP Counter für alle anvisierten Gegner zu erstellen. Lara visiert mit ihren Waffen einen Gegner an, dann erscheint eine Textanzeige mit dem Lua Namen des Gegners und der momentanen HP. Zieht sie die Waffen ein, verschwindet die Anzeige, visiert sie einen anderen Gegner an, erscheint dessen HP Anzeige.

    Anmerkung:

    Den Lua Namen des Gegners kann man ändern, indem man mit der rechten Maustaste auf den Gegner klickt und "Rename Object" auswählt.

    Vielen Dank an dieser Stelle an DaviDM vom "TombEngine Discord Server". Er hat diese Funktionen für uns erstellt und erlaubt, sie hier zu posten.

    1 Variante zum Setzen in .OnControlPhase

    Code
    local enemyHP = DisplayString('', 0, 0, Color(255, 255, 0), false)
    enemyHP:SetPosition(PercentToScreen(1.8, 0.1))
    
    
    LevelFuncs.OnControlPhase = function()
    if Lara:GetTarget() ~= nil then
    enemyHP:SetKey(Lara:GetTarget():GetName() .. ' HP: ' .. Lara:GetTarget():GetHP())
    ShowString(enemyHP)
    else
    HideString(enemyHP)
    end
    end
    Display More

    Hier setzen wir die ersten beiden Positionen vor die .ON Funktionen und den Codeblock selber in die "LevelFuncs.OnControlPhase" Funktion.

    Der Code sagt im kurzen folgendes aus.

    1. Erstelle in der Variable "enemyHP" einen Text String in der Farbe gelb, und mit folgender Textposition (oben links etwas nach unten versetzt), der noch nicht angezeigt wird.

    2. Wenn Lara einen Gegner anvisiert, dann ist "Lara:GetTarget()" nicht 0 und dann wird in die Textvariable "enemyHP" der "Lua Name" des Gegners und sein derzeitiger HP Wert gesetzt und der Text angezeigt ansonsten verschwindet der Text wieder.

    2 Variante etwas mehr aufgesplittet zum besseren Verständnis

    Code
    local enemyStringHP = DisplayString('', 0, 0, Color(255, 255, 0), false)
    enemyStringHP:SetPosition(PercentToScreen(1.8, 0.1))
    
    
    LevelFuncs.OnControlPhase = function()
    if Lara:GetTarget() ~= nil then
    local enemy = Lara:GetTarget()
    local enemyName = enemy:GetName()
    local enemyHP = enemy:GetHP()
    enemyStringHP:SetKey(enemyName .. ' HP: ' .. enemyHP)
    ShowString(enemyStringHP)
    else
    HideString(enemyStringHP)
    end
    end
    Display More

    Diese Variante ist etwas mehr aufgesplittet zum besseren Verständnis.

    Hier setzen wir ebenfalls die ersten beiden Positionen vor die .ON Funktionen und den Codeblock selber in die "LevelFuncs.OnControlPhase" Funktion.

    Hier wird der anvisierte Gegner in die Variable "enemy" gesetzt.

    Dann wird in der Variabel "enemyName" der Name des anvisierten Gegners gesetzt. In die Variabel "enemyHP" wird der aktuelle HP Wert des anvisierten Gegners gesetzt.

    In "enemyStringHP" wird dann der Lua Name und die aktuelle HP angezeigt.

    Ansonsten gilt wie oben, wenn Lara einen Gegner anvisiert und somit "Lara:GetTarget() nicht 0 ist, dann zeige Text an, ansonsten wird der Text nicht angezeigt.

    3 Variante ohne Setzen in .OnControlPhase

    Code
    local enemyStringHP = DisplayString('', 0, 0, Color(255, 255, 0), false)
    enemyStringHP:SetPosition(PercentToScreen(1.8, 0.1))
    LevelFuncs.ShowHpEnemy = function()
    if Lara:GetTarget() ~= nil then
    local enemy = Lara:GetTarget()
    local enemyName = enemy:GetName()
    local enemyHP = enemy:GetHP()
    enemyStringHP:SetKey(enemyName .. ' HP: ' .. enemyHP)
    ShowString(enemyStringHP)
    else
    HideString(enemyStringHP)
    end
    end
    AddCallback(TEN.Logic.CallbackPoint.POSTCONTROLPHASE, LevelFuncs.ShowHpEnemy)
    Display More

    Diese Variante kann man ganz normal unterhalb der .ON Funktionen in seine Lua Level Datei schreiben. Die Funktion "AddCallback" ist dafür da, dass man Teile nicht mehr nach ".OnControlPhase" auslagern muss. Auch die beiden ersten Code Zeilen mit "local enemyStringHP" und "enemyStringHP" muss nicht mehr nach oben gesetzt werden.

    Im Spiel sehen alle Varianten gleich aus:

Share

  • Previous entry Effekte (Feuer, Partikel, Licht, Blut usw.) erstellen LUA
  • Next entry Flare Timer - verbleibene Zeit anzeigen
  • Changelog
  • PDF

Table of Contents

  • 1 Variante zum Setzen in .OnControlPhase
  • 2 Variante etwas mehr aufgesplittet zum besseren Verständnis
  • 3 Variante ohne Setzen in .OnControlPhase

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