public void Marshal(Span <byte> span, int protocolVersion) { var writer = new SpanWriter(span); writer.Skip(8); foreach (var c in _characters) { if (c == null) { writer.WriteByte(0); } else { writer.WriteByte(c.Level); writer.WriteDaocString(c.Name); writer.WriteUInt32LittleEndian(0x18); writer.Write(c.Customization); writer.Skip(13); writer.WriteDaocString(c.LocationDescription); writer.WriteDaocString(c.Classification.Class.DisplayName()); writer.WriteDaocString(c.Classification.Race.ToString()); writer.WriteUInt16LittleEndian(c.Model); writer.WriteUInt16LittleEndian(c.Region); writer.Write(c.Equipment); writer.Write(c.Stats); writer.Write(c.Classification); // active weapon slots - see DoL's PacketLib1125.cs line 340 writer.WriteByte(0xFF); writer.WriteByte(0xFF); writer.WriteByte(0x01); // something about region writer.WriteByte(c.Stats.Constitution); } } // TODO real stuff - see DoL's PacketLib1125.SendCharacterOverview }
public void Marshal(Span <byte> span, int protocolVersion) { var writer = new SpanWriter(span); writer.WriteDaocString(_version); writer.WriteUInt16LittleEndian(_build); }