Tomb Raider Forums

Tomb Raider Forums (https://www.tombraiderforums.com/index.php)
-   Tomb Raider Next Generation (https://www.tombraiderforums.com/forumdisplay.php?f=40)
-   -   TRNG - Bugs & Limitations Thread (https://www.tombraiderforums.com/showthread.php?t=165980)

Paolone 10-12-13 20:51

Quote:

Originally Posted by AkyV (Post 6943111)
And now something different, about variables again:

Once you said F297 is okay for you, I said it is buggy.
Now I have some new info: F297 is okay for me only if there are no Empty slots in the room list, before the given room slot.

This is a interesting news. I'll check...

raiderromero 11-12-13 14:13

Quote:

Originally Posted by Paolone (Post 6958835)
But what buttons? Those you typed in this message (draw doors and ctrl+o) or those are other different bugs?

yeah draw doors and reload wad objects

Quote:

Originally Posted by Paolone (Post 6958835)
It could be a nice idea. I'll if I can add an option to handle this limited draw doors features.

good, cause draw doors crash is very annoying XD in fact is waht most causes crashes.

Quote:

Originally Posted by Paolone (Post 6958835)
To solve this problem I need of a wad that generated that error.
Just using the sapper version to have always this error with Ctrl+o?

yeah i only use sapper lastest version , anyway all my wads which use the extra slot in statics will cause this wierd error, so all of them im currently working on make this happen, il send you a wad level later, but you may not be able to reproduce this bug cause it sometimes happens, yesterday i was working on some objects and didnt have this bug, il see if i can upload a video too, cause i also think its related to the room you are, i mean, it is full from objects, when having this error "unknown mesh type" and there is not crash, many other objects will disappear in the room until i realod the wad again...

AkyV 12-12-13 07:03

About 1.2.2.7w

PART1


1. EDGX_ANIMATION_SLOT
DGX_ANIMATION text is always on the screen. But I think the diagnostic text for EDGX_ANIMATION_SLOT is on the screen only at the first frame of the original animation you want to swap. It is too short time.

2. EDGX_CUTSCENE_LOG: missing from History.

3. I can’t take screenshots (F3) during demos (cutscenes).

4. cutscene_frame_memo_log.txt
I can’t see this log after hitting F8.

5. demo frames: the counter is not running if a menu is open. That possibly makes the information of F8 pause false.

6. EDGX_RECORDING_DEMO
The description doesn’t contain these Diagnostics texts: erase, restore erase, L-actor, E-actor.

7. SPC_HEAD/LOOK
The effect will be somewhat too short (seeming buggy), i.e. I need SPC_PAUSE so the effect will have enough time to play. (Or is that enough if HEAD/LOOK is not the last command???...)
Note: then I experimented this with other SPC’s as well, eg. SPC_TEXT.

8. SPC_SEQUENCE
This seems buggy for me: eg. if I have 3 headmeshes, then perhaps (?) only one mesh will be shown, and always only for a short while. If I play the same sequence with F10, then two cases are possible:
- the three meshes will be seeable for different times. Almost all the time of the sequence shows only the first mesh.
- the first mesh will be seen forever. Even if the sequence ends.

8. SPC_SYLL
I had problems with that if I restarted the level to play the cutscene again (without quitting the game) or if I played it with F10. I mean the Organizer started the Parameters command (i.e. its first command: mouth movements) in those cases not in the proper time but later.

(Item7+8+9 was made with Lara and LaraHeadMesh1 slot. Usually I tested only one or two commands in Parameters line at the same time when I got those results, and using an Organizer only with a few events.)

To be continued…

-------------

Old things:
1. You said in NG Center/Reference we couldn’t use BKGDT_TITLE for static title images for the time being. It is not true – however, you need the DefaultWindowsFont technique to see the main menu texts.

2. You may need to start a trigger description section in NG Center/Reference. (In the future. I think it is not the most important thing now.)
Some triggers seem complicated without a description.

3. You haven't reacted upon this bug yet:

http://www.tombraiderforums.com/show...&postcount=312

AkyV 13-12-13 20:48

About 1.2.2.7w

PART2

1. FMOV_APOLLO_GRAVITY
- The speed change from slow to max is hardly seen. (I mean, the accelerating part is very short.)
- With Anvil gravity, the fall will stop automatically, if the object reaches the floor. With Apollo gravity, I suspected something similar (“if the object reaches the ceiling”) but nothing happened, the movement seems never ending. Even if I typed a given “distance” in PARAM_MOVE_ITEM.

2. FMOV_APPLE_GRAVITY
The speed change from slow to max is hardly seen. (Better than “Apollo”, but I guess it’s not enough.)

3. FMOV_FROG_JUMP_GRAVITY
Does nothing.

4. FMOV_EXPLOSION_GRAVITY
I experienced the distance of the vertical movement and the speed of falling depend on the vertical speed. Theoretically it should be logical, but it has several inverse (buggy) effect:

- With big speed, the vertical distance is little, so the acceleration is hardly seen (though the speed doesn’t seem slow), falling fast.
- With little speed, the vertical distance and speed is huge, the acceleration is big, falling slowly.

5. FMOV_IGNORE_FLOOR_COLLISION
Is it a never ending movement? Couldn’t I stop the sinking if I type a given “distance” value?

6. FMOV_WAIT_STAND_ON_FLOOR
I don’t really understand this. My “distance” values will always be ignored in the case of gravity, the item will always fall exactly to the floor. So, for me, this constant seems useless.

7. New DIR flags
It would be interesting (and more realistic) if the moved item were able to follow the target position. Eg., according to the actual status of DIR_HEAD_FOR_EXTRA_ACTOR, the item will follow the position of the actor that the actor had in the moment of the activation, even if the actor leaves that position while that item is moving.
And/or (!) it could be even a 3D vector instead of being a 2D vector.

8. DIR_INVERT_DIRECTION
I can’t see any effect with DIR_TURNING flags.

To be continued…

AkyV 16-12-13 19:58

About 1.2.2.7w

PART3


1. Won’t that new Extra field of PARAM_MOVE_ITEM mess older PARAM_MOVE_ITEM commands up?

2. Cutscene cameras:

- Cutscene. Camera. Actor with (E) role will look Actor with <&>role (E actor subjective view, E actor not visible)
Isn’t this trigger possible?

-F391: bigger values (above 255 frames) to freeze the camera seems buggy: the frozen status will be too long or to short, compared to the adjusted value.

- F396
This trigger has a wrong POV. It will always look exactly downwards, to the actor (being exactly over him), very close to him.

3. You say C88-C90 for the actors are almost the same as ENV_DISTANCE…
I don’t really get it. So do ENV_DISTANCE… constants work for even enemies, not only Lara?
I thought only the new ENV’s (NO_BOX…, ENEMY_SEE_LARA) works for AnimationSlot, but the old ENV’s are for all Lara.
So any ENV can be useful either in Animation or AnimationSlot command? So eg. I can try ENV_MONKEY_CEILING for a monkey-swinging enemy or ENV_LARA_IN_MICRO_STRIP for another one, in AnimationSlot?

4. F397 is a cool trigger to change the single meshes of Von Croy, even out of cutscenes.
I see there are several parameters in this trigger. But you may create a new PARAM constant (PARAM_CHANGE_MESH?) to expand this trigger for each Moveable slot, so all the slots will be able to change any of their single meshes.

5. A92
It is called A91 in the History.

6. Examine text bug
I don’t think it is fixed. Moreover now I think at least one but maybe more other fields (I tested only InventoryItemName) seem also effectless now.

7. A88
Not a bug, only a note:
This trigger is also useful under non-cutscene circumstances: eg. I have an ANIMATING (as an actor though there is no cutscene playing), I force an animation on that to go forwards, and then the object will stop by itself when hitting the wall – without any non-realistic “going through the wall” effect. (Because eg. I can’t antitrigger the ANIMATING, because I don’t know where it reaches the wall, where should I place that HEAVY to stop itself. Besides, a HEAVY will stop it BEFORE reaching the wall, when reaching that trigger square.)
Or, when the same ANIMATING reaches a slope then it will go up it, not going INTO the slope. – Before the current TRNG, it was possible only with a complicated sequence of PARAM_MOVE_ITEMs or similar ACTION triggers.

These things make a thought come to my mind:
Some years ago I made a demo project about “people in the streets”, including some cutscene features in real game time.
I tried to simulate repetitive animations here so eg. when a few ANIMATING men, moving car etc. do their own routes again and again, then they will seem not a few but several people, so the street looks busy - though I used only a few ANIMATINGs. A very interesting environment for Lara!
See here:

http://www.skribblerz.com/tuts/ngle/...edestrians.htm

Would you download it and try it, please?
I mention several problems both in the tutorial and in the Readme.txt.

I mention the most important problems now:
- You can’t play through the whole tutorial level in the game (as I say in the readme, you need to restart for each room), because, as I say:
“There is a total transported/moved ANIMATINGs amount limit in a level. So, for example, if you move 6 ANIMATINGs in a room, then stop them, and, after that, move another 6 ANIMATINGs in another room, the setup of the new ANIMATINGs may fail - though, if 6 ANIMATINGs move at once, that should work, that is not so much.
I don't know the exact limit, but I think you cannot transport/move - aggregated - even 10 ANIMATINGs in a level.”

- The last room (called Street Room) is the diamond of the tutorial, showing a complete busy street (looking very nice, I hope). Many objects will control themselves again and again, with HEAVY triggers. However, as I say in the readme, after some time, you need to restart them, or else they will ignore their HEAVY triggers. Is it some memory limit?

- That street is only one room, because ANIMATINGs can’t really be there but only its own room. That is annoying in that setup. Is there a way to move ANIMATINGs not only in their own rooms, in a nice way?


8. (EDIT:

Quote:

- The max durate for recording is about 25 minutes. If you reach this limit the recording will be stopped byself.
For a single demo or or aggregated all the 1-999 demos of the game?)
-------------------------------------------------

Some old things I said before – without answers so far ;):

1.

Find Trigger (in export script trigger mode) is buggy (i.e. Window Extra will be empty if I click the button) with CONDITION triggers if Window Extra value is 0. - Eg. I tried to retrieve this:

; Set Trigger Type - CONDITION 5
; Exporting: CONDITION(5:62) for PARAMETER(4)
; <#> : Jumping
; <&> : Lara. (Status) Lara is performing <#>action is (E)
; (E) : TRUE (Lara is performing #action)
; Values to add in script command: $8000, 4, $5

2.
If Lara stops moving then F119 camera stops following the moving the non-Lara target – though the camera won’t be switched off, keeping the actual position, keeping turning towards the target.
If Lara starts moving again, then the camera will start following again – as if it had been switched on just now.
(I activated the camera with this TriggerGroup: A42-A41-F119.)

3.
I think F290 in „first command” mode or this new F376 is not really necessary, because F127

- will start a new Organizer
- will restart a working Organizer
- will restart a finished Organizer
- will restart a stopped Organizer

so F127 is able to do the same what „first command” mode can do.
On the other hand, „first command” mode is also able to do the same, not only restarting, i.e. it will start a new Organizer that has never been started before.

(I.e. F290 in „first command” mode or this new F376 would be useful only if it is able only to restart Organizers, not starting the ones that haven’t been started yet at all.
So now F127 would work fo starting/restarting, F290”first”/376 only for restarting. Which would be logical.)

Paolone 19-12-13 14:00

Quote:

Originally Posted by AkyV (Post 6959843)
About 1.2.2.7w

PART1


1. EDGX_ANIMATION_SLOT
DGX_ANIMATION text is always on the screen. But I think the diagnostic text for EDGX_ANIMATION_SLOT is on the screen only at the first frame of the original animation you want to swap. It is too short time.

Ok, I'll check, I had not either the time to verify the new EDGX_ANIMATION_SLOT flag
Quote:

3. I can’t take screenshots (F3) during demos (cutscenes).
While there is the playing of demo, I suppose. Ok, I'll see what I can do.
Quote:

4. cutscene_frame_memo_log.txt
I can’t see this log after hitting F8.
That log name is outdated. Now the f8 signal is in "cuscene_log.txt" file. I'll have to correct the description of EDGX_RECORDING_DEMO value.
Quote:

5. demo frames: the counter is not running if a menu is open. That possibly makes the information of F8 pause false.
Really it's not possible showing the frame counter in menu but the counter is running. We could say that is not possible freeze the demo while is some menu context.
Quote:

7. SPC_HEAD/LOOK
The effect will be somewhat too short (seeming buggy), i.e. I need SPC_PAUSE so the effect will have enough time to play. (Or is that enough if HEAD/LOOK is not the last command???...)
Note: then I experimented this with other SPC’s as well, eg. SPC_TEXT.
It's true but this is normal. To allow the overlapping between mesh commands (SPC_SYLL, SPC_SEQUENCE) with other moving commands (SPC_HEAD SPC_LOOK) the two kind of commands work in indpendent way by.
Pratically if you perform two "move/look" commands with no mesh command in the middle, the first will be not visible, because immediatly covered by the first.
So, or you type mesh commands, after a move/look command, or you use a SPC_PAUSE command for the time you wish it remain before next move/look command.
Same speech for text that have not a time of durate.
Quote:

8. SPC_SEQUENCE
This seems buggy for me:
It seems to me, too. :(
I've just checked and there is some trouble.
Quote:

8. SPC_SYLL
I had problems with that if I restarted the level to play the cutscene again (without quitting the game) or if I played it with F10. I mean the Organizer started the Parameters command (i.e. its first command: mouth movements) in those cases not in the proper time but later.
But do you restarted level before demo has been completed?
Have you verified if this problem happens always or only when there is EDGX_CUTSCENE_LOG diagnostic flag?

Paolone 19-12-13 14:21

Quote:

Originally Posted by AkyV (Post 6960823)
[B]About 1.2.2.7w
3. FMOV_FROG_JUMP_GRAVITY
Does nothing.

I had tried and it worked. You have to set also a horizontal speed and distance and the frog gravity move up the item in frst phase, and then it falls down.
About other type of gravity remember that you can also customize furtherly them typing a percentage in high byte of speed field.
In this way you can get many different results.
I know that a pefect physicall simulation has not been reached but at least now we have also accelerations other than constant speed with trng action triggers.
Quote:

5. FMOV_IGNORE_FLOOR_COLLISION
Is it a never ending movement? Couldn’t I stop the sinking if I type a given “distance” value?
I believe you can.
Quote:

6. FMOV_WAIT_STAND_ON_FLOOR
I don’t really understand this. My “distance” values will always be ignored in the case of gravity, the item will always fall exactly to the floor. So, for me, this constant seems useless.
Surely it will be not so often used, anyway in the case you wish simuate the falling down of an item, linked with a rope (or other...) that stop it before touching the floor you'll have to omit FMOV_WAIT_STAND_ON_FLOOR flag, set a gravity and compute a distance to stop the item to get it floating in the empty.
Quote:

7. New DIR flags
It would be interesting (and more realistic) if the moved item were able to follow the target position. Eg., according to the actual status of DIR_HEAD_FOR_EXTRA_ACTOR, the item will follow the position of the actor that the actor had in the moment of the activation, even if the actor leaves that position while that item is moving.
It is possible, just using FMOV_INFINITE_LOOP flag and setting a very short distance, and at each new cycle the direction will be updated to current position of target.
Quote:

8. DIR_INVERT_DIRECTION
I can’t see any effect with DIR_TURNING flags.
Weird, I tried all those direction and they work.
You have to use a wide distance and let the time to turning setting right speed rotation.

AkyV 19-12-13 20:42

Quote:

Originally Posted by Paolone (Post 6964409)
But do you restarted level before demo has been completed?

No.

Quote:

Have you verified if this problem happens always or only when there is EDGX_CUTSCENE_LOG diagnostic flag?
I inspected this, and, unfortunately, I must say, with or without that flag, it seems hardly controlled.
I suspect it is some kind of "you need to restart the EXE to fix it" problem for me.

Paolone 19-12-13 21:11

Quote:

Originally Posted by AkyV (Post 6962570)
[B]About 1.2.2.7w

1. Won’t that new Extra field of PARAM_MOVE_ITEM mess older PARAM_MOVE_ITEM commands up?

It's true but I hope to have fixed those problems in "x" release.

Quote:

2. Cutscene cameras:

- Cutscene. Camera. Actor with (E) role will look Actor with <&>role (E actor subjective view, E actor not visible)
Isn’t this trigger possible?
I've not thought to add that, because already this view is not so fine, more if from an actor look another we get a view that could be the same of common cutscene camera from some angle.
Between lara and leading actor we can suppose a dynamic action where, for instance the baddy (leading actor) chases lara with his subjective view but between two other actors it's less probable.
Quote:

-F391: bigger values (above 255 frames) to freeze the camera seems buggy: the frozen status will be too long or to short, compared to the adjusted value.
Probably there is a max limit about freezing, in this moment I don't remember, I'll check.
Quote:

- F396
This trigger has a wrong POV. It will always look exactly downwards, to the actor (being exactly over him), very close to him.
When two actors are very close it's true. The problem it's that I used the default target method for cutscene camera and it works with coordinates of target item, but the Y coordinate (height) is always on the floor, therefor when two actors are closed usign subjiective view you have that bad result.
It's better using subjective view only when there is some distance between two actors.
Quote:

3. You say C88-C90 for the actors are almost the same as ENV_DISTANCE…
I don’t really get it. So do ENV_DISTANCE… constants work for even enemies, not only Lara?
I thought only the new ENV’s (NO_BOX…, ENEMY_SEE_LARA) works for AnimationSlot, but the old ENV’s are for all Lara.
So any ENV can be useful either in Animation or AnimationSlot command? So eg. I can try ENV_MONKEY_CEILING for a monkey-swinging enemy or ENV_LARA_IN_MICRO_STRIP for another one, in AnimationSlot?
Almost all condition can be used for enemy in AnimationSlot.
The monkey state does exception because it is an hardcoded state id for lara while there is no standard for enemies. Ok, ninja is able to monkey but he is an exception.
The animationslot uses a simple trick (but with some limitation)
Before using code that has been done for Lara, replace temporarilry in Lara structure the enemy, in this way the code works for lara structure but it has the coordinate of enemy.
ANyway this method works for his position but about state id or monkey or item in the hands ect, it will not work.
In that case you'll have to create specfiic conditions about current animation/state id of enemy.

Quote:

4. F397 is a cool trigger to change the single meshes of Von Croy, even out of cutscenes.
I see there are several parameters in this trigger. But you may create a new PARAM constant (PARAM_CHANGE_MESH?) to expand this trigger for each Moveable slot, so all the slots will be able to change any of their single meshes.
Theorically I may do everything in this trle-world (perhaps I'm god :D) the only thing that I've not of god is his endless time. :(
I need of complete this huge developing of 1.2.2.7 version, and then, with new version, alls will be able to add everything they wish. (and so also they will become god ;)
Quote:

5. A92
It is called A91 in the History.
Oh, well, I'll check.

Quote:

6. Examine text bug
I don’t think it is fixed. Moreover now I think at least one but maybe more other fields (I tested only InventoryItemName) seem also effectless now.
But I worked on position of examine text, like those about snakes enigma, Now you can move up or down the begin position of the examine text.

Quote:

7. A88
Not a bug, only a note:
This trigger is also useful under non-cutscene circumstances: eg. I have an ANIMATING (as an actor though there is no cutscene playing), I force an animation on that to go forwards, and then the object will stop by itself when hitting the wall – without any non-realistic “going through the wall” effect. (Because eg. I can’t antitrigger the ANIMATING, because I don’t know where it reaches the wall, where should I place that HEAVY to stop itself. Besides, a HEAVY will stop it BEFORE reaching the wall, when reaching that trigger square.)
Or, when the same ANIMATING reaches a slope then it will go up it, not going INTO the slope. – Before the current TRNG, it was possible only with a complicated sequence of PARAM_MOVE_ITEMs or similar ACTION triggers.

These things make a thought come to my mind:
Some years ago I made a demo project about “people in the streets”, including some cutscene features in real game time.
I tried to simulate repetitive animations here so eg. when a few ANIMATING men, moving car etc. do their own routes again and again, then they will seem not a few but several people, so the street looks busy - though I used only a few ANIMATINGs. A very interesting environment for Lara!
See here:

http://www.skribblerz.com/tuts/ngle/...edestrians.htm

Would you download it and try it, please?


Wow, I'll do in next days.
It is a very amazing idea, I had the same many time ago because the world of Lara is really sad: desolate and with only some enemy to kill.
I had thougth own to create people slot and some recursive movement to use newly same people many times.
I believed it was an original idea but now I discover you had same idea first than me. My compliments! :D
Quote:

I mention several problems both in the tutorial and in the Readme.txt.

I mention the most important problems now:
- You can’t play through the whole tutorial level in the game (as I say in the readme, you need to restart for each room), because, as I say:
“There is a total transported/moved ANIMATINGs amount limit in a level. So, for example, if you move 6 ANIMATINGs in a room, then stop them, and, after that, move another 6 ANIMATINGs in another room, the setup of the new ANIMATINGs may fail - though, if 6 ANIMATINGs move at once, that should work, that is not so much.
I don't know the exact limit, but I think you cannot transport/move - aggregated - even 10 ANIMATINGs in a level.”

- The last room (called Street Room) is the diamond of the tutorial, showing a complete busy street (looking very nice, I hope). Many objects will control themselves again and again, with HEAVY triggers. However, as I say in the readme, after some time, you need to restart them, or else they will ignore their HEAVY triggers. Is it some memory limit?

- That street is only one room, because ANIMATINGs can’t really be there but only its own room. That is annoying in that setup. Is there a way to move ANIMATINGs not only in their own rooms, in a nice way?
Quote:


Oh well, you tried to realize a simulation like this in a complicated situation, because I had not created stuff to handle a so animated world.
About limitation you say I have to check. I don't believe there is a given limit about number of animating you can move, but there is an absolute limit for all progressive actions (the internal skill that perform for long time some command you began with some trigger/action)
When you reach this limit, of 100 progressive action, oldest action will be deleted and reaplced with newest.
About the limit that you cann't move an animating outside of his room it's a surprise for me.
Only statics are linked forever with their room, all moveables can go everywhere in the level.
I'll check where is the problem. Perhaps some action trigger had been thought for short movement and I forgot to update change of room, like I did for elevator and other stuff.

Quote:

For a single demo or or aggregated all the 1-999 demos of the game?)
The limit of minute is for a single demo.pak, there is no aggregate limit.

Quote:

Some old things I said before – without answers so far ;):

1.

Find Trigger (in export script trigger mode) is buggy (i.e. Window Extra will be empty if I click the button) with CONDITION triggers if Window Extra value is 0. - Eg. I tried to retrieve this:

; Set Trigger Type - CONDITION 5
; Exporting: CONDITION(5:62) for PARAMETER(4)
; <#> : Jumping
; <&> : Lara. (Status) Lara is performing <#>action is (E)
; (E) : TRUE (Lara is performing #action)
; Values to add in script command: $8000, 4, $5
I remember this but it's a limitation I cann't solve in reasonable time.
When ngle receive the three number of exported trigger it doesn't know if that trigger had an extra paramerter or less. It supposes that when highest value of a word is different than 0 it should be the extra field, but when that value is 0 (like in your above example: true= 0 value if you click [p] button to see), find trigger is not able to understand the situation.

Quote:

.
If Lara stops moving then F119 camera stops following the moving the non-Lara target – though the camera won’t be switched off, keeping the actual position, keeping turning towards the target.
If Lara starts moving again, then the camera will start following again – as if it had been switched on just now.
(I activated the camera with this TriggerGroup: A42-A41-F119.)
I can try to fix this only with a little project ready to be studied, because reading the description for me it is normal behavior and for me come back to old feature, build a projet, supposing other profile settings it's tiring.

Quote:

I think F290 in „first command” mode or this new F376 is not really necessary, because F127

- will start a new Organizer
- will restart a working Organizer
- will restart a finished Organizer
- will restart a stopped Organizer

so F127 is able to do the same what „first command” mode can do.
On the other hand, „first command” mode is also able to do the same, not only restarting, i.e. it will start a new Organizer that has never been started before.

(I.e. F290 in „first command” mode or this new F376 would be useful only if it is able only to restart Organizers, not starting the ones that haven’t been started yet at all.
So now F127 would work fo starting/restarting, F290”first”/376 only for restarting. Which would be logical.)
There are many way to get some result in trng. Probably there are many duplicated triggers or script commands. For me this it's not a real problem.
Since the growing of trng skill has been spreaded in the time, sometimes I add some skill there was already possible in other way but I had forgotten that. :D

AkyV 20-12-13 07:31

Quote:

Quote:

- F396
This trigger has a wrong POV. It will always look exactly downwards, to the actor (being exactly over him), very close to him.
When two actors are very close it's true. The problem it's that I used the default target method for cutscene camera and it works with coordinates of target item, but the Y coordinate (height) is always on the floor, therefor when two actors are closed usign subjiective view you have that bad result.
It's better using subjective view only when there is some distance between two actors.
You misunderstood. Not the actors are close to each other, only the camera is too close to the target. ;)

Quote:

I believed it was an original idea but now I discover you had same idea first than me. My compliments!
Thanks!

Quote:

About the limit that you cann't move an animating outside of his room it's a surprise for me.
Only statics are linked forever with their room, all moveables can go everywhere in the level.
I'll check where is the problem. Perhaps some action trigger had been thought for short movement and I forgot to update change of room, like I did for elevator and other stuff.
Try eg. a baddy1 or a big scorpion in an animating slot to force him to walk out of its room, into other rooms. I used default (18×18) rooms for the test. The animating started blinking in the non-original room, and then walked through the walls into the nothing.
However, I think it is not a TRNG problem, I experienced this in the old TRLE as well, even with objects that were animatings originally.

Quote:

Quote:

If Lara stops moving then F119 camera stops following the moving the non-Lara target – though the camera won’t be switched off, keeping the actual position, keeping turning towards the target.
If Lara starts moving again, then the camera will start following again – as if it had been switched on just now.
(I activated the camera with this TriggerGroup: A42-A41-F119.)
I can try to fix this only with a little project ready to be studied, because reading the description for me it is normal behavior and for me come back to old feature, build a projet, supposing other profile settings it's tiring.
OK, I'll send one later.
-------------
EDIT:
Here you are:
https://www.mediafire.com/?sb3twvzazqz76gl

AkyV 22-12-13 13:12

See demo in the previous post.
---------------------------------

About 1.2.2.7x

1. So after I activated a sprite sequence with F357 then it must be stopped (suspended) by F402?
It didn’t work for me, F402 didn’t do anything.
(I tested with F357 “forever”, frame0 in F402 and with this:
Parameters= PARAM_SHOW_SPRITE, 1, FSS_ANIMATE, 100, 200, 300, 300, CUSTOM_SPRITES, 4, IGNORE, IGNORE, IGNORE, 15364)

2. C92:
I tested it with NEF_EASY_HEAVY_ENABLING objects when they are over a HEAVY F118 for a TriggerGroup. The TG contains C92 and an executable trigger:
- BADDY_2: I created a gap for him to jump over. In the gap I placed that F118. I don’t think it’s OK. When the baddy jumped over the gap, sometimes the F118 was activated when he landed at the opposite edge. On the other hand, when he falled into the gap, then nothing happened.
- ANIMATING: I moved it up/down continuously, from the floor, with a PARAM_MOVE_ITEM. Each time, when he touched the floor, with that F118, the trigger should have been activated. But nothing happened.

I suspect the problem is HEAVY triggers will be activated only when the activator steps into the trigger zone at the first time. (I.e. eg. if the baddy jumps forward from another square and he lands on this "PAD", then he is in the air when he gets into the trigger zone. Or: the ANIMATING is in the trigger zone always, above the HEAVY, it never steps into the zone.)
Moreover, I tried the same with a similar C89 ("if the leading actor is closer the floor than 0"), with the same wrong result.
Now I tried both C92/C89 when the ANIMATING was out of the trigger zone, placed in the floor, moving the object continuously forth/back on the trigger zone, so now the object stepped into the zone. The same wrong result.

However, both C92 and C89 was successful if I tried them in GlobalTriggers, without a placed HEAVY!

3. GT_CREATED NEW ITEM
Not a bug, only some thinking:
I tried this GlobalTrigger:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, 3, -1
TriggerGroup= 3, $2000, 244, $FF

; Set Trigger Type - FLIPEFFECT 244
; Exporting: TRIGGER(255:0) for FLIPEFFECT(244)
; <#> : Variables. Memory. Copy to <&>Numeric Variable the (E)Savegame Memory value
; <&> : Current Value
; (E) : TRNG Index. Index of last item found with testposition or condition (Short)
; Values to add in script command: $2000, 244, $FF

I have three objects placed in the actual game. The first thing I did I extracted a flare. I dropped down – now Current Value turned into 4. I extracted another flare, dropped it – now Current Value turned into 5. 3+1= 4, 4+1= 5 so they must be tomb index. (Logical, they have no NGLE index.) It means this:
I create this GlobalTrigger after I placed all my objects in the map. Eg. that says 917 is the index of the first dropped flare. So if I’m sure Lara won’t drop a torch, shoot grenades eg. after starting the level, then I can be sure that 920 will be the ID of the fourth dropped flare. – It is great if I want to do some action only on a given dropped flare. (I suppose it is a very dangerous setup because to find that correct ID is not easy, mostly if I place another object after that or if Lara will do anything as well meanwhile, not only dropping flares.)
On the other hand, I can have eg. this triggergroup:

TriggerGroup= 3, $5000+TGROUP_USE_FOUND_ITEM_INDEX, 5, $324

; Set Trigger Type - ACTION 36
; Exporting: TRIGGER(804:0) for ACTION(5)
; <#> : BADDY_2 ID 5 in sector (2,16) of Room0
; <&> : Move. Move continuosly upstairs-downstairs <#>animating of (E) clicks
; (E) : 4 clicks (1 Sectors)
; Values to add in script command: $5000, 5, $324


Now the TriggerGroup will move up/down any game-created item, after using that GT. Now the setup is not so dangerous, but too general: the trigger will move up/down any actual game created item, I can’t narrow it somehow eg. for flares or a given flare.

Note:
I don't know if it is important informations or not, but, according to my experiences, AI objects are not counted in the amount of placed objects now. (Not all the nullmeshes. Only the AI's.)

4. F404
By the way, old secret triggers have a strange bug (so it is an old bug): if I go back to a level, then the secret (trigger) I found there previously, can be activated once again, increasing the trigger counter. (Whatever the secret ID is.) Even with One Shot.
That's why the new trigger is useful even if you don't want to export it but place it in the map: now One Shot is useful to prevent that bug.

5. F405
By the way, old/new FMV triggers have a strange bug (so it is an old bug): I can play an FMV only once in a level, even without One Shot. If I try to activate another FMV trigger after that for the same FMV file that doesn’t work either, even if the second FMV trigger has not been activated yet.

6.
Quote:

Note: really I'm not sure about all above descriptions. I've not had the time to study better above variables
Maybe I can help you, for the future TRNG updates: I tested a lot of memory zone values cautiously:

http://www.skribblerz.com/tuts/ngle/...entriggers.htm

7. WeaponAnim. Current animation of torch-flare animation (Short)
WeaponAnim. Current frame of torch-flare animation (Short)
For me, they worked for other ANIM slots absolute animation as well, including weapon anims. (I didn’t test other meshswap slots: eg. crowbar, waterskin or Lara with the shovel in The Sphinx Complex level etc.)

8. WeaponAnim. Current state id of extra lara slots. (Weapons and torch) (Short)
I think
- it is only for torch, and
- it is not StateID for TORCH_ANIM but something else:

= 1 if lara throws the torch away with SPACE (there is no State1 for TORCH_ANIM)
= 2 if Lara drops the torch with extracting a weapon
= 3 if Lara ignites the torch/ignites flame with the torch (it is not TORCH_ANIM animation, but LARA animation)

So this field is exactly (!) the same as “Lara. Test. Throw out item from the Hands (1 = lara is throwing out item) (Short)” field.

9. Another thought about A88:
If save/load the game will turn the actors back to normal then I need to disable saving games during the cutscenes. It is logical.
But if I use the actor only to use the A88 collision feature eg. to move the actor up a slope with a forced animation, out of cutscenes, then disabling saving seems illogical.
(EDIT - it is an unimportant question.
I mean, the enemy must be placed in an animating slot, so you can control it as a dummy, even out of cutscenes, but using the benefits of A88. Moreover, now the animating enemy doesn't need to be an actor - so save/load won't cause anything about the AI which an animating never has.)

----------------------------------
For the future:
Your binoculars compass made me remember an older tutorial of me:

http://www.skribblerz.com/tuts/ngle/...imecompass.htm

So how about a permanent (concealable?) compass on the screen (with a better accomplishment instead of these static sprites)? (Maybe also removing the old one in the inventory?)

---------------------
Another question, for the future as well (because yes, you're right, it's time to finish TRNG 1.2.2.7):
Excepting for the classic HEAVYSWITCH technique, is there a TRNG way to link a given object to a given HEAVY/HEAVYANTITRIGGER? Eg. if I want only a given baddy2, not all the baddy2's to activate a given HEAVY, though NEF_EASY_HEAVY_ENABLING will work for all of them? (Or the same things with rollingballs, because they don't need that NEF.)
Or if I want only a flaming torch in Lara's hand to activate that HEAVY, so the baddy2 (with NEF_EASY_HEAVY_ENABLING) sauntering there won't be able to do that, even if he gets into the trigger zone? Etc.

AkyV 23-12-13 20:34

@Everyone:

Quote:

Originally Posted by Paolone (Post 6964661)
Quote:

6. Examine text bug
I don’t think it is fixed. Moreover now I think at least one but maybe more other fields (I tested only InventoryItemName) seem also effectless now.
But I worked on position of examine text, like those about snakes enigma, Now you can move up or down the begin position of the examine text.

Could someone confirm me?
Examine text and inventory name still don't work for me.

Syntax: DefaultWindowsFont= IdWindowsFont, FLAGS (DWF_...), LineSpacing, MainMenuOffsets, NewGameTitle, LoadGameTitle, NewGameList, LoadGameList, OptionSettings, OptionCmdList, PauseScreen, StatList, InventoryItemName, ExamineText

I used this to test:

Code:

ColorRGB=                1, 0,255,0
ColorRGB=                2, 255,0,0
WindowsFont= 1, Arial, WFF_BOLD+WFF_UNDERLINE+WFF_ITALIC+WFF_SHADOW+WFF_RIGHT_ALIGN, 40, 1, 2
DefaultWindowsFont= 1, IGNORE, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 700, -500


Paolone 26-12-13 21:00

Quote:

Originally Posted by AkyV (Post 6966052)
See demo in the previous post.
---------------------------------

About 1.2.2.7x

1. So after I activated a sprite sequence with F357 then it must be stopped (suspended) by F402?
It didn’t work for me, F402 didn’t do anything.
(I tested with F357 “forever”, frame0 in F402 and with this:
Parameters= PARAM_SHOW_SPRITE, 1, FSS_ANIMATE, 100, 200, 300, 300, CUSTOM_SPRITES, 4, IGNORE, IGNORE, IGNORE, 15364)

You set as first sprite the value "4". Trng will wait for sprite 0 (you chose with f402 trigger for stop ) but it will never happen. You have to use f402 trigger with a frame (sprite index) that will be really showed in animated sequence.

Quote:

3. GT_CREATED NEW ITEM
Not a bug, only some thinking:
I tried this GlobalTrigger:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, 3, -1
TriggerGroup= 3, $2000, 244, $FF

; Set Trigger Type - FLIPEFFECT 244
; Exporting: TRIGGER(255:0) for FLIPEFFECT(244)
; <#> : Variables. Memory. Copy to <&>Numeric Variable the (E)Savegame Memory value
; <&> : Current Value
; (E) : TRNG Index. Index of last item found with testposition or condition (Short)
; Values to add in script command: $2000, 244, $FF

I have three objects placed in the actual game. The first thing I did I extracted a flare. I dropped down – now Current Value turned into 4. I extracted another flare, dropped it – now Current Value turned into 5. 3+1= 4, 4+1= 5 so they must be tomb index. (Logical, they have no NGLE index.) It means this:
I create this GlobalTrigger after I placed all my objects in the map. Eg. that says 917 is the index of the first dropped flare. So if I’m sure Lara won’t drop a torch, shoot grenades eg. after starting the level, then I can be sure that 920 will be the ID of the fourth dropped flare. – It is great if I want to do some action only on a given dropped flare. (I suppose it is a very dangerous setup because to find that correct ID is not easy, mostly if I place another object after that or if Lara will do anything as well meanwhile, not only dropping flares.)
On the other hand, I can have eg. this triggergroup:

TriggerGroup= 3, $5000+TGROUP_USE_FOUND_ITEM_INDEX, 5, $324

; Set Trigger Type - ACTION 36
; Exporting: TRIGGER(804:0) for ACTION(5)
; <#> : BADDY_2 ID 5 in sector (2,16) of Room0
; <&> : Move. Move continuosly upstairs-downstairs <#>animating of (E) clicks
; (E) : 4 clicks (1 Sectors)
; Values to add in script command: $5000, 5, $324


Now the TriggerGroup will move up/down any game-created item, after using that GT. Now the setup is not so dangerous, but too general: the trigger will move up/down any actual game created item, I can’t narrow it somehow eg. for flares or a given flare.
Probably I could understand better the problem if you did an example in game playing. I mean, a situation where in reasonable way, you need to discern between one or other created flare to do happen different effects.

Because if these flares have a different effect in game (that you wish) I suppose there will some of their layout or position that will be seen also from the player.
You should work on that difference to recognize one between others.
Quote:

Note:
I don't know if it is important informations or not, but, according to my experiences, AI objects are not counted in the amount of placed objects now. (Not all the nullmeshes. Only the AI's.)
It's true, I confirm that.
For this reason when you use AI you need to supply an OCB rather an index. The ocb will be used to locate the given AI item.

Quote:

5. F405
By the way, old/new FMV triggers have a strange bug (so it is an old bug): I can play an FMV only once in a level, even without One Shot. If I try to activate another FMV trigger after that for the same FMV file that doesn’t work either, even if the second FMV trigger has not been activated yet.
It's true. I used same code (about fmv triggering) used in the last revelation.
There is a mask array, where will be store the already played fmv and for this reason it's indifferent if you use a single-shot or multishot trigger.

Quote:

Maybe I can help you, for the future TRNG updates: I tested a lot of memory zone values cautiously:

http://www.skribblerz.com/tuts/ngle/...entriggers.htm
Thanks, good job, I'll check it.

Quote:


Another question, for the future as well (because yes, you're right, it's time to finish TRNG 1.2.2.7):
Excepting for the classic HEAVYSWITCH technique, is there a TRNG way to link a given object to a given HEAVY/HEAVYANTITRIGGER? Eg. if I want only a given baddy2, not all the baddy2's to activate a given HEAVY, though NEF_EASY_HEAVY_ENABLING will work for all of them? (Or the same things with rollingballs, because they don't need that NEF.)
In hardcoded way, you can perform a triggergroup when there is this heavy/antiheavy trigger. At begin of triggergroup you set a condition that compare the current index with the constan value of ngle index (you have to convert it first comparing, of course).
while a method a bit more customizable, is to type a ocb value only in enemy you wish enable the trigger and then in the conidtion you check if ocb value (using variables) is that you set.
Quote:

