コード例 #1
0
        /// <summary>
        /// 声望军衔——设置等级
        /// </summary>
        /// <param name="client"></param>
        /// <param name="level"></param>
        /// <returns></returns>
        public static void SetPrestigeLevel(GameClient client, int level)
        {
            //更新到数据库
            Global.SaveRoleParamsInt32ValueWithTimeStampToDB(client, RoleParamName.ShengWangLevel, level, true);
            GameManager.logDBCmdMgr.AddDBLogInfo(-1, "声望等级", "GM", "系统", client.ClientData.RoleName, "修改", level, client.ClientData.ZoneID, client.strUserID, level, client.ServerId);

            EventLogManager.AddRoleEvent(client, OpTypes.Trace, OpTags.GM, LogRecordType.IntValueWithType, level, RoleAttributeType.ShengWangLevel);
            if (level > 0)
            {
                JingJiChangManager.getInstance().activeJunXianBuff(client, true);
            }

            //更新BufferData
            double[] actionParams = new double[1];
            actionParams[0] = (double)level - 1;
            Global.UpdateBufferData(client, BufferItemTypes.MU_JINGJICHANG_JUNXIAN, actionParams, 0);

            ChengJiuManager.OnRoleJunXianChengJiu(client);
            Global.BroadcastClientMUShengWang(client, level);

            //通知自己
            GameManager.ClientMgr.NotifySelfParamsValueChange(client, RoleCommonUseIntParamsIndexs.ShengWangLevel, level);
            //通知客户端属性变化
            GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);
            // 总生命值和魔法值变化通知(同一个地图才需要通知)
            GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);

            // 军衔升级成功时,刷新相应的图标状态
            client._IconStateMgr.CheckJingJiChangJunXian(client);
            client._IconStateMgr.CheckSpecialActivity(client);
            client._IconStateMgr.SendIconStateToClient(client);
        }
コード例 #2
0
        public static void startup()
        {
            //战盟事件管理器
            ZhanMengShiJianManager.getInstance().startup();

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

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

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

            //副本活动组队管理器
            CopyTeamManager.getInstance().startup();

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

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

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

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

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

            // 成就升级
            ChengJiuManager.GetInstance().startup();
        }
コード例 #3
0
 public static void SetPrestigeLevel(GameClient client, int level)
 {
     Global.SaveRoleParamsInt32ValueWithTimeStampToDB(client, "ShengWangLevel", level, true, "2020-12-12 12:12:12");
     GameManager.logDBCmdMgr.AddDBLogInfo(-1, "声望等级", "GM", "系统", client.ClientData.RoleName, "修改", level, client.ClientData.ZoneID, client.strUserID, level, client.ServerId, null);
     EventLogManager.AddRoleEvent(client, OpTypes.Trace, OpTags.GM, LogRecordType.IntValueWithType, new object[]
     {
         level,
         RoleAttributeType.ShengWangLevel
     });
     if (level > 0)
     {
         JingJiChangManager.getInstance().activeJunXianBuff(client, true);
     }
     Global.UpdateBufferData(client, BufferItemTypes.MU_JINGJICHANG_JUNXIAN, new double[]
     {
         (double)level - 1.0
     }, 0, true);
     ChengJiuManager.OnRoleJunXianChengJiu(client);
     Global.BroadcastClientMUShengWang(client, level);
     GameManager.ClientMgr.NotifySelfParamsValueChange(client, RoleCommonUseIntParamsIndexs.ShengWangLevel, level);
     GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);
     GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, true, false, 7);
     client._IconStateMgr.CheckJingJiChangJunXian(client);
     client._IconStateMgr.CheckSpecialActivity(client);
     client._IconStateMgr.CheckEverydayActivity(client);
     client._IconStateMgr.SendIconStateToClient(client);
 }
コード例 #4
0
ファイル: ReloadXmlManager.cs プロジェクト: chenchungit/ky
        /// <summary>
        /// 成就配置文件
        /// </summary>
        /// <returns></returns>
        private static int ReloadXmlFile_config_ChengJiu()
        {
            //成就配置文件
            GameManager.systemChengJiu.LoadFromXMlFile("Config/ChengJiu.xml", "ChengJiu", "ChengJiuID");
            ChengJiuManager.InitChengJiuConfig();

            return(1);
        }
コード例 #5
0
        public static void startup()
        {
            ZhanMengShiJianManager.getInstance().startup();
            JingJiChangManager.getInstance().startup();
            LiXianBaiTanManager.getInstance().startup();
            LiXianGuaJiManager.getInstance().startup();
            CmdRegisterTriggerManager.getInstance().startup();
            SendCmdManager.getInstance().startup();
            BossAIManager.getInstance().startup();
            SaleManager.getInstance().startup();
            LianZhiManager.GetInstance().startup();
            ChengJiuManager.GetInstance().startup();
            UserReturnManager.getInstance().startup();
            OlympicsManager.getInstance().startup();
            TalentManager.getInstance().startup();
            TodayManager.getInstance().startup();
            FundManager.getInstance().startup();
            WarnManager.getInstance().startup();
            PrestigeMedalManager.getInstance().startup();
            UnionPalaceManager.getInstance().startup();
            UserActivateManager.getInstance().startup();
            PetSkillManager.getInstance().startup();
            BuildingManager.getInstance().startup();
            OnePieceManager.getInstance().startup();
            TenManager.getInstance().startup();
            SingletonTemplate <SevenDayActivityMgr> .Instance().startup();

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

            lock (GlobalServiceManager.Scene2ManagerDict)
            {
                foreach (List <IManager> list in GlobalServiceManager.Scene2ManagerDict.Values)
                {
                    foreach (IManager i in list)
                    {
                        try
                        {
                            bool success = i.startup();
                            if (GameManager.ServerStarting && !success)
                            {
                                LogManager.WriteLog(LogTypes.Fatal, string.Format("初始化{0}.startup()失败,按任意键忽略此错误并继续启动服务器!", i.GetType()), null, true);
                                Console.ReadKey();
                            }
                        }
                        catch (Exception ex)
                        {
                            LogManager.WriteException(ex.ToString());
                        }
                    }
                }
            }
            FaceBookManager.getInstance().startup();
        }
