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 11-01-14, 14:06   #1
AkyV
Moderator
 
Join Date: Dec 2011
Location: Hungary
Posts: 2,376
Default TRNG - Hidden Triggers

The “Hidden triggers” tutorial is made for TRNG 1.2.2.6 originally and you can find that here::

Hidden Triggers

ADDENDUM FOR TRNG 1.2.2.6

Some information had been found for the original TRNG 1.2.2.6 contents after the final update of the tutorial.
The addendum contains only them.



Introduction

I-21. If the big number is too big for an executable combination


Addition to notes:
- I mentioned three formulas in this chapter to solve the problem if your number is too big even for PARAM_BIG_NUMBERS.
But if you want to force a color value (as I know it is possible only with “Unknown (Light_D) (Long)” field now – see Chapter 1.1.22.) then you can use another method:

Let’s suppose we have a ColorRGB= 110, 20, 100, 50 Script command. So it is this R/G/B value= 20/100/50. It is $14/$64/$32 in hexadecimal. Merging the numbers: $146432 - then turning that back into decimal: 1336370. This is the solution if you use F291 on that ColorRGB command.
So if you use F291 on that ColorRGB command, then the trigger will put 1336370 into Current Value – which is way bigger than 65535.

So the basic formula will be reformed this way:

Trigger1. Define X object as the subject of Item Memory Zone.
Trigger2: F291 will transform the RGB value of a ColorRGB command into a too big value of Current Value variable. This too big value is Y now.
Trigger3. (Put Y value into Z variable. - to remove) F272 will copy Y value of Current Value variable into Z variable.
Trigger4. Force Y value of Z variable into A field.

And, we are lucky, because we can use this color value-transforming method for forcing any too big value:
For example (see Chapter 1.1.11.) you want to force 100000 units as new horizontal X position for an enemy. You use your Windows calculator to turn this 100000 into hexadecimal: $186A0=$0186A0. Split it into three parts: $01/86/A0, then use your Windows calculator to turn it into decimal: 1/134/160.
So you will use a fake ColorRGB command. (“Fake” means you will never really use it as a color.) For example, ColorRGB= 111, 1, 134, 160 – and you will use that reformed formula to force that 1/134/160, i.e. 100000 into the given field.

1. Combinations in Item Memory Zone

1.1. General subject


1.1.6. The name of the field:
Flags of Item (Long)


Condition combination (3):
If (X) enemy is dead with (A) special death

Addition to 2 - simulating “helicopter explosion” by A82 to kill enemies or remove other Moveable objects.
16 – remove non-active “statue” enemies (dog with OCB 1, mummy with OCB 2, skeleton with OCB3) by explosive ammunition.
Addition to 34 – simulating “baboon has gone by a flash” by A82 to kill enemies or remove other Moveable objects.

Addition to notes:
- Don’t remove a non-creature Moveable object by A14/A82 if you don’t activate it before that. (Even if that object doesn’t have animations.) Or else there may be bugs: eg. the object collision will remain there after the disappearance.

1.21. Burning floor subject

1.21.2. The name of the field:
Custom_D (Different usage in according with type of item) (Short)


Executable combination (2):
Force (Y) special status on (X) burning floor

Addition to “single with 450”:
I wrote "still not burning", but possibly it is also true if the flames are just increasing, and not decreasing.

2. Combinations in Savegame Memory Zone

2.31. The name of the field:
Lara. Special Status of Lara (Byte)


Condition combination:
If Lara is performing (A) special action (2)

+16: Lara is performing an animation that she started in a crawlspace. (Thank A_De for the find!)

3. Combinations in Code Memory Zone

3.19. The name of the field:
Script Dat. Option Flags (Use bit operations to read or write) (Byte)


Executable combination:
Change game property to (Y)

Y:
+1: FlyCheat
+2: LoadSave
+4: Title
+8: PlayAnyLevel
+128: DemoDisk
Force: single.

If you want to know what Y values are, then see NG Center\Reference\Script old commands.

So these values are flags for old Script commands:
- If a command like that is present at [Options] in Script with ENABLED values (see eg. FlyCheat= ENABLED) then that command will have a value in this field.
- But if a command like that is not present in a level or is present but with DISABLED value (or is disabled with a semicolon) (see eg. LoadSave= DISABLED) that command won’t have a value in this field.

