public static List<object> Decode(byte[] buffer, int offset, int count) { const int headLen = 4; if (count > headLen) { List<object> objs = new List<object>(); Amf3Reader<Variant> reader = new Amf3Reader<Variant>(buffer, offset + headLen, count - headLen); while (reader.Unfinished) { objs.Add(reader.ReadObject()); } return objs; } return null; }
/// <summary> /// 查看玩家信息 /// </summary> /// <param name="note"></param> /// <param name="comm"></param> internal static object ViewPlayer(Notification note) { string[] strs = GetCommand(note); if (strs.Length != 1) return null; PlayerBusiness player = PlayersProxy.FindPlayerByName(strs[0].Trim()); if (player == null) { return string.Format(TipManager.GetMessage(GMReturn.NoName), strs[0]); } var v = new PlayerDetail(player, 2); Amf3Writer writer = new Amf3Writer(65535, false); writer.WriteObject(v); Amf3Reader<Variant> reader = new Amf3Reader<Variant>(writer.Array, 0, writer.Count); object b = reader.ReadObject(); return new object[] { player.Online, b }; }