コード例 #6
0
ファイル: TodayManager.cs プロジェクト: chenchungit/ky
        private bool SetFinishNum(GameClient client, TodayInfo todayInfo, SystemXmlItem fuBenInfo)
        {
            int num = todayInfo.NumMax - todayInfo.NumEnd;

            switch ((ETodayType)todayInfo.Type)
            {
            case ETodayType.Exp:
            case ETodayType.Gold:
                Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num);
                break;

            case ETodayType.KaLiMa:
            case ETodayType.EM:
            case ETodayType.Lo:
                Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num);
                break;

            case ETodayType.Tao:
            {
                DailyTaskData taoData = null;
                Global.GetDailyTaskData(client, (int)TaskClasses.TaofaTask, out taoData, true);

                taoData.RecNum = todayInfo.NumMax;
                Global.UpdateDBDailyTaskData(client, taoData, true);
            }
            break;
            }

            FuBenData fuBenData = Global.GetFuBenData(client, todayInfo.FuBenID);

            if (fuBenData != null && (fuBenData.EnterNum != 0 || fuBenData.FinishNum != 0))
            {
                //记录通关副本数量
                int           dayID    = TimeUtil.NowDateTime().DayOfYear;
                RoleDailyData roleData = client.ClientData.MyRoleDailyData;
                if (null == roleData || dayID != roleData.FuBenDayID)
                {
                    roleData            = new RoleDailyData();
                    roleData.FuBenDayID = dayID;
                    client.ClientData.MyRoleDailyData = roleData;
                }

                int count = todayInfo.NumMax - todayInfo.NumEnd;
                roleData.TodayFuBenNum += count;

                int level = fuBenInfo.GetIntValue("FuBenLevel");
                DailyActiveManager.ProcessCompleteCopyMapForDailyActive(client, level, count); //活跃
                ChengJiuManager.ProcessCompleteCopyMapForChengJiu(client, level, count);       //成就
            }

            return(true);
        }
コード例 #7
0
        public static void destroy()
        {
            ZhanMengShiJianManager.getInstance().destroy();
            JingJiChangManager.getInstance().destroy();
            LiXianBaiTanManager.getInstance().destroy();
            LiXianGuaJiManager.getInstance().destroy();
            CmdRegisterTriggerManager.getInstance().destroy();
            SendCmdManager.getInstance().destroy();
            BossAIManager.getInstance().destroy();
            SaleManager.getInstance().destroy();
            LianZhiManager.GetInstance().destroy();
            ChengJiuManager.GetInstance().destroy();
            PrestigeMedalManager.getInstance().destroy();
            UnionPalaceManager.getInstance().destroy();
            UserActivateManager.getInstance().destroy();
            PetSkillManager.getInstance().destroy();
            UserReturnManager.getInstance().destroy();
            OlympicsManager.getInstance().destroy();
            TalentManager.getInstance().destroy();
            TodayManager.getInstance().destroy();
            FundManager.getInstance().destroy();
            WarnManager.getInstance().destroy();
            MarryFuBenMgr.getInstance().destroy();
            BuildingManager.getInstance().destroy();
            OnePieceManager.getInstance().destroy();
            TenManager.getInstance().destroy();
            SingletonTemplate <SevenDayActivityMgr> .Instance().destroy();

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

            lock (GlobalServiceManager.Scene2ManagerDict)
            {
                foreach (List <IManager> list in GlobalServiceManager.Scene2ManagerDict.Values)
                {
                    foreach (IManager i in list)
                    {
                        try
                        {
                            i.destroy();
                        }
                        catch (Exception ex)
                        {
                            LogManager.WriteException(ex.ToString());
                        }
                    }
                }
            }
            FaceBookManager.getInstance().destroy();
        }
コード例 #8
0
        /// <summary>
        /// 处理合成的新物品
        /// </summary>
        /// <param name="client"></param>
        /// <param name="mergeItemID"></param>
        public static int Process(GameClient client, int mergeItemID, int luckyGoodsID, int WingDBID, int CrystalDBID, int nUseBindItemFirst)
        {
            //获取缓存项
            CacheMergeItem cacheMergeItem = GetCacheMergeItem(mergeItemID);

            if (null == cacheMergeItem)
            {
                return(-1000);
            }

            int ret = 0;

            // 翅膀合成 特殊处理! [12/12/2013 LiaoWei]
            if (mergeItemID >= (int)WINGMERGEINFO.WINGMERGE_FIRST_LEVEL_ID && mergeItemID <= (int)WINGMERGEINFO.WINGMERGE_THIRD_LEVEL_ID)
            {
                //检查是否满足合成的条件
                ret = CanMergeNewGoods(client, cacheMergeItem, cacheMergeItem.NewGoodsID[0]);
                if (ret < 0)
                {
                    return(ret);
                }

                ret = ProcessWingMerge(client, mergeItemID, luckyGoodsID, WingDBID, CrystalDBID, cacheMergeItem);
                if (ret < 0)
                {
                    return(ret);
                }

                //成就处理 第一次合成
                ChengJiuManager.OnFirstHeCheng(client);
                ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]);
            }
            else
            {
                //用材料合成新物品
                ret = ProcessMergeNewGoods(client, mergeItemID, cacheMergeItem, luckyGoodsID, nUseBindItemFirst);
                if (ret < 0)
                {
                    return(ret);
                }
            }



            return(0);
        }
コード例 #9
0
        /// <summary>
        /// 炼制系统命令处理
        /// </summary>
        public bool processCmd(GameClient client, string[] cmdParams)
        {
            int nID = (int)CmdID;

            if (CmdID == TCPGameServerCmds.CMD_SPR_UPGRADE_CHENGJIU)
            {
                int nRoleID        = Global.SafeConvertToInt32(cmdParams[0]);   // 角色ID
                int nChengJiuLevel = Global.SafeConvertToInt32(cmdParams[1]);   // 角色成就等级

                int    nRet   = ChengJiuManager.TryToActiveNewChengJiuBuffer(client, true, nChengJiuLevel);
                String strCmd = string.Format("{0}:{1}", nRoleID, nRet);

                client.sendCmd(nID, strCmd);
                return(true);
            }

            return(false);
        }
