01-12-13, 22:35 | #1 |
Moderator
Joined: Dec 2011
Posts: 4,881
|
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 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 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 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 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 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 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 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 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 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 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 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 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. |
Thread Tools | |
|
|