//public List<MemberCondition> Conditions { get; private set; } public S_PARTY_MEMBER_BUFF_UPDATE(TeraMessageReader reader) : base(reader) { Abnormals = new List <MemberAbnormal>(); try { var abnormalsCount = reader.ReadUInt16(); reader.Skip(2); // var abnormalsOffset = reader.ReadUInt16(); reader.Skip(2); // var conditionsCount = reader.ReadUInt16(); reader.Skip(2); // var conditionsOffset = reader.ReadUInt16(); ServerId = reader.ReadUInt32(); PlayerId = reader.ReadUInt32(); for (var i = 0; i < abnormalsCount; i++) { reader.Skip(4); var ab = new MemberAbnormal { Id = reader.ReadUInt32(), Duration = reader.ReadUInt32() }; reader.Skip(4); ab.Stacks = reader.ReadInt32(); Abnormals.Add(ab); } /* * for (var i = 0; i < conditionsCount; i++) * { * reader.Skip(4); * var cond = new MemberCondition(); * cond.Id = reader.ReadUInt32(); * cond.Duration = reader.ReadUInt32(); * cond.Status = reader.ReadByte(); * * Conditions.Add(cond); * } */ } catch { Failed = true; // not used for now } }
public S_PARTY_MEMBER_BUFF_UPDATE(TeraMessageReader reader) : base(reader) { Abnormals = new List <MemberAbnormal>(); var abnormalsCount = reader.ReadUInt16(); var abnormalsOffset = reader.ReadUInt16(); var conditionsCount = reader.ReadUInt16(); var conditionsOffset = reader.ReadUInt16(); ServerId = reader.ReadUInt32(); PlayerId = reader.ReadUInt32(); for (int i = 0; i < abnormalsCount; i++) { reader.Skip(4); var ab = new MemberAbnormal(); ab.Id = reader.ReadUInt32(); ab.Duration = reader.ReadUInt32(); reader.Skip(4); ab.Stacks = reader.ReadInt32(); Abnormals.Add(ab); } return; for (int i = 0; i < conditionsCount; i++) { reader.Skip(4); var cond = new MemberCondition(); cond.Id = reader.ReadUInt32(); cond.Duration = reader.ReadUInt32(); cond.Status = reader.ReadByte(); Conditions.Add(cond); } }