コード例 #10
0
        /// <summary>
        /// 检查“累计登陆”项是否有奖励未领取
        /// </summary>
        public bool CheckFuLiLeiJiDengLuReward(GameClient client)
        {
            int nFlag = Global.GetRoleParamsInt32FromDB(client, RoleParamName.TotalLoginAwardFlag);

            int  nLoginNum    = (int)ChengJiuManager.GetChengJiuExtraDataByField(client, ChengJiuExtraDataField.TotalDayLogin);
            int  nMaxLoginNum = Data.TotalLoginDataInfoList.Count();
            bool bFulsh       = false;

            for (int i = 0; i < 7 && i < nLoginNum && i < nMaxLoginNum; i++)
            {
                // 还有未领取的累计登陆奖励
                if ((nFlag & (0x1 << (i + 1))) == 0)
                {
                    bFulsh = true;
                    break;
                }
            }

            if (nLoginNum == 30)
            {
                if ((nFlag & (0x1 << (10))) == 0)
                {
                    bFulsh = true;
                }
            }

            if (nLoginNum == 21)
            {
                if ((nFlag & (0x1 << 9)) == 0)
                {
                    bFulsh = true;
                }
            }

            if (nLoginNum == 14)
            {
                if ((nFlag & (0x1 << (8))) == 0)
                {
                    bFulsh = true;
                }
            }

            return(bFulsh);
        }
コード例 #11
0
        public bool Judge(GameClient client, string arg, out string failedMsg)
        {
            failedMsg = "";
            bool bOK = false;

            if (client != null && !string.IsNullOrEmpty(arg))
            {
                int iNeedLvl = -1;
                if (int.TryParse(arg, out iNeedLvl) && ChengJiuManager.GetChengJiuLevel(client) >= iNeedLvl)
                {
                    bOK = true;
                }
            }
            if (!bOK)
            {
                failedMsg = string.Format(GLang.GetLang(140, new object[0]), string.Format(GLang.GetLang(676, new object[0]), arg));
            }
            return(bOK);
        }
コード例 #12
0
        public bool processCmd(GameClient client, string[] cmdParams)
        {
            int  nID = (int)this.CmdID;
            bool result;

            if (this.CmdID == TCPGameServerCmds.CMD_SPR_UPGRADE_CHENGJIU)
            {
                int    nRoleID        = Global.SafeConvertToInt32(cmdParams[0]);
                int    nChengJiuLevel = Global.SafeConvertToInt32(cmdParams[1]);
                int    nRet           = ChengJiuManager.TryToActiveNewChengJiuBuffer(client, true, nChengJiuLevel);
                string strCmd         = string.Format("{0}:{1}", nRoleID, nRet);
                client.sendCmd(nID, strCmd, false);
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
コード例 #13
0
        public static void initialize()
        {
            //战盟事件管理器
            ZhanMengShiJianManager.getInstance().initialize();

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

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

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

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

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

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

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

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

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

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

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

            //恶魔来袭
            EMoLaiXiCopySceneManager.LoadEMoLaiXiCopySceneInfo();
        }
コード例 #14
0
ファイル: MergeNewGoods.cs プロジェクト: qiuhoude/mu_server
        public static int Process(GameClient client, int mergeItemID, int luckyGoodsID, int WingDBID, int CrystalDBID, int nUseBindItemFirst)
        {
            CacheMergeItem cacheMergeItem = MergeNewGoods.GetCacheMergeItem(mergeItemID);
            int            result;

            if (null == cacheMergeItem)
            {
                result = -1000;
            }
            else
            {
                if (mergeItemID >= 4 && mergeItemID <= 6)
                {
                    int ret = MergeNewGoods.CanMergeNewGoods(client, cacheMergeItem, cacheMergeItem.NewGoodsID[0], false);
                    if (ret < 0)
                    {
                        return(ret);
                    }
                    ret = MergeNewGoods.ProcessWingMerge(client, mergeItemID, luckyGoodsID, WingDBID, CrystalDBID, cacheMergeItem);
                    if (ret < 0)
                    {
                        return(ret);
                    }
                    ChengJiuManager.OnFirstHeCheng(client);
                    ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]);
                }
                else
                {
                    int ret = MergeNewGoods.ProcessMergeNewGoods(client, mergeItemID, cacheMergeItem, luckyGoodsID, nUseBindItemFirst);
                    if (ret < 0)
                    {
                        return(ret);
                    }
                }
                result = 0;
            }
            return(result);
        }
コード例 #15
0
        public bool Judge(GameClient client, string arg, out string failedMsg)
        {
            failedMsg = "";

            bool bOK = false;

            if (client != null && !string.IsNullOrEmpty(arg))
            {
                int iNeedLvl = -1;
                if (int.TryParse(arg, out iNeedLvl) && ChengJiuManager.GetChengJiuLevel(client) >= iNeedLvl)
                {
                    bOK = true;
                }
            }

            if (!bOK)
            {
                failedMsg = string.Format(Global.GetLang(CondMultiLang.Wrapper),
                                          string.Format(Global.GetLang(CondMultiLang.ChengJiu), arg));
            }

            return(bOK);
        }
コード例 #16
0
        /// <summary>
        /// 检查是否可提升成就称号
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public bool CheckChengJiuUpLevelState(GameClient client)
        {
            bool result = AddFlushIconState((ushort)ActivityTipTypes.MainChengJiuIcon, ChengJiuManager.CanActiveNextChengHao(client));

            SendIconStateToClient(client);
            return(result);
        }
