Ejemplo n.º 1
0
    private void OnReceivedClientMovementData(ulong guid)
    {
        playerObject tempObj = clients[guid];

        tempObj.m_x        = m_NetworkReader.ReadFloat();
        tempObj.m_y        = m_NetworkReader.ReadFloat();
        tempObj.m_z        = m_NetworkReader.ReadFloat();
        tempObj.rotation_x = m_NetworkReader.ReadFloat();
        tempObj.rotation_y = m_NetworkReader.ReadFloat();
        tempObj.rotation_z = m_NetworkReader.ReadFloat();
        tempObj.velocity_X = m_NetworkReader.ReadFloat();
        tempObj.velocity_Y = m_NetworkReader.ReadFloat();
        tempObj.velocity_Z = m_NetworkReader.ReadFloat();

        clients[guid] = tempObj;

        if (m_NetworkWriter.StartWritting())
        {
            m_NetworkWriter.WritePacketID((byte)Packets_ID.ID_MOVEMENT);
            m_NetworkWriter.Write(tempObj.id);
            m_NetworkWriter.Write(tempObj.m_x);
            m_NetworkWriter.Write(tempObj.m_y);
            m_NetworkWriter.Write(tempObj.m_z);
            m_NetworkWriter.Write(tempObj.rotation_x);
            m_NetworkWriter.Write(tempObj.rotation_y);
            m_NetworkWriter.Write(tempObj.rotation_z);
            m_NetworkWriter.Write(tempObj.velocity_X);
            m_NetworkWriter.Write(tempObj.velocity_Y);
            m_NetworkWriter.Write(tempObj.velocity_Z);

            SendToAll(guid, m_NetworkWriter, true);
        }
    }
Ejemplo n.º 2
0
    private void SendMovement()
    {
        if (m_NetworkWriter.StartWritting())
        {
            PlayerManager me = playersList[0];
            if (me == null)
            {
                return;
            }
            m_NetworkWriter.WritePacketID((byte)Packets_ID.ID_MOVEMENT);

            // step 9 : Instead of sending x,y,w ..... , send the server version instead (x,y,w,velocity, angular velocity)


            m_NetworkWriter.Write(me.position.x);
            m_NetworkWriter.Write(me.position.y);
            m_NetworkWriter.Write(me.position.z);
            m_NetworkWriter.Write(me.pRotation.x);
            m_NetworkWriter.Write(me.pRotation.y);
            m_NetworkWriter.Write(me.pRotation.z);
            m_NetworkWriter.Write(me.velocity.x);
            m_NetworkWriter.Write(me.velocity.y);
            m_NetworkWriter.Write(me.velocity.z);
            m_NetworkWriter.Send(serveruid, Peer.Priority.Immediate, Peer.Reliability.Reliable, 0);
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// Parsing packet
    /// </summary>
    /// <param name="packet_id">PACKET ID  - SEE Packets_ID.cs</param>
    private void OnReceivedPacket(byte packet_id)
    {
        bool IsInternalNetworkPackets = packet_id <= 134;

        if (IsInternalNetworkPackets)
        {
            if (packet_id == (byte)Peer.RakNet_Packets_ID.CONNECTION_REQUEST_ACCEPTED)
            {
                OnConnected(peer.incomingAddress);
            }

            if (packet_id == (byte)Peer.RakNet_Packets_ID.CONNECTION_ATTEMPT_FAILED)
            {
                OnDisconnected("Connection attempt failed");
            }

            if (packet_id == (byte)Peer.RakNet_Packets_ID.INCOMPATIBLE_PROTOCOL_VERSION)
            {
                OnDisconnected("Incompatible protocol version");
            }

            if (packet_id == (byte)Peer.RakNet_Packets_ID.CONNECTION_LOST)
            {
                OnDisconnected("Time out");
            }

            if (packet_id == (byte)Peer.RakNet_Packets_ID.NO_FREE_INCOMING_CONNECTIONS)
            {
                OnDisconnected("Server is full.");
            }

            if (packet_id == (byte)Peer.RakNet_Packets_ID.DISCONNECTION_NOTIFICATION && !tmp_Banned && !tmp_Fake)
            {
                OnDisconnected("You are kicked!");
            }
        }
        else
        {
            if (packet_id == (byte)Packets_ID.CL_INFO)
            {
                if (m_NetworkWriter.StartWritting())
                {
                    m_NetworkWriter.WritePacketID((byte)Packets_ID.CL_INFO);
                    m_NetworkWriter.Write(m_ClientNetInfo.name);
                    m_NetworkWriter.WritePackedUInt64(m_ClientNetInfo.local_id);
                    m_NetworkWriter.Write(m_ClientNetInfo.client_hwid);
                    m_NetworkWriter.Write(m_ClientNetInfo.client_version);
                    m_NetworkWriter.Send(peer.incomingGUID, Peer.Priority.Immediate, Peer.Reliability.Reliable, 0);//sending
                }
            }

            if (packet_id == (byte)Packets_ID.CL_ACCEPTED)
            {
                m_ClientNetInfo.net_id = m_NetworkReader.ReadPackedUInt64();

                Debug.Log("[Client] Accepted connection by server... [ID: " + m_ClientNetInfo.net_id + "]");
            }

            if (packet_id == (byte)Packets_ID.CL_BANNED)
            {
                tmp_Banned = true;
                OnDisconnected("You are banned on this server!");
            }

            if (packet_id == (byte)Packets_ID.CL_FAKE)
            {
                tmp_Fake = true;
                OnDisconnected("Fake client! Please wait few seconds...");
            }
        }
    }