Damage over time on delay

I have this js set to make my charter take damage over time as long as its in my invisable collide but its doing 1 damage every second and I need to put it on a delay. I want it to do 5 damage every 3 seconds you are in it.

var damage: float = 15.0;
var playerStatus : Player_Status;




function OnTriggerEnter()
{
    playerStatus = GameObject.FindWithTag("Player").GetComponent(Player_Status);
}

function Update()
{
    if(playerStatus != null)
        playerStatus.ApplyDamage(damage);
}

function OnTriggerExit()
{
    playerStatus = null;
}

var damage: float = 15.0;
var playerStatus : Player_Status;
var damageDelay = 3.0;
private var lastDamage = -10.0; //Don’t touch!!

function OnTriggerEnter()
{
    playerStatus = GameObject.FindWithTag("Player").GetComponent(Player_Status);
}

function Update()
{
    if(playerStatus != null){
        if(Time.time > damageDelay+lastDamage){
            playerStatus.ApplyDamage(damage);

            lastDamage = Time.time;
        }
    }
}

function OnTriggerExit()
{
    playerStatus = null;
}

There you go, use a simple timer.

Maybe making a function doDamage and calling WaitForSeconds? As you want 5 of damage every 3 seconds you can do:

if(playerStatus != null) {

doDamage();

}

function doDamage() {

yield WaitForSeconds(damageDelay);
playerStatus.ApplyDamage(damage/3):

}

When it reachs a certain amont of damage you can turn like a bool to false to lock the doDamage function.

I’m having the same problem. I’m really bad a coding. I need help step by step how you do damage over time.
I have a character so that when on a certain object i.e platform he does 5 dmg ever 3 seconds.

I have applied the above script onto my game object(platform) and my character is tagged to “Player”. It’s still not working.
Sorry and Thanks alot.