コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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);
                }
            }
        }
コード例 #4
0
        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);
                }
            }
        }
コード例 #5
0
        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);
                }
            }
        }
コード例 #6
0
        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");
        }
コード例 #7
0
        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);
                }
            }
        }
コード例 #8
0
ファイル: QuestHandler.cs プロジェクト: Stewa91/123
        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);
                }
            }
        }