コード例 #17
0
ファイル: MergeNewGoods.cs プロジェクト: qiuhoude/mu_server
        private static int ProcessMergeNewGoods(GameClient client, int mergeItemID, CacheMergeItem cacheMergeItem, int luckyGoodsID, int nUseBindItemFirst)
        {
            int  newGoodsBinding   = 0;
            int  addSuccessPercent = 0;
            bool bLeftGrid         = false;
            int  nNewGoodsID       = cacheMergeItem.NewGoodsID[0];

            if (cacheMergeItem.NewGoodsID.Count > 1)
            {
                if (!Global.CanAddGoodsNum(client, 1))
                {
                    return(-1);
                }
                nNewGoodsID = cacheMergeItem.NewGoodsID[Global.GetRandomNumber(0, cacheMergeItem.NewGoodsID.Count)];
                bLeftGrid   = true;
            }
            int ret = MergeNewGoods.CanMergeNewGoods(client, cacheMergeItem, nNewGoodsID, bLeftGrid);
            int result;

            if (ret < 0)
            {
                result = ret;
            }
            else
            {
                if (luckyGoodsID > 0)
                {
                    int luckyPercent = Global.GetLuckyValue(luckyGoodsID);
                    if (luckyPercent > 0)
                    {
                        bool usedBinding     = false;
                        bool usedTimeLimited = false;
                        if (GameManager.ClientMgr.NotifyUseGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, luckyGoodsID, 1, false, out usedBinding, out usedTimeLimited, false))
                        {
                            if (newGoodsBinding <= 0)
                            {
                                newGoodsBinding = (usedBinding ? 1 : 0);
                            }
                            addSuccessPercent = luckyPercent;
                        }
                    }
                }
                bool success = MergeNewGoods.JugeSucess(mergeItemID, cacheMergeItem, addSuccessPercent);
                for (int i = 0; i < cacheMergeItem.OrigGoodsIDList.Count; i++)
                {
                    int usingGoodsNum   = MergeNewGoods.GetUsingGoodsNum(success, cacheMergeItem, cacheMergeItem.OrigGoodsIDList[i], cacheMergeItem.OrigGoodsNumList[i]);
                    int nBindGoodNum    = Global.GetTotalBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]);
                    int nNotBindGoodNum = Global.GetTotalNotBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]);
                    if (usingGoodsNum > nBindGoodNum + nNotBindGoodNum)
                    {
                        return(-10);
                    }
                    bool usedBinding     = false;
                    bool usedTimeLimited = false;
                    if (nUseBindItemFirst > 0 && nBindGoodNum > 0)
                    {
                        int nSum;
                        int nSubNum;
                        if (usingGoodsNum > nBindGoodNum)
                        {
                            nSum    = nBindGoodNum;
                            nSubNum = usingGoodsNum - nBindGoodNum;
                        }
                        else
                        {
                            nSum    = usingGoodsNum;
                            nSubNum = 0;
                        }
                        if (nSum > 0)
                        {
                            if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true))
                            {
                                return(-10);
                            }
                        }
                        if (nSubNum > 0)
                        {
                            if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true))
                            {
                                return(-10);
                            }
                        }
                        newGoodsBinding = 1;
                    }
                    else
                    {
                        int nSum;
                        int nSubNum;
                        if (usingGoodsNum > nNotBindGoodNum)
                        {
                            nSum    = nNotBindGoodNum;
                            nSubNum = usingGoodsNum - nNotBindGoodNum;
                        }
                        else
                        {
                            nSum    = usingGoodsNum;
                            nSubNum = 0;
                        }
                        if (nSum > 0)
                        {
                            if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true))
                            {
                                return(-10);
                            }
                        }
                        if (nSubNum > 0)
                        {
                            if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true))
                            {
                                return(-10);
                            }
                            newGoodsBinding = 1;
                        }
                    }
                }
                if (cacheMergeItem.DianJuan > 0)
                {
                    if (!GameManager.ClientMgr.SubUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.DianJuan, "合成新物品", true, true, false, DaiBiSySType.None))
                    {
                        return(-11);
                    }
                }
                if (cacheMergeItem.Money > 0)
                {
                    if (!Global.SubBindTongQianAndTongQian(client, cacheMergeItem.Money, "材料合成"))
                    {
                        return(-12);
                    }
                }
                if (cacheMergeItem.JingYuan > 0)
                {
                    GameManager.ClientMgr.ModifyTianDiJingYuanValue(client, -cacheMergeItem.JingYuan, "材料合成", true, true, false);
                }
                if (!success)
                {
                    result = -1000;
                }
                else
                {
                    int dbRet = Global.AddGoodsDBCommand(Global._TCPManager.TcpOutPacketPool, client, nNewGoodsID, 1, 0, "", 0, newGoodsBinding, 0, "", true, 1, "材料合成新物品", "1900-01-01 12:00:00", 0, 0, 0, 0, 0, 0, 0, null, null, 0, true);
                    if (dbRet < 0)
                    {
                        result = -20;
                    }
                    else
                    {
                        if (90 == Global.GetGoodsCatetoriy(nNewGoodsID))
                        {
                            if (Global.GetJewelLevel(nNewGoodsID) >= 6)
                            {
                                Global.BroadcastMergeJewelOk(client, nNewGoodsID);
                            }
                        }
                        if (120 == Global.GetGoodsCatetoriy(nNewGoodsID))
                        {
                        }
                        ChengJiuManager.OnFirstHeCheng(client);
                        ChengJiuManager.OnRoleGoodsHeCheng(client, nNewGoodsID);
                        SevenDayGoalEventObject evObj = SevenDayGoalEvPool.Alloc(client, ESevenDayGoalFuncType.HeChengTimes);
                        evObj.Arg1 = nNewGoodsID;
                        GlobalEventSource.getInstance().fireEvent(evObj);
                        ProcessTask.ProcessAddTaskVal(client, TaskTypes.Merge_GuoShi, cacheMergeItem.MergeType, 1, new object[0]);
                        result = 0;
                    }
                }
            }
            return(result);
        }
コード例 #18
0
 private void ProcessAward(GameClient client)
 {
     if (this.BattlingState >= BattleStates.StartFight)
     {
         if (this.BattlingState == BattleStates.StartFight)
         {
             long ticks = TimeUtil.NOW();
             if (ticks < this.StateStartTicks + 1000L)
             {
                 return;
             }
         }
         lock (this.mutex)
         {
             int nFlag;
             if (!this.TheKingOfPKGetawardFlag.TryGetValue(client.ClientData.RoleID, out nFlag))
             {
                 return;
             }
             if (nFlag > 0)
             {
                 return;
             }
             this.TheKingOfPKGetawardFlag[client.ClientData.RoleID] = 1;
         }
         if (client.ClientData.KingOfPkCurrentPoint > this.TheKingOfPKTopPoint)
         {
             this.SetTotalPointInfo(client.ClientData.RoleName, client.ClientData.KingOfPkCurrentPoint);
         }
         string   strPkAward  = GameManager.systemParamsList.GetParamValueByName("PkAward");
         string[] strChengJiu = null;
         string[] strExp      = null;
         if (!string.IsNullOrEmpty(strPkAward))
         {
             string[] strFild = strPkAward.Split(new char[]
             {
                 '|'
             });
             string strInfo = strFild[0];
             strChengJiu = strInfo.Split(new char[]
             {
                 ','
             });
             strInfo = strFild[1];
             strExp  = strInfo.Split(new char[]
             {
                 ','
             });
         }
         HeFuAwardTimesActivity activity = HuodongCachingMgr.GetHeFuAwardTimesActivity();
         JieRiMultAwardActivity jieriact = HuodongCachingMgr.GetJieRiMultAwardActivity();
         SpecPriorityActivity   spAct    = HuodongCachingMgr.GetSpecPriorityActivity();
         double actTimes = 0.0;
         if (activity != null && activity.InActivityTime() && (double)activity.activityTimes > 0.0)
         {
             actTimes += (double)activity.activityTimes;
         }
         if (null != jieriact)
         {
             JieRiMultConfig config = jieriact.GetConfig(3);
             if (null != config)
             {
                 actTimes += config.GetMult();
             }
         }
         if (null != spAct)
         {
             actTimes += spAct.GetMult(SpecPActivityBuffType.SPABT_PKKing);
         }
         actTimes = Math.Max(1.0, actTimes);
         int nChengjiuPoint = Global.SafeConvertToInt32(strChengJiu[0]) + Global.GMin(Global.SafeConvertToInt32(strChengJiu[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strChengJiu[2]);
         nChengjiuPoint *= (int)actTimes;
         if (nChengjiuPoint > 0)
         {
             ChengJiuManager.AddChengJiuPoints(client, "角斗赛", nChengjiuPoint, true, true);
         }
         double nRate         = Data.ChangeLifeEverydayExpRate[client.ClientData.ChangeLifeCount];
         long   nExp          = (long)((int)((double)Global.SafeConvertToInt32(strExp[0]) * nRate + (double)(Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2])) * nRate));
         double dblExperience = 1.0;
         dblExperience += actTimes;
         nExp           = (long)((int)((double)nExp * dblExperience));
         if (nExp > 0L)
         {
             GameManager.ClientMgr.ProcessRoleExperience(client, nExp, true, true, false, "none");
         }
         string strCmd = string.Format("{0}:{1}:{2}", client.ClientData.KingOfPkCurrentPoint, nChengjiuPoint, nExp);
         client.ClientData.KingOfPkCurrentPoint = 0;
         GameManager.ClientMgr.SendToClient(client, strCmd, 569);
         ProcessTask.ProcessAddTaskVal(client, TaskTypes.PKKing, -1, 1, new object[0]);
     }
 }
