using System; using PSO2SERVER.Json; using System.Collections.Generic; using PSO2SERVER.Models; namespace PSO2SERVER.Protocol.Packets { public class QuestCategoryPacket : Packet { private List questdefs; public QuestCategoryPacket(List questdefs) { this.questdefs = questdefs; } public override byte[] Build() { PacketWriter pkt = new PacketWriter(); pkt.WriteMagic((uint)questdefs.Count, 0x1DB0, 0xC5); foreach (QuestData d in questdefs) { var qd = d.QuestDefiniton; pkt.WriteFixedLengthASCII(qd.Date, 0x20); pkt.WriteObjectHeader(qd.QuestObj); pkt.Write(qd.NameId); pkt.WriteIntArray(qd.Unk3); pkt.Write(qd.Unk4); pkt.Write(qd.Unk5); pkt.Write(qd.Unk6); pkt.WriteIntArray(qd.Unk7); pkt.WriteShortArray(qd.Unk8); pkt.Write(qd.Length); pkt.Write((byte)qd.PartyType); pkt.Write((byte)qd.Difficulties); pkt.Write((byte)qd.DifficultiesCompleted); pkt.Write(qd.Unk9); pkt.Write(qd.ReqLevel); pkt.Write(qd.SubClassReqLevel); pkt.Write(qd.EnemyLevel); pkt.Write(qd.Unk10); pkt.Write((byte)qd.QuestType); pkt.Write(qd.Unk11); pkt.Write(qd.Unk12); pkt.WriteIntArray(qd.Unk13); pkt.Write(qd.Unk14); pkt.Write(qd.Unk15); pkt.Write(qd.Unk16); } return pkt.ToArray(); } public override PacketHeader GetHeader() { return new PacketHeader(0x0B, 0x18, PacketFlags.PACKED); } } }