Well, first of all the writing part and the vision part are completely different. Lets start off with the writing. What you need to do is first of all
make an event,
Player - Player 1 (Red) types a chat message containing -Vision as A substring
Keep doing it with all the players you have.
Now you need to make a condition, to make sure that -vision is the first letters in what the player wrote.
(Substring((Entered chat string), 1, 7)) Equal to -vision
What we did was acctually checking that all the letters at the chat string the player entered from 1 to 7 were -vision.
Now it gets tricky. lets say now the player needs to write the number of the player he wants to see, so what you need to do is convert the string into the player, like that:
Player - Make (Triggering player) treat (Player((Integer((Substring((Entered chat string), 9, (Length of (Entered chat string)))))))) as an Ally(?) with shared vision
Now this needs some further explanation. First of all, we cause the player who wrote the string, to treat another player as an Ally/Neutral/Enemy with shared vision. Now how was the player chosen? We convert the player to index Conversion - Convert player index to player
And then we convert the number to a string, as seen before substring of the entered chat string, but this time from letter 9 to the end of the string. And you got it!
So now if a player writes
he will get the vision of player 1.
Realize this works with numbers.
Also realize the condition is just
"-vision" for 1 to 7.
If it's "-vision " for 1 to 7 it will not work.
Another way to do it is if you wanted to extend functionality..
Have an If then that checks the string for like 9 to string length "player name" or "player color"
That dude, Tom Boyd, is really upset about the backlash from his "it's your fault you're freezing" thing because he claims he resigned before saying it, so it wasn't like he said it in his official capacity or anything.