Tomb Raider Forums  

Go Back   Tomb Raider Forums > Tomb Raider Level Editor and Modding > Tomb Raider Level Editor > Tutorials and Resources

Closed Thread
 
Thread Tools
Old 01-12-13, 22:35   #1
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default TRNG - Water prints on camera lens

Made by TRNG 1.2.2.7v beta

In this tutorial I will show you how you can show water prints on the camera.

Water prints are:

- The remains of raindrops (or snowflakes) on random positions of the camera lens. They will be “wiped down” sooner or later (by the wind etc.), either in rainy/snowy rooms or in other rooms.

http://www.mediafire.com/view/7izwta...g/raindrop.jpg

The sprite I used as a raindrop (snowflake) on the camera lens. This is CUSTOM_SPRITES Texture0 this time.

- When Lara comes over the water surface from the deep water, then water stripes will splash on the camera, and then they will flow down on the lens at once.

http://www.mediafire.com/view/iahodr...watermarks.jpg

The sprite I used as a water stripe flowing down on the camera lens. This is CUSTOM_SPRITES Texture1 this time.

Yeah, I know, my sprites are ugly. But, hey, it is just a tutorial…


THE PARTS OF THE SETUP IN THE SCRIPT:

1. Rain and snow statuses:

Code:
Rain= RAIN_SINGLE_ROOMS
Snow= SNOW_SINGLE_ROOM
So never use the rain or the snow in “all outside” mode, because we want to use the “outside” status as a condition for something else. (See below.)

2. The position of the raindrops:
This setup uses 10 positions on the screen (but feel free to use more than 10 positions if you want):

Code:
ColorRGB= 1, 255, 255, 255
Parameters= PARAM_SHOW_SPRITE, 1, FSS_TRANSPARENT, 100, 200, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 2, FSS_TRANSPARENT, 300, 400, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 3, FSS_TRANSPARENT, 400, 500, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 4, FSS_TRANSPARENT, 600, 700, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 5, FSS_TRANSPARENT, 800, 900, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 6, FSS_TRANSPARENT, 100, 900, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 7, FSS_TRANSPARENT, 100, 400, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 8, FSS_TRANSPARENT, 800, 100, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 9, FSS_TRANSPARENT, 800, 300, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 10, FSS_TRANSPARENT, 700, 200, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
As you see, each position has its own Parameters= PARAM_SHOW_SPRITE Script command. The only difference between the entries is the X and Y coordinates of the position – which are marked in red.
So it is you who define the coordinate positions, in the Parameters commands – and the game will choose randomly in which position the next raindrop will be put on the lens. – It looks this way if all the 10 positions are just used:

http://www.mediafire.com/view/rnqu8n.../raindrops.jpg

3. Defining the time to put a raindrop on the screen:

GlobalTrigger#101 can put a raindrop on the screen in one of these situations:

- If Lara is in a rainy room:

; Set Trigger Type - CONDITION 81
; Exporting: CONDITION(81:0) for PARAMETER(11)
; <#> : Rain room
; <&> : Lara. Room. Lara is in the <#>room type
; (E) :
; Values to add in script command: $8000, 11, $51


- Or if Lara is in a snowy room:

; Set Trigger Type - CONDITION 81
; Exporting: CONDITION(81:0) for PARAMETER(10)
; <#> : Snow room
; <&> : Lara. Room. Lara is in the <#>room type
; (E) :
; Values to add in script command: $8000, 10, $51


- Or if Lara is in a special situation defined in TriggerGroup #1013:

; Set Trigger Type - CONDITION 15
; Exporting: CONDITION(15:0) for PARAMETER(1013)
; <#> : TriggerGroup= 1013
; <&> : Multiple condition of <#>TriggerGroup script command
; (E) :
; Values to add in script command: $8000, 1013, $F


That “special situation” means

- if Lara is in a waist-deep water or
- if she is floating/swimming on water surface,

then she is never in a rainy/snowy room, though the room above the water surface could be a rainy/snowy room – and that’s why the raindrops (snowflakes) must be seen on the camera lens.
So we need distinguish the water rooms with water surfaces from each other:

- “A” type water rooms don’t have a rainy/snowy room above the water surface.
- “B” type water rooms have a rainy/snowy room above the water surface.

We will use “outside” room status to distinguish “A” and “B” type water rooms from each other:

- “A” type rooms don’t have Button O pushed down.
- “B” type rooms have Button O pushed down.

So “B” type water rooms have both “Water” and “Outside” statuses. Fortunately, water rooms with “outside” flag don’t have any “wind”, that’s why Lara’s hair won’t do strange movements in these rooms. – I.e. “outside” for “B” rooms is used only as a technical flag to adjust those rooms as “water rooms with water surfaces below rainy/snowy rooms”.

So this is what TriggerGroup#1013 contains for a true condition:

- If Lara is in an “outside” room:

