Timer TRNG mit Variabeln
Im Tutorial Timer TRNG ohne Variablen sind zwei Möglichkeiten aufgeführt, wie man in der TRNG Engine einen Timer ohne Variablen starten kann. In diesem Tutorial geht es nun um einen Timer mit Verwendung von Variablen.
Zum Glück hat Paolone extra 2 Variablen reserviert, die wir für Timer Zwecke nutzen können:
Local Long Timer
Global Long Timer
Wann wir welche am besten verwenden ist leicht erklärt:
Die Variable "Local Long Timer" benutzen wir, wenn der Timer nur im aktuellen Level laufen soll.
Die Variable "Global Long Timer" benutzen wir, wenn der Timer über mehrere Level hinweg laufen soll.
1 Aufbau
Um den Timer zu starten, bzw. sichtbar zu machen, haben wir mehrere TRNG Flipeffekte zur Verfügung:
F264: Variables. Timer. Start the <&>TRNG Timer in (E)Mode
F265: Variables. Timer. Stop the <&>TRNG Timer
F266: Variables. Timer. Initialize <&>TRNG Timer to (E)Seconds
F267: Variables. Timer. Initialize <&>TRNG Timer to (E)Big Number seconds
F268: Variables. Timer. Initialize <&>TRNG Timer to (E)Frame Ticks (1/30 of second)
F269: Variables. Timer. Show <&>TRNG Timer in (E)Position
F270: Variables. Timer. Hide <&>TRNG Timer in (E)Seconds
Bei allen Flipeffekten müssen wir jeweils unter <&> TRNG Timer einstellen ob wir die Local Timer Variable verwenden möchten oder die Global Timer Variable.
Flipeffekt 264
Mit dem F264 legen wir fest, in welchem Modus wir den Timer starten möchten. Wir haben aufsteigend (Increasing Timer) und absteigend (Countdown) zur Verfügung.
Flipeffekt 265
Mit dem F265 können wir den TRNG Timer stoppen.
Flipeffekt 266, Flipeffekt 267 und Flipeffekt 268
- Mit dem F266 können wir die Dauer der Sekunden festlegen, die der Timer laufen soll. (absteigend oder aufsteigend). Es gehen bis zu 127 Sekunden.
- Möchten wir mehr als 127 Sekunden verwenden, nutzen wir den F267. Hier können wir mit dem Script Befehl "Parameters=PARAM_BIG_NUMBERS" einen Wert in Sekunden vergeben, die dann dieser Flipeffekt nutzt. Bsp. 1 Minute = 60 Sekunden.
Bsp.
Parameters=PARAM_BIG_NUMBERS, 180
Hier legen wir fest, dass der Flipeffekt die Zahl aus dem Index 0 bei dem Parameters=BIG_NUMBERS Script Befehl nehmen soll. In unserem Beispiel ist das 180 also 3 Minuten. Der "PARAM_BIG_NUMBERS" Befehl ist einfach eine Möglichzeit, Werte mit aufsteigendem Index anzulegen, die wir durch Flipeffekte abrufen können, wobei die erste Zahl den Index 0 hat und nicht "1".
Bei
Parameters=PARAM_BIG_NUMBERS, 240, 300, 180
würden wir also
index=2 nehmen wenn wir den Timer mit 3 Minuten festlegen wollen.
Mit dem F268 können wir die Zeit noch genauer in Tick Frames festlegen. Hier gilt
Frame Tick = X Sekunde(n) * 30
1/2 Sekunde = 15 tick frames
usw,
Flipeffekt 269
Mit dem F269 können wir die Position bestimmen, wo der Timer erscheinen soll.
Flipeffekt 270
Mit dem F 270 können wir den Timer in X Sekunden wieder verschwinden lassen. Sofort wäre 0.
Anmerkung:
Natürlich kann man diese ganzen Flipeffekte auch in TriggerGroups setzen, um diese dann in Global Trigger usw. zu verwenden.
2 Anzeige der TRNG Timer Variablen mit anderer Farbe, Größe, usw anzeigen lassen
Leider gibt es bei den oben genannten Flipeffekten nur den F269, bei dem wir die Position des Timers angeben können. Farbe, Größe usw. können wir leider nicht festlegen. Hier hilft auch nicht der "TextFormat=" oder der "CUSTOMIZE=CUST_SET_TEXT_COLOR" Script Befehl. Der Timer bleibt immer in der Farbe weiß.
Es gibt allerdings eine Möglichkeit, dies doch noch zu realisieren:
Wir setzen die Timer Variable in einen [EXTRANG] String in der English.txt und lassen diesen dann entweder durch einen
"Text. Print ExtraNG <&>string on screen for (E) seconds (F64)" Flipeffekt oder durch einen
"Text. Print formatted text <&>ExtaNg string with (E)formatting data (F203)" mit einer Zuweisung im "Parameters=PARAM_PRINT_TEXT" Script Befehl anzeigen.
Anmerkung:
Verwenden wir einen GT_Flag bei einem GlobalTrigger, um mit dem Timer etwas auszulösen, setzen wir die Dauer der Textanzeige des Timers für "immer", und lassen diesen später durch einen anderen Flipeffekt verschwinden. (Erklärung folgt bei weiter unter bei "Mit einer TRNG Timer Variable etwas auslösen")
Flipeffekt 64
; Trigger for FlipEffect
; <#> Text. Print ExtraNG <&>string on screen for (E) seconds (F64)
; <&> 0
; <E> Forever (use other action/effect to disable it)
; Copy following values to your script:
; $2000,64,$0000
Flipeffekt 203
; Trigger for FlipEffect
; <#> Text. Print formatted text <&>ExtaNg string with (E)formatting data (F203)
; <&> 0
; <E> Parameters=PARAM_PRINT_TEXT,1
; Copy following values to your script:
; $2000,203,$0100
Parameters=PARAM_PRINT_TEXT, 1,CL_RED,FT_CENTER_CENTER+FT_SIZE_MICRO_CHAR,IGNORE,-1,IGNORE,IGNORE
Durch die "-1" bei Durate Time, bleibt der Text für immer.
Alles anzeigen
Um die zwei Variablen Local Long Timer oder Global Long Timer in die [EXTRANG] setzen zu können brauchen wir dafür einen Platzhalter, diesen erfahren wir in der Variable Placeholder Liste des TombIde oder des NG Centers.
Für
"Local Long Timer" setzen wir #0073
"Global Long Timer "setzen wir #0033
Der Vorteil ist sogar, dass wir vor dem Platzhalter einen Text setzen können, der dann auch angzeigt wird also z.b.
also z.B. "Timer: #0073" für Local Long Timer oder "Timer: #0033" für Global Long Timer.
Hier wurde der Local Long Timer in den String 0 und der Global Long Timer in den String 1 gesetzt.
3 Mit einer TRNG Timer Variable etwas auslösen
Um mit einem TRNG Timer etwas auszulösen können wir mit den "Variables. ..." Flipeffekten arbeiten und Bedingungen festlegen, dass etwas geschehen soll, wenn ein bestimmter Wert erreicht ist. Dies werde ich in einem anderen Tutorial noch mal erklären, da dies für Fortgeschrittene ist.
Für Anfänger, die sich noch nicht so mit Variablen beschäftigt haben, gibt es einen einfachen "GT_ Flag" bei einem Global Trigger, um etwas auszulösen, wenn der Timer einen bestimmten Wert erreicht hat. Ausserdem können wir in dem Global Trigger noch festlegen, dass der Timer den wir mit einem "Text" Flipeffekt auf den Bildschirm gebracht haben wieder verschwinden soll, wenn ein bestimmter Wert erreicht ist.
Der "GT_ Flag" für die beiden Timer Variablen Arbeiten lautet wie folgt:
GT_TRNG_L_TIMGER_EQUALS
Hier können wir festlegen was passieren, soll wenn die Local Long Timer Variable einen bestimmten Wert erreicht hat.
GT_TRNG_G_TIMER_EQUALS
Hier können wir festlegen, was passieren, soll wenn die Global Long Timer Variable einen bestimmten Wert erreicht hat.
3.1 Aufbau
Wir setzen zunächst einen Global Timer und die Zuweisung einer TriggerGroup, hier am Bsp. für den Local Long Timer:
GlobalTrigger=IdGlobalTrigger, IGNORE, GT_L_TIMER_EQUALS, Parameter, IdConditionTriggerGroup, IdPerformTriggerGroup, IdOnFalseTriggerGroup
Es ist nicht notwendig oder ratsam, unter FGT_...ein FGT_SINGLE_SHOT oder FGT_SINGLE_SHOT_RESUMED zu setzen, da der Global Trigger ja eh nur Anwendung findet, wenn der Timer einen bestimmten Wert erreicht hat. Also setzen wir hier ein IGNORE.
Unter Parameter setzen wir die Zeit, wobei hier Tick Frames Anwendung finden. 1 Sekunde sind 30 Tick Frames. 40 Sekunden wären also "1200", da 40 Sekunden x 30 Tick Frames = 1200 sind.
Ein praktisches Beispiel könnte wie folgt aussehen:
GlobalTrigger= 1, IGNORE,GT_TRNG_L_TIMER_EQUALS,0,IGNORE,1,IGNORE
TriggerGroup= 1, $5000,6,$001A,$2000,204,$0000
; Trigger for ActionNg
; <#> (322) DOOR_TYPE1, Room = Room 0 (copy 2), X = 3, Z = 8, Ocb = 0, Script ID = 6
; <&> Trigger. (Door) (E)Open/Close <#>door (A26)
; <E> Close the door
; Copy following values to your script:
; $5000,6,$001A
; Trigger for FlipEffect
; <#> Text. Print. Remove (&)Extra NG String from screen (F204)
; <&> 0
; Copy following values to your script:
; $2000,204,$0000
Alles anzeigen
Hier schließt sich die Tür mit der ID 6, wenn der Timer 0 Sekunden erreicht hat. Zusätzlich verschwindet dann die Timer Anzeige die wir in den [EXTRANG] String0 gesetzt haben.
Beispiele:
Timer mit Flipeffekt 64 und "TextFormat= CL_GOLD,FT_SIZE_ATOMIC_CHAR+FT_CENTER_CENTER, IGNORE,IGNORE" Script Befehl
Timer mit Flipeffekt 203 und "Parameters=PARAM_PRINT_TEXT, 1,CL_RED,FT_CENTER_CENTER+FT_SIZE_MICRO_CHAR,IGNORE,-1,IGNORE,IGNORE" Script Befehl