void Start()
 {
     character = this.GetComponent <CharacterSystem>();
     ai        = character.GetComponent <AICharacterShooterNav>();
     timeTmp   = Time.time;
     TimeWait  = Random.Range(TimeWait / 2, TimeWait);
 }
    public void EquipItemAI()
    {
        if (isServer)
        {
            if (!alreadyEquip)
            {
                for (int i = 0; i < AIs.Length; i++)
                {
                    if (AIs[i] != null)
                    {
                        CharacterSystem character = AIs[i].GetComponent <CharacterSystem>();
                        if (character != null)
                        {
                            character.inventory.ApplyStarterItem();
                        }

                        AICharacterShooterNav ai = AIs[i].GetComponent <AICharacterShooterNav>();
                        if (ai != null)
                        {
                            ai.Fighting = true;
                        }
                    }
                }
                alreadyEquip = true;
            }
        }
    }
Пример #3
0
    public GameObject Spawn()
    {
        GameObject obj         = null;
        int        objectcount = ObjectSpawnedCount();

        indexSpawn = Random.Range(0, ObjectSpawn.Length);

        if (ObjectSpawn[indexSpawn] == null)
        {
            return(null);
        }

        if (objectcount < MaxObject)
        {
            if (SubSpawner.Length > 0)
            {
                int     s          = Random.Range(0, SubSpawner.Length);
                Vector3 spawnPoint = DetectGround(SubSpawner[s].transform.position + new Vector3(Random.Range(-(int)(SubSpawner[s].transform.localScale.x / 2.0f), (int)(SubSpawner[s].transform.localScale.x / 2.0f)), 0, Random.Range((int)(-SubSpawner[s].transform.localScale.z / 2.0f), (int)(SubSpawner[s].transform.localScale.z / 2.0f))));
                obj = UnitZ.gameNetwork.RequestSpawnObject(ObjectSpawn[indexSpawn].gameObject, spawnPoint, Quaternion.identity);
            }
            else
            {
                Vector3 spawnPoint = DetectGround(transform.position + new Vector3(Random.Range(-(int)(this.transform.localScale.x / 2.0f), (int)(this.transform.localScale.x / 2.0f)), 0, Random.Range((int)(-this.transform.localScale.z / 2.0f), (int)(this.transform.localScale.z / 2.0f))));
                obj = UnitZ.gameNetwork.RequestSpawnObject(ObjectSpawn[indexSpawn].gameObject, spawnPoint, Quaternion.identity);
            }

            if (obj)
            {
                DamageManager damagemanager = obj.GetComponent <DamageManager>();
                if (damagemanager != null && TeamConfig)
                {
                    damagemanager.Team = Team;
                }
                AICharacterShooterNav ai = obj.GetComponent <AICharacterShooterNav>();
                if (ai != null)
                {
                    if (Objectives != null && Objectives.Length > 0)
                    {
                        ai.ObjectiveTarget = Objectives[Random.Range(0, Objectives.Length)];
                    }
                }
                spawnList.Add(obj);
            }
        }
        return(obj);
    }
 public void SpawnAI()
 {
     if (isServer)
     {
         EnemySpawner spawner = (EnemySpawner)GameObject.FindObjectOfType <EnemySpawner>();
         if (spawner)
         {
             spawner.MaxObject = UnitZ.gameManager.BotNumber;
             AIs = spawner.Spawn(UnitZ.gameManager.BotNumber);
             for (int i = 0; i < AIs.Length; i++)
             {
                 if (AIs[i] != null)
                 {
                     AICharacterShooterNav ai = AIs[i].GetComponent <AICharacterShooterNav>();
                     if (ai != null)
                     {
                         ai.Fighting = false;
                     }
                 }
             }
         }
     }
 }