“+” sign means these values will be added to each other. So, for example, if only “FlyCheat=ENABLED” and “LoadSave=ENABLED” and “Title=ENABLED” have values in this field, then the value of the field is 1+2+4=7.
I.e. eg. now if you want to disable FlyCheat during the game, then force 6 (2+4) with this condition, removing 1.

Only FlyCheat and LoadSave status can be changed during the game, in this combination! (But instead, use F51, if you want to enable/disable the save/load function.)

Condition combination:
If game property is (A)

A: “equal” see the possible values above.
Type: simple.

Note:
Naturally you should use this condition only if you changed a flag by the executable combination, and if you want to know the change has happened yet or not. (So eg. if you want to know “if FlyCheat has been disabled or not”.)


ADDENDUM FOR TRNG 1.2.2.7

The addendum contains only the new TRNG 1.2.2.7 features because they are not mentioned in the original tutorial.


Only the chapters are mentioned that have some new information, compared to the original tutorial.

Introduction

I-12. What a condition combination should contain?


The Trigger#2 of the condition combination hasn’t worked for Inventory Memory Zone so far (F339), but it has been fixed in TRNG 1.2.2.7.

I-25. Block the effect of GlobalTriggers by disabling/enabling them

The FGT_DISABLED bug has been fixed in TRNG 1.2.2.7.

1. Combinations in Item Memory Zone

1.1.2. The name of the field:
Custom Flags (Different flags in according with object type) (Byte)


The field is renamed into:
"Object status. Five buttons + One Shot button (Byte)".

1.1.4. The name of the field:
Facing Rotation (Only for Lara) (Short)


The field is renamed into:
“Facing Rotation (Short)”.

1.1.19. The name of the field:
Unknown (Light_A) (Long)


The field is renamed into:
“Light on object. Red ambience (Long)”.

1.1.20. The name of the field:
Unknown (Light_B) (Long)


The field is renamed into:
“Light on object. Green ambience (Long)”.

1.1.21. The name of the field:
Unknown (Light_C) (Long)


The field is renamed into:
“Light on object. Blue ambience (Long)”.

1.1.22. The name of the field:
Unknown (Light_D) (Long)


The field is renamed into:
“Light on object. RedGreenBlue ambience (Long)”.

1.1.23. The name of the field:
Unknown (Light_E) (Long)


The field is renamed into:
“Light on object. Red ambience difference (Long)”.

1.1.24. The name of the field:
Unknown (Light_F) (Long)


The field is renamed into:
“Light on object. Green ambience difference (Long)”.

1.1.25. The name of the field:
Unknown (Light_G) (Long)


The field is renamed into:
“Light on object. Blue ambience difference (Long)”.

1.1.26. The name of the field:
Unknown (Light_H) (Long)


The field is renamed into:
“Light on object. Ambience changing degrees (Long)”.

1.1.27. The name of the field:
Unknown (Pheraps accelleration on falling) (Short)


The field is renamed into:
“State ID (at AI objects) (Short)”.

1.1.28. The name of the field:
Unknown Countdown (Some counter, not yet discovered) (Short)


The field is renamed into:
“Object timer (Short)”.

2. Combinations in Savegame Memory Zone

2.30. The name of the field:
Lara. Rope. Speed sliding on the rope (Short)


The field is renamed into:
"Lara. Horizontal position on the rope (Short)".

2.36. The name of the field:
Lara. Test. Lara is placing the weapon on the back (1 = yes) (Short)


The field is renamed into:
"Lara. Test. Lara is aiming at the enemy automatically (1 = yes) (Short)".

2.37. The name of the field:
Lara. Test. Throw out item from the Hands (1 = lara is throwing out item) (Short)


The field is renamed into:
"Lara. Torch status in Lara's hand (Short)".

2.45. The name of the field:
System. Disable special keys (15 disable inventory pause f5) (Short)


The field is renamed into:
"Lara. Time in death (Short)".

2.46. The name of the field:
System. Fog Bulb Color (Long)


The field is renamed into:
"System. Fog Color (Long)".

