private object ReadExtraObject(CMsgSOMultipleObjects.SingleObject sharedObject)
        {
            try {
                using (var ms = new MemoryStream(sharedObject.object_data)) {
                    Type t;
                    if (Dota2SOHelper.SOTypes.TryGetValue(sharedObject.type_id, out t))
                    {
                        return(RuntimeTypeModel.Default.Deserialize(ms, null, t));
                    }
                }
            } catch (ProtoException ex) {
                return("Error parsing SO data: " + ex.Message);
            } catch (EndOfStreamException ex) {
                return("Error parsing SO data: " + ex.Message);
            }

            return(null);
        }
示例#2
0
        object ReadExtraObject(CMsgSOMultipleObjects.SingleObject sharedObject)
        {
            try
            {
                using (var ms = new MemoryStream(sharedObject.object_data))
                {
                    switch (sharedObject.type_id)
                    {
                    case 2003:
                        return(RuntimeTypeModel.Default.Deserialize(ms, null, typeof(CSODOTAParty)));

                    case 2004:
                        return(RuntimeTypeModel.Default.Deserialize(ms, null, typeof(CSODOTALobby)));
                    }
                }
            }
            catch (ProtoException ex)
            {
                return("Error parsing SO data: " + ex.Message);
            }

            return(null);
        }