www.tombraiderforums.com

Go Back   www.tombraiderforums.com > Tomb Raider Modding > Tomb Raider Level Editor > Tomb Raider Level Editor Tutorials

Closed Thread
 
Thread Tools
Old 16-08-14, 11:05   #1
AkyV
Moderator
 
Join Date: Dec 2011
Location: Hungary
Posts: 2,376
Default TRNG Simulating new trigger structures in the map

If you can’t adjust a given trigger structure, placed in the map, then you can try to achieve that with some tricks.
All you have to do is use CONDITION triggers in the proper way. – Here are some examples, how:

a, You have a PAD+TRIGGER overlap, so PAD mode will be adopted for the TRIGGER. (So TRIGGER will also be activated only if Lara touches the floor.) But if you want the TRIGGER to work like a TRIGGER, then the PAD trigger must not really be a PAD, but that will be another TRIGGER, only simulating PAD:
So the PAD will be a TRIGGER F118, overlapped with the other TRIGGER. The TriggerGroup of that F118 has a C25 (“Lara. (Status) Current <#>Lara status is (E)enabled/disabled”) trigger exported - having PAD value in its Object window -, plus, typing after C25, the exported version of the original executable trigger of the original PAD.
The exported executable trigger in that TriggerGroup will be activated only if Lara touches the floor, but the other TRIGGER of the same square will be activated if Lara is anywhere between the floor and the ceiling.

b, TRIGGER will work in the whole trigger zone (from floor to ceiling), PAD will work only if Lara touches the trigger square. – But there is no case for their “negative” combination: “if Lara is in the trigger zone, BUT over the trigger square, not touching it”.
The solution: you type a TriggerGroup in the Script, exporting two triggers into it: the original executable trigger, plus a C25 with PAD value (typing it before the executable trigger). But this time you use C25 in “false” mode or you attach a TGROUP_NOT flag to it.
You will activate the TriggerGroup with a local F118 where you originally wanted to activate the original executable trigger.

Note:
You can try to achieve something similar with “vertical” condition triggers.

c, You need an ANTIPAD+CONDITION situation (so Lara will deactivate an object, touching the floor, if the condition is true), which is impossible, because you can’t overlap special triggers.
To solve the problem, first of all, place a TRIGGER A44 trigger instead of that ANTIPAD OBJECT trigger.
Then, type a TriggerGroup Script command, to define two conditions, using two exported CONDITION triggers in the TriggerGroup: one of the CONDITIONs is your “real” condition, the other one is a C25, with PAD value in its Object window.
The third (local) CONDITION trigger overlapped with the TRIGGER A44 now is a C15 that will use that TriggerGroup.

Or:
The only trigger you place in the map is a PAD F118. Its TriggerGroup contains two exported triggers: the first one is the exported version of the original CONDITION, and, after that, the A44.

Note:
One more thing about special PAD cases: see “Fragmented” CONDITION triggers, where you can choose PAD mode (if not using them with platforms).

d, You need a HEAVY+CONDITION situation (so a non-Lara trigger activator will activate something if the condition is true), which is impossible, because you can’t overlap special triggers.
The solution: only one trigger, a HEAVY is placed now. The HEAVY will activate an F118 trigger. The TriggerGroup of that F118 contains the exported version of the CONDITION, and, typing after that, the exported version of the executable trigger.

e, Simulating a “HEAVYPAD” (eg. “if the enemy touches the floor”) is possible, if you use a C92 condition in a GlobalTrigger. – But don’t use it with local triggers.

Note:
In or out of cutscenes, C89 will do the same for the leading actor, if you adjust the given distance to 0 in the trigger.

f, You can try to simulate a “COMBAT only for pistols” case in two ways, when using TRIGGER instead of COMBAT, plus a CONDITION overlapped with the TRIGGER:

- Use a MultEnvCondition Script command to define an ENV_HOLD_EXTRA_ITEM_IN_HANDS condition, with HOLD_PISTOLS constant.
The local CONDITION trigger overlapped with the TRIGGER now is a C16 that will use that MultEnvCondition (in “and” mode).
- Use a C35 (“Lara. (Holds) Lara is holding/driving the <#>item”) condition for the local CONDITION trigger, with “Holding_Pistols” in its Object window.

g, MONKEY TRLE triggers has been removed from TRNG, but you can use CONDITION+TRIGGER trigger overlaps instead of them, when the CONDITION trigger is a C5 (“Lara. (Status) Lara is performing <#>action is (E)”), with MONKEY value in its Object window, in TRUE mode.

h, What if you want to use a HEAVY for a non-Lara activator and a TRIGGER for Lara activator on the same square, without using a flipmap?
Well, it is possible, but a bit complicated.
First of all, you need a global trigger (or maybe a “continuous” F118), that activates an F101: “AnimCommand. Active heavy triggers in sector where is Lara”. (Yes, it is useful, even if you don’t use it in an AnimCommand.) While the GlobalTrigger is true/enabled (or till you stop the continuous activation of F118 with an F192), Lara will be able to activate any HEAVY triggers.

Let’s say, there are two objects in an area that are able to activate HEAVY triggers: a rollingball and (thanks to F101) Lara.
This time, there is no HEAVY+TRIGGER placed on the same square, this time there is only a HEAVY is placed there.
This HEAVY is an F118 to activate a TriggerGroup (recommended with “multiple” value), with these triggers in the TriggerGroup:

Trigger1: an F244 to put the actual value of “TRNG Index. Index of last item to have enabled a trigger (Short)” Savegame Memory Zone field into Current Value variable. - This value will be the tomb (game) index of the rollingball or Lara.
Trigger2: an F300 will transform the tomb (game) index in Current Value into the usual NGLE (Room Editor) object index you can see in the map.
Trigger3: a C40 will compare a PARAM_BIG_NUMBERS value (which must be the NGLE index of the rollingball) to the actual value of Current Value.
Trigger4: the required trigger you want to execute if the rollingball activates that HEAVY F118.
Trigger5 (with TGROUP_ELSE flag): the required trigger you want to execute if Lara activates that HEAVY F118.

i, Etc.


Made using TRNG 1.2.2.7.

Last edited by AkyV; 16-08-14 at 11:27.
AkyV is offline  
Closed Thread

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 17:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.