2.49. The name of the field:
System. Unknown (Item chosen from Inventory? (Long)


The field is renamed into:
"System. Inventory closed at item (Long)".

2.54. The name of the field:
TRNG Index. Index of last item to have enabled a trigger (Short)


Condition combination:
If (A) object enables this HEAVY trigger

A: “equal” object (Room Editor) ID
Type: simple.

Use only if this is a HEAVY F118 that contains the combination and the trigger that you want to execute with the HEAVY.

Notes:

- We need one more trigger between the executable and the condition triggers of the formula:
This field identifies a game object ID. F300, the new trigger will transform the game ID into the “normal” (Room Editor) object ID.
- This combination is a great tool if you want a HEAVY to be activated only if a given activator activates it!

2.55. The name of the field:
WeaponAnim. Current animation of torch-flare-weapon animation (Short)


Condition combination:
If Lara is just performing (A) absolute animation of an ANIM object slot

A: “equal” absolute animation ID
Type: simple.

Usually if we’re talking about an animation of Lara that is Lara or the vehicle animations (VEHICLE_EXTRA etc.) slots. But you need examine the present field if you want information about the actual torch, flare, weapon animation of Lara.

2.56. The name of the field:
WeaponAnim. Current frame of torch-flare-weapon animation (Short)


Condition combination:
If Lara is just performing (A) frame of an animation of an ANIM object slot

A: (not absolute!) frame ID in the actual animation of torch, flare or weapon ANIM slots of Lara
Type: simple.

3. Combinations in Code Memory Zone

3.7. The name of the field:
Earthquake vertical movement (negative values) (Long)


The field is renamed into:
"Earthquake intensity (Long)".

3.19. The name of the field:
Index of current vehicle or -1 if lara's not using a vehicle (Short)


Executable combination (1):
Move Lara off/out of any vehicle

Y: 1
Force: single.

Notes:

- You need more triggers in the combination:

= An F284 between the two original triggers of the formula to turn 1 into -1 in Current Value variable.
= Further triggers at the end of the combination:

a, First an F169 to force a “still” animation on Lara. (Eg. it is Animation103 if she stands.)
b, Then, if you don’t want Lara to be there next to that vehicle, an F79 to move Lara into a new position.

- This combination is useful, because:

= If Lara leaves a level on a vehicle but starts the next level standing on feet then usually you need to use ResetHUB. ResetHUB has several unwanted effects, but you get rid of them, if you use this combination instead of ResetHUB now. Lara object will activate the combination when the level starts. (But don’t forget: you need to place any vehicle anywhere in the new level to prevent the game from crashing.)
If you use that F79 then Lara will show up in the position of LARA_START_POS of F79 after the level jump, not in the position of Lara object.
= When she’s driving a vehicle then you start a cutscene/movie (still on/in the vehicle). When that ends then Lara won’t be on/in the vehicle any more.

- Important! If it is not a combination for a level jump, then don’t let the combination be activated under complicated circumstances. Eg. if Lara is driving the motorbike upwards on a slope then she is tilted backwards when the combination is being activated – so, after the activation she will still be tilted backwards, on feet.

Executable combination (2):
Put Lara on/in (Y) vehicle

Y: object (Room Editor) ID
Force: single.

Notes:

- I think it works only if Y is a jeep or a motorbike ID.
- You need more triggers in the combination:

= An F301 between the two original triggers of the formula to turn that Room Editor ID into game (“Tomb”) ID.
= Further triggers at the end of the combination:

a, First an F169 to force a “doesn’t move with the vehicle” absolute animation on Lara. (Eg. it is Animation18 of VEHICLE_EXTRA in the case of the motorbike.)
b, Then, an F79, that has its LARA_START_POS object on the same square where the vehicle is. (Without this trigger, the chase camera will go into the new position probably only if Lara starts moving with the vehicle.)
But if Lara has a bad facing after activating the combination, then you must rotate the LARA_START_POS.

- This combination is useful, because:

= If Lara leaves a level on feet but starts the new level on/in a vehicle. Lara object will activate the combination when the level starts. The vehicle must be on the same square where Lara object is. (Now you don’t need that F79 and the LARA_START_POS.)
= You start a cutscene/movie when Lara is on feet. When that ends then Lara will be on/in a vehicle.
= You start a cutscene/movie when Lara is on/in a vehicle. When that ends then Lara will be on/in another vehicle.
= (If I’m right and it works only with jeep/motorbike then usually you don’t need this combination if Lara leaves the level on/in motorbike/jeep and starts the next level on/in motorbike/jeep. Just place that vehicle in the new level anywhere. Use the combination only if you have both jeep/motorbike in the new level, and you experience the wrong vehicle of them with Lara just after the level jump. In that case the combination will place Lara on/in the proper vehicle.
If you use that F79 then Lara will show up in the position of LARA_START_POS of F79 after the level jump, not in the position of Lara object.)

- Important! If it is not a combination for a level jump, then don’t let the combination be activated under complicated circumstances. Eg. if Lara is jumping when activates the combination the she will in a strange position on the vehicle.

Condition combination (1):
If Lara is just driving/not driving a vehicle

A:
“smaller” 0: not driving
“bigger/equal” 0: driving
Type: simple.

Condition combination (2):
If Lara is just driving (A) vehicle

A: "equal" object (Room Editor) ID
Type: simple.

Note:
We need one more trigger between the executable and the condition triggers of the formula:
This field identifies a game object ID. F300, the new trigger will transform the game ID into the “normal” (Room Editor) object ID.

4. Combinations in Slot Memory Zone

4.1. The name of the field:
Explosion Mask. (Each bit a type of weapon able to do explode it (Long)


The field is renamed into:
“Shatterable meshes (Long)”

4.6. The name of the field:
Pointer for Collision Procedure (Long)


You don’t need this field any more, to solve the problem. – See this new TRNG 1.2.2.7. feature: FFS_PUSHABLE_CAN_OVERSTEP_IT.
(By the way it seems it was not a TRNG problem, it seems a problem since TR4.)

4.7. The name of the field:
Unknown1 (Pheraps distance to enable the MIP version) (Short)


The field is renamed into:
"Distance to enable the MIP version (Short)".

4.8. The name of the field:
Unknown2 (Usually it has value 50) (Short)


The field is renamed into:
"Distance to detect Lara (Short)".

6. Combinations in Inventory Memory Zone

Triggers for the condition combinations:


The basic formulas:

a, the version if you don’t use big numbers:

Trigger1. An F335 to define the actual subject of Inventory Memory Zone.
Trigger2. An F339 to put the value of the chosen memory zone field into the chosen variable.
Trigger3. A C43 trigger to study the chosen variable value if that is equal with a chosen number (A) between 0 and 31.

b, the version if you use big numbers:

Trigger1. An F335 to define the actual subject of Inventory Memory Zone.
Trigger2. An F339 to put the value of the chosen memory zone field into the chosen variable.
Trigger3. A C40 trigger to study the chosen variable value if that is equal with a chosen number (A) between 0 and 65535.

Changing the basic formula:

a, For smaller/bigger condition relations (if I say that or - if you’re studying a sequence – any time):
- if you don’t use big numbers:

= replace C43 trigger by C42 trigger to study the chosen variable value if that is smaller than a chosen number between 0 and 31, or
= replace C43 trigger by C41 trigger to study the chosen variable value if that is bigger than/equal with a chosen number between 0 and 31..

- if you use big numbers:

= replace C40 trigger by C39 trigger to study the chosen variable value if that is smaller than a chosen number between 0 and 65535, or
= replace C40 trigger by C38 trigger to study the chosen variable value if that is bigger than/equal with a chosen number between 0 and 65535.

b, If you’re studying a sequence, and the condition need a tolerance: see Chapter I-18.
c, If the subject may have negative value in the examined property: see Chapter I-19. (I will always tell when it is needed.)
d, If the number you want to study is above 65535: see Chapter I-22.
e, If you want to accomplish something special with the formula: see Chapter 8.

Note:
I don’t want to detail the condition combinations, because I think Inventory Memory Zone condition combinations usually make no sense.

6.5. The name of the field:
View Flags. (2 = turn endless, $4000 = usable?) (Short)


The field is renamed into:
„View Flags. (2 = turn endless) (Short)”.

Last edited by AkyV; 28-02-16 at 14:20.
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:50.


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