Magnesiumfackeln - Menge beim Aufheben anpassen
Um Magnesiumfackeln (Leuchtfackeln) im Level zu platzieren, setzen wir standardmäßig das FLARE_INV_ITEM auf ein Square zum Einsammeln für den Spieler.

FLARE_INV_ITEM
Diese Menge, die immer aus 12 Fackeln pro Aufheben besteht, kann man nicht so einfach ohne Variabeln verändern. Es gibt aber einen Workaround, der dies möglich macht. Die einzelne Fackel ist im FLARE_ITEM Slot. Dies platzieren wir allerdings nicht im Editor, aber wir können damit arbeiten, um die Anzahl anzupassen.

FLARE_ITEM
1. (Optional)
Zunächst können wir die Menge beim Starten mit folgendem Script Befehl auf "0" setzen.
Equipment=FLARE_ITEM, 0
2.
Dann benutzen wir ein Fake Objekt, welches Lara aufheben kann. Dieses kann z.B. ein "PICKUP_ITEM1" sein. In dieses setzen wir zusätzlich die Fackel Box. Wir können das "FLARE_INV_ITEM" dazu einfach umbennen in "PICKUP_ITEM1". Aber Aufgepasst! Wir brauchen danach trotzdem noch das Original FLARE_INV_ITEM im Wad. Dieses kann man ja dann einfach noch mal reinkopieren. Alternativ kann man auch einfach die Meshes austauschen mit STRPIX.
Wir haben also nun 2 Objekte im Wad.
1. Das Original "FLARE_INV_ITEM"
2. Ein "PICKUP_ITEM1", welches das Aussehen der Fackelbox hat. Dieses setzen wir später in den Editor zum Aufsammeln für den Spieler.
3.
Für das PICKUP_ITEM1 kann man nun einen Script Eintrag setzen, damit es beim Aufheben kurz die richtige Position hat. (Wenn es kurz am Bildschirm links reinschwenkt und wieder nach rechts verschwindet.) Sonst hat der Eintrag allerdings keine Funktion, auch der Name nicht, da dieser nicht erscheinen wird. (siehe Aufbau unten)
z.B.
Pickup= 1,Flare Box, $0017,$0500,$0000,$0000,$0000,$0002
Anmerkung:
Die Zahlen hier haben bei mir gut funktioniert, so dass die Box aufrecht kurz im Bildschirm erscheint. Der Name "Flare Box" muss zusätzlich in der Englisch.txt eingetragen werden.
4.
Nun setzen wir einen Global Trigger, der eine "ConditionGroup" beinhaltet. Kurz ausgedrückt, wir sagen, immer wenn wenigstens 1 "Pickup_Item1" im Inventar ist, erhöhe die Anzahl der Fackeln (FLARE_ITEM) jeweils um 1. Das ist leider die unschöne Sache, hier kann man jeweils nur um 1 erhöhen. Man muss also in die Triggergroup diesen Trigger so oft hintereinander setzen, wie man Fackeln beim Aufheben haben möchte. Bsp. 5 Fackeln gleich 5 mal.
5. Da wir das Pickup_ITEM1 ja eigentlich nur als Fake brauchen, lassen wir es direkt wieder beim Aufheben aus dem Inventar verschwinden. Die Anzahl der Fackeln erscheint automatisch von der Engine im "FLARE_INV_ITEM" Objekt.
Im Praktischen sieht das ganze so aus:
Equipment=FLARE_ITEM, 0
Pickup= 1,Flare Box, $0017,$0500,$0000,$0000,$0000,$0002
GlobalTrigger= 1, IGNORE,GT_CONDITION_GROUP, IGNORE, 1, 2, IGNORE
TriggerGroup= 1, $8000,231,$0103 ; Condition: There are at least 1 PICKUP_ITEM1 in the Inventory
; ConditionNg for ParameterNg
; <#> PICKUP_ITEM1 Slot=231
; <&> Inventory. There are at least (E) of <#>inventory_item in inventory (C3)
; <E> 1
; Copy following values to your script:
; $8000,231,$0103
TriggerGroup=2, $2000,47,$0038,> ; Remove Inventory Item PICKUP_ITEM1
$2000,48,$0071, > ; ADD 1 Flare ITEM
$2000,48,$0071, > ; ADD 1 Flare ITEM
$2000,48,$0071, > ; ADD 1 Flare ITEM
$2000,48,$0071, > ; ADD 1 Flare ITEM
$2000,48,$0071 ; ADD 1 Flare ITEM
;
Flares in Total : 5 per PICKUP
; Trigger for FlipEffect
; <#> Inventory-Item. Remove <&>inventory-item from inventory (F47)
; <&> PICKUP_ITEM1 Slot=231
; Copy following values to your script:
; $2000,47,$0038
; Trigger for FlipEffect
; <#> Inventory-Item. Increase (+1) in (E)way the number of <&>inventory-item in inventory (F48)
; <&> FLARE_ITEM Slot=372
; <E> Hidden way (change number of items with no visible effect)
; Copy following values to your script:
; $2000,48,$0071
Display More
Anmerkung:
Für kleinere Mengen ist dieser Workaround sicherlich gut geeignet, vor allem wenn man die Anzahl der Fackeln reduzieren möchte. Für größere Mengen über 20 z.B. ist es natürlich sehr umständlich, da man 20 mal den Script Befehl in die TriggerGroup setzen müsste. Aber zumindest funktioniert das ganze ohne Variabeln und komplizierten mehreren GlobalTriggern.
Comments 1