Or if I want only a flaming torch in Lara's hand to activate that HEAVY, so the baddy2 (with NEF_EASY_HEAVY_ENABLING) sauntering there won't be able to do that, even if he gets into the trigger zone? Etc.
If you catch the torch index of lara you can use same method above, I believe.

Paolone 26-12-13 21:16

Quote:

Originally Posted by AkyV (Post 6964819)
You misunderstood. Not the actors are close to each other, only the camera is too close to the target. ;)

Oh, weird. :confused:
Then is it indifferent where is Lara in that moment?
Quote:

Try eg. a baddy1 or a big scorpion in an animating slot to force him to walk out of its room, into other rooms. I used default (18×18) rooms for the test. The animating started blinking in the non-original room, and then walked through the walls into the nothing.
However, I think it is not a TRNG problem, I experienced this in the old TRLE as well, even with objects that were animatings originally.
Ah, now I understand. :D
It's obvious. Animating slot don't update the room number of animating item and when a moveable move outside from his original room without update some internal structure, there are those troubles you describe.
I could do a trigger to update room of any movable but then it should be called to right moment, I suppose. I'm not sure, I'll check...


Quote:

OK, I'll send one later.
-------------
EDIT:
Here you are:
https://www.mediafire.com/?sb3twvzazqz76gl
[/quote]

