Esempio n. 1
0
    //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);
    }
Esempio n. 6
0
    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);
    }
Esempio n. 8
0
 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);
     //    }
     //});
 }
Esempio n. 10
0
    // 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);
        });
    }
Esempio n. 11
0
    //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);
        });
    }
Esempio n. 12
0
 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());
 }
Esempio n. 13
0
 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());
     }
 }
Esempio n. 14
0
 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());
 }
Esempio n. 15
0
 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());
 }
Esempio n. 16
0
 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());
 }
Esempio n. 17
0
 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());
 }
Esempio n. 18
0
    //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);
            }
        }
    }
Esempio n. 19
0
    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());
    }
Esempio n. 20
0
 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());
 }
Esempio n. 21
0
    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());
    }
Esempio n. 22
0
    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());
    }
Esempio n. 23
0
    //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();
            }
        });
    }
Esempio n. 24
0
    //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());
    }
Esempio n. 25
0
    //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)");
        }
    }
Esempio n. 26
0
    //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());
    }
Esempio n. 27
0
    // 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();
            }
                                                           );
        }
    }
Esempio n. 28
0
 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());
 }
Esempio n. 29
0
    //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);
            }
        });
    }
Esempio n. 30
0
 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());
 }