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.
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:
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
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!)
-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