I thank you. ;)

Paolone 26-12-13 21:19

Quote:

Originally Posted by AkyV (Post 6966892)
Could someone confirm me?
Examine text and inventory name still don't work for me.

I used this to test:
ColorRGB= 1, 0,255,0
ColorRGB= 2, 255,0,0
WindowsFont= 1, Arial, WFF_BOLD+WFF_UNDERLINE+WFF_ITALIC+WFF_SHADOW+WFF_R IGHT_ALIGN, 40, 1, 2
DefaultWindowsFont= 1, IGNORE, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 700, -500

You set a huge value (-500), moving the text outside of screen in top side.
Try to use: first time, no change (-1) and second time a value like "40".
I had tried with little values to center vertically the description of snake enigma and it worked.

AkyV 27-12-13 13:03

Quote:

Originally Posted by Paolone (Post 6968272)
You set as first sprite the value "4". Trng will wait for sprite 0 (you chose with f402 trigger for stop ) but it will never happen. You have to use f402 trigger with a frame (sprite index) that will be really showed in animated sequence.

Right. My setup was wrong.
Anyway, how about an "actual sprite" option, so the animation can be suspended right away when activating F402?

Quote:

Probably I could understand better the problem if you did an example in game playing. I mean, a situation where in reasonable way, you need to discern between one or other created flare to do happen different effects.

