Here are some triggers to get you started:
-
Map Setup
-
Events
-
Time - Elapsed game time is 0.00 seconds
-
Conditions
-
Actions
-
Environment - Create at (Playable map area) the weather effect <Snow>
-
Set GlobalSnow = (Last created weather effect)
-
Environment - Turn GlobalSnow on
-
Chat Command
-
Events
-
Player - Player 1 (Red) types a chat message containing -weather snow as A substring
-
Player - Player 2 (Blue) types a chat message containing -weather snow as A substring
-
Player - Player 3 (Teal) types a chat message containing -weather snow as A substring
-
... etc... for all players
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) Else do (Else actions)
-
If - Conditions
-
(Substring((Entered Chat String), 15, 17)) Equal to on
-
Then - Actions
-
Custom script: if GetLocalPlayer() == GetTriggerPlayer() then
-
Environment - Turn GlobalSnow on
-
Custom script: endif
-
Else - Actions
-
If (All conditions are true) then do (Then Actions) Else do (Else Actions)
-
If - Conditions
-
(Substring((Entered Chat String), 15, 18)) Equal to off
-
Then - Actions
-
Custom script: if GetLocalPlayer() == GetTriggerPlayer() then
-
Environment - Turn GlobalSnow off
-
Custom script: endif
-
Else - Actions
Something like that. First, I setup the snow weather effect when the game starts, and I assign it to a weather effect variable "GlobalSnow". In the command trigger, I register when the player types "-weather snow" somewhere in their chat string. To check the follow-up command, I use the Substring function to grab the part of the command I care about. I only care to handle "-weather snow
on" or "-weather snow
off", so I can directly check if the part after "snow" is equal to "on" or "off" (index 15 to 17 for "on" or index 15 to 18 for "off").
The custom script is used so that only the player who typed the chat message will have the weather turned on or off. If you are interested in using this function for other things, check out the link in my signature. GetLocalPlayer() can lead to disconnects when used improperly, but it is fine in this case since you are just showing/hiding a visual effect.