//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); }
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); } } }
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); } } }