You'll need to create three local variables: health, shields, and regeneration timer. Knocking off the health and shields is simple enough: just check to see whether or not the player has any shields remaining. If they do, then -1 the shields, if not (shields=0), then -1 the health.
To do the shield regeneration, set the regen timer to gain 1 every second or whatever you want, and then create a new timer that raises the shields by 1 every few seconds, but only if the regen timer's value is greater than a certain amount, say 5. When the player gets hit, you reset the regen timer to 0, forcing it to count up to 5 again before the shields start to regenerate every 2 seconds.
Make sense? I hope so, it's kind of late for me here.
I've made a simple capx to show you: here