Exemplo n.º 1
0
        public static void DDD_InterrogationResponse(ClientMessage message, Session session)
        {
            if (PropertyManager.GetBool("show_dat_warning").Item)
            {
                message.Payload.ReadUInt32(); // m_ClientLanguage

                var ItersWithKeys = CAllIterationList.Read(message.Payload);
                // var ItersWithoutKeys = CAllIterationList.Read(message.Payload); // Not seen this populated in any pcap.
                // message.Payload.ReadUInt32(); // m_dwFlags - We don't need this

                foreach (var entry in ItersWithKeys.Lists)
                {
                    switch (entry.DatFileId)
                    {
                    case 1:     // PORTAL
                        if (entry.Ints[0] != DatManager.PortalDat.Iteration)
                        {
                            session.DatWarnPortal = true;
                        }
                        break;

                    case 2:     // CELL
                        if (entry.Ints[0] != DatManager.CellDat.Iteration)
                        {
                            session.DatWarnCell = true;
                        }
                        break;

                    case 3:     // LANGUAGE
                        if (entry.Ints[0] != DatManager.LanguageDat.Iteration)
                        {
                            session.DatWarnLanguage = true;
                        }
                        break;
                    }
                }
            }

            GameMessageDDDEndDDD patchStatusMessage = new GameMessageDDDEndDDD();

            session.Network.EnqueueSend(patchStatusMessage);
        }
Exemplo n.º 2
0
        public static async void HandleConnectResponse(ClientPacket packet, Session session)
        {
            PacketInboundConnectResponse connectResponse = new PacketInboundConnectResponse(packet);

            var result = await DatabaseManager.Character.GetByAccount(session.Id);

            session.UpdateCachedCharacters(result);

            GameMessageCharacterList characterListMessage = new GameMessageCharacterList(result, session.Account);
            GameMessageServerName    serverNameMessage    = new GameMessageServerName(ConfigManager.Config.Server.WorldName);
            // looks like account settings/info, expansion information ect? (this is needed for world entry)
            GameMessageDDDInterrogation unknown75e5Message = new GameMessageDDDInterrogation();
            GameMessageDDDEndDDD        patchStatusMessage = new GameMessageDDDEndDDD();

            session.Network.EnqueueSend(characterListMessage);
            session.Network.EnqueueSend(serverNameMessage);
            session.Network.EnqueueSend(unknown75e5Message);
            session.Network.EnqueueSend(patchStatusMessage);

            session.State = SessionState.AuthConnected;
        }
Exemplo n.º 3
0
        public static void DDD_InterrogationResponse(ClientMessage message, Session session)
        {
            GameMessageDDDEndDDD patchStatusMessage = new GameMessageDDDEndDDD();

            session.Network.EnqueueSend(patchStatusMessage);
        }