예제 #1
0
        public static void LoadUseridWhiteList()
        {
            string xmlFileName = Global.IsolateResPath("Config/LoginUserWhiteList.xml");

            try
            {
                Data.readWriteLock.EnterWriteLock();
                Data.UseridWhiteList.Clear();
                XElement xmlFile = ConfigHelper.Load(xmlFileName);
                if (null != xmlFile)
                {
                    IEnumerable <XElement> xmls = ConfigHelper.GetXElements(xmlFile, "WhiteList");
                    if (null != xmls)
                    {
                        foreach (XElement xml in xmls)
                        {
                            string platform = ConfigHelper.GetElementAttributeValue(xml, "PinTai", "");
                            if (0 == string.Compare(platform, GameCoreInterface.getinstance().GetPlatformType().ToString(), true))
                            {
                                string userId = ConfigHelper.GetElementAttributeValue(xml, "UserID", "");
                                Data.UseridWhiteList.Add(userId.ToLower());
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(LogTypes.Exception, ex.ToString(), null, true);
            }
            finally
            {
                Data.readWriteLock.ExitWriteLock();
            }
        }
예제 #2
0
 private void LoadUserWhiteList()
 {
     try
     {
         XElement xmlFile = ConfigHelper.Load(Global.IsolateResPath("Config/UserWhiteList.xml"));
         if (null != xmlFile)
         {
             HashSet <string>       NewUserWhiteList = new HashSet <string>();
             IEnumerable <XElement> xmlItems         = ConfigHelper.GetXElements(xmlFile, "WhiteList");
             foreach (XElement xml in xmlItems)
             {
                 string platform = ConfigHelper.GetElementAttributeValue(xml, "PinTai", "");
                 if (0 == string.Compare(platform, GameCoreInterface.getinstance().GetPlatformType().ToString(), true))
                 {
                     string userId = ConfigHelper.GetElementAttributeValue(xml, "UserID", "");
                     if (!string.IsNullOrEmpty(userId))
                     {
                         NewUserWhiteList.Add(userId.ToLower());
                     }
                 }
             }
             this._UserWhiteList = NewUserWhiteList;
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteException(ex.ToString() + "xmlFileName=IPWhiteList.xml");
     }
 }
예제 #3
0
        public bool ChouJiangAddCheck(int roleID, int chouJiangType)
        {
            DateTime now = TimeUtil.NowDateTime();

            lock (WebOldPlayerManager.Mutex)
            {
                if (WebOldPlayerManager.RunTimeZhaoHuiData == null || WebOldPlayerManager.RunTimeZhaoHuiData.Count < 1 || now > WebOldPlayerManager.RunTimeZhaoHuiData[0].EndTime || now < WebOldPlayerManager.RunTimeZhaoHuiData[0].BegionTime)
                {
                    return(false);
                }
            }
            int  check = Global.SafeConvertToInt32(Global.GetRoleParamsFromDBByRoleID(roleID, "10167", 0));
            bool result;

            if (check < 1)
            {
                result = false;
            }
            else
            {
                string cmd = string.Format("{0}:{1}:{2}", roleID, chouJiangType, now.Date.ToString().Replace(':', '$'));
                GameManager.DBCmdMgr.AddDBCmd(20305, cmd, null, GameCoreInterface.getinstance().GetLocalServerId());
                result = true;
            }
            return(result);
        }
예제 #4
0
        public static bool EnterSceneCopyScene(GameClient client, out int nSeqID, int mapCode)
        {
            nSeqID = -1;
            ZhuanShengMapInfo mapInfo;

            lock (ZhuanShengShiLian.ZhuanShengRunTimeData.Mutex)
            {
                if (!ZhuanShengShiLian.ZhuanShengRunTimeData.ZhuanShengMapDict.TryGetValue(mapCode, out mapInfo))
                {
                    return(false);
                }
            }
            bool result;

            if (!ZhuanShengShiLian.JudgeCanEnterOnTime(mapInfo))
            {
                result = false;
            }
            else
            {
                int calEnterMapCode = ZhuanShengShiLian.GetZhuanShengShiLianMapCodeIDForRole(client);
                if (calEnterMapCode <= 0 || mapCode != calEnterMapCode)
                {
                    result = false;
                }
                else
                {
                    ZSSLScene sceneInfo = null;
                    lock (ZhuanShengShiLian.ZhuanShengRunTimeData.Mutex)
                    {
                        foreach (KeyValuePair <int, ZSSLScene> kvp in ZhuanShengShiLian.SceneDict)
                        {
                            if (kvp.Value.SceneInfo.MapCode == mapCode)
                            {
                                sceneInfo = kvp.Value;
                                nSeqID    = kvp.Key;
                                break;
                            }
                        }
                        if (null == sceneInfo)
                        {
                            nSeqID    = GameCoreInterface.getinstance().GetNewFuBenSeqId();
                            sceneInfo = new ZSSLScene();
                            sceneInfo.CleanAllInfo();
                            sceneInfo.SceneInfo = mapInfo;
                            ZhuanShengShiLian.SceneDict[nSeqID] = sceneInfo;
                        }
                    }
                    if (null != sceneInfo.m_CopyMap)
                    {
                        if (sceneInfo.m_CopyMap.GetGameClientCount() >= mapInfo.MaxEnterNum)
                        {
                            return(false);
                        }
                    }
                    result = true;
                }
            }
            return(result);
        }
예제 #5
0
        public bool OnInitGame(GameClient client)
        {
            int posX;
            int posY;

            int side = GetBirthPoint(client, out posX, out posY);

            if (side <= 0)
            {
                return(false);
            }

            client.ClientData.MapCode         = RuntimeData.MapCode;
            client.ClientData.PosX            = posX;
            client.ClientData.PosY            = posY;
            client.ClientData.BattleWhichSide = side;

            int fubenSeq = 0;

            lock (Mutex)
            {
                if (!GameId2FuBenSeq.TryGetValue((int)Global.GetClientKuaFuServerLoginData(client).GameId, out fubenSeq))
                {
                    fubenSeq = GameCoreInterface.getinstance().GetNewFuBenSeqId();
                    GameId2FuBenSeq[(int)Global.GetClientKuaFuServerLoginData(client).GameId] = fubenSeq;
                }
            }
            Global.GetClientKuaFuServerLoginData(client).FuBenSeqId = fubenSeq;

            client.ClientData.FuBenSeqID = Global.GetClientKuaFuServerLoginData(client).FuBenSeqId;

            return(true);
        }
예제 #6
0
        /// <summary>
        /// 检测上报
        /// </summary>
        public void CheckReport()
        {
            try
            {
                RefreshReportConfig();

                if (string.IsNullOrEmpty(_ReportToUrl))
                {
                    return;
                }

                long nowMs = TimeUtil.NOW();
                if (nowMs - _LastReportMs >= _ReportIntervalSec * 1000)
                {
                    if (_BIsReporting)
                    {
                        return;
                    }
                    _BIsReporting = true;

                    _LastReportMs = nowMs;

                    StringBuilder sb = new StringBuilder();
                    sb.Append(_ReportToUrl).Append("?");
                    sb.AppendFormat("serverid={0}&", GameCoreInterface.getinstance().GetLocalServerId());
                    sb.AppendFormat("platform={0}&", GameCoreInterface.getinstance().GetPlatformType().ToString());
                    double cpuLoad, memMb;
                    GetCpuAndMem(out cpuLoad, out memMb);
                    sb.AppendFormat("cpu={0}&", cpuLoad);
                    sb.AppendFormat("mem={0}&", memMb);
                    sb.AppendFormat("roleCount={0}&", GameManager.ClientMgr.GetClientCount());
                    sb.AppendFormat("procCmdCount={0}&", TCPCmdHandler.TotalHandledCmdsNum);
                    sb.AppendFormat("cmdAvgProcMs={0}&", ProcessSessionTask.processCmdNum != 0 ? TimeUtil.TimeMS(ProcessSessionTask.processTotalTime / ProcessSessionTask.processCmdNum) : 0);
                    sb.AppendFormat("cmdMaxProcMs={0}&", TCPCmdHandler.MaxUsedTicksByCmdID);
                    sb.AppendFormat("dbConnCount={0}&", Global._TCPManager.tcpClientPool.GetPoolCount());
                    sb.AppendFormat("lastFlushMonsterToNow={0}", GameManager.LastFlushMonsterMs * 10000);

                    new Task(() =>
                    {
                        // byte[] data = new UTF8Encoding().GetBytes(sb.ToString());
                        // WebHelper.RequestByPost(_ReportToUrl, data, 2000, 30000);

                        WebHelper.RequestByGet(sb.ToString(), 2000, 30000);
                        //System.Console.WriteLine(sb.ToString());
                        _BIsReporting = false;
                    }).Start();
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(LogTypes.Error, "ServerAnalysisManager.CheckReport() failed!", ex);
            }
        }
예제 #7
0
        public bool OnInitGame(GameClient client)
        {
            int posX;
            int posY;

            int side = GetBirthPoint(client, out posX, out posY);

            if (side <= 0)
            {
                return(false);
            }

            KuaFuServerLoginData kuaFuServerLoginData = Global.GetClientKuaFuServerLoginData(client);
            //TianTiFuBenItem tianTiFuBenItem;
            //lock(RuntimeData.Mutex)
            //{
            //    if (!RuntimeData.TianTiFuBenItemDict.TryGetValue(kuaFuServerLoginData.GameId, out tianTiFuBenItem))
            //    {
            //        tianTiFuBenItem = new TianTiFuBenItem() { GameId = kuaFuServerLoginData.GameId };
            //        tianTiFuBenItem.FuBenSeqId = GameCoreInterface.getinstance().GetNewFuBenSeqId();
            //        RuntimeData.TianTiFuBenItemDict[tianTiFuBenItem.GameId] = tianTiFuBenItem;
            //    }

            //    kuaFuServerLoginData.FuBenSeqId = tianTiFuBenItem.FuBenSeqId;
            //}

            int index = ((int)kuaFuServerLoginData.GameId) % RuntimeData.MapCodeList.Count;

            client.ClientData.MapCode         = RuntimeData.MapCodeList[index];
            client.ClientData.PosX            = posX;
            client.ClientData.PosY            = posY;
            client.ClientData.BattleWhichSide = side;

            int fuBenSeq = 0;

            lock (RuntimeData.Mutex)
            {
                if (!RuntimeData.GameId2FuBenSeq.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenSeq))
                {
                    fuBenSeq = GameCoreInterface.getinstance().GetNewFuBenSeqId();
                    RuntimeData.GameId2FuBenSeq[(int)kuaFuServerLoginData.GameId] = fuBenSeq;
                }
            }
            kuaFuServerLoginData.FuBenSeqId = fuBenSeq;
            client.ClientData.FuBenSeqID    = kuaFuServerLoginData.FuBenSeqId;

            return(true);
        }
예제 #8
0
 public TradeLimitConfig GetTradeLimitConfig()
 {
     if (null != this._PlatConfigTradeLimitConfigDict)
     {
         string platform = GameCoreInterface.getinstance().GetPlatformType().ToString().ToLower();
         lock (this._PlatConfigTradeLimitConfigDict)
         {
             TradeLimitConfig config;
             if (this._PlatConfigTradeLimitConfigDict.TryGetValue(platform, out config))
             {
                 return(config);
             }
         }
     }
     return(null);
 }
예제 #9
0
 public void CheckReport()
 {
     try
     {
         this.RefreshReportConfig();
         if (!string.IsNullOrEmpty(this._ReportToUrl))
         {
             long nowMs = TimeUtil.NOW();
             if (nowMs - this._LastReportMs >= (long)(this._ReportIntervalSec * 1000))
             {
                 if (!this._BIsReporting)
                 {
                     this._BIsReporting = true;
                     this._LastReportMs = nowMs;
                     StringBuilder sb = new StringBuilder();
                     sb.Append(this._ReportToUrl).Append("?");
                     sb.AppendFormat("serverid={0}&", GameCoreInterface.getinstance().GetLocalServerId());
                     sb.AppendFormat("platform={0}&", GameCoreInterface.getinstance().GetPlatformType().ToString());
                     double cpuLoad;
                     double memMb;
                     this.GetCpuAndMem(out cpuLoad, out memMb);
                     sb.AppendFormat("cpu={0}&", cpuLoad);
                     sb.AppendFormat("mem={0}&", memMb);
                     sb.AppendFormat("roleCount={0}&", GameManager.ClientMgr.GetClientCount());
                     sb.AppendFormat("procCmdCount={0}&", TCPCmdHandler.TotalHandledCmdsNum);
                     sb.AppendFormat("cmdAvgProcMs={0}&", (ProcessSessionTask.processCmdNum != 0L) ? TimeUtil.TimeMS(ProcessSessionTask.processTotalTime / ProcessSessionTask.processCmdNum, 2) : 0.0);
                     sb.AppendFormat("cmdMaxProcMs={0}&", TCPCmdHandler.MaxUsedTicksByCmdID);
                     sb.AppendFormat("dbConnCount={0}&", Global._TCPManager.tcpClientPool.GetPoolCount());
                     sb.AppendFormat("lastFlushMonsterToNow={0}", GameManager.LastFlushMonsterMs * 10000L);
                     new Task(delegate()
                     {
                         WebHelper.RequestByGet(sb.ToString(), 2000, 30000);
                         this._BIsReporting = false;
                     }).Start();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteLog(LogTypes.Error, "ServerAnalysisManager.CheckReport() failed!", ex, true);
     }
 }
예제 #10
0
        public bool CanTrade(DateTime now, int realMoney, int level)
        {
            bool result;

            if (null == this._PlatConfigTradeLimitConfigDict)
            {
                result = true;
            }
            else
            {
                string platform = GameCoreInterface.getinstance().GetPlatformType().ToString().ToLower();
                lock (this._PlatConfigTradeLimitConfigDict)
                {
                    TradeLimitConfig config;
                    if (!this._PlatConfigTradeLimitConfigDict.TryGetValue(platform, out config))
                    {
                        result = true;
                    }
                    else if (config.ZuanShiOpen != 1)
                    {
                        result = false;
                    }
                    else if (now < config.StartTime || now > config.EndTime)
                    {
                        result = true;
                    }
                    else if (realMoney >= config.ZuanShiLimit || level >= config.LevelLimit)
                    {
                        result = true;
                    }
                    else
                    {
                        result = false;
                    }
                }
            }
            return(result);
        }
예제 #11
0
        public bool OnInitGame(GameClient client)
        {
            KuaFuServerLoginData      kuaFuServerLoginData = Global.GetClientKuaFuServerLoginData(client);
            YongZheZhanChangFuBenData fuBenData;

            lock (this.RuntimeData.Mutex)
            {
                if (!this.RuntimeData.FuBenItemData.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenData))
                {
                    fuBenData = null;
                }
                else if (fuBenData.State >= GameFuBenState.End)
                {
                    return(false);
                }
            }
            if (null == fuBenData)
            {
                YongZheZhanChangFuBenData newFuBenData = YongZheZhanChangClient.getInstance().GetKuaFuFuBenData((int)kuaFuServerLoginData.GameId);
                if (newFuBenData == null || newFuBenData.State == GameFuBenState.End)
                {
                    LogManager.WriteLog(LogTypes.Error, ("获取不到有效的副本数据," + newFuBenData == null) ? "fuBenData == null" : "fuBenData.State == GameFuBenState.End", null, true);
                    return(false);
                }
                lock (this.RuntimeData.Mutex)
                {
                    if (!this.RuntimeData.FuBenItemData.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenData))
                    {
                        fuBenData            = newFuBenData;
                        fuBenData.SequenceId = GameCoreInterface.getinstance().GetNewFuBenSeqId();
                        this.RuntimeData.FuBenItemData[fuBenData.GameId] = fuBenData;
                    }
                }
            }
            KuaFuFuBenRoleData kuaFuFuBenRoleData;
            bool result;

            if (!fuBenData.RoleDict.TryGetValue(client.ClientData.RoleID, out kuaFuFuBenRoleData))
            {
                result = false;
            }
            else
            {
                int posX;
                int posY;
                this.GetBirthPoint(client, out posX, out posY);
                lock (this.RuntimeData.Mutex)
                {
                    kuaFuServerLoginData.FuBenSeqId = fuBenData.SequenceId;
                    KuaFuBossSceneInfo sceneInfo;
                    if (!this.RuntimeData.SceneDataDict.TryGetValue(fuBenData.GroupIndex, out sceneInfo))
                    {
                        return(false);
                    }
                    client.ClientData.MapCode = sceneInfo.MapCode;
                }
                client.ClientData.PosX       = posX;
                client.ClientData.PosY       = posY;
                client.ClientData.FuBenSeqID = kuaFuServerLoginData.FuBenSeqId;
                result = true;
            }
            return(result);
        }
예제 #12
0
 public void WebOldPlayerCheck(int roleID, int awardID)
 {
     try
     {
         DateTime now = TimeUtil.NowDateTime();
         WebOldPlayerManager.WebZhaoHuiData zhaoHuiData = null;
         lock (WebOldPlayerManager.Mutex)
         {
             if (WebOldPlayerManager.RunTimeZhaoHuiData == null || WebOldPlayerManager.RunTimeZhaoHuiData.Count < 1)
             {
                 return;
             }
             if (!WebOldPlayerManager.RunTimeZhaoHuiData.TryGetValue(awardID, out zhaoHuiData))
             {
                 return;
             }
             if (now > zhaoHuiData.EndTime || now < zhaoHuiData.BegionTime)
             {
                 return;
             }
         }
         GameClient client = GameManager.ClientMgr.FindClient(roleID);
         int        check;
         if (null == client)
         {
             check = Global.SafeConvertToInt32(Global.GetRoleParamsFromDBByRoleID(roleID, "10167", 0));
             if (check < 1)
             {
                 GameManager.DBCmdMgr.AddDBCmd(10100, string.Format("{0}:{1}:{2}", roleID, "10167", 1), null, GameCoreInterface.getinstance().GetLocalServerId());
             }
         }
         else
         {
             check = Global.GetRoleParamsInt32FromDB(client, "10167");
             if (check < 1)
             {
                 Global.SaveRoleParamsInt32ValueToDB(client, "10167", 1, true);
             }
         }
         if (check < 1)
         {
             List <GoodsData> awardList   = new List <GoodsData>();
             string           mailTitle   = "";
             string           mailContent = "";
             lock (WebOldPlayerManager.Mutex)
             {
                 foreach (GoodsData item in zhaoHuiData.GoodsOne)
                 {
                     awardList.Add(item);
                 }
                 foreach (GoodsData item in zhaoHuiData.GoodsTwo)
                 {
                     awardList.Add(item);
                 }
                 mailTitle   = zhaoHuiData.MailTitle;
                 mailContent = zhaoHuiData.MailContent;
             }
             Global.UseMailGivePlayerAward3(roleID, awardList, Global.GetLang(mailTitle), Global.GetLang(mailContent), 0, 0, 0);
         }
     }
     catch
     {
     }
 }
예제 #13
0
        public bool OnInitGame(GameClient client)
        {
            KuaFuServerLoginData kuaFuServerLoginData = Global.GetClientKuaFuServerLoginData(client);
            KarenFuBenData       fuBenData;

            lock (this.RuntimeData.Mutex)
            {
                if (!this.RuntimeData.FuBenItemData.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenData))
                {
                    fuBenData = null;
                }
                else if (fuBenData.State >= GameFuBenState.End)
                {
                    return(false);
                }
            }
            if (null == fuBenData)
            {
                if (KarenBattleManager.getInstance().GMTest)
                {
                    lock (this.RuntimeData.Mutex)
                    {
                        if (!this.RuntimeData.FuBenItemData.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenData))
                        {
                            fuBenData            = new KarenFuBenData();
                            fuBenData.GameId     = (int)kuaFuServerLoginData.GameId;
                            fuBenData.SequenceId = GameCoreInterface.getinstance().GetNewFuBenSeqId();
                            this.RuntimeData.FuBenItemData[fuBenData.GameId] = fuBenData;
                        }
                    }
                }
                else
                {
                    KarenFuBenData newFuBenData = JunTuanClient.getInstance().GetKarenKuaFuFuBenData((int)kuaFuServerLoginData.GameId);
                    if (newFuBenData == null || newFuBenData.State == GameFuBenState.End)
                    {
                        LogManager.WriteLog(LogTypes.Error, ("获取不到有效的副本数据," + newFuBenData == null) ? "fuBenData == null" : "fuBenData.State == GameFuBenState.End", null, true);
                        return(false);
                    }
                    lock (this.RuntimeData.Mutex)
                    {
                        if (!this.RuntimeData.FuBenItemData.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenData))
                        {
                            fuBenData            = newFuBenData;
                            fuBenData.SequenceId = GameCoreInterface.getinstance().GetNewFuBenSeqId();
                            this.RuntimeData.FuBenItemData[fuBenData.GameId] = fuBenData;
                        }
                    }
                }
            }
            if (KarenBattleManager.getInstance().GMTest)
            {
                client.ClientData.BattleWhichSide = Global.GetRandomNumber(1, 5);
            }
            else
            {
                KarenFuBenRoleData kroleData = JunTuanClient.getInstance().GetKarenFuBenRoleData((int)kuaFuServerLoginData.GameId, client.ClientData.RoleID);
                if (null == kroleData)
                {
                    return(false);
                }
                client.ClientData.BattleWhichSide = kroleData.Side;
            }
            int  posX;
            int  posY;
            int  side = this.GetBirthPoint(client, out posX, out posY, true);
            bool result;

            if (side <= 0)
            {
                LogManager.WriteLog(LogTypes.Error, "无法获取有效的阵营和出生点,进入跨服失败,side=" + side, null, true);
                result = false;
            }
            else
            {
                lock (this.RuntimeData.Mutex)
                {
                    kuaFuServerLoginData.FuBenSeqId = fuBenData.SequenceId;
                    KarenBattleSceneInfo sceneInfo;
                    if (null == (sceneInfo = KarenBattleManager.getInstance().TryGetKarenBattleSceneInfo((int)kuaFuServerLoginData.GameId)))
                    {
                        return(false);
                    }
                    client.ClientData.MapCode = sceneInfo.MapCode;
                }
                client.ClientData.PosX       = posX;
                client.ClientData.PosY       = posY;
                client.ClientData.FuBenSeqID = kuaFuServerLoginData.FuBenSeqId;
                KarenBattleManager.getInstance().OnInitGame(SceneUIClasses.KarenWest, client);
                result = true;
            }
            return(result);
        }
예제 #14
0
        public static void initialize()
        {
            ZhanMengShiJianManager.getInstance().initialize();
            JingJiChangManager.getInstance().initialize();
            LiXianBaiTanManager.getInstance().initialize();
            LiXianGuaJiManager.getInstance().initialize();
            CmdRegisterTriggerManager.getInstance().initialize();
            SendCmdManager.getInstance().initialize();
            BossAIManager.getInstance().initialize();
            WashPropsManager.initialize();
            SaleManager.getInstance().initialize();
            LianZhiManager.GetInstance().initialize();
            ChengJiuManager.GetInstance().initialize();
            PrestigeMedalManager.getInstance().initialize();
            UnionPalaceManager.getInstance().initialize();
            UserActivateManager.getInstance().initialize();
            PetSkillManager.getInstance().initialize();
            UserReturnManager.getInstance().initialize();
            OlympicsManager.getInstance().initialize();
            TalentManager.getInstance().initialize();
            TodayManager.getInstance().initialize();
            FundManager.getInstance().initialize();
            WarnManager.getInstance().initialize();
            EMoLaiXiCopySceneManager.LoadEMoLaiXiCopySceneInfo();
            LuoLanFaZhenCopySceneManager.initialize();
            MarryFuBenMgr.getInstance().initialize();
            MarryLogic.LoadMarryBaseConfig();
            MarryPartyLogic.getInstance().LoadMarryPartyConfig();
            BuildingManager.getInstance().initialize();
            OnePieceManager.getInstance().initialize();
            GlobalServiceManager.RegisterManager4Scene(0, SingletonTemplate <CopyTeamManager> .Instance());
            GlobalServiceManager.RegisterManager4Scene(0, KuaFuManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(35, LangHunLingYuManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, RebornManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, RebornBoss.getInstance());
            GlobalServiceManager.RegisterManager4Scene(24, LuoLanChengZhanManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, FashionManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, OrnamentManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, ShenJiFuWenManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, YaoSaiJianYuManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, AlchemyManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, EraManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, VideoLogic.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, SpecPlatFuLiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(25, HuanYingSiYuanManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(10000, JingLingQiYuanManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(26, TianTiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(27, YongZheZhanChangManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(39, KingOfBattleManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(45, BangHuiMatchManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(48, CompManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(52, CompBattleManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(53, CompMineManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(57, ZorkBattleManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(47, KuaFuLueDuoManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, KarenBattleManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(41, KarenBattleManager_MapWest.getInstance());
            GlobalServiceManager.RegisterManager4Scene(42, KarenBattleManager_MapEast.getInstance());
            GlobalServiceManager.RegisterManager4Scene(29, SingletonTemplate <MoRiJudgeManager> .Instance());
            GlobalServiceManager.RegisterManager4Scene(28, ElementWarManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(49, WanMoXiaGuManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(34, CopyWolfManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(31, KuaFuBossManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(10003, KuaFuMapManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(10002, SpreadManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(36, SingletonTemplate <ZhengBaManager> .Instance());
            GlobalServiceManager.RegisterManager4Scene(38, SingletonTemplate <CoupleArenaManager> .Instance());
            GlobalServiceManager.RegisterManager4Scene(10004, AllyManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(10005, SingletonTemplate <CoupleWishManager> .Instance());
            GlobalServiceManager.RegisterManager4Scene(40, ZhengDuoManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, AoYunDaTiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, RoleManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, ZhuanPanManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, ShenQiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, JunTuanManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, LingDiCaiJiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, HongBaoManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, YaoSaiBossManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, YaoSaiMissionManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, HuiJiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, DeControl.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, GVoiceManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, ShenShiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, JueXingManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, ZuoQiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, ThemeBoss.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, ArmorManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, JingLingYuanSuJueXingManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, BianShenManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(55, TianTi5v5Manager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, UserRegressActiveManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, MountHolyStampManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, MazingerStoreManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, GlodAuctionProcessCmdEx.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, BoCaiManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, FunctionSendManager.GetInstance());
            GlobalServiceManager.RegisterManager4Scene(0, HuanLeDaiBiManager.GetInstance());
            GlobalServiceManager.RegisterManager4Scene(0, NewTimerProc.GetInstance());
            GlobalServiceManager.RegisterManager4Scene(56, ZhanDuiZhengBaManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(59, EscapeBattleManager.getInstance());
            GlobalServiceManager.RegisterManager4Scene(0, TestReceiveModel.getInstance());
            RobotTaskValidator.getInstance().Initialize(false, 0, 0, "");
            HolyItemManager.getInstance().Initialize();
            TarotManager.getInstance().Initialize();
            SingletonTemplate <SevenDayActivityMgr> .Instance().initialize();

            SingletonTemplate <SoulStoneManager> .Instance().initialize();

            SingletonTemplate <TradeBlackManager> .Instance().LoadConfig();

            lock (GlobalServiceManager.Scene2ManagerDict)
            {
                foreach (List <IManager> list in GlobalServiceManager.Scene2ManagerDict.Values)
                {
                    foreach (IManager i in list)
                    {
                        bool success = true;
                        try
                        {
                            success = (success && i.initialize());
                            IManager2 m2 = i as IManager2;
                            if (null != m2)
                            {
                                success = (success && m2.initialize(GameCoreInterface.getinstance()));
                            }
                        }
                        catch (Exception ex)
                        {
                            success = false;
                            LogManager.WriteException(ex.ToString());
                        }
                        if (GameManager.ServerStarting && !success)
                        {
                            LogManager.WriteLog(LogTypes.Fatal, string.Format("执行{0}.initialize()失败,按任意键继续启动!", i.GetType()), null, true);
                            Console.ReadKey();
                        }
                    }
                }
            }
            TenManager.getInstance().initialize();
            TenRetutnManager.getInstance().initialize();
            GiftCodeNewManager.getInstance().initialize();
            FaceBookManager.getInstance().initialize();
            AssemblyPatchManager.getInstance().initialize();
            IPStatisticsManager.getInstance().initialize();
            FuMoManager.getInstance().Initialize();
        }
예제 #15
0
        public bool OnInitGame(GameClient client)
        {
            int posX;
            int posY;
            int side;

            KuaFuServerLoginData      kuaFuServerLoginData = Global.GetClientKuaFuServerLoginData(client);
            YongZheZhanChangFuBenData fuBenData;

            lock (RuntimeData.Mutex)
            {
                if (!RuntimeData.FuBenItemData.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenData))
                {
                    fuBenData = null;
                }
                else if (fuBenData.State >= GameFuBenState.End)
                {
                    return(false);
                }
            }

            if (null == fuBenData)
            {
                //从中心查询副本信息
                YongZheZhanChangFuBenData newFuBenData = YongZheZhanChangClient.getInstance().GetKuaFuFuBenData((int)kuaFuServerLoginData.GameId);
                if (newFuBenData == null || newFuBenData.State == GameFuBenState.End)
                {
                    LogManager.WriteLog(LogTypes.Error, "获取不到有效的副本数据," + newFuBenData == null ? "fuBenData == null" : "fuBenData.State == GameFuBenState.End");
                    return(false);
                }

                lock (RuntimeData.Mutex)
                {
                    if (!RuntimeData.FuBenItemData.TryGetValue((int)kuaFuServerLoginData.GameId, out fuBenData))
                    {
                        fuBenData            = newFuBenData;
                        fuBenData.SequenceId = GameCoreInterface.getinstance().GetNewFuBenSeqId();
                        RuntimeData.FuBenItemData[fuBenData.GameId] = fuBenData;
                    }
                }
            }

            KuaFuFuBenRoleData kuaFuFuBenRoleData;

            if (!fuBenData.RoleDict.TryGetValue(client.ClientData.RoleID, out kuaFuFuBenRoleData))
            {
                return(false);
            }

            client.ClientData.BattleWhichSide = kuaFuFuBenRoleData.Side;
            side = GetBirthPoint(client, out posX, out posY);
            if (side <= 0)
            {
                LogManager.WriteLog(LogTypes.Error, "无法获取有效的阵营和出生点,进入跨服失败,side=" + side);
                return(false);
            }

            YongZheZhanChangSceneInfo sceneInfo;

            lock (RuntimeData.Mutex)
            {
                kuaFuServerLoginData.FuBenSeqId = fuBenData.SequenceId;
                if (!RuntimeData.SceneDataDict.TryGetValue(fuBenData.GroupIndex, out sceneInfo))
                {
                    return(false);
                }

                client.ClientData.MapCode = sceneInfo.MapCode;
            }

            client.ClientData.PosX       = posX;
            client.ClientData.PosY       = posY;
            client.ClientData.FuBenSeqID = kuaFuServerLoginData.FuBenSeqId;

            return(true);
        }
예제 #16
0
        public bool InitConfig()
        {
            bool   success  = true;
            string fileName = "";

            lock (this.RuntimeData.Mutex)
            {
                try
                {
                    this.RuntimeData.IsGongNengOpend = false;
                    this.RuntimeData.EmblemFull      = GameManager.systemParamsList.GetParamValueIntArrayByName("EmblemFull", ',');
                    this.RuntimeData.EmblemShengXing = GameManager.systemParamsList.GetParamValueDoubleArrayByName("EmblemShengXing", ',');
                    int           platformId     = (int)GameCoreInterface.getinstance().GetPlatformType();
                    List <string> emblemOpenStrs = GameManager.systemParamsList.GetParamValueStringListByName("EmblemOpen", '|');
                    foreach (string str in emblemOpenStrs)
                    {
                        List <int> args = Global.StringToIntList(str, ',');
                        if (args != null && args[0] == platformId && args[1] > 0)
                        {
                            this.RuntimeData.IsGongNengOpend = true;
                        }
                    }
                    this.RuntimeData.IsGongNengOpend &= !GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System2Dot5);
                    fileName = "Config/EmblemUp.xml";
                    string fullPathFileName = Global.GameResPath(fileName);
                    this.RuntimeData.EmblemUpDict.Load(fullPathFileName, null);
                    foreach (EmblemUpInfo info in this.RuntimeData.EmblemUpDict.Value.Values)
                    {
                        info.ExtPropTempValues[24]  = info.SubAttackInjurePercent;
                        info.ExtPropTempValues[102] = info.SPAttackInjurePercent;
                        info.ExtPropTempValues[103] = info.AttackInjurePercent;
                        info.ExtPropTempValues[104] = info.ElementAttackInjurePercent;
                    }
                    fileName         = "Config/EmblemStar.xml";
                    fullPathFileName = Global.GameResPath(fileName);
                    this.RuntimeData.EmblemStarDict.Load(fullPathFileName, null);
                    foreach (EmblemStarInfo starInfo in this.RuntimeData.EmblemStarDict.Value.Values)
                    {
                        EmblemUpInfo emblemUpInfo;
                        if (this.RuntimeData.EmblemUpDict.Value.TryGetValue(starInfo.EmblemLevel, out emblemUpInfo))
                        {
                            starInfo.EmblemUpInfo         = emblemUpInfo;
                            emblemUpInfo.MaxStarLevel     = Math.Max(emblemUpInfo.MaxStarLevel, starInfo.EmblemStar);
                            starInfo.LifeV               += emblemUpInfo.LifeV;
                            starInfo.AddAttack           += emblemUpInfo.AddAttack;
                            starInfo.AddDefense          += emblemUpInfo.AddDefense;
                            starInfo.DecreaseInjureValue += emblemUpInfo.DecreaseInjureValue;
                            starInfo.ExtPropValues[13]    = (double)starInfo.LifeV;
                            starInfo.ExtPropValues[45]    = (double)starInfo.AddAttack;
                            starInfo.ExtPropValues[46]    = (double)starInfo.AddDefense;
                            starInfo.ExtPropValues[38]    = (double)starInfo.DecreaseInjureValue;
                        }
                    }
                }
                catch (Exception ex)
                {
                    success = false;
                    LogManager.WriteLog(LogTypes.Fatal, string.Format("加载xml配置文件:{0}, 失败。", fileName), ex, true);
                }
            }
            return(success);
        }
예제 #17
0
        public bool InitConfig()
        {
            bool   success  = true;
            string fileName = "";

            lock (this.RuntimeData.Mutex)
            {
                try
                {
                    for (int i = 0; i < this.RuntimeData.DeControlItemListArray.Length; i++)
                    {
                        List <DeControlItem> list = this.RuntimeData.DeControlItemListArray[i];
                        if (null != list)
                        {
                            foreach (DeControlItem item in list)
                            {
                                item.Next = null;
                                item.Head = null;
                            }
                            this.RuntimeData.DeControlItemListArray[i] = null;
                        }
                    }
                    this.RuntimeData.IsGongNengOpend = false;
                    int           platformId     = (int)GameCoreInterface.getinstance().GetPlatformType();
                    List <string> emblemOpenStrs = GameManager.systemParamsList.GetParamValueStringListByName("DeControlOpen", '|');
                    foreach (string str in emblemOpenStrs)
                    {
                        List <int> args = Global.StringToIntList(str, ',');
                        if (args != null && args[0] == platformId && args[1] > 0)
                        {
                            this.RuntimeData.IsGongNengOpend = true;
                        }
                    }
                    this.RuntimeData.IsGongNengOpend &= !GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System2Dot5);
                    if (this.RuntimeData.IsGongNengOpend)
                    {
                        fileName = "Config\\DeControl.xml";
                        string   fullPathFileName = Global.GameResPath(fileName);
                        XElement xml = XElement.Load(fullPathFileName);
                        IEnumerable <XElement> nodes = xml.Elements();
                        foreach (XElement node in nodes)
                        {
                            int      extPropID        = (int)Global.GetSafeAttributeLong(node, "ExtPropID");
                            int      count            = (int)Global.GetSafeAttributeLong(node, "MaxFlood");
                            double[] deControlPercent = Global.GetSafeAttributeDoubleArray(node, "DeControlPercent", -1, ',');
                            double[] deControlTime    = Global.GetSafeAttributeDoubleArray(node, "DeControlTime", -1, ',');
                            double[] durationTime     = Global.GetSafeAttributeDoubleArray(node, "DurationTime", -1, ',');
                            if (deControlPercent.Length < count || deControlTime.Length < count || durationTime.Length < count)
                            {
                                LogManager.WriteLog(LogTypes.Fatal, string.Format("解析文件{0}的BaoMingTime出错", fileName), null, true);
                            }
                            List <DeControlItem> list = this.RuntimeData.DeControlItemListArray[extPropID];
                            if (list == null)
                            {
                                list = (this.RuntimeData.DeControlItemListArray[extPropID] = new List <DeControlItem>());
                            }
                            DeControlItem headItem = null;
                            DeControlItem pre      = null;
                            for (int i = 0; i < count; i++)
                            {
                                DeControlItem item = new DeControlItem();
                                item.ExtPropIndex     = extPropID;
                                item.DeControlPercent = deControlPercent[i];
                                item.DeControlTime    = deControlTime[i];
                                item.DurationTime     = durationTime[i];
                                if (pre == null)
                                {
                                    headItem = item;
                                }
                                else
                                {
                                    pre.Next = item;
                                }
                                item.Head = headItem;
                                pre       = item;
                                list.Add(item);
                            }
                        }
                    }
                    this.OnReload();
                }
                catch (Exception ex)
                {
                    LogManager.WriteLog(LogTypes.Fatal, string.Format("加载xml配置文件:{0}, 失败。", fileName), ex, true);
                }
            }
            return(success);
        }
예제 #18
0
 public static void LoadConfig()
 {
     try
     {
         double[] args0 = GameManager.systemParamsList.GetParamValueDoubleArrayByName("ZhanDouLiAlertLog", ',');
         if (args0 != null && args0.Length == 2 && args0[0] >= 100000.0 && args0[1] >= 0.1)
         {
             Data.CombatForceLogMinValue = (long)args0[0];
             Data.CombatForceLogPercent  = args0[1];
         }
         Data.LoadUseridWhiteList();
         Data.LoadSystemParamsValues();
         Data.SettingsDict.Load(Global.GameResPath("Config/Settings.xml"), "Maps");
         int iWithRname = (int)GameManager.systemParamsList.GetParamValueIntByName("LogWithRname", -1);
         Global.WithRname             = (iWithRname == 1);
         Data.ZhuTiID                 = GameManager.GameConfigMgr.GetGameConfigItemInt("zhuti", 0);
         Data.FightStateTime          = (long)((int)GameManager.systemParamsList.GetParamValueIntByName("FightStateTime", 6000));
         Data.CheckTimeBoost          = (GameManager.systemParamsList.GetParamValueIntByName("CheckTimeBoost", 1) > 0L);
         Data.CheckPositionCheat      = ((GameManager.systemParamsList.GetParamValueIntByName("CheckPositionCheat", 1) & 1L) != 0L);
         Data.CheckPositionCheatSpeed = ((GameManager.systemParamsList.GetParamValueIntByName("CheckPositionCheat", 1) & 2L) != 0L);
         Data.IgnoreClientPos         = ((GameManager.systemParamsList.GetParamValueIntByName("CheckPositionCheat", 1) & 4L) != 0L);
         LogManager.DisableLogTypes(GameManager.systemParamsList.GetParamValueIntArrayByName("DisableLogTypes", ','));
         Data.SyncTimeByClient           = GameManager.systemParamsList.GetParamValueIntByName("SyncTimeByClient", 750);
         Data.MaxServerClientTimeDiff    = GameManager.systemParamsList.GetParamValueIntByName("MaxServerClientTimeDiff", 300);
         Data.RoleOccupationMaxCount     = (int)GameManager.systemParamsList.GetParamValueIntByName("PurchaseOccupationNum", 1);
         Data.OpChangeLifeCount          = (int)GameManager.systemParamsList.GetParamValueIntByName("OpChangeLifeCount", 100);
         Data.NotifyLiXianAwardMin       = (int)GameManager.systemParamsList.GetParamValueIntByName("OfflineRW_Auto", 1440);
         Data.OfflineRW_ItemLimit        = (int)GameManager.systemParamsList.GetParamValueIntByName("OfflineRW_ItemLimit", 30);
         Data.OpenData.paimaihangjinbi   = (int)GameManager.systemParamsList.GetParamValueIntByName("paimaihangjinbi", 1);
         Data.OpenData.paimaihangzuanshi = (int)GameManager.systemParamsList.GetParamValueIntByName("paimaihangzuanshi", 1);
         Data.OpenData.paimaihangmobi    = (int)GameManager.systemParamsList.GetParamValueIntByName("paimaihangmobi", 0);
         Data.OpenData.bangzuan          = (int)GameManager.systemParamsList.GetParamValueIntByName("bangzuan", 1);
         Data.OpenData.zuanshi           = (int)GameManager.systemParamsList.GetParamValueIntByName("zuanshi", 1);
         Data.OpenData.mobi = (int)GameManager.systemParamsList.GetParamValueIntByName("mobi", 0);
         Data.OpenData.paimaijiemianmobi = (int)GameManager.systemParamsList.GetParamValueIntByName("paimaijiemianmobi", 0);
         Data.LuoLanKingGongGaoCD        = (long)((int)GameManager.systemParamsList.GetParamValueIntByName("LuoLanKingGongGaoCD", 120));
         int           plat = (int)GameCoreInterface.getinstance().GetPlatformType();
         List <string> p0   = GameManager.systemParamsList.GetParamValueStringListByName("LogLifeRecoverOpen", '|');
         if (p0 != null)
         {
             ClientCmdCheck.MinLogAddLifeV       = 2147483647L;
             ClientCmdCheck.MinLogAddLifePercent = 100L;
             ClientCmdCheck.MapCodes.Clear();
             foreach (string p in p0)
             {
                 int[] p2 = Global.String2IntArray(p, ',');
                 lock (ClientCmdCheck.MapCodes)
                 {
                     if (p2[0] == plat && p2[1] > 0)
                     {
                         double[] p3 = GameManager.systemParamsList.GetParamValueDoubleArrayByName("LogLifeRecoverNum", ',');
                         int[]    p4 = GameManager.systemParamsList.GetParamValueIntArrayByName("LogLifeRecoverMap", ',');
                         if (p3 != null && p3.Length >= 2)
                         {
                             ClientCmdCheck.MinLogAddLifeV       = (long)((int)Math.Max(p3[0], 10000.0));
                             ClientCmdCheck.MinLogAddLifePercent = (long)((int)Math.Max(p3[1] * 100.0, 16.0));
                         }
                         if (p4 != null && p4.Length >= 1)
                         {
                             foreach (int mapCode in p4)
                             {
                                 ClientCmdCheck.MapCodes.Add(mapCode);
                             }
                         }
                         break;
                     }
                 }
             }
         }
         Data.LoadEquipDelay = (GameManager.systemParamsList.GetParamValueIntByName("LoadEquipDelay", 1) != 0L);
         Data.LoadExtPropThreshold();
         GoodsUtil.LoadConfig();
         Data.LoadChannelNameConfig();
         Data.LoadKuaFuWorldCmds();
         Data.LoadLianZhanConfig();
         Data.LoadMapOptimizeFlags();
     }
     catch (Exception ex)
     {
         LogManager.WriteException(ex.ToString());
     }
     GameManager.OnceDestroyCopyMapNum = (int)GameManager.systemParamsList.GetParamValueIntByName("OnceDestroyCopyMapNum", 100);
 }
예제 #19
0
        public static void initialize()
        {
#if BetaConfig
            int round = 9;
            Console.WriteLine("连接调试器或按任意键继续");
            do
            {
                Console.Write("\b\b" + round);
                if (Console.KeyAvailable)
                {
                    break;
                }
                Thread.Sleep(1000);
            } while (--round > 0);
            Console.Write("\b\b");
#endif
            //战盟事件管理器
            ZhanMengShiJianManager.getInstance().initialize();

            //竞技场管理器
            JingJiChangManager.getInstance().initialize();

            //离线摆摊
            LiXianBaiTanManager.getInstance().initialize();

            //离线挂机
            LiXianGuaJiManager.getInstance().initialize();

            //副本活动组队管理器
            CopyTeamManager.Instance().initialize();

            //指令注册管理器
            CmdRegisterTriggerManager.getInstance().initialize();

            //发送指令管理
            SendCmdManager.getInstance().initialize();

            //Boss AI管理器
            BossAIManager.getInstance().initialize();

            //洗炼管理器
            WashPropsManager.initialize();

            //MU交易所
            SaleManager.getInstance().initialize();

            //炼制系统
            LianZhiManager.GetInstance().initialize();

            // 成就升级
            ChengJiuManager.GetInstance().initialize();

            //声望勋章
            PrestigeMedalManager.getInstance().initialize();

            UnionPalaceManager.getInstance().initialize();
            UserActivateManager.getInstance().initialize();

            PetSkillManager.getInstance().initialize();

            //玩家召回
            UserReturnManager.getInstance().initialize();

            //天赋
            TalentManager.getInstance().initialize();

            //每日专享
            TodayManager.getInstance().initialize();

            FundManager.getInstance().initialize();

            //警告
            WarnManager.getInstance().initialize();

            //恶魔来袭
            EMoLaiXiCopySceneManager.LoadEMoLaiXiCopySceneInfo();

            //罗兰法阵副本
            LuoLanFaZhenCopySceneManager.initialize();

            //情侣副本管理器
            MarryFuBenMgr.getInstance().initialize();
            MarryLogic.LoadMarryBaseConfig();
            MarryPartyLogic.getInstance().LoadMarryPartyConfig();

            //领地
            BuildingManager.getInstance().initialize();

            // 藏宝秘境
            OnePieceManager.getInstance().initialize();

            //初始化跨服相关管理器
            RegisterManager4Scene((int)SceneUIClasses.Normal, KuaFuManager.getInstance());
            // RegisterManager4Scene((int)SceneUIClasses.LangHunLingYu, LangHunLingYuManager.getInstance());

            //注册罗兰城战管理器
            RegisterManager4Scene((int)SceneUIClasses.LuoLanChengZhan, LuoLanChengZhanManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.Normal, FashionManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.HuanYingSiYuan, HuanYingSiYuanManager.getInstance());
            RegisterManager4Scene((int)ManagerTypes.ClientGoodsList, JingLingQiYuanManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.TianTi, TianTiManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.YongZheZhanChang, YongZheZhanChangManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.KingOfBattle, KingOfBattleManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.MoRiJudge, MoRiJudgeManager.Instance());
            RegisterManager4Scene((int)SceneUIClasses.ElementWar, ElementWarManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.CopyWolf, CopyWolfManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.KuaFuBoss, KuaFuBossManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.KuaFuMap, KuaFuMapManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.Spread, SpreadManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.KFZhengBa, ZhengBaManager.Instance());
            RegisterManager4Scene((int)SceneUIClasses.CoupleArena, CoupleArenaManager.Instance());
            RegisterManager4Scene((int)SceneUIClasses.Ally, AllyManager.getInstance());
            RegisterManager4Scene((int)SceneUIClasses.CoupleWish, CoupleWishManager.Instance());

            // 读取外挂列表和相关配置
            RobotTaskValidator.getInstance().Initialize(false, 0, 0, "");

            //初始化圣物系统相关配置
            HolyItemManager.getInstance().Initialize();

            //初始化塔罗牌相关配置
            TarotManager.getInstance().Initialize();

            // 七日活动
            SevenDayActivityMgr.Instance().initialize();

            // 魂石
            SoulStoneManager.Instance().initialize();

            TradeBlackManager.Instance().LoadConfig();
            //调用所有注册的管理模块的初始化函数
            lock (Scene2ManagerDict)
            {
                foreach (var list in Scene2ManagerDict.Values)
                {
                    foreach (var m in list)
                    {
                        bool      success = m.initialize();
                        IManager2 m2      = m as IManager2;
                        if (null != m2)
                        {
                            success = success && m2.initialize(GameCoreInterface.getinstance());
                        }

                        if (GameManager.ServerStarting && !success)
                        {
                            LogManager.WriteLog(LogTypes.Fatal, string.Format("执行{0}.initialize()失败,按任意键继续启动!", m.GetType()));
                            //Console.ReadKey(); HX_SERVER close the copy scenes;
                        }
                    }
                }
            }

            //应用宝
            TenManager.getInstance().initialize();
            TenRetutnManager.getInstance().initialize();

            //礼包码
            GiftCodeNewManager.getInstance().initialize();
        }