You'll have to create a new global array, something like new shieldsLeft[MAXPLAYERS + 1]
. Then somewhere reasonable (CheckItems, MakeNotBoss, something like that) assign however many shield hits you want to everyone.
Then change this bit of code
to the following:
if(shield[client] && shieldsLeft[client] && damage)
RemoveShield(client, attacker, position);
And finally, make sure to reset shieldsLeft
to 0 at the end of each round (or beginning).