Because if these flares have a different effect in game (that you wish) I suppose there will some of their layout or position that will be seen also from the player.
You should work on that difference to recognize one between others.
You know... I guess my thinking was wrong...
I mean, for a given flare I can use a given condition, in usual ways. Eg. "bigger shining for the flare if it is dropped in a room with poisonable air". - Now I use this:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, 3, -1
TriggerGroup= 3, $2000, 244, $FF

; Set Trigger Type - FLIPEFFECT 244
; Exporting: TRIGGER(255:0) for FLIPEFFECT(244)
; <#> : Variables. Memory. Copy to <&>Numeric Variable the (E)Savegame Memory value
; <&> : Current Value
; (E) : TRNG Index. Index of last item found with testposition or condition (Short)
; Values to add in script command: $2000, 244, $FF

Then I examine if Current Value is not 0 (so a flare is just dropped), and if it is that poisonable room (I hope "Room (Room where is the item) (Short)" item memory zone works for that flare index now), then I add an AddEffect to the flare. (Though the condition must be more complex, because "not 0" condition is true only for the first flare...)

However, it gave me some ideas for the future TRNG updates - how about them?:

- CUST_FLARE: enhance it, so different flares (dropped or in Lara's hand) can have different effects (depending on the circumstances?),
- AssignSlot-like command for "pickables only with one slot", so eg. I could pick up "flares with red light" or "flares with green light" etc. (It could be difficult, because eg. crowbar1 for a given task needs another handmesh than crowbar2 for another task.)

Quote:

Oh, weird.
Then is it indifferent where is Lara in that moment?
Yes, it is not related to Lara's position.

Quote:

You set a huge value (-500), moving the text outside of screen in top side.
Try to use: first time, no change (-1) and second time a value like "40".
I had tried with little values to center vertically the description of snake enigma and it worked.
1. Yes, too big values seem useless.
2. "Snake" is Examine3. That is good for me. But Examine2 (with two paragraphs) is still wrong.

Paolone 27-12-13 14:50

Quote:

Originally Posted by AkyV (Post 6966052)
Maybe I can help you, for the future TRNG updates: I tested a lot of memory zone values cautiously:

http://www.skribblerz.com/tuts/ngle/...entriggers.htm

Oh, well, I just read some page of your tutorial about "hidden triggers", it's really an awesome work. :eek:

About the chance to modify so many descriptions of memory variables I've the problem of time and the wideness of your work get it yet more complicated.
So I could do that work for next (a bit far) 1.2.2.8 version, after I had studied all your tutorial.
Or, since you have all in your mind about it, you could modify now description of critical variabile you discovered.
You are free to say "no", of course.
Anyway I attach here the internal code of ngle source where there are all memory descriptions.

In the case you wish change it, just you edit only the text part included in quotes.

For instance in the row:

Quote:

{(BYTE *) 0x80E01A, 'S', "Dash Bar Value (0 - 120)"},
You should change only the text:
Code:

Dash Bar Value  (0 - 120)
You can edit only some of them, those you believe had most meaningful difference respect original description.

Here there is full list in source code format:
Code:

        // NON AGGIUNGERE MAI ALL'INIZIO MA SOLO IN FONDO
StrAdrMemory VetCodeMemory[] = {
        {(BYTE *) &GlobTomb4.BaseBassHandles.VetCanali[0].NumeroCd, 'S', "Audio Track Number on Channel 1 (only for read)"},
        {(BYTE *) &GlobTomb4.BaseBassHandles.VetCanali[1].NumeroCd, 'S', "Audio Track Number on Channel 2 (only for read)"},
        {NULL, 'B', "Script Dat. Option Flags (Use bit operations to read or write)"},
        {(BYTE *) 0x7FD170, 'B', "Current Level number (more updated than savegame memory)"},
        {(BYTE *) 0x7FD140, 'S', "Script Dat. Level Flags (Use bit operation to read or change)"},
        {(BYTE *) 0x7FE738, 'L', "Earthquake vertical movement (negative values)"},
        {(BYTE *) 0x753C60, 'S', "Screen. Width game screen in pixel (only for read)"},
        {(BYTE *) 0x753BB0, 'S', "Screen. Height game screen in pixel (only for read)"},
        {(BYTE *) 0x535780, 'L', "KeyBoard Game Command hit (Use bit operations with KEY1_ constants)"},
        {(BYTE *) 0x80E01A, 'S', "Dash Bar Value  (0 - 120)"},
        {(BYTE* ) 0x4AC060, 'L', "Inventory Item required in game (example, crowbar for door)"},
        {(BYTE* ) 0x4AC064, 'L', "Inventory Item just chosen from inventory (example a key to open a door)"},
        {(BYTE *) 0x7E70CC, 'L', "Frame System Counter. (Works always, in game, inventory and pause screens) "},
        {(BYTE *) 0x4BF5BC, 'L', "Test. There is a Flyby in progress (1 = true / 0 = false)"},
        {(BYTE *) 0x4AD439, 'B', "Test. How entered in current game (New level=0; From savegame = 4)"},
        {(BYTE *) 0x4B1710, 'L', "Music volume (max = 100)"},
        {(BYTE *) 0x4B1714, 'L', "Sound SFX volume (max = 100)"},
        {(BYTE *) 0x7FE724, 'L', "Camera Mode Now (0='follow me', 1='fixed', 2='look'; 3 ='combat')"},
        {(BYTE *) 0x7FE720, 'L', "Camera Mode Next (0='follow me', 1='fixed', 2='look'; 3 ='combat')"},
        {(BYTE *) 0x7FD132, 'B', "Speed Layer1 (4th field of Layer1= script command)"},
        {(BYTE *) 0x7FD131, 'B', "Speed Layer2 (4th field of Layer2= script command)"},
        {(BYTE *) 0x4BF248, 'B', "Test. Disable Fog Bulbs (1 = disable)"},
        {(BYTE *) 0x7FD138, 'L', "Frame 3d Counter. (It works in game and inventory but not in pause)"},
        {(BYTE *) 0x80DEE8, 'S', "Index of current vehicle or -1 if lara's not using a vehicle"},
        {NULL,0,NULL}};
        // NON AGGIUNGER MAI ALL'INIZIO MA SOLO IN FONDO       
StrAdrMemory VetSlotMemory[] = {{(BYTE *) 0x0, 'S', "Number of Meshes" },
        {(BYTE *) 0x2, 'S', "First Mesh Index"},
        {(BYTE *) 0xC, 'L', "Pointer for Initialization Procedure"},
        {(BYTE *) 0x10, 'L', "Pointer for Main Control Procedure"},
        {(BYTE *) 0x14, 'L', "Pointer for Special Floor Procedure"},
        {(BYTE *) 0x18, 'L', "Pointer for Special Ceiling Procedure"},
        {(BYTE *) 0x1C, 'L', "Pointer for Emitter Procedure"},
        {(BYTE *) 0x20, 'L', "Pointer for Collision Procedure"},
        {(BYTE *) 0x24, 'S', "Unknown1 (Pheraps distance to enable the MIP version)"},
        {(BYTE *) 0x28, 'S', "HP. Max Vitality at start"},
        {(BYTE *) 0x2A, 'S', "Unknown2 (Usually it has value 50)"},
        {(BYTE *) 0x2C, 'S', "Unknown3 (It will be copied in Custom_B field of Item structure)"},
        {(BYTE *) 0x2E, 'S', "FootStep (Shadow below Lara or enemies)"},
        {(BYTE *) 0x30, 'S', "Test Attack Lara (1=attack, 0 =ignore lara)"},
        {(BYTE *) 0x32, 'S', "Flags. Main flags"},
        {(BYTE *) 0x34, 'L', "Pointer for Draw Extra Procedure (used by jeep, sidecar)"},
        {(BYTE *) 0x38, 'L', "Explosion Mask. (Each bit a type of weapon able to do explode it"},
        {(BYTE *) 0x3C, 'L', "Unknown4"},
        {(BYTE *) 0x26, 'S', "First Animation Index"},
        {NULL,0,NULL}};

        // NON AGGIUNGER MAI ALL'INIZIO MA SOLO IN FONDO
StrAdrMemory VetItemMemory[] = {{(BYTE *) 0x0, 'L', "Height Floor below the item"},
        {(BYTE *) 0x4, 'L', "Contact Flags ($2400 = damage lara on touching)"},
        {(BYTE *) 0x8, 'L', "Visible Mesh Flags (each mesh a different bit)"},
        {(BYTE *) 0xC, 'S', "Slot Id (number of slot)"},
        {(BYTE *) 0xE, 'S', "State Id Now"},
        {(BYTE *) 0x10, 'S', "State Id Next"},
        {(BYTE *) 0x12, 'S', "Unknown (Pheraps accelleration on falling)"},
        {(BYTE *) 0x14, 'S', "Animation Now (Number of current animation)"},
        {(BYTE *) 0x16, 'S', "Frame Now (warning it's an abs value)"},
        {(BYTE *) 0x18, 'S', "Room (Room where is the item)"},
        {(BYTE *) 0x1E, 'S', "Speed in horizontal movements"},
        {(BYTE *) 0x20, 'S', "Speed vertical movements or underwater"},
        {(BYTE *) 0x22, 'S', "HP (Current life level. $C000 = unkillable)"},
        {(BYTE *) 0x26, 'S', "Unknown Countdown (Some counter, not yet discovered)"},
        {(BYTE *) 0x28, 'S', "Object buttons. Five buttons + invisible button"},
        {(BYTE *) 0x29, 'B', "Custom Flags (Different flags in according with object type)"},
        {(BYTE *) 0x2A, 'S', "Unknown (Used when enemy shot a granade = $c210)"},
        {(BYTE *) 0x2C, 'S', "OCB Code (The value you typed in OCB of this item)"},
        {(BYTE *) 0x2E, 'B', "Unknown (Sprite1 Id)"},
        {(BYTE *) 0x2F, 'B', "Unknown (Sprite2 Id)"},
        {(BYTE *) 0x30, 'S', "Transparence level (0 = opaque / 126 transparent / over 127 removes item)"},
        {(BYTE *) 0x34, 'S', "Custom_A (Different usage in according with type of item)"},
        {(BYTE *) 0x36, 'S', "Custom_B (Different usage in according with type of item)"},
        {(BYTE *) 0x38, 'S', "Custom_C (Different usage in according with type of item)"},
        {(BYTE *) 0x3A, 'S', "Custom_D (Different usage in according with type of item)"},
        {(BYTE *) 0x40, 'L', "Position X"},
        {(BYTE *) 0x44, 'L', "Position Y"},
        {(BYTE *) 0x48, 'L', "Position Z"},
        {(BYTE *) 0x4C, 'S', "Facing Vertical"},
        {(BYTE *) 0x4E, 'S', "Facing Horizontal"},
        {(BYTE *) 0x50, 'S', "Facing Rotation (Only for Lara)"},
        {(BYTE *) 0x52, 'L', "Unknown (Light_A)"},
        {(BYTE *) 0x56, 'L', "Unknown (Light_B)"},
        {(BYTE *) 0x5A, 'L', "Unknown (Light_C)"},
        {(BYTE *) 0x5E, 'L', "Unknown (Light_D)"},
        {(BYTE *) 0x62, 'L', "Unknown (Light_E)"},
        {(BYTE *) 0x66, 'L', "Unknown (Light_F)"},
        {(BYTE *) 0x6A, 'L', "Unknown (Light_G)"},
        {(BYTE *) 0x6E, 'L', "Unknown (Light_H)"},
        {(BYTE *) 0x15EA, 'L', "Flags of Item"},
        {NULL,0,NULL}};
        // NON AGGIUNGER MAI ALL'INIZIO MA SOLO IN FONDO
StrAdrMemory VetMemoryAnimation[] = {
        {(BYTE *) 0x4, 'B', "Frame Rate"},
        {(BYTE *) 0x5, 'B', "Frame Size"},
        {(BYTE *) 0x6, 'S', "State Id"},
        {(BYTE *) 0x8, 'S', "Unknown1"},
        {(BYTE *) 0xA, 'S', "Speed"},
        {(BYTE *) 0xC, 'S', "Low Accelleration"},
        {(BYTE *) 0xE, 'S', "High Accelleration"},
        {(BYTE *) 0x10, 'S', "Unknown2"},
        {(BYTE *) 0x12, 'S', "Next Speed"},
        {(BYTE *) 0x14, 'S', "Next Low Acceleration"},
        {(BYTE *) 0x16, 'S', "Next High Acceleration"},
        {(BYTE *) 0x18, 'S', "First absolute Frame index"},
        {(BYTE *) 0x1A, 'S', "Last absolute Frame index"},
        {(BYTE *) 0x1C, 'S', "Next Animation index"},
        {(BYTE *) 0x1e, 'S', "Next Frame index"},
        {(BYTE *) 0x20, 'S', "Number of State Changes"},
        {(BYTE *) 0x22, 'S', "Absolute Index of first State Change"},
        {(BYTE *) 0x24, 'S', "Number of Animation Commands"},
        {(BYTE *) 0x26, 'S', "Absolute Index of first AnimCommand"},
        {NULL,0,NULL}};
        // NON AGGIUNGER MAI ALL'INIZIO MA SOLO IN FONDO
StrAdrMemory VetMemorySavegame[] = {
        {(BYTE *) &GlobTomb4.IndiceItemCondizione, 'S', "TRNG Index. Index of last item found with testposition or condition"},
        {(BYTE *) &GlobTomb4.IndiceItemAnimCommand, 'S', "TRNG Index. Index of moveable performing last AnimComand"},
        {(BYTE *) &GlobTomb4.IndiceItemSelected, 'S', "TRNG Index. Item Index for Selected Item Memory" },
        {(BYTE *) 0x80DEC0, 'S', "Lara. Item Index of Lara"},
        {(BYTE *) 0x80DEC2, 'S', "Lara. Hands. Attached Lara Status"},
        {(BYTE *) 0x80DEC4, 'S', "Lara. Hands. Item in the Hands of Lara (Current)"},
        {(BYTE *) 0x80DEC6, 'S', "Lara. Hands. Item in the Hands of Lara (Following"},
        {(BYTE *) 0x80DEC8, 'S', "Lara. Current Weapon (not necessarly in the hand)"},
        {(BYTE *) 0x80DECC, 'S', "Lara. Environment where lara is. (ground, underwater ecc,)"},
        {(BYTE *) 0x80DECE, 'S', "Lara. Test. Climb sector Test (=1 yes; =0 no)"},
        {(BYTE *) 0x80DED6, 'S', "Lara. Air for Lara (0 - 1800)"},
        {(BYTE *) 0x80DEDA, 'S', "System. Disable special keys (15 disable inventory pause f5)"},
        {(BYTE *) 0x80DEE6, 'S', "Lara. Hands. Remaining time with lighted flare in the hand"},
        {(BYTE *) 0x80DEEA, 'S', "WeaponAnim. Index of fake item with animations for current weapon (only big weapons)"},
        {(BYTE *) 0x80DEEC, 'S', "Lara. Weapon on the back of Lara"},
        {(BYTE *) 0x80DEF0, 'S', "Lara. Poison1  (giant scorpion = 2048)"},
        {(BYTE *) 0x80DEF2, 'S', "Lara. Poison2"},
        {(BYTE *) 0x80DF04, 'B', "Lara. Special Status of Lara"},
        {(BYTE *) 0x80DF05, 'B', "Lara. Special2 Status of Lara"},
        {(BYTE *) 0x80DF5A, 'L', "System. Item Memory address of enemy aimed by Lara"},
        {(BYTE *) 0x80DF7A, 'S', "Lara. Test. Throw out item from the Hands (1 = lara is throwing out item)"},
        {(BYTE *) 0x80DF82, 'S', "Lara. Test. Lara has a flare in the and (1 = yes)"},
        {(BYTE *) 0x80DF8C, 'S', "Lara. Test. Lara is placing the weapon on the back (1 = yes)"},
        {(BYTE *) 0x80DFAA, 'S', "Lara. Rope. Speed sliding on the rope"},
        {(BYTE *) 0x80DFBC, 'L', "Lara. Test. Lara is on rope (different than -1 lara is on the rope)"},
        {(BYTE *) 0x80DFD2, 'B', "Inventory. Pistols Mask."},
        {(BYTE *) 0x80DFD3, 'B', "Inventory. UZI Mask"},
        {(BYTE *) 0x80DFD4, 'B', "Inventory. Shotgun"},
        {(BYTE *) 0x80DFD5, 'B', "Inventory. CrowBow"},
        {(BYTE *) 0x80DFD6, 'B', "Inventory. Greanade-Gun"},
        {(BYTE *) 0x80DFD7, 'B', "Inventory. Revolver"},
        {(BYTE *) 0x80DFD8, 'B', "Inventory. Laser Sight"},
        {(BYTE *) 0x80DFD9, 'B', "Inventory. Binocular (1= present)"},
        {(BYTE *) 0x80DFDA, 'B', "Inventory. Crow Bar (1= present)"},
        {(BYTE *) 0x80DFDB, 'B', "Inventory. Mechanical Scarab (1=full item; 2=key;4=only scarab)"},
        {(BYTE *) 0x80DFDC, 'B', "Inventory. Little Skin Bag"},
        {(BYTE *) 0x80DFDD, 'B', "Inventory. Big Skin Bag"},
        {(BYTE *) 0x80DFDE, 'B', "Inventory. Examine Item 1"},
        {(BYTE *) 0x80DFDF, 'B', "Inventory. Examine Item 2"},
        {(BYTE *) 0x80DFE0, 'B', "Inventory. Examine Item 3"},
        {(BYTE *) 0x80DFE1, 'B', "Inventory. Puzzle Item 1"},
        {(BYTE *) 0x80DFE2, 'B', "Inventory. Puzzle Item 2"},
        {(BYTE *) 0x80DFE3, 'B', "Inventory. Puzzle Item 3"},
        {(BYTE *) 0x80DFE4, 'B', "Inventory. Puzzle Item 4"},
        {(BYTE *) 0x80DFE5, 'B', "Inventory. Puzzle Item 5"},
        {(BYTE *) 0x80DFE6, 'B', "Inventory. Puzzle Item 6"},
        {(BYTE *) 0x80DFE7, 'B', "Inventory. Puzzle Item 7"},
        {(BYTE *) 0x80DFE8, 'B', "Inventory. Puzzle Item 8"},
        {(BYTE *) 0x80DFE9, 'B', "Inventory. Puzzle Item 9"},
        {(BYTE *) 0x80DFEA, 'B', "Inventory. Puzzle Item 10"},
        {(BYTE *) 0x80DFEB, 'B', "Inventory. Puzzle item 11"},
        {(BYTE *) 0x80DFEC, 'B', "Inventory. Puzzle Item 12"},
        {(BYTE *) 0x80DFED, 'B', "Inventory. Combo items  1 - 4"},
        {(BYTE *) 0x80DFEE, 'B', "Inventory. Combo item 5 - 8"},
        {(BYTE *) 0x80DFEF, 'B', "Inventory. Keys 1 - 8"},
        {(BYTE *) 0x80DFF0, 'B', "Inventory. Keys 9 - 12"},
        {(BYTE *) 0x80DFF3, 'B', "Inventory. Pickup Items 1 - 8"},
        {(BYTE *) 0x80DFF7, 'B', "Inventory. Quest items 1-8"},
        {(BYTE *) 0x80DFF9, 'S', "Inventory. Small medikit"},
        {(BYTE *) 0x80DFFB, 'S', "Inventory. Large Medikit"},
        {(BYTE *) 0x80DFFD, 'S', "Inventory. Flares"},
        {(BYTE *) 0x80DFFF, 'S', "Inventory. Ammo Pistol"},
        {(BYTE *) 0x80E001, 'S', "Inventory. Ammo UZI"},
        {(BYTE *) 0x80E003, 'S', "Inventory. Ammo revolver"},
        {(BYTE *) 0x80E005, 'S', "Inventory. Ammo Normal Shotgun"},
        {(BYTE *) 0x80E007, 'S', "Inventory. Ammo Wide-shot Shotgun"},
        {(BYTE *) 0x80E009, 'S', "Inventory. Ammo Normal Grenade"},
        {(BYTE *) 0x80E00B, 'S', "Inventory. Ammo Super Grenade"},
        {(BYTE *) 0x80E00D, 'S', "Inventory. Ammo Flash Grenade"},
        {(BYTE *) 0x80E00F, 'S', "Inventory. Ammo Normal CrossBow"},
        {(BYTE *) 0x80E011, 'S', "Inventory. Ammo Poisoned CrossBow"},
        {(BYTE *) 0x80E013, 'S', "Inventory. Ammo Explosive CrossBow"},
        {(BYTE *) 0x80E015, 'S', "Inventory. Remaining usage of Mechanical Scarab"},
        {(BYTE *) 0x7F7730, 'B', "System. Number of current Level"},
        {(BYTE *) 0x7F7732, 'L', "System. Core Game Timer (one unit = 1/30 of second)"},
        {(BYTE *) 0x7F7736, 'L', "Statistics. Distance"},
        {(BYTE *) 0x7F773A, 'S', "Statistics. Used Ammos"},
        {(BYTE *) 0x7F7744, 'B', "Statistics. Secrets"},
        {(BYTE *) 0x7F7745, 'B', "Statistics. Used MediPacks"},
        {(BYTE *) 0x7F7746, 'L', "System. Screen Timer (Increased only when it is different than 0)"},
        {(BYTE *) 0x7F7756, 'S', "Statistics. Killed Enemies"},
        {(BYTE *) 0x7F7764, 'L', "System. Fog Bulb Color"},
        {(BYTE *) 0x7F7768, 'B', "System. Auto-Aiming for Enemy"},
        {(BYTE *) 0x4AC05C, 'L', "System. Unknown (Item chosen from Inventory?"},
        {(BYTE *) &GlobTomb4.IndiceSlotSelected, 'S', "TRNG Index. Slot Index for Selected Slot Memory"},
        {(BYTE *) &GlobTomb4.IndiceAnimationSelected, 'S', "TRNG Index. Animation Index for Selected Animation Memory"},
        {(BYTE *) &GlobTomb4.BaseOrganizer.CounterGame, 'L', "TRNG Organizer Timer. (Increased always in game but not in inventory and pause)"},
        {(BYTE *) &GlobTomb4.IndiceItemUsedByLara, 'S', "TRNG Index. Index of last item used by Lara"},
        {(BYTE *) 0x80DF88, 'S', "WeaponAnim. Current frame of weapon animation"},
        {(BYTE *) 0x80DF8A, 'S', "WeaponAnim. Current animation of weapon animation."},
        {(BYTE *) 0x80DF76, 'S', "WeaponAnim. Current frame of torch-flare animation"},
        {(BYTE *) 0x80DF78, 'S', "WeaponAnim. Current animation of torch-flare animation"},
        {(BYTE *) 0x80DF7A, 'S', "WeaponAnim. Current state id of extra lara slots. (Weapons and torch)"},
        {(BYTE *) &GlobTomb4.IndiceItemAttivaTrigger, 'S', "TRNG Index. Index of last item to have enabled a trigger"},
        {NULL, 0, NULL}};       
        // NON AGGIUNGER MAI ALL'INIZIO MA SOLO IN FONDO
StrAdrMemory VetMemoryInventory[] = {
        {(BYTE*) 0x00 , 'S', "Slot of Mesh to show in Inventory"},
        {(BYTE*) 0x02 , 'S', "Top Border in 2d plane. (Negative numbers move up the item)"},
        {(BYTE*) 0x04 , 'S', "Distance of Cam. {Little values bigger items and vice-versa)"},
        {(BYTE*) 0x06 , 'S', "X Facing about the cam view on X Axis"},
        {(BYTE*) 0x08 , 'S', "Y Facing about the cam view on Y Axis"},
        {(BYTE*) 0x0A , 'S', "Z Facing about the cam view on Z Axis"},
        {(BYTE*) 0x0C , 'S', "View Flags. (2 = turn endless, $4000 = usable?)"},
        {(BYTE*) 0x0E , 'S', "String index of Name"},
        {(BYTE*) 0x10 , 'L', "Unknown. (It may be only 1 or -1)"},
        {(BYTE*) 0xFF , 'S', "Type Flags. (4 = USE, 32 = EXAMINE, $1000 = LOAD ect)"},
        {NULL, 0, NULL}};


AkyV 28-12-13 12:17

Quote:

Originally Posted by Paolone (Post 6968523)
Oh, well, I just read some page of your tutorial about "hidden triggers", it's really an awesome work. :eek:

Thank you! - By the way:
- I also had a "pre-tutorial" about memory zones, here:

http://www.skribblerz.com/tuts/ngle/...emoryzones.htm

("Hidden triggers" contain only the "useful" fields.)
- I'd like to update the hidden triggers tutorial just after you finished 1.2.2.7, because there are some new memory zone things in it.
The update (the new contents+the link for the "old one" on the Skribblerz) will be here, on TRF, because Skribblerz materia will not be updated any more. (Decision of Skribblerz host.)

Quote:

About the chance to modify so many descriptions of memory variables I've the problem of time and the wideness of your work get it yet more complicated.
So I could do that work for next (a bit far) 1.2.2.8 version, after I had studied all your tutorial.
Or, since you have all in your mind about it, you could modify now description of critical variabile you discovered.
You are free to say "no", of course.
No problemo. :D
You may try your own new name list, and I'll do another one (I suppose there are at least a few months till 1.2.2.8, so there will be time enough), and then you can decide in the lists, entry by entry, which entry looks better for the given task. - Please skip it now, ignore it for TRNG 1.2.2.7. It is a too serious work.
-----------------------------
Maybe my combinations are not the best, there would be a bit more work with some of them. - For example:

- Custom Flags, Item Memory Zone field: I say 0, 1, 62, 63 can have different functions in Condition Combination1. That sounds lame. With other conditions, it could be narrowed somehow, so eg. 63 could have only one function.
- Flags of Item, Item Memory Zone field. Lots of great values disturb each other here. That must be solved somehow.
- Flags of Item field and Custom_B field both have values for horsemen. maybe the properties of those two fields should be merged somehow for a better customization for the horsemen.
- Etc.

----------------------------------
I saw some of your TRNG triggers are based on memory zone fields. Independently of the new entry names, this gave me two ideas, for future developments:

Idea#1:
Controlling combinations from NG Center.
The combinations in Hidden Triggers are very different, so possibly each combination could have its own panel in NG Center (or Script command?), eg. with these basic boxes (fields):
FieldName, ChosenCombination, ChosenVariable, ChosenValue - and complex combinations can have other boxes/fields, too.

Note:
Don't forget, I said above: perhaps combinations in the tutorial are not the best, you may re-define them.

Idea#2:
Splitting combinations, merging combinations, adding "older" TRNG triggers to them can cause several new, variable-free actions/flipeffects, Script commands, OCB codes.

For me, Idea#2 looks more user-fiendly, I would choose that, though perhaps that needs the more work.

However, Idea#2 list in Hungarian is done yet in my PC. (I tried to remove some "the combinations are not the best" problems.) I will translate it into English, and then I'll try to transform it into Idea#1 mode. Then I'll send both Idea#1 and #2 lists to you.
- But I need one month' time or more.

(I mentioned several bugs in the descriptions in Hidden Triggers tutorial. I hope you could fix them somehow.)

Paolone 28-12-13 21:03

Quote:

Originally Posted by AkyV (Post 6968918)
However, Idea#2 list in Hungarian is done yet in my PC. (I tried to remove some "the combinations are not the best" problems.) I will translate it into English, and then I'll try to transform it into Idea#1 mode. Then I'll send both Idea#1 and #2 lists to you.[/B] - But I need one month' time or more.

(I mentioned several bugs in the descriptions in Hidden Triggers tutorial. I hope you could fix them somehow.)

Really I hoped you can do it. ;)
I understand that there these new good ideas about combinations ect, anyway I thought you can change some description of memory zone (using source I pasted).
Anyway if this work requires to much time, we can postpone this matter to next 1.2.2.8 version.
By the way, with next version the plugin will allow to you add byself many new skills and perhaps also new triggers to support advanced combinations :)

