//If target respawn
    //If zombie respawn on random position on map
    //If player respawn on player layer on map
    public void Respawn()
    {
        death = false;
        if (zombie)
        {
            coll.enabled = true;
            do
            {
                Vect = new Vector3(Random.Range(0, 100), transform.position.y, Random.Range(0, 100));
            }while (Vect.x < 20f || Vect.z < 20f);
            nav.Warp(Vect);
        }
        else
        {
            do
            {
                Vect = new Vector3(Random.Range(1, 10), transform.position.y, Random.Range(1, 10));
            }while (Vect.x > 10f || Vect.z > 10f);
            transform.position = Vect;
        }
        transform.rotation = Quaternion.AngleAxis(Random.Range(0, 360), Vector3.up);
        Data_PlayerFile_Sr d = RoomsManager.GetPlayerData(index);

        d.SetHP(d.HPMax);
        NetworkWriter wr = new NetworkWriter();

        wr.StartMessage(Networking_msgType_Sr.Respawn);
        wr.Write(index);
        wr.Write(transform.position);
        wr.Write(transform.rotation);
        wr.FinishMessage();
        RoomsManager.SendReliableAtRoom(wr, index);
    }
Пример #2
0
    public static void HandlerReady(NetworkMessage netmsg)
    {
        Message_Sr.PlayerSetReady ready = netmsg.ReadMessage <Message_Sr.PlayerSetReady>();
        if (Networking_OnConnect.AccountVerefication(ready.id, ready.log, ready.pass))
        {
            Data_PlayerFile_Sr data = GetPlayerData(ready.id);

            if (data)
            {
                data.PlayerReady = true;
                data.SetHP(data.HPMax);
            }
        }
    }
Пример #3
0
    public void SpawnMob()
    {
        spawnPosition = new Vector3(5, transform.position.y, 5);

        GameObject obj  = (GameObject)Resources.Load("Zombie");
        Vector3    vect = Vector3.zero;

        float Hight = Random.Range(0.1f, 0.15f);
        float Midle = Random.Range(0.15f, 0.25f);
        float Low   = 1 - (Hight + Midle);

        //check zombie number, if more than maximum players in room
        if (zombieNumber >= maxPlayerNumber)
        {
            zombieNumber = maxPlayerNumber - 2;
        }

        if (zombieNumber >= 3)
        {
            int zombieLow   = Mathf.FloorToInt((float)zombieNumber * Low);
            int zombieMidle = Mathf.FloorToInt((float)zombieNumber * Midle);
            int zombieHight = Mathf.FloorToInt((float)zombieNumber * Hight);

            int sessionID = -1;
            for (int i = 0; i < zombieLow; i++)
            {
                do
                {
                    vect = new Vector3(Random.Range(0, 100), transform.position.y, Random.Range(0, 100));
                }while (vect.x < 20f || vect.z < 20f);
                GameObject         Zombie = (GameObject)Instantiate(obj, vect, Quaternion.AngleAxis(Random.Range(0, 360), Vector3.up));
                Data_PlayerFile_Sr data   = ScriptableObject.CreateInstance <Data_PlayerFile_Sr>();
                data.HPMax = Random.Range(60, 110);
                data.SetHP(data.HPMax);
                switch (Random.Range(1, 3))
                {
                case 1:
                    data.nick = "zombie";
                    break;

                case 2:
                    data.nick = "sickzombie";
                    break;

                case 3:
                    data.nick = "policezombie";
                    break;
                }
                data.PlayerReady = true;
                data.attackPower = Random.Range(10, 17);
                Zombie.GetComponent <Player_MovePlayer>().zombie = true;

                sessionID = Networking_OnConnect.BotAdd(roomID, playersData.Count);
                WritePlayer(sessionID, data, Zombie);
            }

            for (int i = 0; i < zombieMidle; i++)
            {
                do
                {
                    vect = new Vector3(Random.Range(0, 100), transform.position.y, Random.Range(0, 100));
                }while (vect.x < 20f || vect.z < 20f);
                GameObject         Zombie = (GameObject)Instantiate(obj, vect, Quaternion.AngleAxis(Random.Range(0, 360), Vector3.up));
                Data_PlayerFile_Sr data   = ScriptableObject.CreateInstance <Data_PlayerFile_Sr>();
                data.HPMax = Random.Range(180, 250);
                data.SetHP(data.HPMax);
                data.nick        = "mutantzombie";
                data.PlayerReady = true;
                data.attackPower = Random.Range(20, 30);
                Zombie.GetComponent <Player_MovePlayer>().zombie = true;

                sessionID = Networking_OnConnect.BotAdd(roomID, playersData.Count);
                WritePlayer(sessionID, data, Zombie);
            }

            for (int i = 0; i < zombieHight; i++)
            {
                do
                {
                    vect = new Vector3(Random.Range(0, 100), transform.position.y, Random.Range(0, 100));
                }while (vect.x < 20f || vect.z < 20f);
                GameObject         Zombie = (GameObject)Instantiate(obj, vect, Quaternion.AngleAxis(Random.Range(0, 360), Vector3.up));
                Data_PlayerFile_Sr data   = ScriptableObject.CreateInstance <Data_PlayerFile_Sr>();
                data.HPMax = Random.Range(300, 400);
                data.SetHP(data.HPMax);
                data.nick        = "strongzombie";
                data.PlayerReady = true;
                data.attackPower = Random.Range(36, 48);
                Zombie.GetComponent <Player_MovePlayer>().zombie = true;

                sessionID = Networking_OnConnect.BotAdd(roomID, playersData.Count);
                WritePlayer(sessionID, data, Zombie);
            }
        }
    }