private void HandleJoinProject(NetPeer peer, NetDataReader reader) { var userId = Guid.ParseExact(reader.GetString(), "N"); var projectId = Guid.ParseExact(reader.GetString(), "N"); var projectHash = new byte[16]; reader.GetBytes(projectHash, projectHash.Length); var result = _projectService .JoinProjectAsync(projectId, userId, projectHash) .GetAwaiter() .GetResult(); var writer = new NetDataWriter(); if (result.IsSuccess) { var joinResult = result.Value; writer.Put((int)RequestIds.S2C.JoinProjectSuccess); writer.Put(projectId.ToString("N")); writer.Put((int)joinResult); } else { writer.Put((int)RequestIds.S2C.JoinProjectFailed); writer.Put(result.Error); } peer.Send(writer, DeliveryMethod.ReliableOrdered); }
protected void ParseProtoBytes(NetDataReader reader, ref string name, ref byte[] bytes) { var protoName = reader.GetString(); var count = reader.GetInt(); reader.GetBytes(bytes, count); }
/// <summary> /// 更新插值字段 /// </summary> public void ReadDirtyFields(NetDataReader reader) { ulong timestep = 0; reader.GetBytes(_readDirtyFlags, 1); if ((0x1 & _readDirtyFlags[0]) != 0) { if (positionInterpolation.Enabled) { positionInterpolation.target = reader.GetVector3(); positionInterpolation.Timestep = timestep; } else { _position = reader.GetVector3(); this.RunChange_Position(timestep); } } if ((0x2 & _readDirtyFlags[0]) != 0) { if (rotationInterpolation.Enabled) { rotationInterpolation.target = reader.GetQuaternion(); rotationInterpolation.Timestep = timestep; } else { _rotation = reader.GetQuaternion(); this.RunChange_Rotation(timestep); } } }
public void Deserialize(NetDataReader reader) { TechBonuses = new PlayerTechBonuses(); Inventory = new StorageComponent(4); ReactorStorage = new StorageComponent(4); WarpStorage = new StorageComponent(1); Forge = new MechaForge(); Forge.tasks = new List <ForgeTask>(); Forge.extraItems = new ItemPack(); TechBonuses.Deserialize(reader); SandCount = reader.GetInt(); CoreEnergy = reader.GetDouble(); ReactorEnergy = reader.GetDouble(); bool isPayloadPresent = reader.GetBool(); if (isPayloadPresent) { int mechaLength = reader.GetInt(); byte[] mechaBytes = new byte[mechaLength]; reader.GetBytes(mechaBytes, mechaLength); using (MemoryStream ms = new MemoryStream(mechaBytes)) using (BinaryReader br = new BinaryReader(ms)) { Inventory.Import(br); ReactorStorage.Import(br); WarpStorage.Import(br); Forge.Import(br); } } }
public void Deserialize(NetDataReader reader) { int numQuadrants = reader.GetInt(); byte[] bytes = new byte[ByteLength(numQuadrants)]; reader.GetBytes(bytes, bytes.Length); this.QuadrantList = ByteArrayToQuadrantList(bytes, numQuadrants); }
public static IPAddress GetIPAddress(this NetDataReader @this) { var bytes = new byte[@this.GetByte()]; @this.GetBytes(bytes, bytes.Length); return(new IPAddress(bytes)); }
public void OnNetworkReceive(NetPeer peer, NetDataReader reader) { //Console.WriteLine("Data recieved"); //Console.WriteLine(reader.GetString(100)); var buf = new ByteBuffer(reader.GetBytes()); var msg = ChatMessage.GetRootAsChatMessage(buf); Console.WriteLine(string.Format("-->{0}{1}", msg.Name, msg.Message)); }
public void Deserialize(NetDataReader reader) { byte[] raw = new byte[reader.AvailableBytes]; reader.GetBytes(raw, reader.AvailableBytes); ClientInput inputBuf = Deserialize(raw); this.ClinetID = inputBuf.ClinetID; this.Axis0_X = inputBuf.Axis0_X; this.Axis0_Y = inputBuf.Axis0_Y; this.Axis1_X = inputBuf.Axis1_X; this.Axis1_Y = inputBuf.Axis1_Y; this.ToogledBtn = inputBuf.ToogledBtn; }
public static Key32 GetKey32(this NetDataReader @this) { var data = new byte[Key32.SIZE]; @this.GetBytes(data, Key32.SIZE); if (!Key32.TryFromBytes(data, out var value)) { throw new FormatException(nameof(Key32.TryFromBytes) + " returned false (should never happen; data buffer is fixed size)."); } return(value); }
public void OnNetworkReceive(NetPeer peer, NetDataReader reader, DeliveryMethod deliveryMethod) { if (ConnectedClient.Contains(peer)) { _dataWriter.Reset(); byte[] raw = new byte[reader.AvailableBytes]; reader.GetBytes(raw, reader.AvailableBytes); _dataWriter.Put(raw); foreach (var client in ConnectedClient) { client.Send(_dataWriter, deliveryMethod); } } }
public void OnNetworkReceive(NetPeer peer, NetDataReader reader) { try { var type = reader.GetByte(); var data = reader.GetBytes(); TimelineMessage timelineMessage = new TimelineMessage((TimelineMessageType)type, data); TimelineManager.Default.ProcessIncomingMessage(timelineMessage); } catch (Exception ex) { Console.WriteLine("[Client] Exception! " + ex.Message); } }
public void WriteReadByteArray() { var ndw = new NetDataWriter(); ndw.Put(new byte[] { 1, 2, 4, 8, 16, byte.MaxValue, byte.MinValue }); var ndr = new NetDataReader(ndw.Data); var readByteArray = new byte[7]; ndr.GetBytes(readByteArray, 7); Assert.That( new byte[] { 1, 2, 4, 8, 16, byte.MaxValue, byte.MinValue }, Is.EqualTo(readByteArray).AsCollection); }
public void OnReceived(NetPeer peer, NetDataReader reader) { var key = reader.GetByte(); if (mDispatchers.TryGetValue(key, out BaseDispatcher dispatcher)) { if (dispatcher != null) { var protoName = reader.GetString(); var count = reader.GetInt(); var bytes = new byte[count]; reader.GetBytes(bytes, count); dispatcher.OnMessage(protoName, bytes); } } }
public void OnNetworkReceive(NetPeer peer, NetDataReader reader, DeliveryMethod deliveryMethod) { // byte[] raw = new byte[reader.AvailableBytes]; //reader.GetBytes (raw, reader.AvailableBytes); //string str = System.Text.Encoding.ASCII.GetString (raw); //ClientInput input = new ClientInput (); //input.DecodeRawDataFromeString (str); // if (input.ClinetID == _netClient.LocalPort) { // Debug.Log("[YOU] inputed>" + input.ToString()); // } else { // Debug.Log("[OTHER] inputed>"+ input.ToString()); // } byte[] raw = new byte[reader.AvailableBytes]; reader.GetBytes(raw, reader.AvailableBytes); string str = NetdataUltility.DecodeRaw(raw); NetdataUltility.NetdataType dataType = NetdataUltility.NetdataType.UnknownData; string decoded = ""; dataType = NetdataUltility.DepacketData(str, out decoded); switch (dataType) { case NetdataUltility.NetdataType.EventData: NetEvent nEvent = new NetEvent(); nEvent.Decode(decoded); OnNetEvent(nEvent); break; case NetdataUltility.NetdataType.PlayerInputData: ClientInput cInput = new ClientInput(); cInput.Decode(decoded); ExecuteInpute(cInput); break; case NetdataUltility.NetdataType.SyncableData: break; case NetdataUltility.NetdataType.UnknownData: //Maybe drop this data ?? Debug.Log("[GameClient] receved a unknownData form server !"); break; } }
public override void OnMessage(NetPeer peer, NetDataReader reader) { var npcid = reader.GetLong(); reader.GetBytes(_readDirtyFlags, 1); var npcView = NpcMgr.GetNpc(npcid); if (npcView != null) { if ((0x1 & _readDirtyFlags[0]) != 0) { npcView.position = reader.GetVector3(); } if ((0x2 & _readDirtyFlags[0]) != 0) { npcView.rotation = reader.GetQuaternion(); } } base.IntactTransterMessage(peer, reader); }
public void OnNetworkReceive(NetPeer _netPeer, NetDataReader _netDataReader) { try { if (_netDataReader.Data == null) { return; } NetworkTags networkTag = (NetworkTags)_netDataReader.GetInt(); if (networkTag == NetworkTags.NT_S_Receiv_Player_Position) { var bytes = new byte[_netDataReader.Data.Length - sizeof(int)]; _netDataReader.GetBytes(bytes, bytes.Length); _dictionary_Server_Players_Pose[_netPeer.ConnectId].Bytes = bytes; } } catch (Exception ex) { Console.WriteLine($"OnNetworkReceive Error: {ex.Message}"); } }
public void OnNetworkReceive(NetPeer peer, NetDataReader reader) { //echo //peer.Send(reader.Data, SendOptions.ReliableUnordered); Console.WriteLine("[Server] NetworkReceive: "); try { ushort peerIndx = 0; foreach (var peerConection in TimelineServer._peerConnections) { if (peerConection.Value.ConnectId == peer.ConnectId) { peerIndx = peerConection.Key; } } var type = reader.GetByte(); var data = reader.GetBytes(); TimelineMessage timelineMessage = new TimelineMessage((TimelineMessageType)type, data); TimelineServer.TimelineSynchronizer.ProcessIncomingMessage(peerIndx, timelineMessage); TimelineManager.Default.ProcessIncomingMessage(timelineMessage); } catch (Exception ex) { Console.WriteLine("[Server] Exception! " + ex.Message); } //fragment log if (reader.AvailableBytes == 13218) { Console.WriteLine("[Server] TestFrag: {0}, {1}", reader.Data[0], reader.Data[13217]); } }