PSO2SERVER/Server/Protocol/Packets/0B-QuestPacket/0B-18-QuestCategoryPacket.cs

60 lines
1.9 KiB
C#
Raw Normal View History

2024-09-10 00:31:40 +08:00
using System;
using PSO2SERVER.Json;
using System.Collections.Generic;
2024-09-10 01:13:20 +08:00
using PSO2SERVER.Models;
2024-09-10 00:31:40 +08:00
namespace PSO2SERVER.Protocol.Packets
2024-09-10 00:31:40 +08:00
{
2024-12-06 03:42:25 +08:00
public class QuestCategoryPacket : Packet
2024-09-10 00:31:40 +08:00
{
private List<QuestData> questdefs;
2024-09-10 00:31:40 +08:00
public QuestCategoryPacket(List<QuestData> questdefs)
2024-09-10 00:31:40 +08:00
{
this.questdefs = questdefs;
}
public override byte[] Build()
{
PacketWriter pkt = new PacketWriter();
pkt.WriteMagic((uint)questdefs.Count, 0x1DB0, 0xC5);
foreach (QuestData d in questdefs)
2024-09-10 00:31:40 +08:00
{
var qd = d.QuestDefiniton;
pkt.WriteFixedLengthASCII(qd.Date, 0x20);
pkt.WriteObjectHeader(qd.QuestObj);
pkt.Write(qd.NameId);
2024-12-11 20:47:36 +08:00
pkt.WriteIntArray(qd.Unk3);
pkt.Write(qd.Unk4);
pkt.Write(qd.Unk5);
pkt.Write(qd.Unk6);
2024-12-11 20:47:36 +08:00
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);
2024-12-11 20:47:36 +08:00
pkt.WriteIntArray(qd.Unk13);
pkt.Write(qd.Unk14);
pkt.Write(qd.Unk15);
pkt.Write(qd.Unk16);
2024-09-10 00:31:40 +08:00
}
return pkt.ToArray();
2024-09-10 00:31:40 +08:00
}
public override PacketHeader GetHeader()
{
2024-09-17 11:29:41 +08:00
return new PacketHeader(0x0B, 0x18, PacketFlags.PACKED);
2024-09-10 00:31:40 +08:00
}
}
}