Пример #1
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        GameObject cPlayerActor = CGamePlayers.GetPlayerActor(_cNetworkPlayer.PlayerId);

        if (cPlayerActor != null)
        {
            CPlayerAirMotor cAirMotor = cPlayerActor.GetComponent <CPlayerAirMotor>();

            while (_cStream.HasUnreadData)
            {
                ENetworkAction eNetworkAction = (ENetworkAction)_cStream.ReadByte();

                switch (eNetworkAction)
                {
                case ENetworkAction.UpdateStates:
                    cAirMotor.m_usMovementStates = _cStream.ReadUInt();
                    break;

                default:
                    Debug.LogError(string.Format("Unknown network action ({0})", (int)eNetworkAction));
                    break;
                }
            }
        }
    }
Пример #2
0
	protected void HandleUnconnectPong(byte[] _baData, RakNet.SystemAddress _cServerSystemAddress, RakNet.RakNetGUID _cServerGuid)
	{
		// Create stream
		CNetworkStream cStream = new CNetworkStream(_baData);

		// Ignore message identifier
		cStream.IgnoreBytes(1);

		// Read time
		uint uiTime = cStream.ReadUInt();

		// Read response data
		byte[] baOfflinePingResponse = cStream.ReadBytes(cStream.NumUnreadBytes);

		// Create server info
		TServer tLanServerInfo = new TServer();
		tLanServerInfo.sIp = _cServerSystemAddress.ToString();
		tLanServerInfo.usPort = _cServerSystemAddress.GetPort();
		tLanServerInfo.uiLatency = RakNet.RakNet.GetTimeMS() - uiTime;
		tLanServerInfo.cGuid = new RakNet.RakNetGUID(_cServerGuid.g);

		// Convert response data to server info
		tLanServerInfo.tServerInfo = new CNetworkServer.TServerInfo(baOfflinePingResponse);
	
		
		uint uiLocalNumberOfAddresses = m_cRnPeer.GetNumberOfAddresses();
		string sIpPrefix = _cServerSystemAddress.ToString().Substring(0, _cServerSystemAddress.ToString().IndexOf('.'));
		bool bIsLanServer = false;


		for (uint i = 0; i < uiLocalNumberOfAddresses; ++ i)
		{
			string sMyLanIp = m_cRnPeer.GetLocalIP(i);


			string sLanIpPrefix = sMyLanIp.Substring(0, sMyLanIp.IndexOf('.'));


			if (sLanIpPrefix == sIpPrefix)
			{
				bIsLanServer = true;
				break;
			}
		}


		if (!bIsLanServer)
		{
			m_aOnlineServers.Add(tLanServerInfo);
		}
		else
		{
			m_aLanServers.Add(tLanServerInfo);
		}


		//Logger.WriteError("Added server ({0}:({1}) lan ({2})", tLanServerInfo.sIp, tLanServerInfo.usPort, bIsLanServer);


		// Notify event observers
		if (EventFoundServer != null)
		{
			EventFoundServer(tLanServerInfo);
		}
	}
Пример #3
0
	public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
	{
		GameObject cPlayerActor = CGamePlayers.GetPlayerActor(_cNetworkPlayer.PlayerId);

		if (cPlayerActor != null)
		{
			CPlayerAirMotor cAirMotor = cPlayerActor.GetComponent<CPlayerAirMotor>();

			while (_cStream.HasUnreadData)
			{
				ENetworkAction eNetworkAction = (ENetworkAction)_cStream.ReadByte();

				switch (eNetworkAction)
				{
				case ENetworkAction.UpdateStates:
					cAirMotor.m_usMovementStates = _cStream.ReadUInt();
					break;

				default:
					Debug.LogError(string.Format("Unknown network action ({0})", (int)eNetworkAction));
					break;
				}
			}
		}
	}
Пример #4
0
    protected void HandleUnconnectPong(byte[] _baData, RakNet.SystemAddress _cServerSystemAddress, RakNet.RakNetGUID _cServerGuid)
    {
        // Create stream
        CNetworkStream cStream = new CNetworkStream(_baData);

        // Ignore message identifier
        cStream.IgnoreBytes(1);

        // Read time
        uint uiTime = cStream.ReadUInt();

        // Read response data
        byte[] baOfflinePingResponse = cStream.ReadBytes(cStream.NumUnreadBytes);

        // Create server info
        TServer tLanServerInfo = new TServer();

        tLanServerInfo.sIp       = _cServerSystemAddress.ToString();
        tLanServerInfo.usPort    = _cServerSystemAddress.GetPort();
        tLanServerInfo.uiLatency = RakNet.RakNet.GetTimeMS() - uiTime;
        tLanServerInfo.cGuid     = new RakNet.RakNetGUID(_cServerGuid.g);

        // Convert response data to server info
        tLanServerInfo.tServerInfo = new CNetworkServer.TServerInfo(baOfflinePingResponse);


        uint   uiLocalNumberOfAddresses = m_cRnPeer.GetNumberOfAddresses();
        string sIpPrefix    = _cServerSystemAddress.ToString().Substring(0, _cServerSystemAddress.ToString().IndexOf('.'));
        bool   bIsLanServer = false;


        for (uint i = 0; i < uiLocalNumberOfAddresses; ++i)
        {
            string sMyLanIp = m_cRnPeer.GetLocalIP(i);


            string sLanIpPrefix = sMyLanIp.Substring(0, sMyLanIp.IndexOf('.'));


            if (sLanIpPrefix == sIpPrefix)
            {
                bIsLanServer = true;
                break;
            }
        }


        if (!bIsLanServer)
        {
            m_aOnlineServers.Add(tLanServerInfo);
        }
        else
        {
            m_aLanServers.Add(tLanServerInfo);
        }


        //Logger.WriteError("Added server ({0}:({1}) lan ({2})", tLanServerInfo.sIp, tLanServerInfo.usPort, bIsLanServer);


        // Notify event observers
        if (EventFoundServer != null)
        {
            EventFoundServer(tLanServerInfo);
        }
    }