public override void Serialize(IoBuffer output, ISerializationContext context) { output.PutUInt16(LotLocation_X); output.PutUInt16(LotLocation_Y); output.PutPascalString(Name); output.PutBool(StartFresh); }
public override void Serialize(IoBuffer output, ISerializationContext context) { //IoBuffer result = Allocate(6); output.PutUInt16(HostReservedWords); output.PutUInt16(HostVersion); output.PutUInt16(ClientBufSize); //return result; }
public void Serialize(IoBuffer output, ISerializationContext context) { output.PutString(this.User, 112, Encoding.ASCII); output.PutString(this.AriesVersion, 80, Encoding.ASCII); output.PutString(this.Email, 40, Encoding.ASCII); output.PutString(this.Authserv, 84, Encoding.ASCII); output.PutUInt16(this.Product); output.Put(this.Unknown); output.PutString(this.ServiceIdent, 3, Encoding.ASCII); output.PutUInt16(this.Unknown2); output.PutString(this.Password, 32, Encoding.ASCII); }
public override void Serialize(IoBuffer output, ISerializationContext context) { output.PutUInt16(MajorVersion); output.PutUInt16(MinorVersion); output.PutUInt16(PointVersion); output.PutUInt16(ArtVersion); output.PutUInt64(this.Timestamp); output.Put(NumberOfAttempts); output.Put(LastExitCode); output.Put(LastFailureType); output.Put(FailureCount); output.Put(IsRunning); output.Put(IsReLogging); }
public override void Serialize(IoBuffer output, ISerializationContext context) { var len = 0; if (PlayerIds != null) { len = PlayerIds.Count; } output.PutUInt16((ushort)len); for (int i = 0; i < len; i++) { output.PutUInt32(PlayerIds[i]); } }
private void EncodeVoltronStylePackets(IoSession session, IProtocolEncoderOutput output, AriesPacketType ariesType, ushort packetType, IoBufferSerializable message) { var payload = IoBuffer.Allocate(512); payload.Order = ByteOrder.BigEndian; payload.AutoExpand = true; message.Serialize(payload, Context); payload.Flip(); int payloadSize = payload.Remaining; IoBuffer headers = IoBuffer.Allocate(18); headers.Order = ByteOrder.LittleEndian; /** * Aries header * uint32 type * uint32 timestamp * uint32 payloadSize */ uint timestamp = (uint)TimeSpan.FromTicks(DateTime.Now.Ticks - session.CreationTime.Ticks).TotalMilliseconds; headers.PutUInt32(ariesType.GetPacketCode()); headers.PutUInt32(timestamp); headers.PutUInt32((uint)payloadSize + 6); /** * Voltron header * uint16 type * uint32 payloadSize */ headers.Order = ByteOrder.BigEndian; headers.PutUInt16(packetType); headers.PutUInt32((uint)payloadSize + 6); if (payloadSize > 0) { headers.AutoExpand = true; headers.Put(payload); } headers.Flip(); output.Write(headers); //output.Flush(); }
private cTSOValue SerializeValue(uint type, object value) { var result = new cTSOValue(); IoBuffer buffer = null; switch (type) { case 0x48BC841E: if (!(value is sbyte) && !(value is Enum)) { return(null); } result.Type = cTSOValue_sint8; result.Value = new sbyte[] { Convert.ToSByte(value) }; break; case 0x74336731: if (!(value is ushort)) { return(null); } buffer = AbstractVoltronPacket.Allocate(2); buffer.PutUInt16((ushort)value); buffer.Flip(); result.Type = cTSOValue_uint16; result.Value = buffer; break; case 0xF192ECA6: if (!(value is short)) { return(null); } buffer = AbstractVoltronPacket.Allocate(2); buffer.PutInt16((short)value); buffer.Flip(); result.Type = cTSOValue_sint16; result.Value = buffer; break; case 0xE0463A2F: if (!(value is uint)) { return(null); } buffer = AbstractVoltronPacket.Allocate(4); buffer.PutUInt32((uint)value); buffer.Flip(); result.Type = cTSOValue_uint32; result.Value = buffer; break; case 0xA0587098: if (!(value is int)) { return(null); } buffer = AbstractVoltronPacket.Allocate(4); buffer.PutInt32((int)value); buffer.Flip(); result.Type = cTSOValue_sint32; result.Value = buffer; break; case 0x385070C9: if (!(value is ulong)) { return(null); } buffer = AbstractVoltronPacket.Allocate(8); buffer.PutUInt64((ulong)value); buffer.Flip(); result.Type = cTSOValue_uint64; result.Value = buffer; break; case 0x90D315F7: if (!(value is long)) { return(null); } buffer = AbstractVoltronPacket.Allocate(8); buffer.PutInt64((long)value); buffer.Flip(); result.Type = cTSOValue_sint64; result.Value = buffer; break; default: //It may be a struct var _struct = Format.Structs.FirstOrDefault(x => x.ID == type); if (_struct != null) { var body = new cITSOProperty(); body.StructType = _struct.ID; body.StructFields = new List <cITSOField>(); foreach (var field in _struct.Fields) { object fieldValue = GetFieldValue(value, field.Name); if (fieldValue == null) { continue; } body.StructFields.Add(new cITSOField { ID = field.ID, Value = SerializeValue(field.TypeID, fieldValue) }); } result.Type = cTSOValue_property; result.Value = body; return(result); } return(null); } return(result); }
public static void PutEnum <T>(this IoBuffer buffer, T enumValue) { ushort value = Convert.ToUInt16(enumValue); buffer.PutUInt16(value); }
public override void Serialize(IoBuffer output, ISerializationContext context) { //var result = Allocate(8); //result.AutoExpand = true; output.PutUInt32(StatusCode); output.PutPascalString(ReasonText); //Room Info output.PutPascalString("A 16318812"); output.PutPascalString("1"); output.Put((byte)0); //Owner output.PutPascalString("A 65538"); output.PutPascalString("1"); //Stage id output.PutPascalString("A 16318812"); output.PutPascalString("1"); //Currnet ocupancy output.PutUInt32(10); //Max occupancy output.PutUInt32(50); //pswd required output.Put((byte)0); //room type output.Put((byte)1); //Group output.PutPascalString("1"); //Admin list output.PutUInt16(0); //m_EnabledFlag output.Put(0); //m_AdmitList output.PutUInt16(0); //m_EnabledFlag output.Put(0); //m_DenyList output.PutUInt16(0); //m_EnabledFlag output.Put(0); output.PutUInt32(0); output.PutUInt32(0); output.PutUInt32(0); //player info output.PutPascalString("A " + AvatarID.ToString()); output.PutPascalString(""); output.Put(0); output.Put(0); //return result; }
public void Serialize(IoBuffer output, object value, ISerializationContext serializer) { output.PutUInt16((ushort)value); }
public void Serialize(IoBuffer output, ISerializationContext context) { output.PutUInt32(AvatarId); output.PutPascalVLCString("A"); output.PutPascalVLCString("B"); output.PutInt16(AvatarSkills_Logic); output.PutInt16(AvatarSkills_LockLv_Logic); output.PutInt16(AvatarSkills_Body); output.PutInt16(AvatarSkills_LockLv_Body); output.PutInt16(AvatarSkills_LockLv_Mechanical); output.PutInt16(AvatarSkills_LockLv_Creativity); output.PutInt16(AvatarSkills_LockLv_Cooking); output.PutInt16(AvatarSkills_Cooking); output.PutInt16(AvatarSkills_Charisma); output.PutInt16(AvatarSkills_LockLv_Charisma); output.PutInt16(AvatarSkills_Mechanical); output.PutInt16(AvatarSkills_Creativity); //Unknown output.PutUInt32(0x28292a2b); output.PutUInt32(0x2c2d2e2f); output.PutUInt32(0x30313233); output.PutUInt32(0x34353637); output.PutUInt32(0x38393a3b); output.PutUInt32(0x3c3d3e3f); output.PutUInt32(0x40414243); output.Put(0x44); output.Put(0x45); output.PutUInt32(Cash); //Unknown output.PutUInt32(0x4a4b4c4d); output.PutUInt32(0x4e4f5051); output.Put(0x52); output.PutPascalVLCString("C"); output.PutPascalVLCString("D"); output.PutPascalVLCString("E"); output.PutPascalVLCString("F"); output.PutPascalVLCString("G"); output.PutUInt32(0x54555657); output.PutUInt32(0x58595A5B); output.PutUInt32(0x5C5D5E5F); output.PutUInt32(0x60616263); output.PutUInt32(0x64656667); output.PutUInt32(0x68696A6B); output.PutUInt32(0x6C6D6E6F); output.PutUInt32(0x70717273); output.PutUInt32(0x74757677); //Bonus count if (Bonus == null) { output.PutUInt32(0); } else { output.PutUInt32((uint)Bonus.Count); for (var i = 0; i < Bonus.Count; i++) { var bonus = Bonus[i]; //Unknown output.PutUInt32(0x7C7D7E7F); output.PutUInt32(0x80818283); //Sim bonus output.PutUInt32(bonus.SimBonus); //Property bonus output.PutUInt32(bonus.PropertyBonus); //Visitor bonus output.PutUInt32(bonus.VisitorBonus); //Date string output.PutPascalVLCString(bonus.Date); } } //Unknown //count output.PutUInt32(0x01); output.PutUInt32(0x94959697); output.PutUInt64(0x98999a9b9c9d9e9f); //Unknown //count output.PutUInt32(0x01); output.PutUInt32(0xa5a6a7a8); output.PutUInt32(0xa9aaabac); //Unknown //count output.PutUInt32(0x01); output.PutUInt16(0xb1b2); output.PutUInt16(0xb3b4); output.PutUInt32(0xb5b6b7b8); output.PutUInt16(0xb9ba); output.PutUInt16(0xbbbc); output.PutUInt16(0xbdbe); output.PutUInt32(0xbfc0c1c2); output.PutUInt32(0xc3c4c5c6); //Unknown //count output.PutUInt32(0x01); output.PutUInt32(0xcbcccdce); output.PutUInt32(0xcfd0d1d2); output.PutUInt32(0xd3d4d5d6); output.Put(0xd7); output.Put(0xd8); output.PutUInt32(0xd9dadbdc); output.PutUInt32(0xdddedfe0); output.PutUInt32(0xe1e2e3e4); //Unknown //count output.PutUInt32(0x01); output.PutUInt32(0xe9eaebec); output.PutUInt32(0xedeeeff0); output.PutUInt32(0xf1f2f3f4); output.Put(0xf5); output.Put(0xf6); output.PutUInt32(0xf7f8f9fa); output.PutUInt32(0xfbfcfdfe); output.PutUInt32(0xff808182); //Unknown //count output.PutUInt32(0x01); output.PutUInt32(0x8788898a); output.PutUInt16(0x8b8c); output.PutUInt32(0x8d8e8f90); output.PutUInt32(0x91929394); output.PutUInt32(0x95969798); output.PutUInt32(0x999a9b9c); //Unknown //count output.PutUInt32(0x01); output.PutUInt16(0x7071); output.PutUInt64(0x7273747576777879); //Unknown output.PutUInt32(0x7a7b7c7d); output.PutUInt32(0x7e7f6061); output.PutUInt32(0x62636465); output.PutUInt32(0x66676869); output.PutUInt32(0x6a6b6c6d); output.PutUInt32(0x6e6f5051); output.PutUInt32(0x52535455); output.PutUInt32(0x56575859); output.PutUInt32(0x69f4d5e8); output.PutUInt32(0x5e5f4041); }