private void DoShipList(Socket socket) { var writer = new PacketWriter(); var entries = new List <ShipEntry>(); for (var i = 1; i < 11; i++) { var entry = new ShipEntry { order = (ushort)i, number = (uint)i, status = i == 2 ? ShipStatus.Online : ShipStatus.Offline, // Maybe move to Config? name = String.Format("Ship{0:0#}", i), ip = PolarisApp.BindAddress.GetAddressBytes() }; entries.Add(entry); } PacketHeader header = new PacketHeader(8 + Marshal.SizeOf(typeof(ShipEntry)) * entries.Count + 12, 0x11, 0x3D, 0x4, 0x0); writer.WriteStruct(header); writer.WriteMagic((uint)entries.Count, 0xE418, 81); foreach (var entry in entries) { writer.WriteStruct(entry); } writer.Write((Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds); writer.Write(1); socket.Send(writer.ToArray()); socket.Close(); }
private unsafe void DoShipList(Socket socket) { PacketWriter writer = new PacketWriter(); List <ShipEntry> entries = new List <ShipEntry>(); for (int i = 1; i < 11; i++) { ShipEntry entry = new ShipEntry(); entry.order = (ushort)i; entry.number = (uint)i; entry.status = ShipStatus.Online; entry.name = String.Format("Ship{0:0#}", i); entry.ip = PolarisApp.BindAddress.GetAddressBytes(); entries.Add(entry); } writer.WriteStruct(new PacketHeader(Marshal.SizeOf(typeof(ShipEntry)) * entries.Count + 12, 0x11, 0x3D, 0x4, 0x0)); writer.WriteMagic((uint)entries.Count, 0xE418, 81); foreach (ShipEntry entry in entries) { writer.WriteStruct(entry); } writer.Write((Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds); writer.Write((Int32)1); socket.Send(writer.ToArray()); socket.Close(); }