- Home /
zombie ai script
i put the script and attached it to my zombie but when it hits me and applys damage it stops then doesnt chase me. The Attack time starts counting up then doesn't stop please can you help me!!
 var target : Transform; //the enemy's target
 var moveSpeed = 3; //move speed
 var rotationSpeed = 3; //speed of turning
 var attackThreshold = 1.5; // distance within which to attack
 var chaseThreshold = 10; // distance within which to start chasing
 var giveUpThreshold = 20; // distance beyond which AI gives up
 var attackRepeatTime = 1; // delay between attacks when within range
 var Damage : float = 0.001;
 private var chasing = false;
 public var attackTime : float = 10;
 var myTransform : Transform; //current transform data of this enemy
  
 function Awake(){
    myTransform = transform; //cache transform data for easy access/preformance
 }
 
 function Start(){
    if (target == null && GameObject.FindWithTag("Player"))
       target = GameObject.FindWithTag("Player").transform;
 }
  
 function Update () {
    // check distance to target every frame:
    var distance = (target.position - myTransform.position).magnitude;
  
    if (chasing) {
       //rotate to look at the player
       myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
       //move towards the player
       myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
       // give up, if too far away from target:
       if (distance > giveUpThreshold) {
          chasing = false;
       }
       // attack, if close enough, and if time is OK:
       if (distance < attackThreshold && Time.time > attackRepeatTime) {
          target.SendMessageUpwards("ApplyDamage" , Damage , SendMessageOptions.DontRequireReceiver);
       // Attack! (call whatever attack function you like here)
       }
       if (distance < attackThreshold) {
          moveSpeed=0;
       //stop when close enough
       }
       attackTime = Time.time+ attackRepeatTime;
    }
    else {
       // not currently chasing.
       // start chasing if target comes close enough
       if (distance < chaseThreshold) {
          chasing = true;
       }
    }
 }
You change the movespeed to 0 when you meet the qualifications but you never turn the movespeed to any other value after the qualifications aren't met.
and I don't think you should use "target" variable, ins$$anonymous$$d use the tag player. unless that you are always the only one near the zombies.
Answer by Silicon · May 08, 2012 at 08:52 PM
You change the movespeed to 0 when you meet the qualifications but you never turn the movespeed to any other value after the qualifications aren't met.
Your answer
 
 
             Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Hunger system help - Money to be made 0 Answers
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Need help with javascript AI 1 Answer
Zombie AI scripts 2 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                