Health for zombie game isn't working.

I have posted a question about this before and I hope someone can help. script 1 is attached to a FirstPersonCharacter for attacking the enemy, 2 is attached to an enemy for his AI, and 3 isfor the enemy to take damage from script nimber 1. The scripts with problems are 1. Player heath for the player and 2, player damage for the enemy.

Melee attack script;
#pragma strict

var TheDamage : int = 50;
var Distance : float;
var MaxDistance : float = 3;

function Update ()
{
	if (Input.GetButtonDown("Fire1")) {
		var Hit : RaycastHit;
		if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), Hit));
		{
			Distance = Hit.distance;
			if (Distance <= MaxDistance)
			{
				Hit.transform.SendMessage("ApplyDamage", TheDamage, SendMessageOptions.DontRequireReceiver);
			}
		}
	}
}

for the enemy AI;
using UnityEngine;
using System.Collections;

public class chase : MonoBehaviour {

	public Transform player;
	public Transform head;
	static Animator anim;
	bool pursuing = false;

	void Start ()
	{
		anim = GetComponent<Animator>();
	}

	void Update ()
	{
		Vector3 direction = player.position - this.transform.position;
		direction.y = 0;

		float angle = Vector3.Angle (direction, head.up);

		if (Vector3.Distance (player.position, this.transform.position) < 1000 && (angle < 120 || pursuing)) {

			pursuing = true;
			this.transform.rotation = Quaternion.Slerp (this.transform.rotation, Quaternion.LookRotation (direction), 50);

			anim.SetBool ("IsIdle", false);
			if (direction.magnitude > 2) {
				this.transform.Translate (0, 0, Time.deltaTime * 3f);
				anim.SetBool ("IsWalking", true);
				anim.SetBool ("IsAttacking", false);
			} else {
				anim.SetBool ("IsAttacking", true);
				anim.SetBool ("IsWalking", false);
			}
		} else {
			anim.SetBool ("IsIdle", true);
			anim.SetBool ("IsAttacking", false);
			anim.SetBool ("IsWalking", false);
			pursuing = false;
		}
		

	}
}

and for enemy damage;

#pragma strict

var Health = 100;

function Update ()
{
	if(Health <= 0) 
	{
		Dead();
	}
}

function ApplyDamage (TheDamage : int)
{
	Health -= TheDamage;

}
function Dead()
{
	Destroy (gameObject);
}

for the scripts that are disfunctional;

for the damage;

var Damage : int = 10;
var MaxDistance : int = 3;
var Target : GameObject;
var TargetDistance : float;
var Slash : RaycastHit;

function Update () {
	TargetDistance = Slash.distance;
	if(TargetDistance <= 3) {
        if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), Slash)) {
            if (TargetDistance <= MaxDistance) {
          	    Slash.transform.SendMessage("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
    	    }
   	    }
    }
}

and, finally, for the player health;
import UnityEngine.UI;

var Player : GameObject;
var CurrentHealth : int;
var MaxHealth : int = 100;
var HealthBar : Slider;

function Start () {
	CurrentHealth = MaxHealth;
	HealthBar.value = CurrentHealth;
}

function Update () {
	if(CurrentHealth > 100) {
		CurrentHealth = 100;
	}
	if(CurrentHealth <= 0) {
		GetComponent.<Animation>().Play("DeathAnimation");
		Destroy(gameObject);
	}
}

function ApplyDamage (Damage : int) {
    CurrentHealth -= Damage;
}

Please help me fix this. There are no errors but the scripts don’t work as they should.

In your last script where you are using slider to display the player health, it is not updating with time as you have assigned that only once in the Start() method.
Start method is called only once but the Update() method is called every frame so it is not updating with time.
So write that piece of code in the Update() function.

function Update(){
HealthBar.value=CurrentHealth;
}