; Set Trigger Type - CONDITION 81
; Exporting: CONDITION(81:0) for PARAMETER(5)
; <#> : Outside room
; <&> : Lara. Room. Lara is in the <#>room type
; (E) :
; Values to add in script command: $8000, 5, $51


- And if Lara is in a water room:

; Set Trigger Type - CONDITION 81
; Exporting: CONDITION(81:0) for PARAMETER(0)
; <#> : Water room
; <&> : Lara. Room. Lara is in the <#>room type
; (E) :
; Values to add in script command: $8000, 0, $51


- And if Lara is doing one of these important movements in that outside+water room: StateID65 (for wading), StateID6 or 7 (for turning), StateID21 or 22 (for sidestepping), StateID16 (fore stepping backwards), the well-known standing animation (Animation#103) or being on water surface:

; Set Trigger Type - CONDITION 31
; Exporting: CONDITION(31:0) for PARAMETER(65)
; <#> : State-Id= 65
; <&> : Lara. (State-Id) Lara is in <#>State-id
; (E) :
; Values to add in script command: $8000, 65, $1F

; Set Trigger Type - CONDITION 30
; Exporting: CONDITION(30:0) for PARAMETER(103)
; <#> : Animation= 103
; <&> : Lara. (Animation) Lara is performing <#>animation
; (E) :
; Values to add in script command: $8000, 103, $1E

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


So if Lara is in a rainy/snowy room or in that “special situation”, then the GlobalTrigger will generate a random number in Local Byte Alfa1 (LBA1) variable, between 0 and 20:

; Set Trigger Type - FLIPEFFECT 303
; Exporting: TRIGGER(5184:62) for FLIPEFFECT(303)
; <#> : Variables. Numeric. Generate in <&>Numeric Variable the (E)random number
; <&> : Local Byte Alfa1
; (E) : Random Number between 0 and 20
; Values to add in script command: $2000, 303, $1440


As you will see below, if LBA1=1 then a raindrop (snowflake) will be put on the screen. – So if Lara is in rain/snow then the chance is 1 in 21 (0, 1, 2… 20) to put a new water print of a raindrop (snowflake) on the screen at the actual frame of the game. (Because each GlobalTrigger will examine its condition at each frame of the game.)

If Lara leaves the rainy/snowy part of the level and LBA1 is just 1 then we don’t want to put a raindrop on the screen, that’s why we will always turn LBA1 into 0 in those cases:

; Set Trigger Type - FLIPEFFECT 232
; Exporting: TRIGGER(64:62) for FLIPEFFECT(232)
; <#> : Variables. Numeric. Set <&>Variable with (E)value
; <&> : Local Byte Alfa1
; (E) : Value 0
; Values to add in script command: $2000, 232, $40

Code:
GlobalTrigger= 101, IGNORE, GT_CONDITION_GROUP, IGNORE, 1001, 1002, 1003
TriggerGroup= 1001, $8000, 11, $51, $8000+TGROUP_OR, 10, $51, $8000+TGROUP_OR, 1013, $F
TriggerGroup= 1002, $2000, 303, $1440
TriggerGroup= 1003, $2000, 232, $40
TriggerGroup= 1013, $8000, 5, $51, $8000, 0, $51, $8000, 65, $1F, >
$8000+TGROUP_OR, 6, $1F, $8000+TGROUP_OR, 7, $1F, $8000+TGROUP_OR, 21, $1F, $8000+TGROUP_OR, 22, $1F, >
$8000+TGROUP_OR, 16, $1F, $8000+TGROUP_OR, 103, $1E, $8000+TGROUP_OR, 2, $5
4. Defining a position to put a raindrop on the screen:

So GlobalTrigger#102 will examine if LBA1 is 1 or not:

; Set Trigger Type - CONDITION 43
; Exporting: CONDITION(43:60) for PARAMETER(64)
; <#> : Local Byte Alfa1
; <&> : Variables. The <#>Numeric Variable is = than (E)Value
; (E) : Value= 1
; Values to add in script command: $8000, 64, $12B


If it is true then a value will be generated between 0 and 10 in Local Byte Alfa2 (LBA2) variable:

; Set Trigger Type - FLIPEFFECT 303
; Exporting: TRIGGER(2625:60) for FLIPEFFECT(303)
; <#> : Variables. Numeric. Generate in <&>Numeric Variable the (E)random number
; <&> : Local Byte Alfa2
; (E) : Random Number between 0 and 10
; Values to add in script command: $2000, 303, $A41


As you will see below, 1, 2… 10 values in LBA2 means which Parameters= PARAM_SHOW_SPRITE will be used for the position of the raindrop. – I.e. 0 is a newer random thing in the setup: if LBA2 is 0 now then no raindrop will be put on the lens, though LBA1 is 1.
That’s why LBA2 will be turned into 0 if Lara is in no rain/snow, not to put any raindrop any more on the screen:

; Set Trigger Type - FLIPEFFECT 232
; Exporting: TRIGGER(65:60) for FLIPEFFECT(232)
; <#> : Variables. Numeric. Set <&>Variable with (E)value
; <&> : Local Byte Alfa2
; (E) : Value 0
; Values to add in script command: $2000, 232, $41


Code:
GlobalTrigger= 102, IGNORE, GT_CONDITION_GROUP, IGNORE, 1004, 1005, 1006
TriggerGroup= 1004, $8000, 64, $12B
TriggerGroup= 1005, $2000, 303, $A41
TriggerGroup= 1006, $2000, 232, $41
Naturally you will see nothing if the game will use a just used position. Eg. if LBA2 is 8 and you can just see a raindrop in Position#8 then nothing will change on the screen if the game will put another raindrop in Position#8 now.

5. Put a raindrop on the screen:

Each GlobalTrigger will control a given position to put a raindrop there.
So eg. GlobalTrigger#1 will examine if LBA2 is 1 or not:

; Set Trigger Type - CONDITION 43
; Exporting: CONDITION(43:60) for PARAMETER(65)
; <#> : Local Byte Alfa2
; <&> : Variables. The <#>Numeric Variable is = than (E)Value
; (E) : Value= 1
; Values to add in script command: $8000, 65, $12B


If it is, then Position#1 (i.e. Parameters= PARAM_SHOW_SPRITE, 1) will be used to put a raindrop there:

; Set Trigger Type - FLIPEFFECT 357
; Exporting: TRIGGER(1:60) for FLIPEFFECT(357)
; <#> : Sprite. Show sprite with data in <&>Parameters for (E)Durate
; <&> : Parameters=PARAM_SHOW_SPRITE, 1
; (E) : Forever (use other action/effect to disable it)
; Values to add in script command: $2000, 357, $1


Code:
GlobalTrigger= 1, IGNORE, GT_CONDITION_GROUP, IGNORE, 1, 2, IGNORE
TriggerGroup= 1, $8000, 65, $12B
TriggerGroup= 2, $2000, 357, $1
GlobalTrigger= 2, IGNORE, GT_CONDITION_GROUP, IGNORE, 3, 4, IGNORE
TriggerGroup= 3, $8000, 65, $22B
TriggerGroup= 4, $2000, 357, $2
GlobalTrigger= 3, IGNORE, GT_CONDITION_GROUP, IGNORE, 5, 6, IGNORE
TriggerGroup= 5, $8000, 65, $32B
TriggerGroup= 6, $2000, 357, $3
GlobalTrigger= 4, IGNORE, GT_CONDITION_GROUP, IGNORE, 7, 8, IGNORE
TriggerGroup= 7, $8000, 65, $42B
TriggerGroup= 8, $2000, 357, $4
GlobalTrigger= 5, IGNORE, GT_CONDITION_GROUP, IGNORE, 9, 10, IGNORE
TriggerGroup= 9, $8000, 65, $52B
TriggerGroup= 10, $2000, 357, $5
GlobalTrigger= 6, IGNORE, GT_CONDITION_GROUP, IGNORE, 11, 12, IGNORE
TriggerGroup= 11, $8000, 65, $62B
TriggerGroup= 12, $2000, 357, $6
GlobalTrigger= 7, IGNORE, GT_CONDITION_GROUP, IGNORE, 13, 14, IGNORE
TriggerGroup= 13, $8000, 65, $72B
TriggerGroup= 14, $2000, 357, $7
GlobalTrigger= 8, IGNORE, GT_CONDITION_GROUP, IGNORE, 15, 16, IGNORE
TriggerGroup= 15, $8000, 65, $82B
TriggerGroup= 16, $2000, 357, $8
GlobalTrigger= 9, IGNORE, GT_CONDITION_GROUP, IGNORE, 17, 18, IGNORE
TriggerGroup= 17, $8000, 65, $92B
TriggerGroup= 18, $2000, 357, $9
GlobalTrigger= 10, IGNORE, GT_CONDITION_GROUP, IGNORE, 19, 20, IGNORE
TriggerGroup= 19, $8000, 65, $A2B
TriggerGroup= 20, $2000, 357, $A
6. Defining the time to remove a raindrop off the screen:

GlobalTrigger#103 will always generate a value in Local Byte Alfa3 (LBA3) variable:

; Set Trigger Type - FLIPEFFECT 303
; Exporting: TRIGGER(5186:60) for FLIPEFFECT(303)
; <#> : Variables. Numeric. Generate in <&>Numeric Variable the (E)random number
; <&> : Local Byte Alfa3
; (E) : Random Number between 0 and 20
; Values to add in script command: $2000, 303, $1442


As you will see below, if LBA3=1 then a raindrop will be removed off the screen. – So if Lara is in rain/snow then the chance is 1 in 21 (0, 1, 2… 20) to remove a raindrop off the screen at the actual frame of the game. (Because each GlobalTrigger will examine its condition at each frame of the game.)

Code:
GlobalTrigger= 103, IGNORE, GT_ALWAYS, IGNORE, IGNORE, 1007, IGNORE
TriggerGroup= 1007, $2000, 303, $1442
7. Defining a position to remove a raindrop off the screen:

So GlobalTrigger#104 will examine if LBA3 is 1 or not:

; Set Trigger Type - CONDITION 43
; Exporting: CONDITION(43:60) for PARAMETER(66)
; <#> : Local Byte Alfa3
; <&> : Variables. The <#>Numeric Variable is = than (E)Value
; (E) : Value= 1
; Values to add in script command: $8000, 66, $12B


If it is true then a value will be generated between 0 and 10 in Local Byte Alfa4 (LBA4) variable:

; Set Trigger Type - FLIPEFFECT 303
; Exporting: TRIGGER(2627:60) for FLIPEFFECT(303)
; <#> : Variables. Numeric. Generate in <&>Numeric Variable the (E)random number
; <&> : Local Byte Alfa4
; (E) : Random Number between 0 and 10
; Values to add in script command: $2000, 303, $A43


As you will see below, 1, 2… 10 values in LBA4 means which Parameters= PARAM_SHOW_SPRITE will be used for the position of the raindrop. – I.e. 0 is a newer random thing in the setup: if LBA4 is 0 now then no raindrop will be removed off the lens, though LBA3 is 1.

Code:
GlobalTrigger= 104, IGNORE, GT_CONDITION_GROUP, IGNORE, 1008, 1009, IGNORE
TriggerGroup= 1008, $8000, 66, $12B
TriggerGroup= 1009, $2000, 303, $A43
8. Remove a raindrop off the screen:

Each GlobalTrigger will control a given position to remove the raindrop there. – Either Lara is in a rainy/snowy room or anywhere else.
So eg. GlobalTrigger#11 will examine if LBA4 is 1 or not:

; Set Trigger Type - CONDITION 43
; Exporting: CONDITION(43:60) for PARAMETER(67)
; <#> : Local Byte Alfa4
; <&> : Variables. The <#>Numeric Variable is = than (E)Value
; (E) : Value= 1
; Values to add in script command: $8000, 67, $12B


If it is, then Position#1 (i.e. Parameters= PARAM_SHOW_SPRITE, 1) will be used to remove the raindrop there:

; Set Trigger Type - FLIPEFFECT 358
; Exporting: TRIGGER(1:60) for FLIPEFFECT(358)
; <#> : Sprite. Remove from the screen the sprite with data in <&>Parameters
; <&> : Parameters=PARAM_SHOW_SPRITE, 1
; (E) :
; Values to add in script command: $2000, 358, $1


Code:
GlobalTrigger= 11, IGNORE, GT_CONDITION_GROUP, IGNORE, 21, 22, IGNORE
TriggerGroup= 21, $8000, 67, $12B
TriggerGroup= 22, $2000, 358, $1
GlobalTrigger= 12, IGNORE, GT_CONDITION_GROUP, IGNORE, 23, 24, IGNORE
TriggerGroup= 23, $8000, 67, $22B
TriggerGroup= 24, $2000, 358, $2
GlobalTrigger= 13, IGNORE, GT_CONDITION_GROUP, IGNORE, 25, 26, IGNORE
TriggerGroup= 25, $8000, 67, $32B
TriggerGroup= 26, $2000, 358, $3
GlobalTrigger= 14, IGNORE, GT_CONDITION_GROUP, IGNORE, 27, 28, IGNORE
TriggerGroup= 27, $8000, 67, $42B
TriggerGroup= 28, $2000, 358, $4
GlobalTrigger= 15, IGNORE, GT_CONDITION_GROUP, IGNORE, 29, 30, IGNORE
TriggerGroup= 29, $8000, 67, $52B
TriggerGroup= 30, $2000, 358, $5
GlobalTrigger= 16, IGNORE, GT_CONDITION_GROUP, IGNORE, 31, 32, IGNORE
TriggerGroup= 31, $8000, 67, $62B
TriggerGroup= 32, $2000, 358, $6
GlobalTrigger= 17, IGNORE, GT_CONDITION_GROUP, IGNORE, 33, 34, IGNORE
TriggerGroup= 33, $8000, 67, $72B
TriggerGroup= 34, $2000, 358, $7
GlobalTrigger= 18, IGNORE, GT_CONDITION_GROUP, IGNORE, 35, 36, IGNORE
TriggerGroup= 35, $8000, 67, $82B
TriggerGroup= 36, $2000, 358, $8
GlobalTrigger= 19, IGNORE, GT_CONDITION_GROUP, IGNORE, 37, 38, IGNORE
TriggerGroup= 37, $8000, 67, $92B
TriggerGroup= 38, $2000, 358, $9
GlobalTrigger= 20, IGNORE, GT_CONDITION_GROUP, IGNORE, 39, 40, IGNORE
TriggerGroup= 39, $8000, 67, $A2B
TriggerGroup= 40, $2000, 358, $A
9. Animations to put water stripes on the screen:

GlobalTrigger#106 will put water stripes on the screen if Lara performs one of these animations:

- Animation114: the usual “coming from deep water above the water surface” animation.
- Animation192 used in these cases:

= if Lara jumps into the waist-deep water, or
= if Lara swims from the deeper water into a waist deep water where she stands up.

; Set Trigger Type - CONDITION 30
; Exporting: CONDITION(30:0) for PARAMETER(114)
; <#> : Animation= 114
; <&> : Lara. (Animation) Lara is performing <#>animation
; (E) :
; Values to add in script command: $8000, 114, $1E


So if Lara does that then these things will happen:

- Organizer#1 starts to control the water stripes:

; Set Trigger Type - FLIPEFFECT 127
; Exporting: TRIGGER(1:0) for FLIPEFFECT(127)
; <#> : Organizer. Enable <&>Organizer
; <&> : Organizer= 1
; (E) :
; Values to add in script command: $2000, 127, $1

- TriggerGroup#1020 will be performed – see below: it will remove all the actual rain-drops off the screen. (Which is logical, because the water stripes will “re-draw” the water prints on the screen.) – This thing happens only if Lara jumps into a waist-deep water in a rainy (snowy) room:

; Set Trigger Type - FLIPEFFECT 371
; Exporting: TRIGGER(1020:0) for FLIPEFFECT(371)
; <#> : TriggerGroup. Perform <&>TriggerGroup from script.dat (Single execution to use when in Trig-gerGroup there are only com
; <&> : TriggerGroup= 1020
; (E) :
; Values to add in script command: $2000, 371, $3FC


- GlobalTrigger#101 will be disabled (see below: it will be enabled later) so the GlobalTrigger can’t put raindrops on the screen. Which is logical, because the game should not be allowed to draw water stripes and new raindrops in the same position on the screen.

; Set Trigger Type - FLIPEFFECT 109
; Exporting: TRIGGER(25856:0) for FLIPEFFECT(109)
; <#> : GlobalTriggers. <&>Enable/Disable the (E)GlobalTrigger
; <&> : Disable global trigger
; (E) : GlobalTrigger= 101
; Values to add in script command: $2000, 109, $6500


Code:
GlobalTrigger= 106, IGNORE, GT_CONDITION_GROUP, IGNORE, 1014, 1015, IGNORE
TriggerGroup= 1014, $8000, 114, $1E, $8000+TGROUP_OR, 192, $1E
TriggerGroup= 1015, $2000, 127, $1, $2000, 371, $3FC, $2000, 109, $6500
10. The position of the water stripes:

We will use nine Parameters= PARAM_SHOW_SPRITE Script commands to put three water stripes on the screen:

- The first three commands are for three water stripes next to each other, when they start flowing down. – These are the same sprite, but in different positions. (Black.)
- The second three commands are for newer three stripes. The new stripes are still the same ones, but they are extended. (Green.)
- The third three commands are for newer three stripes. The new stripes are still the same ones, but they are more extended. (Red.)

Code:
Parameters= PARAM_SHOW_SPRITE, 11, FSS_TRANSPARENT, 100, 0, 200, 300, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 12, FSS_TRANSPARENT, 400, 0, 200, 300, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 13, FSS_TRANSPARENT, 700, 0, 200, 300, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 14, FSS_TRANSPARENT, 100, 0, 200, 600, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 15, FSS_TRANSPARENT, 400, 0, 200, 600, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 16, FSS_TRANSPARENT, 700, 0, 200, 600, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 17, FSS_TRANSPARENT, 100, 0, 200, 900, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 18, FSS_TRANSPARENT, 400, 0, 200, 900, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 19, FSS_TRANSPARENT, 700, 0, 200, 900, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
http://www.mediafire.com/view/n852mk...1w/stripes.jpg

11. An Organizer will control the stripes:

So GlobalTrigger#106 started Organizer#1:

- It will put the shortest three stripes at once on the screen.
- After 1 second, the shortest stripes will be removed and the bit longer three stripes will be put on the screen.
- After another 1 second, the bit longer stripes will be removed and the longest three stripes will be put on the screen.
- After another 1 second, the longest stripes will be removed (“they have been flown off the screen”) – and GlobalTrigger#101 will be enabled again to put the raindrops on the screen.

; Set Trigger Type - FLIPEFFECT 357
; Exporting: TRIGGER(11:0) for FLIPEFFECT(357)
; <#> : Sprite. Show sprite with data in <&>Parameters for (E)Durate
; <&> : Parameters=PARAM_SHOW_SPRITE, 11
; (E) : Forever (use other action/effect to disable it)
; Values to add in script command: $2000, 357, $B

; Set Trigger Type - FLIPEFFECT 358
; Exporting: TRIGGER(11:0) for FLIPEFFECT(358)
; <#> : Sprite. Remove from the screen the sprite with data in <&>Parameters
; <&> : Parameters=PARAM_SHOW_SPRITE, 11
; (E) :
; Values to add in script command: $2000, 358, $B

; Set Trigger Type - FLIPEFFECT 109
; Exporting: TRIGGER(25857:0) for FLIPEFFECT(109)
; <#> : GlobalTriggers. <&>Enable/Disable the (E)GlobalTrigger
; <&> : Enable global trigger
; (E) : GlobalTrigger= 101
; Values to add in script command: $2000, 109, $6501


Code:
Organizer= 1, IGNORE, IGNORE, 0, 1016, 1, 1017, 1, 1018, 1, 1019
TriggerGroup= 1016, $2000, 357, $B, $2000, 357, $C, $2000, 357, $D
TriggerGroup= 1017, $2000, 358, $B, $2000, 358, $C, $2000, 358, $D, >
$2000, 357, $E, $2000, 357, $F, $2000, 357, $10
TriggerGroup= 1018, $2000, 358, $E, $2000, 358, $F, $2000, 358, $10, >
$2000, 357, $11, $2000, 357, $12, $2000, 357, $13
TriggerGroup= 1019, $2000, 358, $11, $2000, 358, $12, $2000, 358, $13, $2000, 109, $6501
12. Remove any water prints in water

There are either raindrops (snowflakes) on the screen or water stripes, those must be removed if Lara (and the camera with her) will get under the water.
So GlobalTrigger#105 will perform TriggerGroup#1012 if Lara is in deep water:

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

TriggerGroup#1012 will perform TriggerGroup#1020 and TriggerGroup#1021:

; Set Trigger Type - FLIPEFFECT 371
; Exporting: TRIGGER(1020:62) for FLIPEFFECT(371)
; <#> : TriggerGroup. Perform <&>TriggerGroup from script.dat (Single execution to use when in Trig-gerGroup there are only com
; <&> : TriggerGroup= 1020
; (E) :
; Values to add in script command: $2000, 371, $3FC


TriggerGroup#1020 will remove all the raindrops off the screen:

; Set Trigger Type - FLIPEFFECT 358
; Exporting: TRIGGER(1:62) for FLIPEFFECT(358)
; <#> : Sprite. Remove from the screen the sprite with data in <&>Parameters
; <&> : Parameters=PARAM_SHOW_SPRITE, 1
; (E) :
; Values to add in script command: $2000, 358, $1


TriggerGroup#1021 will remove all the water stripes off the screen – and will stop Organizer#1 if that is just putting stripes on the screen:

; Set Trigger Type - FLIPEFFECT 128
; Exporting: TRIGGER(1:62) for FLIPEFFECT(128)
; <#> : Organizer. Stop <&>Organizer
; <&> : Organizer= 1
; (E) :
; Values to add in script command: $2000, 128, $1

; Set Trigger Type - FLIPEFFECT 358
; Exporting: TRIGGER(11:62) for FLIPEFFECT(358)
; <#> : Sprite. Remove from the screen the sprite with data in <&>Parameters
; <&> : Parameters=PARAM_SHOW_SPRITE, 11
; (E) :
; Values to add in script command: $2000, 358, $B


Code:
GlobalTrigger= 105, IGNORE, GT_CONDITION_GROUP, IGNORE, 1011, 1012, IGNORE
TriggerGroup= 1011, $8000, 1, $5
TriggerGroup= 1012, $2000, 371, $3FC, $2000, 371, $3FD
TriggerGroup= 1020, $2000, 358, $1, $2000, 358, $2, $2000, 358, $3, $2000, 358, $4, $2000, 358, $5,>
$2000, 358, $6, $2000, 358, $7, $2000, 358, $8, $2000, 358, $9, $2000, 358, $A
TriggerGroup= 1021, $2000, 128, $1, $2000, 358, $B, $2000, 358, $C, $2000, 358, $D,>
$2000, 358, $E, $2000, 358, $F, $2000, 358, $10, >
$2000, 358, $11, $2000, 358, $12, $2000, 358, $13
Note:
If Lara jumps in waist-deep water again and again, after each other, continuously, then the previous, longer stripes has no time enough to be removed off the screen. I think it is not a problem, because a newer (shorter) stripes flowing on an older (longer) one is not illogical.

SO THIS IS THE WHOLE SETUP NOW:
For 10 raindrops and 3 water stripes:

Code:
Rain= RAIN_SINGLE_ROOMS
Snow= SNOW_SINGLE_ROOM
ColorRGB= 1, 255, 255, 255
Parameters= PARAM_SHOW_SPRITE, 1, FSS_TRANSPARENT, 100, 200, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 2, FSS_TRANSPARENT, 300, 400, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 3, FSS_TRANSPARENT, 400, 500, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 4, FSS_TRANSPARENT, 600, 700, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 5, FSS_TRANSPARENT, 800, 900, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 6, FSS_TRANSPARENT, 100, 900, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 7, FSS_TRANSPARENT, 100, 400, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 8, FSS_TRANSPARENT, 800, 100, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 9, FSS_TRANSPARENT, 800, 300, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 10, FSS_TRANSPARENT, 700, 200, 30, 30, CUSTOM_SPRITES, 0, 1, IGNORE, IGNORE, IGNORE
GlobalTrigger= 101, IGNORE, GT_CONDITION_GROUP, IGNORE, 1001, 1002, 1003
TriggerGroup= 1001, $8000, 11, $51, $8000+TGROUP_OR, 10, $51, $8000+TGROUP_OR, 1013, $F
TriggerGroup= 1002, $2000, 303, $1440
TriggerGroup= 1003, $2000, 232, $40
TriggerGroup= 1013, $8000, 5, $51, $8000, 0, $51, $8000, 65, $1F, >
$8000+TGROUP_OR, 6, $1F, $8000+TGROUP_OR, 7, $1F, $8000+TGROUP_OR, 21, $1F, $8000+TGROUP_OR, 22, $1F, >
$8000+TGROUP_OR, 16, $1F, $8000+TGROUP_OR, 103, $1E, $8000+TGROUP_OR, 2, $5
GlobalTrigger= 102, IGNORE, GT_CONDITION_GROUP, IGNORE, 1004, 1005, 1006
TriggerGroup= 1004, $8000, 64, $12B
TriggerGroup= 1005, $2000, 303, $A41
TriggerGroup= 1006, $2000, 232, $41
GlobalTrigger= 1, IGNORE, GT_CONDITION_GROUP, IGNORE, 1, 2, IGNORE
TriggerGroup= 1, $8000, 65, $12B
TriggerGroup= 2, $2000, 357, $1
GlobalTrigger= 2, IGNORE, GT_CONDITION_GROUP, IGNORE, 3, 4, IGNORE
TriggerGroup= 3, $8000, 65, $22B
TriggerGroup= 4, $2000, 357, $2
GlobalTrigger= 3, IGNORE, GT_CONDITION_GROUP, IGNORE, 5, 6, IGNORE
TriggerGroup= 5, $8000, 65, $32B
TriggerGroup= 6, $2000, 357, $3
GlobalTrigger= 4, IGNORE, GT_CONDITION_GROUP, IGNORE, 7, 8, IGNORE
TriggerGroup= 7, $8000, 65, $42B
TriggerGroup= 8, $2000, 357, $4
GlobalTrigger= 5, IGNORE, GT_CONDITION_GROUP, IGNORE, 9, 10, IGNORE
TriggerGroup= 9, $8000, 65, $52B
TriggerGroup= 10, $2000, 357, $5
GlobalTrigger= 6, IGNORE, GT_CONDITION_GROUP, IGNORE, 11, 12, IGNORE
TriggerGroup= 11, $8000, 65, $62B
TriggerGroup= 12, $2000, 357, $6
GlobalTrigger= 7, IGNORE, GT_CONDITION_GROUP, IGNORE, 13, 14, IGNORE
TriggerGroup= 13, $8000, 65, $72B
TriggerGroup= 14, $2000, 357, $7
GlobalTrigger= 8, IGNORE, GT_CONDITION_GROUP, IGNORE, 15, 16, IGNORE
TriggerGroup= 15, $8000, 65, $82B
TriggerGroup= 16, $2000, 357, $8
GlobalTrigger= 9, IGNORE, GT_CONDITION_GROUP, IGNORE, 17, 18, IGNORE
TriggerGroup= 17, $8000, 65, $92B
TriggerGroup= 18, $2000, 357, $9
GlobalTrigger= 10, IGNORE, GT_CONDITION_GROUP, IGNORE, 19, 20, IGNORE
TriggerGroup= 19, $8000, 65, $A2B
TriggerGroup= 20, $2000, 357, $A
GlobalTrigger= 103, IGNORE, GT_ALWAYS, IGNORE, IGNORE, 1007, IGNORE
TriggerGroup= 1007, $2000, 303, $1442
GlobalTrigger= 104, IGNORE, GT_CONDITION_GROUP, IGNORE, 1008, 1009, IGNORE
TriggerGroup= 1008, $8000, 66, $12B
TriggerGroup= 1009, $2000, 303, $A43
GlobalTrigger= 11, IGNORE, GT_CONDITION_GROUP, IGNORE, 21, 22, IGNORE
TriggerGroup= 21, $8000, 67, $12B
TriggerGroup= 22, $2000, 358, $1
GlobalTrigger= 12, IGNORE, GT_CONDITION_GROUP, IGNORE, 23, 24, IGNORE
TriggerGroup= 23, $8000, 67, $22B
TriggerGroup= 24, $2000, 358, $2
GlobalTrigger= 13, IGNORE, GT_CONDITION_GROUP, IGNORE, 25, 26, IGNORE
TriggerGroup= 25, $8000, 67, $32B
TriggerGroup= 26, $2000, 358, $3
GlobalTrigger= 14, IGNORE, GT_CONDITION_GROUP, IGNORE, 27, 28, IGNORE
TriggerGroup= 27, $8000, 67, $42B
TriggerGroup= 28, $2000, 358, $4
GlobalTrigger= 15, IGNORE, GT_CONDITION_GROUP, IGNORE, 29, 30, IGNORE
TriggerGroup= 29, $8000, 67, $52B
TriggerGroup= 30, $2000, 358, $5
GlobalTrigger= 16, IGNORE, GT_CONDITION_GROUP, IGNORE, 31, 32, IGNORE
TriggerGroup= 31, $8000, 67, $62B
TriggerGroup= 32, $2000, 358, $6
GlobalTrigger= 17, IGNORE, GT_CONDITION_GROUP, IGNORE, 33, 34, IGNORE
TriggerGroup= 33, $8000, 67, $72B
TriggerGroup= 34, $2000, 358, $7
GlobalTrigger= 18, IGNORE, GT_CONDITION_GROUP, IGNORE, 35, 36, IGNORE
TriggerGroup= 35, $8000, 67, $82B
TriggerGroup= 36, $2000, 358, $8
GlobalTrigger= 19, IGNORE, GT_CONDITION_GROUP, IGNORE, 37, 38, IGNORE
TriggerGroup= 37, $8000, 67, $92B
TriggerGroup= 38, $2000, 358, $9
GlobalTrigger= 20, IGNORE, GT_CONDITION_GROUP, IGNORE, 39, 40, IGNORE
TriggerGroup= 39, $8000, 67, $A2B
TriggerGroup= 40, $2000, 358, $A
GlobalTrigger= 106, IGNORE, GT_CONDITION_GROUP, IGNORE, 1014, 1015, IGNORE
TriggerGroup= 1014, $8000, 114, $1E, $8000+TGROUP_OR, 192, $1E
TriggerGroup= 1015, $2000, 127, $1, $2000, 371, $3FC, $2000, 109, $6500
Parameters= PARAM_SHOW_SPRITE, 11, FSS_TRANSPARENT, 100, 0, 200, 300, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 12, FSS_TRANSPARENT, 400, 0, 200, 300, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 13, FSS_TRANSPARENT, 700, 0, 200, 300, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 14, FSS_TRANSPARENT, 100, 0, 200, 600, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 15, FSS_TRANSPARENT, 400, 0, 200, 600, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 16, FSS_TRANSPARENT, 700, 0, 200, 600, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 17, FSS_TRANSPARENT, 100, 0, 200, 900, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 18, FSS_TRANSPARENT, 400, 0, 200, 900, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Parameters= PARAM_SHOW_SPRITE, 19, FSS_TRANSPARENT, 700, 0, 200, 900, CUSTOM_SPRITES, 1, 1, IGNORE, IGNORE, IGNORE
Organizer= 1, IGNORE, -1, 0, 1016, 1, 1017, 1, 1018, 1, 1019
TriggerGroup= 1016, $2000, 357, $B, $2000, 357, $C, $2000, 357, $D
TriggerGroup= 1017, $2000, 358, $B, $2000, 358, $C, $2000, 358, $D, >
$2000, 357, $E, $2000, 357, $F, $2000, 357, $10
TriggerGroup= 1018, $2000, 358, $E, $2000, 358, $F, $2000, 358, $10, >
$2000, 357, $11, $2000, 357, $12, $2000, 357, $13
TriggerGroup= 1019, $2000, 358, $11, $2000, 358, $12, $2000, 358, $13, $2000, 109, $6501
GlobalTrigger= 105, IGNORE, GT_CONDITION_GROUP, IGNORE, 1011, 1012, IGNORE
TriggerGroup= 1011, $8000, 1, $5
TriggerGroup= 1012, $2000, 371, $3FC, $2000, 371, $3FD
TriggerGroup= 1020, $2000, 358, $1, $2000, 358, $2, $2000, 358, $3, $2000, 358, $4, $2000, 358, $5,>
$2000, 358, $6, $2000, 358, $7, $2000, 358, $8, $2000, 358, $9, $2000, 358, $A
TriggerGroup= 1021, $2000, 128, $1, $2000, 358, $B, $2000, 358, $C, $2000, 358, $D,>
$2000, 358, $E, $2000, 358, $F, $2000, 358, $10, >
$2000, 358, $11, $2000, 358, $12, $2000, 358, $13

Last edited by AkyV; 02-12-13 at 07:19.
AkyV is offline  
Closed Thread

Thread Tools

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

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



All times are GMT. The time now is 14:29.


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.