From e0708dc173907cf08f90b17abe8e25637012cd12 Mon Sep 17 00:00:00 2001 From: Tokeiburu Date: Mon, 4 Mar 2024 16:18:42 -0500 Subject: [PATCH] Made the InitialPackets optional. Fixed the PACKET_ZC_USE_SKILL_0x011a struct size. --- RrfParser/Packet/PacketParser.cs | 2 +- RrfParser/Packet/PacketStructures.cs | 2 +- RrfParser/Replay/ReadPackets.cs | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/RrfParser/Packet/PacketParser.cs b/RrfParser/Packet/PacketParser.cs index b509947..82901ea 100644 --- a/RrfParser/Packet/PacketParser.cs +++ b/RrfParser/Packet/PacketParser.cs @@ -276,7 +276,7 @@ public class PacketParser { mobOutput.AppendLine("\tADelay (approximation): " + mobData.ADelay); mobOutput.AppendLine("\tHP: " + mobData.HP); - if (Data.MobDrops.ContainsKey(mobData.View)) { + if (Data.MobDrops.ContainsKey(mobData.View) && Data.MobDead.ContainsKey(mobData.View)) { int deaths = Data.MobDead[mobData.View]; Dictionary rates = new Dictionary(); Dictionary rates2 = new Dictionary(); diff --git a/RrfParser/Packet/PacketStructures.cs b/RrfParser/Packet/PacketStructures.cs index 1053148..8cb4e52 100644 --- a/RrfParser/Packet/PacketStructures.cs +++ b/RrfParser/Packet/PacketStructures.cs @@ -175,7 +175,7 @@ public struct PACKET_ZC_USE_SKILL_0x09cb { public struct PACKET_ZC_USE_SKILL_0x011a { public Int16 PacketType; public UInt16 SKID; - public Int32 level; + public UInt16 level; public UInt32 targetAID; public UInt32 srcAID; public byte result; diff --git a/RrfParser/Replay/ReadPackets.cs b/RrfParser/Replay/ReadPackets.cs index b891d84..4b76374 100644 --- a/RrfParser/Replay/ReadPackets.cs +++ b/RrfParser/Replay/ReadPackets.cs @@ -29,7 +29,11 @@ public class ReadPackets { List chunks = new List(); - chunks.AddRange(mainContainers.First(p => p.ContainerType == ContainerType.InitialPackets).Data); + var initialPacket = mainContainers.FirstOrDefault(p => p.ContainerType == ContainerType.InitialPackets); + + if (initialPacket != null) + chunks.AddRange(initialPacket.Data); + chunks.AddRange(mainContainers.First(p => p.ContainerType == ContainerType.PacketStream).Data); chunks = chunks.Where(p => p.Length > 0).ToList();