Okay. Here we go:
1. Make a graphic. White (#FFFFFF), about 30 pixels by 30 pixels.
2. Create a folder titled "timer" and place the timer folder in your game's pictures folder. Place the white graphic in the timer folder.
3. Begin a new animation. Call it "timer". Add the timer graphic. Duplicate it 5 times. Mark the first and loop the last. Standard animation. No collision sphere. Don't move the placement of the white graphic. You're not done with this, but let's let it go for now.
4. Make globals: sec; minute; you can continue with hours, days, months, etc. but that's not what you're doing right now. So let's just stay with gb_sec and gb_minute.
5. Now make a series of events:
5a. "manawarrior"
conditional (match all): if Magic = or > than 50
if Magic < 100
if true, add 1 Magic
if false, do nothing.
5b. "manamage"
conditional (match all): if Magic = or > than 30
if Magic < 100
if true, add 1 Magic
if false, do nothing.
5c. "manajobs"
conditional: if job = warrior
if true, call event manawarrior
if false, do nothing
conditional: if job = mage
if true, call event manamage
if false, do nothing
5d. "minute"
change global: set gb_sec to 0
change global : add 1 to gb_minute
5e. "second"
conditional: if gb_minute = 60
if true, set gb_minute to 0
if false, do nothing
change global: add 1 to gb_second
conditional (match all): if gb_minute = 43
if gb_sec = 5
if true, call event "manajobs"
if false, do nothing
(You can make this happen more times than once an hour. Just add as many conditionals as you want but change the gb_minute.)
6. Back to the timer animation: In any spot, add an event: "second.cet"
7. Place the timer animation in ALL of your maps. I put it in the location window under initializing event. I used stamp control with the timer at 1,1.
Hope this helps and that I didn't forget anything.