Поле зрение врага (помогите)

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Поле зрение врага (помогите)

Сообщение hlamik 27 янв 2013, 14:52

Вот код аи

Синтаксис:
Используется javascript
var spawn : Transform;
 var vectim : Transform;
 var speed : float;
  var rotationSpeed : float;
   var seeDistance : float = 30;
   var damage : int;
    var dice : int = 1;
    var baseDamage : int = 1;
    var anim : GameObject;
     var hit : AudioClip;
     private var myTransform : Transform;
     var damag = 10;

private var idle : int = 0;
 private var returnToSpawn : int = 1;
 private var chasePlayer : int = 2;
  private var attackPlayer : int = 3;
   private var dead : int = 4;

private var status = returnToSpawn;
 private var seconds : int;
 private var savedTime : int;
  private var damagePlayer : GameObject;

function Awake(){ myTransform = transform; }

function Start () { damagePlayer = gameObject.FindWithTag("Player"); }

function Update () {

var target : Transform;
var dist = Vector3.Distance(spawn.position, myTransform.position);
var aggro = Vector3.Distance(vectim.position, myTransform.position);
 var statusString : String;
 seconds = Time.time;

if (dist > 50 || (aggro > seeDistance && dist > 3))
status = returnToSpawn;
 else if (dist < 30 && (aggro < seeDistance && aggro > 1))
  status = chasePlayer;
 else if (aggro < 1)
 status = attackPlayer;
switch(status){
    case returnToSpawn:
        target = spawn;
       anim.animation.CrossFade("run");
        myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - transform.position), rotationSpeed * Time.deltaTime);
        myTransform.position += transform.forward * (speed/2) * Time.deltaTime;
        statusString = "Return";
    if (dist < 3)
    status = idle;
    break;
 
 
    case chasePlayer:
        target = vectim;
       myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
       myTransform.position += myTransform.forward * speed * Time.deltaTime;
       statusString = "Chase";
       anim.animation.CrossFade("waitingforbattle");
       break;
 
    case attackPlayer:
        target = vectim;
       myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - transform.position), rotationSpeed * Time.deltaTime);
       statusString = "Attack";
 
       if (aggro > 1)
           status = chasePlayer;
 
       if (seconds != savedTime && PlayerHealth.curHealth > 0){
       damage = ((Random.Range(1, baseDamage)) * ((Random.Range(1, dice))));
 //      damagePlayer.SendMessage ("PlayerDamage", damage);
       anim.animation.CrossFade("attack");
       PlayerHealth.curHealth -= 10;
       audio.PlayOneShot(hit, 1.0 / audio.volume);
       savedTime = seconds;
       }
       break;
 
       case idle:
           target = spawn;
 
         break;
 
       default:
           break;
    }
    myTransform.eulerAngles = new Vector3(0, myTransform.eulerAngles.y, 0);

}


Плиз помогите решить пару проблем , а то сижу , сижу а решить не могу

1 Атака моба он атакует раз в секу а как сделать чтобы атакавал раз в 2 секи
2 Когда я стартую моб сразу начинает бежать за мной , а как сделать чтобы он начинал бежать когда я к нему только подхожу и когда отхожу он останавливался

Плиз помогите решить проблему , неполучается у меня
hlamik
UNец
 
Сообщения: 9
Зарегистрирован: 27 янв 2013, 14:35

Re: Поле зрение врага (помогите)

Сообщение Kayler 27 янв 2013, 14:53

а нафига несколько акков создавать?
Аватара пользователя
Kayler
Адепт
 
Сообщения: 1038
Зарегистрирован: 25 авг 2010, 23:49
Откуда: Чувашия

Re: Поле зрение врага (помогите)

Сообщение hlamik 27 янв 2013, 14:59

Пороль не помню
Я уже не знаю что с этим аи делать плиз помогите
hlamik
UNец
 
Сообщения: 9
Зарегистрирован: 27 янв 2013, 14:35

Re: Поле зрение врага (помогите)

Сообщение BornFoRdeatH 27 янв 2013, 15:11

Kayler писал(а):а нафига несколько акков создавать?

Эээмм... Я как бы совершенно другой человек, и задаю вопрос так как такой подход влечет ряд проблем.
Не бойся, если ты один, бойся, если ты ноль.
BornFoRdeatH
Адепт
 
Сообщения: 2377
Зарегистрирован: 22 окт 2011, 23:41
Откуда: Украина
Skype: bornfordeath


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 23