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; } } } }
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); } }
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; } } } }
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); } }