public static void HandleQuestPoiQueryResponse(Packet packet) { packet.ReadInt32("NumPOIs"); int int4 = packet.ReadInt32("QuestPOIData"); for (int i = 0; i < int4; ++i) { int questId = packet.ReadInt32("QuestID", i); if (ClientVersion.RemovedInVersion(ClientVersionBuild.V6_2_0_20173)) { packet.ReadUInt32("NumBlobs", i); } int int2 = packet.ReadInt32("QuestPOIBlobData", i); for (int j = 0; j < int2; ++j) { QuestPOI questPoi = new QuestPOI { QuestID = questId, ID = j, BlobIndex = packet.ReadInt32("BlobIndex", i, j), ObjectiveIndex = packet.ReadInt32("ObjectiveIndex", i, j), QuestObjectiveID = packet.ReadInt32("QuestObjectiveID", i, j), QuestObjectID = packet.ReadInt32("QuestObjectID", i, j), MapID = packet.ReadInt32("MapID", i, j), WorldMapAreaId = packet.ReadInt32("WorldMapAreaID", i, j), Floor = packet.ReadInt32("Floor", i, j), Priority = packet.ReadInt32("Priority", i, j), Flags = packet.ReadInt32("Flags", i, j), WorldEffectID = packet.ReadInt32("WorldEffectID", i, j), PlayerConditionID = packet.ReadInt32("PlayerConditionID", i, j) }; if (ClientVersion.RemovedInVersion(ClientVersionBuild.V6_2_0_20173)) { packet.ReadInt32("NumPoints", i, j); } questPoi.WoDUnk1 = packet.ReadInt32("WoDUnk1", i, j); int int13 = packet.ReadInt32("QuestPOIBlobPoint", i, j); for (int k = 0; k < int13; ++k) { QuestPOIPoint questPoiPoint = new QuestPOIPoint { QuestID = questId, Idx1 = j, Idx2 = k, X = packet.ReadInt32("X", i, j, k), Y = packet.ReadInt32("Y", i, j, k) }; Storage.QuestPOIPoints.Add(questPoiPoint, packet.TimeSpan); } Storage.QuestPOIs.Add(questPoi, packet.TimeSpan); } } }
public static void HandleQuestPoiQueryResponse(Packet packet) { packet.ReadInt32("NumPOIs"); int questPOIData = packet.ReadInt32("QuestPOIData"); for (int i = 0; i < questPOIData; ++i) { int questId = packet.ReadInt32("QuestID", i); int questPOIBlobData = packet.ReadInt32("QuestPOIBlobData", i); for (int j = 0; j < questPOIBlobData; ++j) { QuestPOI questPoi = new QuestPOI { QuestID = questId, ID = j, BlobIndex = packet.ReadInt32("BlobIndex", i, j), ObjectiveIndex = packet.ReadInt32("ObjectiveIndex", i, j), QuestObjectiveID = packet.ReadInt32("QuestObjectiveID", i, j), QuestObjectID = packet.ReadInt32("QuestObjectID", i, j), MapID = packet.ReadInt32("MapID", i, j), WorldMapAreaId = packet.ReadInt32("WorldMapAreaID", i, j), Floor = packet.ReadInt32("Floor", i, j), Priority = packet.ReadInt32("Priority", i, j), Flags = packet.ReadInt32("Flags", i, j), WorldEffectID = packet.ReadInt32("WorldEffectID", i, j), PlayerConditionID = packet.ReadInt32("PlayerConditionID", i, j) }; questPoi.WoDUnk1 = packet.ReadInt32("WoDUnk1", i, j); int questPOIBlobPoint = packet.ReadInt32("QuestPOIBlobPoint", i, j); for (int k = 0; k < questPOIBlobPoint; ++k) { QuestPOIPoint questPoiPoint = new QuestPOIPoint { QuestID = questId, Idx1 = j, Idx2 = k, X = packet.ReadInt32("X", i, j, k), Y = packet.ReadInt32("Y", i, j, k) }; Storage.QuestPOIPoints.Add(questPoiPoint, packet.TimeSpan); } if (ClientVersion.AddedInVersion(ClientVersionBuild.V7_3_5_25848)) { packet.ResetBitReader(); questPoi.AlwaysAllowMergingBlobs = packet.ReadBit("AlwaysAllowMergingBlobs", i, j); } Storage.QuestPOIs.Add(questPoi, packet.TimeSpan); } } }
public static void HandleQuestPoiQueryResponse(Packet packet) { packet.ReadUInt32("NumPOIs"); var questPOIData = packet.ReadUInt32("QuestPOIData"); for (var i = 0; i < questPOIData; ++i) { int questId = packet.ReadInt32("QuestID", i); var questPOIBlobData = packet.ReadUInt32("QuestPOIBlobData", i); for (var j = 0; j < questPOIBlobData; ++j) { QuestPOI questPoi = new QuestPOI { QuestID = questId, ID = j, BlobIndex = packet.ReadInt32("BlobIndex", i, j), ObjectiveIndex = packet.ReadInt32("ObjectiveIndex", i, j), QuestObjectiveID = packet.ReadInt32("QuestObjectiveID", i, j), QuestObjectID = packet.ReadInt32("QuestObjectID", i, j), MapID = packet.ReadInt32("MapID", i, j), UiMapID = packet.ReadInt32("UiMapID", i, j), Priority = packet.ReadInt32("Priority", i, j), Flags = packet.ReadInt32("Flags", i, j), WorldEffectID = packet.ReadInt32("WorldEffectID", i, j), PlayerConditionID = packet.ReadInt32("PlayerConditionID", i, j), Unknown = packet.ReadInt32("AlternativePlayerConditionID?", i, j), SpawnTrackingID = packet.ReadInt32("SpawnTrackingID", i, j) }; var questPOIBlobPoint = packet.ReadUInt32("QuestPOIBlobPoint", i, j); for (var k = 0; k < questPOIBlobPoint; ++k) { QuestPOIPoint questPoiPoint = new QuestPOIPoint { QuestID = questId, Idx1 = j, Idx2 = k, X = packet.ReadInt16("X", i, j, k), Y = packet.ReadInt16("Y", i, j, k), Z = packet.ReadInt16("Z", i, j, k) }; Storage.QuestPOIPoints.Add(questPoiPoint, packet.TimeSpan); } packet.ResetBitReader(); questPoi.AlwaysAllowMergingBlobs = packet.ReadBit("AlwaysAllowMergingBlobs", i, j); Storage.QuestPOIs.Add(questPoi, packet.TimeSpan); } } }
public static void HandleQuestPoiQueryResponse(Packet packet) { packet.ReadInt32("NumPOIs"); var int4 = packet.ReadInt32("QuestPOIData"); for (var i = 0; i < int4; ++i) { var questId = packet.ReadUInt32("QuestID", i); packet.ReadUInt32("NumBlobs", i); var int2 = packet.ReadInt32("QuestPOIBlobData", i); for (var j = 0; j < int2; ++j) { var questPoi = new QuestPOI(); var idx = packet.ReadInt32("BlobIndex", i, j); questPoi.ObjectiveIndex = packet.ReadInt32("ObjectiveIndex", i, j); packet.ReadInt32("QuestObjectiveID", i, j); packet.ReadInt32("QuestObjectID", i, j); questPoi.Map = (uint)packet.ReadInt32("MapID", i, j); questPoi.WorldMapAreaId = (uint)packet.ReadInt32("WorldMapAreaID", i, j); questPoi.FloorId = (uint)packet.ReadInt32("Floor", i, j); packet.ReadInt32("Priority", i, j); packet.ReadInt32("Flags", i, j); packet.ReadInt32("WorldEffectID", i, j); packet.ReadInt32("PlayerConditionID", i, j); packet.ReadInt32("NumPoints", i, j); packet.ReadInt32("Int12", i, j); var int13 = packet.ReadInt32("QuestPOIBlobPoint", i, j); questPoi.Points = new List <QuestPOIPoint>(int13); for (var k = 0u; k < int13; ++k) { var questPoiPoint = new QuestPOIPoint { Index = k, X = packet.ReadInt32("X", i, j, (int)k), Y = packet.ReadInt32("Y", i, j, (int)k) }; questPoi.Points.Add(questPoiPoint); } Storage.QuestPOIs.Add(new Tuple <uint, uint>(questId, (uint)idx), questPoi, packet.TimeSpan); } } }
public static void HandleQuestPoiQueryResponse(Packet packet) { var count = packet.ReadInt32("Count"); for (var i = 0; i < count; i++) { var questId = packet.ReadEntryWithName <Int32>(StoreNameType.Quest, "Quest ID", i); var counter = packet.ReadInt32("POI Counter", i); for (var j = 0; j < counter; j++) { var questPoi = new QuestPOI(); var idx = packet.ReadInt32("POI Index", i, j); questPoi.ObjectiveIndex = packet.ReadInt32("Objective Index", i, j); questPoi.Map = packet.ReadEntryWithName <Int32>(StoreNameType.Map, "Map Id", i); questPoi.WorldMapAreaId = packet.ReadInt32("World Map Area", i, j); questPoi.FloorId = packet.ReadInt32("Floor Id", i, j); questPoi.UnkInt1 = packet.ReadInt32("Unk Int32 2", i, j); questPoi.UnkInt2 = packet.ReadInt32("Unk Int32 3", i, j); var pointsSize = packet.ReadInt32("Points Counter", i, j); questPoi.Points = new List <QuestPOIPoint>(pointsSize); for (var k = 0; k < pointsSize; k++) { var questPoiPoint = new QuestPOIPoint { Index = k, X = packet.ReadInt32("Point X", i, j, k), Y = packet.ReadInt32("Point Y", i, j, k) }; questPoi.Points.Add(questPoiPoint); } Storage.QuestPOIs.Add(new Tuple <uint, uint>((uint)questId, (uint)idx), questPoi, packet.TimeSpan); } } }
public static void HandleQuestPoiQueryResponse(Packet packet) { uint count = packet.ReadBits("Count", 20); var poiCounter = new uint[count]; var pointsSize = new uint[count][]; for (int i = 0; i < count; ++i) { poiCounter[i] = packet.ReadBits("POI Counter", 18, i); pointsSize[i] = new uint[poiCounter[i]]; for (int j = 0; j < poiCounter[i]; ++j) { pointsSize[i][j] = packet.ReadBits("Points Counter", 21, i, j); } } for (int i = 0; i < count; ++i) { var questPOIs = new List <QuestPOI>(); var questPoiPointsForQuest = new List <QuestPOIPoint>(); for (int j = 0; j < poiCounter[i]; ++j) { QuestPOI questPoi = new QuestPOI(); packet.ReadInt32("World Effect ID", i, j); var questPoiPoints = new List <QuestPOIPoint>(); for (int k = 0; k < pointsSize[i][j]; ++k) { QuestPOIPoint questPoiPoint = new QuestPOIPoint { Idx2 = k, X = packet.ReadInt32("Point X", i, j, k), Y = packet.ReadInt32("Point Y", i, j, k) }; questPoiPoints.Add(questPoiPoint); } questPoi.ObjectiveIndex = packet.ReadInt32("Objective Index", i, j); int idx = packet.ReadInt32("POI Index", i, j); questPoi.ID = idx; packet.ReadInt32("Unk Int32 2", i, j); packet.ReadInt32("Unk Int32 4", i, j); questPoi.MapID = (int)packet.ReadUInt32 <MapId>("Map Id", i, j); questPoi.Floor = (int)packet.ReadUInt32("Floor Id", i, j); questPoi.WorldMapAreaId = (int)packet.ReadUInt32("World Map Area ID", i, j); packet.ReadInt32("Unk Int32 3", i, j); packet.ReadInt32("Unk Int32 1", i, j); packet.ReadInt32("Player Condition ID", i, j); questPoiPoints.ForEach(p => { p.Idx1 = idx; questPoiPointsForQuest.Add(p); }); questPOIs.Add(questPoi); } int questId = packet.ReadInt32 <QuestId>("Quest ID", i); packet.ReadInt32("POI Counter?", i); questPoiPointsForQuest.ForEach(q => { q.QuestID = questId; Storage.QuestPOIPoints.Add(q, packet.TimeSpan); }); questPOIs.ForEach(q => { q.QuestID = questId; Storage.QuestPOIs.Add(q, packet.TimeSpan); }); } packet.ReadInt32("Count"); }
public static void HandleQuestPoiQueryResponse(Packet packet) { packet.ReadInt32("Count?"); var count = packet.ReadBits("Count", 20); if (count == 0) { return; // nothing to do } var POIcounter = new uint[count]; var pointsSize = new uint[count][]; for (var i = 0; i < count; ++i) { POIcounter[i] = packet.ReadBits("POI Counter", 18, i); pointsSize[i] = new uint[POIcounter[i]]; for (var j = 0; j < POIcounter[i]; ++j) { pointsSize[i][j] = packet.ReadBits("Points Counter", 21, i, j); } } for (var i = 0; i < count; ++i) { var questPOIs = new List <QuestPOI>(); for (var j = 0; j < POIcounter[i]; ++j) { var questPoi = new QuestPOI(); questPoi.Points = new List <QuestPOIPoint>((int)pointsSize[i][j]); for (var k = 0u; k < pointsSize[i][j]; ++k) { var questPoiPoint = new QuestPOIPoint { Index = k, Y = packet.ReadInt32("Point Y", i, j, (int)k), X = packet.ReadInt32("Point X", i, j, (int)k) }; questPoi.Points.Add(questPoiPoint); } questPoi.FloorId = packet.ReadUInt32("Floor Id", i, j); questPoi.Idx = (uint)packet.ReadInt32("POI Index", i, j); questPoi.ObjectiveIndex = packet.ReadInt32("Objective Index", i, j); questPoi.WorldMapAreaId = packet.ReadUInt32("World Map Area ID", i, j); packet.ReadUInt32("Player Condition ID", i, j); packet.ReadUInt32("World Effect ID", i, j); questPoi.UnkInt2 = packet.ReadUInt32("Unk Int32 1", i, j); packet.ReadUInt32("Unk Int32 2", i, j); questPoi.UnkInt1 = packet.ReadUInt32("Unk Int32 3", i, j); packet.ReadUInt32("Points Counter?", i, j); questPoi.Map = packet.ReadUInt32 <MapId>("Map Id", i, j); questPOIs.Add(questPoi); } var questId = packet.ReadInt32 <QuestId>("Quest ID", i); packet.ReadInt32("POI Counter?", i); foreach (var questpoi in questPOIs) { Storage.QuestPOIs.Add(new Tuple <uint, uint>((uint)questId, questpoi.Idx), questpoi, packet.TimeSpan); } } }
public static void HandleQuestPoiQueryResponse(Packet packet) { packet.ReadInt32("Count?"); var count = packet.ReadBits("Count", 20); var POIcounter = new uint[count]; var pointsSize = new uint[count][]; for (var i = 0; i < count; ++i) { POIcounter[i] = packet.ReadBits("POI Counter", 18, i); pointsSize[i] = new uint[POIcounter[i]]; for (var j = 0; j < POIcounter[i]; ++j) { pointsSize[i][j] = packet.ReadBits("Points Counter", 21, i, j); } } for (var i = 0; i < count; ++i) { var questPOIs = new List <QuestPOI>(); for (var j = 0; j < POIcounter[i]; ++j) { var questPoi = new QuestPOI(); questPoi.Points = new List <QuestPOIPoint>((int)pointsSize[i][j]); for (var k = 0u; k < pointsSize[i][j]; ++k) { var questPoiPoint = new QuestPOIPoint { Index = k, X = packet.ReadInt32("Point X", i, j, (int)k), Y = packet.ReadInt32("Point Y", i, j, (int)k) }; questPoi.Points.Add(questPoiPoint); } packet.ReadInt32("Unk Int32 1", i, j); packet.ReadInt32("Unk Int32 2", i, j); packet.ReadInt32("Unk Int32 3", i, j); questPoi.Map = (uint)packet.ReadEntryWithName <UInt32>(StoreNameType.Map, "Map Id", i, j); questPoi.ObjectiveIndex = packet.ReadInt32("Objective Index", i, j); questPoi.WorldMapAreaId = packet.ReadUInt32("World Map Area", i, j); packet.ReadInt32("Unk Int32 4", i, j); packet.ReadInt32("Unk Int32 5", i, j); questPoi.Idx = (uint)packet.ReadInt32("POI Index", i, j); packet.ReadInt32("Unk Int32 6", i, j); questPoi.FloorId = packet.ReadUInt32("Floor Id", i, j); questPOIs.Add(questPoi); } var questId = packet.ReadEntryWithName <Int32>(StoreNameType.Quest, "Quest ID", i); packet.ReadInt32("POI Counter?", i); foreach (var questpoi in questPOIs) { Storage.QuestPOIs.Add(new Tuple <uint, uint>((uint)questId, questpoi.Idx), questpoi, packet.TimeSpan); } } }