AkyV 29-12-13 12:01

Quote:

Originally Posted by Paolone (Post 6969105)
anyway I thought you can change some description of memory zone (using source I pasted).
Anyway if this work requires to much time, we can postpone this matter to next 1.2.2.8 version.

You know, what... I'll try to "re-arrange my resources" (freetime...) and do it in a week, for 1.2.2.7! :D

Quote:

By the way, with next version the plugin will allow to you add byself many new skills and perhaps also new triggers to support advanced combinations :)
Wow, that's cool, so you say I (the common user who perhaps has good TRNG-scripting skills) will be able to turn even variable/memory zone features into common TRNG features?
(In that case, I save some time for both of us, and leave those lists now.)
So eg. you say, when I try this combination:

Adjust (X) object "A" property to (Y)
(where X is Item Memory Zone subject, Y is a value of a variable/memory zone field),

then I will able to turn it into a variable/memory-zone free ACTION trigger:

Adjust (#) object "A" property to (E)
(where # and E are Set Trigger Type window values) - so I don't need to use the "well-known" variables? (I think it is an important thing. I mean, if you say E value must be defined "in the background" eg. in Local Byte Alfa1, that means I "engaged" something that the user maybe also use in his setup, so I may say "if you use "Adjust (#) object "A" property to (E)", then you can't use Local Byte Alfa1". - Or am I wrong?) (I don't need a complex explanation, I bet I will get it later in 1228 readme/tutorial. I am just curious a bit...)
---------------------
Another question:
Theoretically, can these new, user-made features be anything? - I mean:

- new ACTION, FLIPEFFECT, CONDITION triggers
- enhancement of old ACTION, FLIPEFFECT, CONDITION triggers
- new OCB codes
- enhancement of old OCB codes
- new Script commands plus their constants
- technically enhancement (i.e. "how it works") of old Script commands
- new Script constants for old Script commands (including GT globaltrigger conditions)
- enhancement of old Script constants
- new functions for Room Editor
- enhancement of Room Editor old functions
- new functions for NG Center (help txt's, tools etc.)
- enhancement of NG Center old functions
- new functions in other programs (eg. MapConverter2)
- enhancement of other programs
- enhancement of WADMerger-related things (eg. new object slots)
- new programs to support TRNG

Naturally, that is not a nice thing if we just re-edit something that somebody else made (see: "enhancements"), but we won't discuss in this post how it should work. And how all the new features will be connected to each other. And how they won't disturb each other. Later. :D

Paolone 29-12-13 13:51

Quote:

Originally Posted by AkyV (Post 6969364)
You know, what... I'll try to "re-arrange my resources" (freetime...) and do it in a week, for 1.2.2.7! :D

Wow, wonderful, I thank you! :jmp:
I've already completed the updates for last 1.2.2.7 release (the "z", of course) so now I'll wait you completed that work and so finally we'll have the final 1.2.2.7 version. :D

Quote:

Wow, that's cool, so you say I (the common user who perhaps has good TRNG-scripting skills) will be able to turn even variable/memory zone features into common TRNG features?
Sure, and about you I'm super-secure. ;)
Quote:

(In that case, I save some time for both of us, and leave those lists now.)
So eg. you say, when I try this combination:

Adjust (X) object "A" property to (Y)
(where X is Item Memory Zone subject, Y is a value of a variable/memory zone field),

then I will able to turn it into a variable/memory-zone free ACTION trigger:

Adjust (#) object "A" property to (E)
(where # and E are Set Trigger Type window values) - so I don't need to use the "well-known" variables? (I think it is an important thing. I mean, if you say E value must be defined "in the background" eg. in Local Byte Alfa1, that means I "engaged" something that the user maybe also use in his setup, so I may say "if you use "Adjust (#) object "A" property to (E)", then you can't use Local Byte Alfa1". - Or am I wrong?) (I don't need a complex explanation, I bet I will get it later in 1228 readme/tutorial. I am just curious a bit...)
I'll do a tutorial and a trng reference manual, of course.
Anyway as a a little preview I can say this.
Variables (a,b,c ect) are only a little set of memory you can handle, then in your plugin you'll be able to manage unlimited quantity of memory variable with a faster access.
About memory zones it's very alike but in this case the critical zones have the limit of zone used in tomb4 engine. Anyway for sure the inventory, memory, savegame and code variables are only very little part of all critical zones you'll be able to change to get new skills or customizations.

Quote:

Another question:
Theoretically, can these new, user-made features be anything? - I mean:

- new ACTION, FLIPEFFECT, CONDITION triggers
- enhancement of old ACTION, FLIPEFFECT, CONDITION triggers
- new OCB codes
- enhancement of old OCB codes
- new Script commands plus their constants
- technically enhancement (i.e. "how it works") of old Script commands
- new Script constants for old Script commands (including GT globaltrigger conditions)
- enhancement of old Script constants
- new functions for Room Editor
- enhancement of Room Editor old functions
- new functions for NG Center (help txt's, tools etc.)
- enhancement of NG Center old functions
- new functions in other programs (eg. MapConverter2)
- enhancement of other programs
- enhancement of WADMerger-related things (eg. new object slots)
- new programs to support TRNG

Naturally, that is not a nice thing if we just re-edit something that somebody else made (see: "enhancements"), but we won't discuss in this post how it should work. And how all the new features will be connected to each other. And how they won't disturb each other. Later. :D
Oh, well this is a very articolare question. :D
It should be too long now explain every details anyway the 1.2.2.8 release will be the first release to support plugin but it will be not the only and unique.
Probably I'll do other release to improve capability of plugin keeping backward compatibiliy.
With first release (1.2.2.8) it will be possible:

- Create new action, flipeffect, triggers
- Adding new code to old above triggers
- Replacing fully code of old triggers
- Adding new script command, although in this case we'll use a little trick. Since it should be complicated manage many new script commands and syntax from many authors of plugins (with conflict issues) the trick will be use the already present script commands Customize= and Parameters= where all plugin's creator will be able to create new CUST_ and PARAM_ constants for their targets.
Since above two commands change their syntax in according with first value (CUST_ or PARAM_) in this way, pratically, you can have new script commands with wished syntax and new constants (also for flags ect).
- About improvements it will be possible, although in first release it will be available only limited part of code. These parts (source code) will be increased in the time. This limitation is given by fact that to use original code of trng in plugin it requires I did some conversion to it before using it as exported code for plugin.
Anyway I'll try to supply from first release a wide quantity of code to modify for improvement.
Then, in the case you no need of original code (to modifiy) but you wish change from scratch, you'll be able to improve all trng features but in this case it will be own a new work rather an improvement.

About limitations, in first release there will be few or nothing chance to change room editor, since the work to allow this multi-access to tomb4 program is very complicated and I concentrated my concentration on that, and before repeating same work on ngle.exe I'll need of other time. So probably in following versions (1.2.2.9 ?) it will be possible also change the ngle.exe program with same plugins method.

About ng_center, threre will be new plugin panel, where level builder will be able to add new plugin, customize it, launching external (optional) program supplied by plugin ect.

Perhaps I've not remembered all, anyway there will be a lot of possibilities. :)

AkyV 31-12-13 13:15

Here is the list:

http://www.mediafire.com/view/ntdc2c...ield_names.doc

----------------
- You should examine F339. I don't think this trigger works so I cannot use conditions for Inventory Memory Zone fields or print them etc. (Moreover, my experience: if you use (some fields of) this trigger and Lara collides with the objects then the game will crash.)
- Probably it's time to start making TRNG Win8-compatible (I can't help with it, I don't have Win8):

http://www.tombraiderforums.com/show...postcount=1411

Paolone 01-01-14 14:47

Quote:

Originally Posted by AkyV (Post 6970594)

Many thanks, now I can complete 1.2.2.7 finally! ;)

Quote:

- You should examine F339. I don't think this trigger works so I cannot use conditions for Inventory Memory Zone fields or print them etc. (Moreover, my experience: if you use (some fields of) this trigger and Lara collides with the objects then the game will crash.)
Ok I'll check it. Anyway it should be useful to know about what field does happen a crash.
Quote:

- Probably it's time to start making TRNG Win8-compatible (I can't help with it, I don't have Win8):

http://www.tombraiderforums.com/show...postcount=1411
[/quote]
Unfortunately I have not win8, too.
Anyway I'll try to get it.
About those signalations I wonder if they used new emergency setting in setup window.
Because I belive to know the reason of those troubles and they are about the approach has windows8 about some directx functions.
Anyway in that situations should be enough enabling "No waiting for refresh" in emergency setting.
It should be interesting if someone had windows8 tried to play some of those problematic level with 1.2.2.7 realease, enabling that setting.

AkyV 01-01-14 18:40

Quote:

Originally Posted by Paolone (Post 6971229)
Ok I'll check it. Anyway it should be useful to know about what field does happen a crash.

Unfortunately it was an old test, I don't remember the fields...
But I'm sure the whole trigger was useless to export values into variables.

AkyV 03-01-14 21:36

TRNG 1.2.2.7y test

1. DGX_ANIMATION for Lara has been changed. If I have an Animation command with negative animation ID, then the Diagnostics always print a standard message:
Animation0=no

2. C92
Sorry, I must say it still works only in GlobalTriggers, not detecting HEAVY F118 placed in the map (F118: C92+executable trigger).

3.
WeaponAnim. Current animation of torch-flare animation
Old name hasn’t been changed.

4. TRNG Index. Index of last item to have enabled a trigger
I suppose the description is wrong. I mean, eg. when I activated an ANIMATING (moving forwards by its own animation) to activate a HEAVY a bit later, then the condition became true when the ANIMATING got active, so before the object activated that HEAVY.

5.
„Script Dat. Option Flags (Use bit operations to read or write)"
If title is disabled, then the value is always 0. So maybe does not 4 mean “title”?
Btw you’re right, only 1 and 2 can be forced.
---------------------------------------
Two questions about GT_CREATED_NEW_ITEM:
1. I'd like to use a "dumb" GlobalTrigger, without TriggerGroups, for example:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, -1, -1

Why? Because if I got an item like that I want to keep only the item index, I don't want to do anything with the item now.
What I will want to do is this TriggerGroup#5:
$5000+TGROUP_USE_FOUND_ITEM_INDEX, 887, $724
to move the flare continuously up/down. But BEFORE activating that TriggerGroup, the flare Lara just dropped starts jumping continuously.

By the way, the same problem will happen, if I modify the GT:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, 5, -1

2. TGROUP_USE_FOUND_ITEM_INDEX could be dangerous, if I want to do something with that flare dropped but some other condition defines some other found index before that, so the trigger with TGROUP_USE_FOUND_ITEM_INDEX will do something else.
So I thought I can use this GlobalTrigger:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, -1, -1

And, after that a "set found index as a stored index" trigger could be useful, so I can use a TGROUP_USE_STORED_ITEM_INDEX in the trigger, to use the proper ID.

Paolone 04-01-14 14:23

Quote:

Originally Posted by AkyV (Post 6972735)
TRNG 1.2.2.7y test

1. DGX_ANIMATION for Lara has been changed. If I have an Animation command with negative animation ID, then the Diagnostics always print a standard message:
Animation0=no

2. C92
Sorry, I must say it still works only in GlobalTriggers, not detecting HEAVY F118 placed in the map (F118: C92+executable trigger).

3.
WeaponAnim. Current animation of torch-flare animation
Old name hasn’t been changed.

Ok, thanks, I'll check them.
Quote:

4. TRNG Index. Index of last item to have enabled a trigger
I suppose the description is wrong. I mean, eg. when I activated an ANIMATING (moving forwards by its own animation) to activate a HEAVY a bit later, then the condition became true when the ANIMATING got active, so before the object activated that HEAVY.
That index is the index of moveable that enabled the heavy trigger that called a triggergroup where you check that variable "last item to have enabled heavy trigger". Other usages could not work.

Pratically, this index value should be used immediately because it will change and it will be cleared for each new frame.
How I said in last history, you should use it immediately in the triggergroup enabled own from an heavy trigger to discover what enemy did it.
Anyaway, if you wish use later that index you should copy it in some variable:

; Set Trigger Type - FLIPEFFECT 244
; Exporting: TRIGGER(23888:0) for FLIPEFFECT(244)
; <#> : Variables. Memory. Copy to <&>Numeric Variable the (E)Savegame Memory value
; <&> : Local Short Alfa1
; (E) : TRNG Index. Index of last item to have enabled a trigger (Short)
; Values to add in script command: $2000, 244, $5D50

And then, when you'll use it really, copy the value you had saved (in our example in "local short alfa1"), to the "TRNG Index. Index of last item found with testposition or condition " savegame memory:

; Set Trigger Type - FLIPEFFECT 245
; Exporting: TRIGGER(80:0) for FLIPEFFECT(245)
; <#> : Variables. Memory. Copy from <&>Numeric Variable to (E)Savegame Memory
; <&> : Local Short Alfa1
; (E) : TRNG Index. Index of last item found with testposition or condition (Short)
; Values to add in script command: $2000, 245, $50
5

Now in following triggers of your triggergroup you'll be able to use that index adding the .TGROUP_USE_FOUND_ITEM_INDEX flag to exported trigger.

Quote:

„Script Dat. Option Flags (Use bit operations to read or write)"
If title is disabled, then the value is always 0. So maybe does not 4 mean “title”?
I had said that, in fact. ;)
1 FlyCheat
2 LoadSave
4 Title
8 PlayAnyLevel
128 DemoDisk

If title is enabled, so it is present the value is 4, otherwise it will be 0 (for that bit value)
Quote:

Two questions about GT_CREATED_NEW_ITEM:
1. I'd like to use a "dumb" GlobalTrigger, without TriggerGroups, for example:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, -1, -1

Why? Because if I got an item like that I want to keep only the item index, I don't want to do anything with the item now.
What I will want to do is this TriggerGroup#5:
$5000+TGROUP_USE_FOUND_ITEM_INDEX, 887, $724
to move the flare continuously up/down. But BEFORE activating that TriggerGroup, the flare Lara just dropped starts jumping continuously.

By the way, the same problem will happen, if I modify the GT:

GlobalTrigger= 1, -1, GT_CREATED_NEW_ITEM, FLARE_ITEM, -1, 5, -1

2. TGROUP_USE_FOUND_ITEM_INDEX could be dangerous, if I want to do something with that flare dropped but some other condition defines some other found index before that, so the trigger with TGROUP_USE_FOUND_ITEM_INDEX will do something else.
So I thought I can use this GlobalTrigger:
About this question I believe the solution was the same I suggested above: store that index to some variable. And the restore it to "trng index. Last item found..." when you'll wish use it.

AODfan 20-01-14 21:47

1.2.2.7

FSS_TRANSPARENT seems to render the sprite invisible

raiderromero 20-01-14 22:55

^ i use that flag in my custom sprites and works like a charm ,you need to assign an id color so that it doesnt be invisible in game ;)

AODfan 21-01-14 13:33

^that actually worked thanks!
It used to work without having to assign a colour to it though :confused:

raiderromero 21-01-14 21:34

yes it used to, i had not color id assigned to it before either in 1.2.2.6 but something changed since 1.2.2.7

igor32 20-04-14 00:19

Could someone test this?

Code:

AddEffect= 84, ADD_LIGHT_GLOVE,FADD_CONTINUE_EMIT, JOINT_RIGHT_WRIST, 0, 0, 0, 30, 0, 16, 0, MIST_COL_YELLOW
AddEffect= 85, ADD_LIGHT_GLOVE,FADD_CONTINUE_EMIT, JOINT_LEFT_WRIST, 0, 0, 0, 30, 0, 16, 0, MIST_COL_YELLOW

For me they are not displaying at her hand, but at her shoulder and head

http://i.imgur.com/3Jbawmr.png

A_De 05-05-14 08:00

One of my friends who isn't registered here asked me for help with his trouble. After he updated TRNG to v. 1.2.2.7 he sometimes gets this in game:

http://cs608225.vk.me/v608225567/8678/wgGbslNOh_8.jpg

This is the horizontal strip which jerks and distorts the screen. So the issue is how to get rid of this. Game is running on Win7. Please help.

@Titak: well, if this is not a bug I'll go to general thread.

Titak 05-05-14 09:15

@ the above two posters:
Questions/issues like this should be posted in a seperate thread or in the general questions thread.
This is for bug reporting only.

tomb2player 17-05-14 20:59

I discovered couple of bugs:

1. When Lara is floating on the water surface, there is no flare sound ( default sound sample name " crysmash " )

2. When Lara is diving underwater, there is no sound when we are in save or load game menu and moving up or down through the savegame list. The same is with " Pause Menu " when we are pushing " Exit to Title " - sound is missing. Normally when Lara is outside water all mentioned sounds are working properly. As far as i know, there is no way to attach sound samples to Main Menu and all others... or maybe i am wrong? If there was this possibility, it could be easy to fix, because i think it's related to missing sample attachement...

3. When we set music or just silence in inventory, 2 sounds of big and small medipack are missing ( medi_fix and lara_no ). When i remove this feature from script, everything starts working.

4. Font ( standard game font which for example can be edited with Liekkuri ) is a little bit wider in save and load game menu, and in controller menu ( where we can attach keys to Lara's moves ) This problem was in TR4 as well, but not in TR5 as i saw.

bagas 31-05-14 12:55

I discovered a bug that causes me trouble at animation scripting
It seems that the ENV_CLIMB_WALL commands didn't work with a ceiling climbable block (you know, when you decrease the elevation of the ceiling for like 8 clicks) and make it climbable by clicking the green "climb box" in LE.
Maybe we can add ENV_CLIMB_CEILING_BLOCK in the next update ? :o

I don't know if it's just me.
But if you want, I can send you my animations to test it :o

Joey79100 25-07-14 14:32

May I ask something?
It's not a bug, but a kind of request for the next update or later...
Could NG Center make a temporary copy of the script files (in a subfolder of the corresponding script folder) when we start it, so it works on the temp files and save them only when we click on Build or Save?
And also ask confirmation when we quit NG Center if we want to save changes or not... It could avoid a lot of problems when for example the PC crashes, or we make accidentally a change on an include file for example... Because for no, as soon as we quit the onclude file, it's saved automatically.

Oh, also, when we switch from the script/an include file to an include file/the script, the zoom is lost automatically. Same when we open NG Center. (I mean the zoom with Ctrl and the mouse wheel)

That's all, thank you if you do that. :)

tomb2player 28-07-14 16:24

When i reached a big number of sound samples in one level ( don't know exactly how many, didn't counted ) a strange bugs appeared. While playing level Lara was completely invisible, but i could still walk, shoot and normally play. Second bug - when Lara was close to switch which activated door - game crashed to windows with TRNG error report. I didn't do more tests, maybe there are more bugs according to reaching this limit. Anyway, after deleting some unused sound samples in sounds.txt list, bugs disappeared :) . I don't know if this has to do with number of lines ( sound slots ) in sounds.txt, or is it related to number of sound files.

Joey79100 28-07-14 21:58

Lara being completely invisible isn't related to the sounds. I don't think. It appears at random times, I already got this bug, I remember Rouge also got it... All you have to do is to make at least slight modifications in your level and convert it again, and she will reappear. That's what I do at least everytime it happens. :)

Caesum 30-08-14 23:44

I discovered a bug while testing elevators. It happens on both 1.2.2.6 and 1.2.2.7 version. Every level which has a working elevator in it will crash if you disable sound in setup window.

Tested with my own level, Paolone's demo and Mists of Avalon. It happens in all of them.

-Roli- 31-08-14 22:25

Another limitation, unfortunately. :( :

When you're making a Von Croy level, and would like to activate the little cutscenes, then you have to type this into the [Options]:

NewSoundEngine= DISABLED

It's a shame. Hopefully it could be fixed somehow in the future. :o


All times are GMT. The time now is 10:08.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Tomb Raider Forums is not owned or operated by CDE Entertainment Ltd.
Lara Croft and Tomb Raider are trademarks of CDE Entertainment Ltd.