Tutorial Different Water Tinting in Different Areas

Accname

2D-Graphics enthusiast
Reaction score
1,462
Hi mates, this is my first turtorial. I thought i will give it a try and write one my own.
Features:
-Changes the tinting colour of water ingame if a players camera point of view is inside a specific region
-Tinting colour change is for local player
-Multi-Player useable
-GUI (with custom script lines)
-Leaksless (of course)
-No desyncs (as far as i know!)

Maybe you know this problem, you are creating a big map, for example an RPG and you create a stunning terrain and then, the water does just look crappy.
If you set the water tinting colour to blue it wont fit to the first region and if you set it to green it wont fit to the second. You thought you've got a big problem?
NO
Here's the turtorial you are looking for!

First of all, create some rects around the different water areas on your map.
A region where you want green water, a region for red, etc...

Now, create 2 variables, they are all you need:
A Player variable (no array needed) called TempPlayer in my trigger
and a Point variable (no array needed) called TempPoint in my trigger.

Finally we create our trigger, at the end it should look like this:
Code:
WaterTintingColour
    Events
        Time - Every 0.01 seconds of game time [COLOR="Lime"](The time could also be changed to 0.02 ~ 0.06 to decrease laggs)[/COLOR]
    Conditions
    Actions
        For each (Integer A) from 1 to 12, do (Actions) [COLOR="Lime"](This will work for 12 players, if you got less change the second value)[/COLOR]
            Loop - Actions
                Set [B]TempPlayer[/B] = (Player((Integer A)))
                Custom script: if GetLocalPlayer() == udg_TempPlayer then [COLOR="Lime"](This custom script is used to get the local player, that means it will do the next actions ONLY at one players computer)[/COLOR]
                Set [B]TempPoint[/B] = (Target of current camera view)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (X of TempPoint) Greater than or equal to (Min X of WaterBlue <gen>)
                                (Y of TempPoint) Greater than or equal to (Min Y of WaterBlue <gen>)
                                (X of TempPoint) Less than or equal to (Max X of WaterBlue <gen>)
                                (Y of TempPoint) Less than or equal to (Max Y of WaterBlue <gen>)
                                [COLOR="Lime"](This is the region of blue water, if the view point of the local players camera is inside the region (the 4 conditions) the water tinting colour will be set to blue for the local player)[/COLOR]
                    Then - Actions
                        Environment - Change water tinting color to (0.00%, 0.00%, 100.00%) with 0.00% transparency
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (X of TempPoint) Greater than or equal to (Min X of WaterGreen <gen>)
                                (Y of TempPoint) Greater than or equal to (Min Y of WaterGreen <gen>)
                                (X of TempPoint) Less than or equal to (Max X of WaterGreen <gen>)
                                (Y of TempPoint) Less than or equal to (Max Y of WaterGreen <gen>)
                    Then - Actions
                        Environment - Change water tinting color to (0.00%, 100.00%, 0.00%) with 0.00% transparency
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (X of TempPoint) Greater than or equal to (Min X of WaterRed <gen>)
                                (Y of TempPoint) Greater than or equal to (Min Y of WaterRed <gen>)
                                (X of TempPoint) Less than or equal to (Max X of WaterRed <gen>)
                                (Y of TempPoint) Less than or equal to (Max Y of WaterRed <gen>)
                    Then - Actions
                        Environment - Change water tinting color to (100.00%, 0.00%, 0.00%) with 0.00% transparency
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        And - All (Conditions) are true
                            Conditions
                                (X of TempPoint) Greater than or equal to (Min X of WaterYellow <gen>)
                                (Y of TempPoint) Greater than or equal to (Min Y of WaterYellow <gen>)
                                (X of TempPoint) Less than or equal to (Max X of WaterYellow <gen>)
                                (Y of TempPoint) Less than or equal to (Max Y of WaterYellow <gen>)
                    Then - Actions
                        Environment - Change water tinting color to (100.00%, 85.00%, 0.00%) with 0.00% transparency
                    Else - Actions
                Custom script: endif

This trigger is working for 4 regions in my map, one got blue water, one got yellow, one got red and the last got green. whenever a player's camera view point is inside one of these regions the water tinting colour for this player will change. of course the water will be changed on the whole map for him, but the player wont notice it because if he switches his point of view the water colour will change immediately.

Note:
-dont forget the endif!
-if a region aint got a square form (what will surely happen) just create many different regions around it and add the conditions into the if action
-this trigger is using GetLocalPlayer so be carefull which actions you add by yourself, it may cause desyncs
-If you want to know some colour codes you may visit this site: Click!

Well check out the attached test map and go around with your camera to see how the water colour is changing.


If you like it leave comments, suggestions and maybe some REP.
Accname.

Edit:Theres a similar system to this in Jass, if someone likes Jass more as GUI systems use this: System by Builder Bob
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top