コード例 #19
0
        /// <summary>
        /// 用材料合成新物品
        /// </summary>
        /// <param name="cacheMergeItem"></param>
        /// <returns></returns>
        private static int ProcessMergeNewGoods(GameClient client, int mergeItemID, CacheMergeItem cacheMergeItem, int luckyGoodsID, int nUseBindItemFirst)
        {
            //新合成的物品是否绑定
            int newGoodsBinding   = 0;
            int addSuccessPercent = 0;

            bool bLeftGrid   = false;
            int  nNewGoodsID = cacheMergeItem.NewGoodsID[0];

            if (cacheMergeItem.NewGoodsID.Count > 1)
            {
                nNewGoodsID = cacheMergeItem.NewGoodsID[Global.GetRandomNumber(0, cacheMergeItem.NewGoodsID.Count)];
                bLeftGrid   = true;
            }

            //检查是否满足合成的条件
            int ret = CanMergeNewGoods(client, cacheMergeItem, nNewGoodsID, bLeftGrid);

            if (ret < 0)
            {
                return(ret);
            }

            if (luckyGoodsID > 0)
            {
                int luckyPercent = Global.GetLuckyValue(luckyGoodsID);
                if (luckyPercent > 0)
                {
                    bool usedBinding     = false;
                    bool usedTimeLimited = false;

                    //从用户物品中扣除消耗的数量
                    if (GameManager.ClientMgr.NotifyUseGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool,
                                                             Global._TCPManager.TcpOutPacketPool, client, luckyGoodsID, 1, false, out usedBinding, out usedTimeLimited))
                    {
                        if (newGoodsBinding <= 0)
                        {
                            newGoodsBinding = usedBinding ? 1 : 0;
                        }

                        addSuccessPercent = luckyPercent;
                    }
                }
            }

            //检查概率
            bool success = JugeSucess(mergeItemID, cacheMergeItem, addSuccessPercent);

            //检查物品
            for (int i = 0; i < cacheMergeItem.OrigGoodsIDList.Count; i++)
            {
                int usingGoodsNum = GetUsingGoodsNum(success, cacheMergeItem, cacheMergeItem.OrigGoodsIDList[i], cacheMergeItem.OrigGoodsNumList[i]);

                int nBindGoodNum    = Global.GetTotalBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]);
                int nNotBindGoodNum = Global.GetTotalNotBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]);

                if (usingGoodsNum > nBindGoodNum + nNotBindGoodNum)
                {
                    return(-10);
                }

                bool usedBinding     = false;
                bool usedTimeLimited = false;

                int nSubNum = usingGoodsNum;
                int nSum    = 0;

                if (nUseBindItemFirst > 0 && nBindGoodNum > 0)
                {
                    if (usingGoodsNum > nBindGoodNum)
                    {
                        nSum    = nBindGoodNum;
                        nSubNum = usingGoodsNum - nBindGoodNum;
                    }
                    else
                    {
                        nSum    = usingGoodsNum;
                        nSubNum = 0;
                    }

                    if (nSum > 0)
                    {
                        if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool,
                                                                      Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true))
                        {
                            return(-10);
                        }
                    }

                    if (nSubNum > 0)
                    {
                        if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool,
                                                                         Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true))
                        {
                            return(-10);
                        }
                    }

                    newGoodsBinding = 1;
                }
                else
                {
                    if (usingGoodsNum > nNotBindGoodNum)
                    {
                        nSum    = nNotBindGoodNum;
                        nSubNum = usingGoodsNum - nNotBindGoodNum;
                    }
                    else
                    {
                        nSum    = usingGoodsNum;
                        nSubNum = 0;
                    }

                    if (nSum > 0)
                    {
                        if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool,
                                                                         Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true))
                        {
                            return(-10);
                        }
                    }

                    if (nSubNum > 0)
                    {
                        if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool,
                                                                      Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true))
                        {
                            return(-10);
                        }

                        newGoodsBinding = 1;
                    }
                }

