Exemple #1
0
        public void ResetPacketHeader(int prefixBitLen)
        {
            packetType = Packet.PacketType.User;

            int byteCountMaxPlayer = UDPConnectionManager.GetMaxPlayerCount();

            byteCountMaxPlayer = (int)CountBits(byteCountMaxPlayer); // bit count for player index

            int bitLen = byteCountMaxPlayer + 5 + prefixBitLen;

            headerInBits = new bool[bitLen];

            int headerIndex = 0;

            senderPlayerId = UDPConnectionManager.singleton.GetPlayerId();

            bool[] bytes = ByteArray2BitArray(IntToBytes((int)senderPlayerId));

            AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, byteCountMaxPlayer, bytes, ref headerInBits);

            bytes = ByteArray2BitArray(IntToBytes(prefixBitLen));

            AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, 5, bytes, ref headerInBits);

            int prefixIndex = UDPConnectionManager.PrefixIndex(packetPrefix);

            bytes = ByteArray2BitArray(IntToBytes(prefixIndex));

            AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, prefixBitLen, bytes, ref headerInBits);
        }
Exemple #2
0
        public PacketHeader(string prefix)
        {
            base.Setup();
            packetPrefix       = prefix;
            packetReceiveIndex = 0;
            packetType         = Packet.PacketType.User;

            int byteCountMaxPlayer = UDPConnectionManager.GetMaxPlayerCount();

            byteCountMaxPlayer = (int)CountBits(byteCountMaxPlayer); // bit count for player index

            senderPlayerId = UDPConnectionManager.singleton.GetPlayerId();

            int bitLen = byteCountMaxPlayer + 5 + Packet.GetPrefixBitLen();

            headerInBits = new bool[bitLen];

            int headerIndex = 0;

            bool[] bytes = ByteArray2BitArray(IntToBytes((int)senderPlayerId));

            AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, byteCountMaxPlayer, bytes, ref headerInBits);

            bytes = ByteArray2BitArray(IntToBytes((int)Packet.GetPrefixBitLen()));

            AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, 5, bytes, ref headerInBits);

            int prefixIndex = UDPConnectionManager.PrefixIndex(prefix);

            bytes = ByteArray2BitArray(IntToBytes(prefixIndex));



            AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, Packet.GetPrefixBitLen(), bytes, ref headerInBits);
        }
Exemple #3
0
        public PacketHeader(byte[] receive)
        {
            base.Setup();
            this.currentIndex  = 0;
            packetReceiveIndex = -1;

            received             = receive;
            this.receivedMessage = Byte2Bool(receive);

            int typeLen = (int)CountBits((int)Packet.PacketType.NumberOfValues);

            bool[] packetConsoleBit = BitsReverseLen(receivedMessage, ref this.currentIndex, typeLen);
            res = BitArrayToUInt(packetConsoleBit);

            bool[] packetLenBits = BitsReverseLen(receivedMessage, ref this.currentIndex, 7);

            res        = BitArrayToUInt(packetLenBits); // package lenght for data check
            packageLen = (int)res;

            bool[] packetIndexBits = BitsReverseLen(receivedMessage, ref this.currentIndex, 32);
            res = BitArrayToUInt(packetIndexBits); // package lenght for data check
            packetReceiveIndex = (int)res;


            int byteCountMaxPlayer = UDPConnectionManager.GetMaxPlayerCount();

            byteCountMaxPlayer = (int)CountBits(byteCountMaxPlayer);


            packetLenBits = BitsReverseLen(receivedMessage, ref currentIndex, byteCountMaxPlayer);
            playerId      = (int)BitArrayToUInt(packetLenBits);

            packetLenBits = BitsReverseLen(receivedMessage, ref currentIndex, 5);
            uint lenPrefix = BitArrayToUInt(packetLenBits);

            packetLenBits = BitsReverseLen(receivedMessage, ref currentIndex, (int)lenPrefix);
            prefixIndex   = (int)BitArrayToUInt(packetLenBits);


            //PrintValues(packetLenBits, 0);
        }
Exemple #4
0
        public static void ActivatePlayer(string id)
        {
            if (!playerCreated)
            {
                CreateMaxPlayer(UDPConnectionManager.GetMaxPlayerCount());
                playerCreated = true;
            }

            if (freePlayerManagers.Count > 0 && !playersID.Contains(id))
            {
                Debug.Log("Activated user: " + id);
                UDPPlayer player   = freePlayerManagers[0];
                int       playerId = int.Parse(id);
                player.SetPlayerId(playerId);
                player.ActivatePlayerReceivers();
                player.ActivateSender();
                playerById.Add(id, player);
                freePlayerManagers.Remove(player);
                playersID.Add(id);
                player.gameObject.transform.position = UDPConnectionManager.singleton.transform.position;
                player.gameObject.SetActive(true);
            }
        }
Exemple #5
0
        public void DisconnectPacket()
        {
            int maxPlayerBitCount = (int)StaicBitFunctions.CountBits(UDPConnectionManager.GetMaxPlayerCount());

            message = message + Convert.ToString(UDPConnectionManager.singleton.GetPlayerId(), toBase: 2).PadLeft(maxPlayerBitCount, '0');
        }