//Once you join a game this is invoked every .2 seconds to update the player's location on the server. public void SendPlayerPos() { if (player.playerObj == null) { return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(ClientIndex); buffer.WriteInt(2); Transform playerTransform = player.playerObj.transform; buffer.WriteString(DateTime.Now.ToString()); buffer.WriteFloat(playerTransform.position.x); buffer.WriteFloat(playerTransform.position.y); buffer.WriteFloat(playerTransform.position.z); Rigidbody rigidbod = player.playerObj.GetComponent <Rigidbody>(); if (rigidbod == null) { Debug.LogError("rigidbody not found!!!"); } buffer.WriteFloat(rigidbod.velocity.x); buffer.WriteFloat(rigidbod.velocity.y); buffer.WriteFloat(rigidbod.velocity.z); buffer.WriteFloat(playerTransform.rotation.eulerAngles.y); UdpClient.Send(buffer.BuffToArray(), buffer.Length()); }
//Packetnum = 6 void HandleJoinGameResponse(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int response = buffer.ReadInt(); if (response == 1) { int gameIndex = buffer.ReadInt(); int teamIndex = buffer.ReadInt(); int playerNumber = buffer.ReadInt();//Spawning purposes int teammateIndex = buffer.ReadInt(); string teammateUsername = buffer.ReadString(); Network.instance.player.SetGameIndex(gameIndex); Network.instance.player.playerNumber = playerNumber; Network.instance.player.SetTeamNumber(teamIndex); Network.instance.player.SetTeammate(teammateIndex, teammateUsername); Network.instance.CallFunctionFromAnotherThread(Network.instance.JoinGame); Network.instance.mainMenu.JoinGameSuccessfull(); } else { Debug.Log("Failed to join game (response)"); } }
//Packetnum = 7 void HandleGetPlayersInGameResponse(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int numberOfPlayers = buffer.ReadInt(); for (int i = 0; i < numberOfPlayers; i++) { int playerId = buffer.ReadInt(); int playerTeam = buffer.ReadInt(); string playerUsername = buffer.ReadString(); float posX = buffer.ReadFloat(); float posY = buffer.ReadFloat(); float posZ = buffer.ReadFloat(); float rotY = buffer.ReadFloat(); float health = buffer.ReadFloat(); //Testing Network.instance.CallFunctionFromAnotherThread(() => { Network.instance.SpawnPlayer(playerId, playerUsername, playerTeam, new Vector3(posX, posY, posZ), new Vector3(0, rotY, 0), health); }); } }
// Packetnum = 20 void HandleShrinkCircleTimer(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); float circleTimer = buffer.ReadFloat(); ShrinkCircle.instance.CircleTimer(circleTimer); }
//Packetnum = 2 void HandleLoginResponse(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int successful = buffer.ReadInt(); string msg = buffer.ReadString(); Network.instance.mainMenu.LoginResponse(successful, msg); }
void HandleWelcomeMessage(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int packetnum = buffer.ReadInt(); string msg = buffer.ReadString(); Debug.Log(msg); }
//Packetnum = 22 void HandleHealthPlayer(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int id = buffer.ReadInt(); int team = buffer.ReadInt(); float health = buffer.ReadFloat(); Network.instance.SetHealthPlayer(id, health); }
public void ReceiveGameReady() { try { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(19); buffer.WriteInt(player.GetGameIndex()); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); } catch (Exception e) { Debug.Log(e.ToString()); } }
// Packetnum = 12 // TODO: This exists for points void HandleDealtDamage(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); float damageDealt = buffer.ReadFloat(); //Network.instance.CallFunctionFromAnotherThread(() => { // if (Network.instance.player.playerObj.activeInHierarchy){ // Network.instance.player.playerObj.GetComponent<PlayerData>().UpdateDamageDealt(damageDealt); // } //}); }
// packetnum = 17 void HandleGameOver(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); bool won = (buffer.ReadInt() == 0) ? false : true; Network.instance.mainMenu.GameOver(won); Network.instance.CallFunctionFromAnotherThread(() => { Network.instance.GameOver(won); }); }
//packetnum = 24 void HandleTeamDeath(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int player1 = buffer.ReadInt(); int player2 = buffer.ReadInt(); Network.instance.CallFunctionFromAnotherThread(() => { Network.instance.DestroyPlayer(player1); Network.instance.DestroyPlayer(player2); }); }
public void GetPlayersInGame() { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(10); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
public void Died() { try { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(16); buffer.WriteInt(player.GetTeamNumber()); buffer.WriteInt(player.GetGameIndex()); buffer.WriteInt(player.GetRoomIndex()); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); } catch (Exception e) { Debug.Log(e.ToString()); } }
public void JoinRoom(int roomIndex) { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(6); buffer.WriteInt(roomIndex); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
public void JoinRoom(int roomIndex) { if (PlayerSocket == null || !PlayerSocket.Connected) { PlayerSocket.Close(); PlayerSocket = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(6); buffer.WriteInt(roomIndex); myStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
public void CreateGame(int MaxPlayers) { if (PlayerSocket == null || !PlayerSocket.Connected) { PlayerSocket.Close(); PlayerSocket = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(2); buffer.WriteInt(MaxPlayers); myStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
public void SendPlayerDamage(float damageTake, string bulletId) { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(12); buffer.WriteString(bulletId); buffer.WriteFloat(damageTake); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
//Packetnum = 4 void HandleGetPlayersInRoom(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int playersReceived = buffer.ReadInt(); for (int i = 0; i < playersReceived; i++) { string user = buffer.ReadString(); if (user != Network.instance.player.GetUsername()) { Network.instance.player.SetTeammateUsername(user); } } }
public void SendPlayerHealth(float health) { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(21); buffer.WriteFloat(health); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
public void Login(string username) { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(1); buffer.WriteString(username); player.ChangeUsername(username); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
public void RevivedTeammate() { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(18); buffer.WriteInt(teamMateIndex); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
public void HandlePlayerDeath(string bulletId) { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(-1); buffer.WriteString(bulletId); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
//Packetnum = 11 void HandleOtherPlayerDeath(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int playerIndex = buffer.ReadInt(); int playerTeam = buffer.ReadInt(); Network.instance.CallFunctionFromAnotherThread(() => { //Network.instance.DestroyPlayer(playerIndex, playerTeam); EnemyPlayerController controller; if (Network.instance.playersInGame.TryGetValue(playerIndex, out controller)) { controller.Died(); } }); }
//coinOrPill 0 == coin / 1 == Pill public void SendCollectiblesDestroy(string id, int coinOrPill) { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(20); buffer.WriteInt(coinOrPill); buffer.WriteString(id); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
//Packetnum = 5 void HandleJoinRoomResponse(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int response = buffer.ReadInt(); int roomIndex = buffer.ReadInt(); if (response == 1) { Network.instance.player.JoinRoom(roomIndex); Network.instance.mainMenu.JoinRoomSuccessfull(); } else { Debug.Log("Failed to join room (response)"); } }
//Packetnum = 1 void HandleWelcomeMessage(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); string msg = buffer.ReadString(); int ClientIndex = buffer.ReadInt(); Network.instance.ClientIndex = ClientIndex; Network.instance.StartUdp(); Debug.Log(msg); buffer.Clear(); buffer.WriteInt(ClientIndex); buffer.WriteInt(1); buffer.WriteFloat(10.2f); Network.instance.UdpClient.Send(buffer.BuffToArray(), buffer.Length()); }
// PacketNum 15 void HandleGameReady(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int gameReady = buffer.ReadInt(); float timer = buffer.ReadFloat(); Network.instance.mainMenu.SetStartTimer(timer); if (gameReady == 1) { Network.instance.waitingForAllReceive = true; Network.instance.CallFunctionFromAnotherThread(() => { Network.instance.ReceiveGameReady(); } ); } }
public void GetPlayersInRoom() { if (PlayerSocket == null || !PlayerSocket.Connected) { PlayerSocket.Close(); PlayerSocket = null; Debug.Log("Disconnected"); return; } if (!player.InRoom()) { return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(5); buffer.WriteInt(player.GetRoomIndex()); myStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }
//Packetnum = 21 void HandleDisableCollectibles(byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); int coinOrPill = buffer.ReadInt(); string id = buffer.ReadString(); ObjectHandler.instance.CallFunctionFromAnotherThread(() => { if (coinOrPill == 0) { ObjectHandler.instance.DisableCoin(id); } else { ObjectHandler.instance.DisablePill(id); } }); }
public void IsGameReady() { if (TcpClient == null || !TcpClient.Connected) { TcpClient.Close(); TcpClient = null; Debug.Log("Disconnected"); return; } if (waitingForAllReceive) { return; } ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteInt(15); buffer.WriteInt(player.GetGameIndex()); TcpStream.Write(buffer.BuffToArray(), 0, buffer.Length()); }