//                 if (newGoodsBinding <= 0)
//                 {
//                     newGoodsBinding = usedBinding ? 1 : 0;
//                 }
            }

            //检查点卷
            if (cacheMergeItem.DianJuan > 0)
            {
                //优先扣除金币
                //扣除的金币
                //int hasSubGold = 0;

                //扣除的元宝
                //int hasSubYuanBao = 0;

                if (!GameManager.ClientMgr.SubUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool,
                                                        Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.DianJuan, "合成新物品"))
                {
                    return(-11);
                }

                //if (hasSubGold > 0)
                //{
                //    newGoodsBinding = 1;
                //}
            }

            //检查银两
            if (cacheMergeItem.Money > 0)
            {
                //if (!GameManager.ClientMgr.SubUserYinLiang(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool,
                //    Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.Money))
                if (!Global.SubBindTongQianAndTongQian(client, cacheMergeItem.Money, "材料合成"))
                {
                    return(-12);
                }
            }

            // 合成改造 -- 注释掉真气和积分 [12/14/2013 LiaoWei]
            //检查真气

            /*if (cacheMergeItem.ZhenQi > 0)
             * {
             *  //扣除角色的真气
             *  GameManager.ClientMgr.ModifyZhenQiValue(client, -cacheMergeItem.ZhenQi, true, true);
             * }*/

            //检查积分

            /*if (cacheMergeItem.JiFen > 0)
             * {
             *  //扣除角色的积分
             *  GameManager.ClientMgr.ModifyZhuangBeiJiFenValue(client, -cacheMergeItem.JiFen, true, true);
             * }*/

            //检查天地精元
            if (cacheMergeItem.JingYuan > 0)
            {
                //扣除角色的天地精元
                GameManager.ClientMgr.ModifyTianDiJingYuanValue(client, -cacheMergeItem.JingYuan, "材料合成", true, true);
            }

            if (!success)
            {
                return(-1000);
            }

            //添加合成的新物品到角色的背包中
            //想DBServer请求加入某个新的物品到背包中
            int dbRet = Global.AddGoodsDBCommand(Global._TCPManager.TcpOutPacketPool, client, nNewGoodsID, 1, 0, "", 0, newGoodsBinding, 0, "", true, 1, "材料合成新物品");

            if (dbRet < 0)
            {
                return(-20);
            }

            //判断如果是宝石,并且超过了4级,则提示
            if ((int)ItemCategories.ItemJewel == Global.GetGoodsCatetoriy(nNewGoodsID))
            {
                //如果是宝石,处理成就
                //ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]);

                if (Global.GetJewelLevel(nNewGoodsID) >= 6) //6级以上
                {
                    //宝石合成
                    Global.BroadcastMergeJewelOk(client, nNewGoodsID);
                }
            }

            //如果是合成强化石,则处理成就
            if ((int)ItemCategories.ItemMaterial == Global.GetGoodsCatetoriy(nNewGoodsID))
            {
                //如果是宝石,处理成就
                //ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]);
            }

            //成就处理 第一次合成
            ChengJiuManager.OnFirstHeCheng(client);
            ChengJiuManager.OnRoleGoodsHeCheng(client, nNewGoodsID);

            return(0);
        }
コード例 #20
0
        /// <summary>
        /// 给奖励
        /// </summary>
        private void ProcessAward(GameClient client)
        {
            int nFlag;

            if (BattlingState < BattleStates.StartFight)
            {
                //开始战斗前离开不给奖励
                return;
            }
            else if (BattlingState == BattleStates.StartFight)
            {
                long ticks = DateTime.Now.Ticks / 10000;
                if (ticks < StateStartTicks + 1000) //进场1秒后退出才给奖励,防止卡时间点刷奖励
                {
                    return;
                }
            }

            lock (mutex)
            {
                if (!TheKingOfPKGetawardFlag.TryGetValue(client.ClientData.RoleID, out nFlag))
                {
                    return;
                }

                if (nFlag > 0)
                {
                    return;
                }

                TheKingOfPKGetawardFlag[client.ClientData.RoleID] = 1;
            }

            if (client.ClientData.KingOfPkCurrentPoint > TheKingOfPKTopPoint)
            {
                SetTotalPointInfo(client.ClientData.RoleName, client.ClientData.KingOfPkCurrentPoint);
            }

            // 1.成就=系数1+Min(系数2,积分)*系数3   2.经验=Min(400,转生级别*400+人物等级)*系数1+Min(系数2,积分)*系数3  2014.4.21改成 人物级别*转生级别对应比例*系数1 +Min(系数2,积分)*系数3
            // 经验=系数1*SystemParams.xml定义的ZhuanShengExpXiShu参数值+Min(系数2,积分)*系数3*SystemParams.xml定义的ZhuanShengExpXiShu参数值

            string strPkAward = GameManager.systemParamsList.GetParamValueByName("PkAward");

            string[] strChengJiu    = null;
            string[] strExp         = null;
            int      nChengjiuPoint = 0;
            long     nExp           = 0;


            if (!string.IsNullOrEmpty(strPkAward))
            {
                string[] strFild = strPkAward.Split('|');

                string strInfo = strFild[0];

                strChengJiu = strInfo.Split(',');

                strInfo = strFild[1];

                strExp = strInfo.Split(',');
            }

            nChengjiuPoint = Global.SafeConvertToInt32(strChengJiu[0]) + Global.GMin(Global.SafeConvertToInt32(strChengJiu[1]), client.ClientData.KingOfPkCurrentPoint) *
                             Global.SafeConvertToInt32(strChengJiu[2]);

            if (nChengjiuPoint > 0)
            {
                ChengJiuManager.AddChengJiuPoints(client, "角斗赛", nChengjiuPoint, true, true);
            }

            //nExp = Global.GMin(400, client.ClientData.ChangeLifeCount * 400 + client.ClientData.Level) * Global.SafeConvertToInt32(strExp[0]) +
            //            Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2]);

            double nRate = 0.0;

            /*if (client.ClientData.ChangeLifeCount == 0)
             *  nRate = 1;
             * else
             *  nRate = Data.ChangeLifeInfoList[client.ClientData.ChangeLifeCount].ExpProportion;*/

            nRate = Data.ChangeLifeEverydayExpRate[client.ClientData.ChangeLifeCount];

            //(int)(client.ClientData.Level * nRate * Global.SafeConvertToInt32(strExp[0]) + Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2]));
            nExp = (int)(Global.SafeConvertToInt32(strExp[0]) * nRate + Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2]) * nRate);

            double dblExperience = 1.0;
            // 合服期间奖励翻倍
            // 活动时间内
            HeFuAwardTimesActivity activity = HuodongCachingMgr.GetHeFuAwardTimesActivity();

            if (null != activity && activity.InActivityTime() && activity.activityTimes > 0.0)
            {
                dblExperience += activity.activityTimes - 1;
            }
            // 节日多倍奖励
            JieRiMultAwardActivity jieriact = HuodongCachingMgr.GetJieRiMultAwardActivity();

            if (null != jieriact)
            {
                JieRiMultConfig config = jieriact.GetConfig((int)MultActivityType.TheKingOfPK);
                if (null != config)
                {
                    dblExperience += config.GetMult();
                }
            }


            nExp = (int)(nExp * dblExperience);

            if (nExp > 0)
            {
                GameManager.ClientMgr.ProcessRoleExperience(client, nExp);
            }

            string strCmd = "";

            // 1.自己的积分 2.获得成就积分 3.获得经验
            strCmd = string.Format("{0}:{1}:{2}", client.ClientData.KingOfPkCurrentPoint, nChengjiuPoint, nExp);

            client.ClientData.KingOfPkCurrentPoint = 0;

            GameManager.ClientMgr.SendToClient(client, strCmd, (int)TCPGameServerCmds.CMD_SPR_NOTIFYTHEKINGOFPKAWARDINFO);
        }
