public void RequestSyncData(ServiceType type, ulong characterId, uint id, Action <float> setter) { RequestSyncDataImpl(type, characterId, id, ms => { ms.Read(mBuffer, 0, 4); setter(SerializerUtility.ReadInt(this.mBuffer) / 10000.0f); }); }
public static ServiceDesc Deserialize(Stream s) { ServiceDesc desc = new ServiceDesc(); byte[] buffer = new byte[9]; s.Read(buffer, 0, 1); byte mask = buffer[0]; s.Read(buffer, 0, 1); desc._Type = buffer[0]; if ((mask & 1) != 0) { s.Read(buffer, 0, 1); desc._ServiceType = buffer[0]; } if ((mask & 2) != 0) { s.Read(buffer, 0, 4); desc._FuncId = (uint)SerializerUtility.ReadInt(buffer); } if ((mask & 4) != 0) { s.Read(buffer, 0, 4); desc._PacketId = (uint)SerializerUtility.ReadInt(buffer); } if ((mask & 8) != 0) { s.Read(buffer, 0, 2); desc._Error = (uint)SerializerUtility.ReadShort(buffer); } if ((mask & 16) != 0) { desc._ClientId = (ulong)SerializerUtility.ReadLongOpt(s, buffer); } if ((mask & 32) != 0) { desc._CharacterId = (ulong)SerializerUtility.ReadLongOpt(s, buffer); } if ((mask & 64) != 0) { s.Read(buffer, 0, 2); var length = SerializerUtility.ReadShort(buffer); ulong l; if (desc._Routing == null) { desc._Routing = new List <ulong>(); } for (int i = 0; i < length; i++) { l = (ulong)SerializerUtility.ReadLongOpt(s, buffer); desc._Routing.Add(l); } } if ((mask & 128) != 0) { s.Read(buffer, 0, 4); var length = SerializerUtility.ReadInt(buffer); desc.Data = new byte[length]; s.Read(desc.Data, 0, length); } else { desc._Data = sEmptyByteArray; } return(desc); }