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(); } }
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"); } }
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); }
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); }
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); }
/// <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); } }
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); }
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); }
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); } }
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); }
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); }
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 { } }
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); }
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(); }
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); }
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); }
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); }
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); }
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(); }