コード例 #21
0
        private bool SetFinishNum(GameClient client, TodayInfo todayInfo, SystemXmlItem fuBenInfo)
        {
            int num = todayInfo.NumMax - todayInfo.NumEnd;

            switch (todayInfo.Type)
            {
            case 1:
            case 2:
                Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num);
                break;

            case 3:
            case 4:
            case 5:
                Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num);
                break;

            case 6:
            {
                DailyTaskData taoData = null;
                Global.GetDailyTaskData(client, 9, out taoData, true);
                taoData.RecNum = todayInfo.NumMax;
                Global.UpdateDBDailyTaskData(client, taoData, true);
                break;
            }

            case 7:
            {
                int nType = 2;
                Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax);
                break;
            }

            case 8:
            {
                int nType = 1;
                Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax);
                break;
            }

            case 9:
            {
                int nType = 6;
                Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax);
                break;
            }

            case 10:
            case 11:
            case 12:
                Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num);
                break;
            }
            FuBenData fuBenData = Global.GetFuBenData(client, todayInfo.FuBenID);

            if (fuBenData != null && (fuBenData.EnterNum != 0 || fuBenData.FinishNum != 0))
            {
                int           dayID    = TimeUtil.NowDateTime().DayOfYear;
                RoleDailyData roleData = client.ClientData.MyRoleDailyData;
                if (roleData == null || dayID != roleData.FuBenDayID)
                {
                    roleData.FuBenDayID    = dayID;
                    roleData.TodayFuBenNum = 0;
                }
                int count = todayInfo.NumMax - todayInfo.NumEnd;
                roleData.TodayFuBenNum += count;
                int level = fuBenInfo.GetIntValue("FuBenLevel", -1);
                DailyActiveManager.ProcessCompleteCopyMapForDailyActive(client, level, count);
                ChengJiuManager.ProcessCompleteCopyMapForChengJiu(client, level, count);
            }
            return(true);
        }
コード例 #22
0
        public static void destroy()
        {
            //战盟事件管理器
            ZhanMengShiJianManager.getInstance().destroy();

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

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

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

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

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

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

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

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

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

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

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

            UnionPalaceManager.getInstance().destroy();
            UserActivateManager.getInstance().destroy();

            PetSkillManager.getInstance().destroy();

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

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

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

            FundManager.getInstance().destroy();

            WarnManager.getInstance().destroy();

            //情侣副本管理器
            MarryFuBenMgr.getInstance().destroy();

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

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

            TenManager.getInstance().destroy();

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

            SoulStoneManager.Instance().destroy();

            //调用所有注册的管理模块的销毁函数
            lock (Scene2ManagerDict)
            {
                foreach (var list in Scene2ManagerDict.Values)
                {
                    foreach (var m in list)
                    {
                        m.destroy();
                    }
                }
            }
        }
コード例 #23
0
        public static void startup()
        {
            //战盟事件管理器
            ZhanMengShiJianManager.getInstance().startup();

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

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

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

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

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

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

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

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

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

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

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

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

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

            FundManager.getInstance().startup();

            WarnManager.getInstance().startup();

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

            UnionPalaceManager.getInstance().startup();
            UserActivateManager.getInstance().startup();

            PetSkillManager.getInstance().startup();

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

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

            TenManager.getInstance().startup();

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

            SoulStoneManager.Instance().startup();

            //调用所有注册的管理模块的启动函数
            lock (Scene2ManagerDict)
            {
                foreach (var list in Scene2ManagerDict.Values)
                {
                    foreach (var m in list)
                    {
                        bool success = m.startup();
                        if (GameManager.ServerStarting && !success)
                        {
                            LogManager.WriteLog(LogTypes.Fatal, string.Format("初始化{0}.startup()失败,按任意键忽略此错误并继续启动服务器!", m.GetType()));
                            Console.ReadKey();
                        }
                    }
                }
            }
        }
