Hidden Triggers in TRNG
by
AkyV
Page 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
1.2. Enemy jeep subject
1.2.1. The name of the field:
Custom_A (Different usage in according with type of item)
(Short)
Executable combination:
Adjust (X) enemy jeep speed
(approximately) to (Y) units/second
Y: 1 or bigger units/second values
Force: continuous. When stopping
it: the default speed will be restored.
Notes:
- The bigger the difference between the default and the customized speed is the more likely the route won't be nice.
- The forced speed naturally
doesn't have any effect (and is not disturbing) if the jeep is just
parked at an AI_FOLLOW.
Condition combination:
If (X) enemy jeep is just (A)
moving/not moving between two AI_FOLLOW's
A:
'equal'
0: just parked at an AI_FOLLOW
0, with TGROUP_NOT flag in the condition trigger: just moving between two AI_FOLLOW's
Type: simple.
1.2.2. The name of the field:
Custom_C (Different usage in according with type of item) (Short)
Executable combination (1):
Shoot the next grenade from (X)
enemy jeep in (Y) frames
Y: 1 or bigger frames
Force: single.
Notes:
- The default value is 5 seconds between two grenades.
- The combination will work only for the next shot that is just coming. So the shots after this next shot will come according to the default value.
- A grenade will be shot out of the jeep everyway:
= if the jeep has just arrived to an AI_FOLLOW, knowing about Lara or
= if the jeep is at AI_FOLLOW,
not knowing about Lara so far but now it notices her.
So this combination is useful
only if the jeep is already at the AI_FOLLOW, knowing about Lara.
Executable combination (2):
Adjust the time between two
grenade shots to (Y) frames at (X) enemy jeep
Y: from 1 to 148 frames
Force: single, everyway with a
GlobalTrigger.
The condition TriggerGroup of the
GlobalTrigger must be this:
Trigger1. An A54 to define the same subject of Item Memory Zone.
Trigger2. An F256 to put the value of the same memory zone field into the same variable.
Trigger3. A C40 trigger to study
the variable value if that is equal with 149.
Executable combination (3):
Disable (X) enemy jeep to shoot
grenades
Y: 1 or bigger frames
Force: continuous. When stopping
it:
- The jeep starts shooting grenades again in Y frames.
- If the jeep is just between two
AI_FOLLOW's in Y frames, then it starts shooting again only when
arriving at the next AI_FOLLOW.
Condition combination:
If (X) enemy jeep has shot the
latest grenade (B ) frames ago
B: 149 minus A frames
A: from 1 to 148
Type: sequence.
Notes:
- Now the relations will be inverted, if you use them: 'less than A' means 'more than B', 'more than/equal with A' means 'less than/equal with B'.
- You can use the combination in
an 'If (X) enemy jeep shots the next grenade in (A) frames' way, if
you want.
1.2.3. The name of the field:
Custom_D (Different usage in according with type of item) (Short)
Condition combination:
If (X) enemy jeep is just at/is
just heading for (A) AI_FOLLOW
A: ID of AI_FOLLOW (typed in the OCB window of AI_FOLLOW)
Type: simple, but you can use
either 'equal' or 'smaller' or 'bigger/equal' conditions.
Notes:
- Maybe it's hard to find out the
exact meanings of the smaller/bigger conditions now, so I'll help:
= 'Smaller than,': it still did not start to (A) AI_FOLLOW, the jeep can be anywhere before that AI_FOLLOW.
= 'Bigger than/equal with,': it
has left (A-1) AI_FOLLOW yet, the jeep can be anywhere after that
AI_FOLLOW.
- Now we calculate AI_FOLLOW's
only with 0 or positive ID's.
1.3. Guide subject
1.3.1. The name of the field:
Custom_B (Different usage in according with type of item) (Short)
Executable combination:
Put out the flaming torch
temporarily in (X) guide's hand
Y: 1
Force: single.
'Temporarily' means the guide
will light it again at once.
Condition combination:
If the torch status in (X) guide's
hand is (A)
A:
'equal'
0: the torch is still not in the hand
1: he reaches for the torch/has it unlit in the hand/tries to light it at the first time (unsuccessfully)
2: he tries to light it at the second time (successfully)/has it lit in the hand
Type: simple.
1.3.2. The name of the field:
Custom_D (Different usage in according with type of item) (Short)
Condition combination:
If (X) guide is just heading for
(A) AI_FOLLOW or is standing at the previous AI_FOLLOW
A: ID of AI_FOLLOW (typed in the OCB window of AI_FOLLOW)
Type: simple, but you can use
either 'equal' or 'smaller' or 'bigger/equal' conditions.
Notes:
- 'Previous AI_FOLLOW': for example, A=3 if the guide is heading for AI_FOLLOW 3 or standing at AI_FOLLOW 2.
I.e. the value turns 2 from 3 if he reaches AI_FOLLOW 2, and remains 3 till reaching AI_FOLLOW 3. (Performing a task at an AI_FOLLOW, A will change there only if he is already performing the task, so a bit after arriving at that AI_FOLLOW.)
- Maybe it's hard to find out the
exact meanings of the smaller/bigger conditions now, so I'll help:
= 'Smaller than,': the guide can be anywhere before (A-1) AI_FOLLOW. Or - if there's a task at (A-1) AI_FOLLOW - he perhaps has arrived at (A-1) AI_FOLLOW but hasn't started the task yet.
= 'Bigger than/equal with,': the guide is standing at (A-1) AI_FOLLOW or - if there's a task at (A-1) AI_FOLLOW - he surely performs/performed that task. Or, if he has left (A-1) AI_FOLLOW yet, then he can be anywhere after that AI_FOLLOW.
- Now we calculate AI_FOLLOW's
only with 0 or positive ID's.
1.4. Von Croy subject
1.4.1. The name of the field:
Custom_C (Different usage in according with type of item) (Short)
Executable combination:
Disable (X) Von Croy to turn to
Lara when waving
Y: 1
Force: continuous. When stopping
it: he will be able to turn to Lara again.
When Von Croy arrives to an
AI_FOLLOW, he turns to Lara and starts waving to her. If you disable
that that means he starts waving when he arrives there, but won't
turn to Lara, keeping the original position in which he reached that
AI_FOLLOW.
Condition combination:
If (X) Von Croy is still
performing his cutscene-movements after the cutscene
A: 2
Type: simple.
Note:
These are not 'usual' cutscenes. We are talking about the 'Angkor Wat type' cutscenes when we could hear Von Croy's advices to Lara. - An example to understand:
Von Croy takes his book from his
jacket when he's talking about during the cutscene. Now the player
hits the 'Look' key to interrupt the cutscene. Now the condition is
true because he will take the book back into his jacket after the
interruption.
1.4.2. The name of the field:
Custom_D (Different usage in according with type of item) (Short)
Condition combination:
If (X) Von Croy is just at/is just
heading for (A) AI_FOLLOW
A: ID of AI_FOLLOW (typed in the OCB window of AI_FOLLOW)
Type: simple, but you can use
either 'equal' or 'smaller' or 'bigger/equal' conditions.
Notes:
- If he performs a task at an AI_FOLLOW then the A will change to the ID of the next AI_FOLLOW when he starts performing the task. ('Angkor Wat type' cutscenes are not 'tasks'.)
- Maybe it's hard to find out the
exact meanings of the smaller/bigger conditions now, so I'll help:
= 'Smaller than,': he still did not start to (A) AI_FOLLOW, Von Croy can be anywhere before that AI_FOLLOW. And - if there's a task at (A-1) AI_FOLLOW - he surely hasn't started that task.
= 'Bigger than/equal with,': he
has left (A-1) AI_FOLLOW yet, Von Croy can be anywhere after that
AI_FOLLOW. Except: if there's a task at (A-1) AI_FOLLOW, then he
perhaps is just performing that task.
- Now we calculate AI_FOLLOW's
only with 0 or positive ID's.
1.5. Baddy1, Baddy2 subject
1.5.1. The name of the field:
Custom_C (Different usage in according with type of item) (Short)
Executable combination (1):
Adjust ammunition of (X) baddy to
(Y) bullets
Y: any bullet amount (including 0)
Force: single.
Executable combination (2):
Give infinite ammunition to (X)
baddy
Y: any bullet amount
Force: continuous. When stopping
it: the baddy will have Y bullets.
Condition combination:
If the ammunition of (X) baddy is
(A) bullets
A: any bullet amount (including 0)
Type: sequence.
Note:
Be careful: each round is 7
bullets, so eg. if he starts shooting a round, having 4 bullets,
then the round will end at -3. I.e. '0' doesn't always mean 'empty
weapon' condition. - Use 'less than 1' condition instead.
1.6. Setha subject
1.6.1. The name of the field:
Custom_A (Different usage in according with type of item) (Short)
Executable combination:
Make energy attacks of (X) setha
enervate with (Y) light effect
Y: from 1 to 150
Force: continuous. When stopping
it: setha will 'regain his health', i.e. 'conquer the enervation'.
(If you want to stop forcing then it's recommended to do that when
he just doesn't perform an energy attack.)
'Energy attacks' means the
'direct attack' (when setha rushes at Lara) is not counted now.
Setha has three types of energy attacks:
- 151 frames long: standing on the ground, a big energy ball
- 161 frames long: standing on the ground, 'little' energy bullets
- 199 frames long: jumping into
the air, 'little' energy bullets
If you force Y that means all the possible energy attack procedures that the setha will perform after that, will have the proper noises - but there won't be missiles to hurt Lara. (That's why the attack is 'enervate'.)
In the given frame of the 'real' attack
procedure, the setha will perform different light effects on
himself. ('No light' is included in the 'different' now.) For
example, in the 100th frame
of the jumping attack we could see a given light effect on setha.
Call that effect 'Alpha'. So, if we force Y=100 now, then he will
perform 'Alpha' light effect continuously when performing an
enervate jumping attack. (Naturally maybe Y=100 means another light
effect with the other two procedures. I didn't check all the
possibilities. I suggest choosing Y value randomly and then test it
the game if that Y is proper for all the three procedures.)
Notes:
- Y value cannot reach the length of the shortest (151 frames long) attack type or else the solution will be buggy perhaps.
- The forced value naturally
doesn't have any effect if the setha is just not energy-attacking.
Condition combination:
If (X) setha has started an energy
attack - still being performed - (A) frames ago
A: from 1 to 150 frames
Type: sequence.
1.7. Crocodile subject
1.7.1. The name of the field:
Custom_B (Different usage in according with type of item) (Short)
Executable combination:
Make (X) crocodile waiting an
AI_GUARD to move his tail in (Y) direction (till he can)
Y: leftwards (-12). rightwards (12)
Force: continuous. When stop
forcing: the crocodile will start moving his tail as his wish.
Condition combination:
If (X) crocodile waiting an
AI_GUARD moves/moved the last time his tail in (A) direction
A:
'equal' 12: rightwards
'smaller' 0: leftwards
Type: simple.
Note:
This condition works properly only together with an 'if the creature is in AI_GUARD mode' condition (see above), using the two condition combinations after each other in the same TriggerGroup.
1.8. Horseman subject
1.8.1. The name of the field:
Custom_B (Different usage in according with type of item) (Short)
Condition combination:
If (X) horseman (A) is/is not on
the horse
A: 'equal' 0 (still not getting on the horse or fallen down), 1 (riding/getting on the horse)
Type: simple.
Note:
Use this condition together with
the Condition combination (2) of Chapter 1.1.6. (In the same
TriggerGroup, after each other.) Because eg. if we combine the 8227
of that combination and this 0, then the 'aggregated' condition
means: 'if the horseman is getting on the horse'. (So this 0 rules
out the 'patrolling' part there, and that 8227 rules out the 'fallen
down' part here.)
1.9. Mutant subject
1.9.1. The name of the field:
Custom_C (Different usage in according with type of item) (Short)
Executable combination (1):
Make (X) mutant perform the harmless rage for (approximately) further (W) frames from now on
W: 600 minus Y frames
Y: from 1 to 599
Force: single.
Notes:
- The harmless rage will start if the mutant - has just come to life - has totally opened his 'double collars'. So, if you activate this combination then the counter in the combination won't start till the collars are totally open.
- The default value is 600 frames (20 seconds) for his harmless rage.
- Some moments after stopping raging, the mutant will notice Lara. Until he notices her, he won't attack her.
- 'Approximately' means if the mutant is just in the middle of a 'rage animation' when W timer is just expires then he finishes the animation everyway after that.
- If you activate this condition
after he started attacking then he stops attacking now to rage again
for W frames. (If you activate the condition when he is just in the
middle of an attack then he finishes the attack before starts
raging.)
Executable combination (2):
Make (X) mutant perform the
harmless rage forever
W: 600 minus Y frames
Y: from 1 to 599
Force: continuous. When stop
forcing: the rage will stop (approximately) in W frames.
Note:
Activate the combination after he
started attacking and he aborts the attack (at the end of the
attacking animation) for a never-ending rage.
Condition combination (1):
If there are still (B ) frames
(approximately) before (X) mutant stops the harmless rage
B: 600 minus Y frames
A: from 1 to 599
Type: sequence.
Note:
Now the relations will be
inverted, if you use them: 'less than A' means 'more than B', 'more
than/equal with A' means 'less than/equal with B'.
Condition combination (2):
If (X) mutant is just (A)
harmful/not harmful to Lara
A:
'equal'
999: harmful
999, with TGROUP_NOT flag in the condition trigger: harmless (i.e. the mutant is just raging)
Type: simple.
1.10. Harpy subject
1.10.1. The name of the field:
Custom_A (Different usage in according with type of item) (Short)
Executable combination:
Make energy attacks of (X) harpy
enervate with (Y) light effect
Y: from 1 to 118
Force: continuous. When stopping
it: harpy will 'regain his health', i.e. 'conquer the enervation'.
(If you want to stop forcing then it's recommended to do that when
she - harpies are definitely 'she's, right? - just doesn't perform
an energy attack.)
The one and only energy attack
type of the harpy is 118 frames long.
(See setha above to understand
this.)
Condition combination:
If (X) harpy has started an energy
attack - still being performed - (A) frames ago
A: from 1 to 118 frames
Type: sequence.
1.11. Little beetle subject
1.11.1. The name of the field:
Custom_C (Different usage in according with type of item) (Short)
Executable combination:
Make (X) little beetle be emitted
from the wall with (Y) speed
Y:
0: they will be emitted fast, in only one bunch (because little beetles will be emitted in four bunches from the wall usually)
1: only one or few beetles will be emitted at the same time. There is one or few seconds pause between two emissions
Force: continuous. When you stop
forcing: the emission will continue 'normally' (if there still are
beetles in the wall).
Note:
'From the wall' means it works
only for +4000 OCB, when the scarabs are emitted from the wall.
Condition combination:
If (A) bunches of all the four
bunches of (X) little beetle has not emitted from the wall yet
A: from 0 to 4
Type: sequence.
Note:
When the first bunch has been
emitted, then the field value turns from 4 to 3, when the second
bunch has been emitted, then the field value turns from 3 to 2 etc.
1.12. Wraith subject
1.12.1. The name of the field:
Custom_B (Different usage in according with type of item) (Short)
Executable combination (1):
Customize (X) fire wraith in (Y)
way
Y: 10000 (each contact with Lara will ignite her + wraith is invulnerable in water), 1 (each contact with Lara will not ignite her + wraith is invulnerable in water), -2 (each contact with Lara will not ignite her + wraith is vulnerable in water)
Force: continuous. When stopping
it: everything will start working 'normally' about
ignition/vulnerability.
Executable combination (2):
Make (X) ice wraith invulnerable
in water
Y: 1
Force: continuous. When stopping
it: the wraith can be killed after that in water.
Note:
If the invulnerable ice wraith
contacts with water then the flipmap (that should be activated when
the wraith dies in water) won't be activated.
Condition combination (1):
If the status of (X) fire wraith
is (A)
A:
'equal'
10000 (each contact with Lara will ignite her + wraith is invulnerable in water)
1 (each contact with Lara will not ignite her + wraith is invulnerable in water)
'smaller'
0 (each contact with Lara will not ignite her + wraith is vulnerable in water)
Type: simple.
Note:
Use it only if you also use the
executable combination for customization.
Condition combination (2):
If (X) ice wraith is (A)
vulnerable/invulnerable in water
A: 'equal' 1 (invulnerable), 0 (vulnerable)
Type: simple.
1.12.2. The name of the field:
Custom_C (Different usage in according with type of item) (Short)
Condition combination:
If (X) wraith is circling (A)
clockwise/anti-clockwise
A:
'bigger/equal' 1 (clockwise)
'smaller' 0 (anti-clockwise)
Type: simple.
Note:
Naturally if the radius is big then the route of the wraith seems linear, though that isn't.
1.12.3. The name of the field:
Custom_D (Different usage in according with type of item) (Short)
Executable combination:
Make (X) wraith have (Y) route
Y: positive numbers (moving forwards+constantly downwards), negative numbers (moving forwards+constantly upwards), 0 (moving forwards+keeping constantly his Room Editor vertical position).
Force: continuous. When stopping
it: the wraith will continue its route as usual.
Notes:
- The scale is not linear. I.e. if Y=-1 is a very low ascension, then Y=-1000 is not a thousandfold ascension, but much less.
- Don't forget to kill the wraith
if he ascended too high/descended too low, disappearing above the
ceiling/below the floor forever. (Use an A14 if there is no other
way to kill him.) Or stop forcing and the wraith will start chasing
Lara again.
Condition combination:
If (X) wraith is (A) coming closer
to/going farther from Lara
A:
'bigger/equal' 1 (going farther)
'smaller' 0 (coming closer)
Type: simple.
Note:
This condition seems a bit buggy (i.e. it will have the wrong result) if you use it too soon. That's why first you should use it at the first attack against Lara (and not before, but at any time after that). (I.e. start this condition combination if you are sure that the wraith has been living for a couple of seconds, at least.)