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 Text am Bildschirm anzeigen - LUA

  • Jörg
  • September 6, 2022 at 9:24 AM
  • October 3, 2024 at 10:07 PM
  • 5,162 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.

  • Text am Bildschirm einblenden

    Hier zeige ich euch mal einige Möglichkeiten auf, wie wir Text durch LUA Code mit Funktionen im Spiel einblenden.

    1 Text beim Starten des Levels anzeigen

    Text beim Starten des Levels anzeigen

    Einblenden eines kurzes Textes beim Starten des Levels wie z.B. in dem "Tutorial" oder "Angkor Wat" Level.

    Code
    LevelFuncs.OnStart = function() 
    ShowLegend()
    end
    
    function ShowLegend ()
             local Legend1 = "The Year 2022, Somewhere in Rome"
             local text = DisplayString(Legend1, 500,1000, Color.new(255,255,255))
             ShowString(text, 10)
    end

    Wir erstellen eine normale Funktion mit dem Namen "ShowLegend".

    Dann geben wir zwei lokalen Variabeln Namen, hier im Beispiel "Legend1" und "text".

    - In die Variable "Legend1" setzen wir den Text "The year 2022, Somewhere in Rome".

    - In der Variable "text", legen wir fest, dass wir die Variable "Legend1" unten in der Mitte mit der Farbe Weiß (255,255,255) anzeigen lassen möchten.

    - Mit ShowString lassen wir die Variable "text" 10 Sekunden anzeigen.

    Zusätzlich setzen wir die Funktion oben in ".OnStart", damit der Text gleich beim Starten angezeigt wird.

    ShowLegend()

    2 Text während des Spiels anzeigen

    Text während des Spiels anzeigen

    Eine kurze Textnachricht während dem Spiel anzeigen lassen.

    Code
    LevelFuncs.PrintText = function ()
        local text = "Hurry up. Time is running out!" 
        local string = DisplayString(text, 500, 500, Color.new(255,255,0))
        ShowString(string, 5)
        
    end

    Wir erstellen eine "LevelFuncs." Funktion, die wir später mit einem Volume Trigger auslösen können.

    Dann geben wir zwei lokalen Variabeln Namen, hier im Beispiel "text" und "string".

    - In die Variable "text" setzen wir den Text "Hurry up. Time is running out!".

    - In der Variable "string", legen wir fest, dass wir die Variable "text" in der Mitte mit der Farbe Gelb (255,255,0) anzeigen lassen möchten.

    - Mit ShowString lassen wir die Variable "string" 5 Sekunden anzeigen.

    Dann lassen wir die Funktion "LevelFuncs.PrintText" durch einen Volume Trigger im Spiel auslösen:

    3 Text während des Spiels anzeigen mit Argument im Volume Trigger

    Text während des Spiels anzeigen mit Argument im Volume Trigger

    Hier zeige ich noch eine Möglichkeit, wie ihr individuellen Text in jedem Volume Trigger neu setzen könnt.

    Beispiel:

    Manchmal hat man einen Standardtext, an den man immer neue Wörter oder Text setzen möchte. z.B.

    "Congratulations! You have found..."

    Und an diesen Text fügen wir im Volume Trigger neue Wörter hinzu, wenn wir ihn auslösen.

    Code
    LevelFuncs.PrintTextwithArgument = function (triggerer, arg)
               local text = "Congratulations! You have reached the " .. arg
               local string = DisplayString(text, 100, 200, Color.new(255,255,255))
               ShowString(string, 5)
    end

    Wir erstellen eine "LevelFuncs." Funktion, die wir später mit einem Volume Trigger auslösen können.

    In die Klammer nach "function" setzen wir zwei Argumente:

    triggerer - ist ein Verweis auf das Moveable, welches den Trigger auslöst.

    arg - ist der Text, den wir im Feld "Argument" im Volume Trigger setzen.

    Anmerkung:

    Obwohl wir für dieses Beispiel das Argument "triggerer" nicht benötigen, müssen wir es trotzdem definieren und "arg" muss unbedingt als zweites Argument in der Klammer stehen.

    Dann geben wir zwei lokalen Variabeln Namen, hier im Beispiel "text" und "string".

    - In die Variable "text" setzen wir den Text "Congratulations! You have reached ". Dahinter setzen wir durch zwei Punkte den Platzhalter "arg".

    - In der Variable "string", legen wir fest, dass wir die Variable "text" in der Mitte mit der Farbe weiß (255,255,255) anzeigen lassen möchten.

    - Mit ShowString lassen wir die Variable "string" 5 Sekunden anzeigen.

    Setzen wir nun einen Volume Trigger mit dieser Funktion und schreiben im Feld "Argument" ein Wort oder Text, wird dieses an den vorher definierten Text in der Funktion anhängt.

    Bsp.

    "Congratulations! You have reached the secret area."

    Anmerkung:

    Wir können entweder nach dem Text in der Funktion ein Leerzeichen setzen, oder im Feld Argument als erstes. Dadurch klebt der Text, welcher im Feld Argument steht, nicht mit dem aus der Funktion zusammen.

    Erstellt ihr nun ein neues Event Set und löst diese Funktion mit einem neuen Volume Trigger aus, könnt ihr nun in dem Feld "Argument" einen neuen Text anschließen.

    4 Laras aktuelle Gesundheit in einem Text anzeigen

    Laras aktuelle Gesundheit in einem Text anzeigen

    Hier zeige ich euch am Beispiel von Laras Gesundheit, wie ihr Werte aus dem Spiel in einen String setzt und diesen in einem Text anzeigt. (Original Script von Kubsy)

    Code
    LevelFuncs.OnControlPhase = function()
    Larahealth ()
    end
    
    function Larahealth()
             LaraHP = Lara:GetHP()
             LaraHPToShow = "Lara's health is: " .. tostring(LaraHP)
             ShowLaraHP = DisplayString(LaraHPToShow, 500, 500, Color(255,0,0))
             ShowString(ShowLaraHP)
    end

    Wir erstellen eine normale Funktion mit dem Namen "Larahealth".

    Dann geben wir drei lokalen Variabeln Namen, hier im Beispiel "LaraHP", "LaraHPtoShow" und "ShowLaraHP".

    - In die Variable "LaraHP" setzen wir die aktuelle Gesundheit von Lara.

    - In die Variable "LaraHPToShow" setzen wir den Text "Lara's health is: " zusammen mi der Variable "LaraHP.

    - Durch ".. to string()" setzen wir Laras Gesundheit in einen String, den wir anzeigen lassen können.

    - In der Variable "ShowLaraHP" setzen wir fest, dass wir die Variable "LaraHPtoShow" in der MItte mit der Farbe Rot (255,0,0) anzeigen lassen möchten.

    - Mit "ShowString" lassen wir die Variable "ShowLaraHP" mit den genannten Eigenschaften anzeigen.

    Zusätzlich setzen wir die Funktion oben in ".OnControlPhase", damit Laras Gesundheitsanzeige ständig akualisiert wird, wenn sie z.B. bei einem Kampf immer mehr Gesundheit verliert.

    Larahealth ()

    5 Text genau prozentual positionieren und mit Hintergrundschatten versehen

    Seit Version 1.0.2 funktionieren nun endlich auch die Anzeige Optionen "DisplayStringOption.CENTER" für mittig setzen und "DisplayStringOption.SHADOW" für einen Hintergrundschatten. Zusätzlich kann man mit "PercentToScreen(x, y)", den Text genau prozentual positionieren, egal welche Bildschirmgröße der Spieler benutzt.

    Code
    LevelFuncs.DisplayString = function ()
               
               local halfwayX, halfwayY = PercentToScreen(50, 50)
               
               TextToShow = "This is the first Text in the middle of the screen!"
               ShowText = DisplayString(TextToShow, halfwayX, halfwayY, Color(255,255,0), false, {DisplayStringOption.SHADOW,  DisplayStringOption.CENTER})
               ShowString(ShowText)
    end


    6 Text mit Umbrüchen versehen

    Wenn der Text Umbrüche erhalten soll, können wir an der Stelle wo ein Umbruch im Text erscheinen soll einfach ein "\n" einfügen.

    Zum Beispiel so (Zwei Umbrüche):

    Code
    npcText = "Good Morning... How are u?\nI'm just waiting for the doors to the market\nto open so I can open my market stall."
    DisplayString(npcText, 100, 200, Color.new(255,255,255))
    ShowString(npcTextString)


    Generelle Anmerkungen:

    - Bei Text mit deutschen Umlauten wie "ö", "ä", "ü" vorsichtig sein, bei mir ist das Spiel abgestürzt. Besser hier dann die Varianten "oe", "ae" und "ue" nehmen.

    - Text wird immer vom letzten Wort von "rechts" nach "links" horizontal positioniert. Deswegen ist der nummerische Zahlenwert 500 für die Mitte des Bildschirmes nicht immer genau.

    • Text
    • Strings
    • Legend

Share

  • Previous entry Tasten simulieren, deaktivieren oder abfragen - LUA
  • Next entry Timer und EventSequence
  • Changelog
  • PDF

Table of Contents

  • 1 Text beim Starten des Levels anzeigen
  • 2 Text während des Spiels anzeigen
  • 3 Text während des Spiels anzeigen mit Argument im Volume Trigger
  • 4 Laras aktuelle Gesundheit in einem Text anzeigen
  • 5 Text genau prozentual positionieren und mit Hintergrundschatten versehen
  • 6 Text mit Umbrüchen versehen

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