コード例 #24
0
        /// <summary>
        /// 给奖励
        /// </summary>
        public void GiveAwards(HuanYingSiYuanScene huanYingSiYuanScene)
        {
            try
            {
                List <GameClient> objsList = huanYingSiYuanScene.CopyMap.GetClientsList();
                if (objsList != null && objsList.Count > 0)
                {
                    int nowDayId = Global.GetOffsetDayNow();
                    for (int n = 0; n < objsList.Count; ++n)
                    {
                        GameClient client = objsList[n];
                        if (client != null && client == GameManager.ClientMgr.FindClient(client.ClientData.RoleID)) //确认角色仍然在线
                        {
                            bool   success    = false;
                            double nMultiple  = 0.5;
                            int    awardsRate = 1;
                            int    count      = 0;

                            HuanYingSiYuanLianShaContextData clientLianShaContextData = client.SceneContextData2 as HuanYingSiYuanLianShaContextData;
                            if (null != clientLianShaContextData && clientLianShaContextData.TotalScore >= RuntimeData.TempleMirageMinJiFen)
                            {
                                if (client.ClientData.BattleWhichSide == huanYingSiYuanScene.SuccessSide)
                                {
                                    success   = true;
                                    nMultiple = 1;

                                    //每日前3次享受10倍奖励
                                    int dayid = Global.GetRoleParamsInt32FromDB(client, RoleParamName.HysySuccessDayId);
                                    if (dayid == nowDayId)
                                    {
                                        count = Global.GetRoleParamsInt32FromDB(client, RoleParamName.HysySuccessCount);
                                        if (count < RuntimeData.TempleMirageWinExtraNum)
                                        {
                                            awardsRate = RuntimeData.TempleMirageWinExtraRate;
                                        }
                                    }
                                    else
                                    {
                                        awardsRate = RuntimeData.TempleMirageWinExtraRate;
                                    }
                                }
                            }
                            else
                            {
                                //达不到最低分数,无奖励,不计次
                                nMultiple  = 0;
                                awardsRate = 0;
                            }

                            // 公式
                            long nExp           = (long)(RuntimeData.TempleMirageEXPAward * nMultiple * client.ClientData.ChangeLifeCount);
                            int  chengJiuaward  = (int)(RuntimeData.TempleMirageAwardChengJiu * nMultiple);
                            int  shengWangaward = (int)(RuntimeData.TempleMirageAwardShengWang * nMultiple);

                            if (nExp > 0)
                            {
                                GameManager.ClientMgr.ProcessRoleExperience(client, nExp * awardsRate, false);
                                //GameManager.ClientMgr.NotifyAddExpMsg(client, nExp); //客户端自己提示,有显示"X10"的需求
                            }

                            if (chengJiuaward > 0)
                            {
                                ChengJiuManager.AddChengJiuPoints(client, "幻影寺院获得成就", chengJiuaward * awardsRate, true, true);
                            }

                            if (shengWangaward > 0)
                            {
                                GameManager.ClientMgr.ModifyShengWangValue(client, shengWangaward * awardsRate, "幻影寺院获得声望");
                            }

                            HuanYingSiYuanAwardsData awardsData = new HuanYingSiYuanAwardsData()
                            {
                                SuccessSide   = huanYingSiYuanScene.SuccessSide,
                                Exp           = nExp,
                                ShengWang     = shengWangaward,
                                ChengJiuAward = chengJiuaward,
                                AwardsRate    = awardsRate,
                            };

                            if (success)
                            {
                                if (nMultiple > 0)
                                {
                                    Global.SaveRoleParamsInt32ValueToDB(client, RoleParamName.HysySuccessDayId, nowDayId, true);
                                    Global.SaveRoleParamsInt32ValueToDB(client, RoleParamName.HysySuccessCount, count + 1, true);

                                    GlobalNew.UpdateKuaFuRoleDayLogData(client.ServerId, client.ClientData.RoleID, TimeUtil.NowDateTime(), client.ClientData.ZoneID, 0, 0, 1, 0, (int)GameTypes.HuanYingSiYuan);
                                    if (huanYingSiYuanScene.ScoreInfoData.Score1 >= 1000 || huanYingSiYuanScene.ScoreInfoData.Score2 >= 1000)
                                    {
                                        //FaildCount记录为获得够1000分而获胜的人次
                                        GlobalNew.UpdateKuaFuRoleDayLogData(client.ServerId, client.ClientData.RoleID, TimeUtil.NowDateTime(), client.ClientData.ZoneID, 0, 0, 0, 1, (int)GameTypes.HuanYingSiYuan);
                                    }
                                }
                            }
                            else
                            {
                                //FaildCount记录为失败人次
                                //GlobalNew.UpdateKuaFuRoleDayLogData(client.ServerId, client.ClientData.RoleID, TimeUtil.NowDateTime(), client.ClientData.ZoneID, 0, 0, 0, 1);
                            }

                            client.sendCmd((int)TCPGameServerCmds.CMD_SPR_HYSY_AWARD, awardsData);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                DataHelper.WriteExceptionLogEx(ex, "幻影寺院清场调度异常");
            }
        }
コード例 #25
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();
        }
コード例 #26
0
        public override bool CheckCondition(GameClient client, int extTag)
        {
            AwardItem myAwardItem = null;

            if (this.AwardDict.ContainsKey(extTag))
            {
                myAwardItem = this.AwardDict[extTag];
            }
            bool result;

            if (null == myAwardItem)
            {
                result = false;
            }
            else
            {
                ActivityTypes activityType = (ActivityTypes)this.ActivityType;
                switch (activityType)
                {
                case ActivityTypes.JieriWing:
                    if (client.ClientData.MyWingData == null || client.ClientData.MyWingData.Using == 0)
                    {
                        return(false);
                    }
                    if (client.ClientData.MyWingData.WingID < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    if (client.ClientData.MyWingData.WingID == myAwardItem.MinAwardCondionValue && client.ClientData.MyWingData.ForgeLevel < myAwardItem.MinAwardCondionValue2)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriAddon:
                    if (client.UsingEquipMgr.GetUsingEquipAllAppendPropLeva() < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriStrengthen:
                    if (client.UsingEquipMgr.GetUsingEquipAllForge() < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriAchievement:
                    if (ChengJiuManager.GetChengJiuLevel(client) < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriMilitaryRank:
                    if (GameManager.ClientMgr.GetShengWangLevelValue(client) < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriVIPFanli:
                    if (client.ClientData.VipLevel < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriAmulet:
                {
                    GoodsData hufugoods = client.UsingEquipMgr.GetGoodsDataByCategoriy(client, 22);
                    if (null == hufugoods)
                    {
                        return(false);
                    }
                    SystemXmlItem systemGoods = null;
                    if (!GameManager.SystemGoods.SystemXmlItemDict.TryGetValue(hufugoods.GoodsID, out systemGoods))
                    {
                        return(false);
                    }
                    int nSuitID = systemGoods.GetIntValue("SuitID", -1);
                    if (nSuitID < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;
                }

                case ActivityTypes.JieriArchangel:
                    if (client.UsingEquipMgr.GetUsingEquipArchangelWeaponSuit() < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriLianXuCharge:
                    break;

                case ActivityTypes.JieriMarriage:
                    if (client.ClientData.MyMarriageData == null || -1 == client.ClientData.MyMarriageData.byMarrytype || (int)client.ClientData.MyMarriageData.byGoodwilllevel < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                default:
                    switch (activityType)
                    {
                    case ActivityTypes.JieRiHuiJi:
                    {
                        EmblemStarInfo starInfo = HuiJiManager.getInstance().GetHuiJiStartInfo(client);
                        if (null == starInfo)
                        {
                            return(false);
                        }
                        if (starInfo.EmblemLevel < myAwardItem.MinAwardCondionValue)
                        {
                            return(false);
                        }
                        if (starInfo.EmblemLevel == myAwardItem.MinAwardCondionValue && starInfo.EmblemStar < myAwardItem.MinAwardCondionValue2)
                        {
                            return(false);
                        }
                        goto IL_3A3;
                    }

                    case ActivityTypes.JieRiFuWen:
                        if (ShenShiManager.getInstance().GetCurrentTabTotalLevel(client) < myAwardItem.MinAwardCondionValue)
                        {
                            return(false);
                        }
                        goto IL_3A3;
                    }
                    break;
                }
                return(false);

IL_3A3:
                result = true;
            }
            return(result);
        }
コード例 #27
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();
        }