Woo boy alright. Maybe making this harder in my head. Guess I'll dive in and see if I can make it all make sense. xD Thanks.
Timers are no more complicated than a stopwatch. I'm sure you can figure it out with some trial and error.
Anyway, I want to throw out a few notes, hopefully this isn't too much to digest at once. These may not apply to your situation!
If you use a Timer
array then make sure to set it's Initial Size to the highest Player Number in your map. You can go with 24 to be safe (representing up to Player 24). You would do this inside of the Variable Editor when you create the Variable (It MUST be done there). This rule only applies to Unit Group, Player Group, and Timer arrays, as they need special treatment due to their complexity.
An
Array is an option that you can enable when you create a Variable. This option converts your Variable into a Variable
Array, which gives it [ ] brackets after it's name. You'll notice that you can type an Integer inside of these brackets. This Integer is known as the Index of the Array and must be a number between 0 and 32,768. Each Index can store it's own value, so a single Variable Array can hold up to 32,768 different values. If you ever catch yourself creating what feels like way too many Variables, you're probably making a mistake and should be using Arrays!
If you're confused, just think of the Array as a way to turn a single variable into many, and it works much like a grocery list where you number the different items on the list -> 1: Apples, 2: Chicken, 3: Milk, etc...
This Array design is very useful and will make your life far easier once you get the hang of it. For instance, if you have data that is shared between multiple Players then you can use Arrays to make that data easier to manage. In this example I am using a player's Number as the Index of an Array Variable to keep track of the player's score (let's just say that in my map I want to award players extra score points for completing certain tasks):
-
Actions
-

Set Variable Player_Score[1] = 100
-

Set Variable Player_Score[2] = 250
-

Set Variable Player_Score[6] = 50
^ I gave Player 1 a score of 100, Player 2 a score of 250, and Player 6 a score of 50. You can change the Player_Score variable to be any kind of variable type, this is just an example.
-
Events
-

Unit - A unit dies
-
Conditions
-
Actions
-

Set Variable PN = (Player number of (Owner of (Killing unit)))
-

Set Variable Player_Score[PN] = Player_Score[PN] + 10
^ Then here's an example of how I can interact with and adjust the Player_Score array. In this case I'm increasing it by 10 whenever a Player kills a unit. Note how this trigger doesn't need to know who specifically killed a unit in order to work. Instead, it's completely generic and will work for any number of players. One trigger and one variable get the job done all thanks to Arrays!