This is my script I use for enemy AI to move/attack. The problem here is that when I walk away from the enemy, the attack triggers and deals damage every ms it reaches 1.5. If I stand next to them, they deal no damage. I added a delay but I doubt that'll work. Can you guys help?
var Player : Transform;
var MoveSpeed = 4;
var MaxDist = 10;
var MinDist = 1.5;
var Damage = 1;
var Distance = 1.5;
var activated : boolean = true;
function Start ()
{
}
function Update ()
{
transform.LookAt(Player);
if(Vector3.Distance(transform.position,Player.position) >= MinDist)
{
transform.position += transform.forward*MoveSpeed*Time.deltaTime;
if(Vector3.Distance(transform.position,Player.position) = MaxDist)
{
var hit : RaycastHit;
if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), hit))
{
Distance = hit.distance;
if (Distance = MinDist)
{
hit.transform.SendMessage("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
{
if(activated)
{
activated = false ;
cour();
}
}
}
}
}
}
}
function cour()
{
yield waitDelay();
activated = true;
}
function waitDelay()
{
yield WaitForSeconds (100); //Here it waits 5 seconds.
}
var hitDelay : float = 0.5;
private var nextHitAllowed : float;
function OnCollisionEnter (col : Collision) {
if(col.gameObject.tag == "Player"){
if(Time.time > nextHitAllowed){
SendMessage("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
nextHitAllowed = Time.time + hitDelay;
}
}
}
on the line "distance = hit distance;
if (Distance = MinDist)"
I have it "(Distance <= MinDist)"
The forums thing wasn't properly formatting if I added a < sign, sorry.
Edit: Same with "if(Vector3.Distance(transform.position,Player.position) = MaxDist)"
The < seems to break the coding?