public static void HeartBeatEMoLaiXiCopyScene() { long nowTicks = TimeUtil.NOW(); if (nowTicks - EMoLaiXiCopySceneManager.LastHeartBeatTicks >= 1000L) { EMoLaiXiCopySceneManager.LastHeartBeatTicks = ((EMoLaiXiCopySceneManager.LastHeartBeatTicks < 86400000L) ? nowTicks : (EMoLaiXiCopySceneManager.LastHeartBeatTicks + 1000L)); lock (EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneLists) { foreach (CopyMap item in EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneLists.Values) { EMoLaiXiCopySence scene = null; lock (EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneInfo) { if (!EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneInfo.TryGetValue(item.FuBenSeqID, out scene)) { continue; } } if (scene != null) { List <GameClient> clientsList = item.GetClientsList(); lock (scene) { if (scene.m_TimeNotifyFlag == 0) { if (nowTicks <= scene.m_StartTimer + (long)EMoLaiXiCopySceneManager.m_PrepareTime - 3000L) { continue; } scene.m_TimeNotifyFlag = 1; string msgCmd = string.Format("{0}:{1}${2}${3}", new object[] { 2, 3, 1, "" }); GameManager.ClientMgr.BroadSpecialCopyMapMessage(419, msgCmd, clientsList, true); } if (nowTicks >= scene.m_StartTimer + (long)EMoLaiXiCopySceneManager.m_PrepareTime) { if (scene.m_Delay2 > 0L) { EMoLaiXiCopySceneManager.OnSceneTimer(scene, clientsList, item, nowTicks); } else { EMoLaiXiCopySceneManager.InitNextWaveMonsterList(scene); } } } } } } } }
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(); }
public static void MonsterMoveStepEMoLaiXiCopySenceCopyMap(Monster monster) { long ticks = TimeUtil.NOW(); if (ticks - monster.MoveTime >= 500L) { int nStep = monster.Step; int nNumStep = monster.PatrolPath.Count <int[]>() - 1; int nNextStep = nStep + 1; if (nNextStep >= nNumStep) { EMoLaiXiCopySceneManager.IncreaceEscapeCount(monster.CopyMapID); GameManager.MonsterMgr.DeadMonsterImmediately(monster); } else { int nMapCode = monster.CurrentMapCode; MapGrid mapGrid = GameManager.MapGridMgr.DictGrids[nMapCode]; int nNextX = monster.PatrolPath[nNextStep][0]; int nNextY = monster.PatrolPath[nNextStep][1]; int gridX = nNextX / mapGrid.MapGridWidth; int gridY = nNextY / mapGrid.MapGridHeight; Point ToGrid = new Point((double)gridX, (double)gridY); Point grid = monster.CurrentGrid; int nCurrX = (int)grid.X; int nCurrY = (int)grid.Y; double Direction = Global.GetDirectionByAspect(gridX, gridY, nCurrX, nCurrY); if (ChuanQiUtils.WalkTo(monster, (Dircetions)Direction) || ChuanQiUtils.WalkTo(monster, (Dircetions)((Direction + 7.0) % 8.0)) || ChuanQiUtils.WalkTo(monster, (Dircetions)((Direction + 9.0) % 8.0)) || ChuanQiUtils.WalkTo(monster, (Dircetions)((Direction + 6.0) % 8.0)) || ChuanQiUtils.WalkTo(monster, (Dircetions)((Direction + 10.0) % 8.0)) || ChuanQiUtils.WalkTo(monster, (Dircetions)((Direction + 5.0) % 8.0)) || ChuanQiUtils.WalkTo(monster, (Dircetions)((Direction + 11.0) % 8.0))) { monster.MoveTime = ticks; } if (Global.GetTwoPointDistance(ToGrid, grid) < 2.0) { monster.Step = nStep + 1; } } } }
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 static void OnSceneTimer(EMoLaiXiCopySence scene, List <GameClient> clientList, CopyMap copyMap, long nowTicks) { int nWave = scene.m_CreateMonsterWave; int nCount = EMoLaiXiCopySceneManager.EMoLaiXiCopySencedata.TotalWave; bool notifyWaveAndNum = false; bool notifyEnd = false; int escapeCount = EMoLaiXiCopySceneManager.GetEscapeCount(scene.m_CopyMapID); if (escapeCount > 0) { scene.m_EscapedMonsterNum += escapeCount; notifyWaveAndNum = true; } if (scene.m_LoginEnterFlag == 1) { if (nowTicks - scene.m_LoginEnterTimer > (long)EMoLaiXiCopySceneManager.m_DelayTime) { scene.m_LoginEnterFlag = 0; notifyWaveAndNum = true; } } if (scene.m_EscapedMonsterNum >= EMoLaiXiCopySceneManager.EMoLaiXiCopySencedata.FaildEscapeMonsterNum) { if (!scene.m_bFinished) { GameManager.CopyMapMgr.CopyMapFaildForAll(clientList, copyMap); scene.m_bFinished = true; } GameManager.CopyMapMgr.KillAllMonster(copyMap); notifyWaveAndNum = true; } else if (scene.m_bAllMonsterCreated) { if (!scene.m_bFinished) { if (copyMap.KilledDynamicMonsterNum + scene.m_EscapedMonsterNum >= scene.m_TotalMonsterCountAllWave) { if (clientList != null && clientList.Count > 0) { notifyWaveAndNum = true; GameManager.CopyMapMgr.CopyMapPassAwardForAll(clientList[0], copyMap, true); scene.m_bFinished = true; if (copyMap.KilledDynamicMonsterNum > copyMap.TotalDynamicMonsterNum) { try { string log = string.Format("恶魔来袭已成功,但杀怪计数异常,结束时间{0},KilledDynamicMonsterNum:{1},m_EscapedMonsterNum:{2},m_TotalMonsterCountAllWave:{3}", new object[] { new DateTime(nowTicks * 10000L), copyMap.KilledDynamicMonsterNum, scene.m_EscapedMonsterNum, scene.m_TotalMonsterCountAllWave }); LogManager.WriteLog(LogTypes.Error, log, null, true); } catch { } } } } } } else if (nowTicks - scene.m_CreateMonsterTick2 > scene.m_Delay2 * 1000L) { if (scene.m_CreateMonsterWaveNotify == 0) { scene.m_CreateMonsterWaveNotify = 1; notifyWaveAndNum = true; } for (int i = 0; i < scene.m_CreateWaveMonsterList.Count; i++) { EMoLaiXiCopySenceMonster tmpInfo = scene.m_CreateWaveMonsterList[i]; if (tmpInfo.m_CreateMonsterCount < tmpInfo.m_Num) { if (nowTicks - tmpInfo.m_CreateMonsterTick1 > (long)(tmpInfo.m_Delay1 * 1000)) { int nIndex = tmpInfo.m_CreateMonsterCount; int[] pos = tmpInfo.PatrolPath[0]; GameManager.MonsterZoneMgr.AddDynamicMonsters(scene.m_MapCodeID, tmpInfo.m_MonsterID[nIndex], scene.m_CopyMapID, 1, pos[0], pos[1], 0, 0, SceneUIClasses.EMoLaiXiCopy, tmpInfo.PatrolPath, null); tmpInfo.m_CreateMonsterCount++; scene.m_CreateMonsterCount++; tmpInfo.m_CreateMonsterTick1 = nowTicks; } } } if (scene.m_CreateMonsterCount >= scene.m_TotalMonsterCount) { scene.m_CreateMonsterTick2 = nowTicks; scene.m_CreateMonsterWave++; scene.m_CreateMonsterCount = 0; scene.m_CreateMonsterWaveNotify = 0; scene.m_Delay2 = 0L; notifyWaveAndNum = true; copyMap.TotalDynamicMonsterNum = scene.m_TotalMonsterCountAllWave; if (scene.m_CreateMonsterWave >= EMoLaiXiCopySceneManager.EMoLaiXiCopySencedata.TotalWave) { scene.m_Delay2 = 2147483647L; scene.m_bAllMonsterCreated = true; notifyEnd = true; } } } if (notifyWaveAndNum) { EMoLaiXiCopySceneManager.SendMsgToClientForEMoLaiXiCopySceneMonsterWave(clientList, scene.m_EscapedMonsterNum, scene.m_CreateMonsterWave, EMoLaiXiCopySceneManager.EMoLaiXiCopySencedata.TotalWave, EMoLaiXiCopySceneManager.EMoLaiXiCopySencedata.FaildEscapeMonsterNum); } if (notifyEnd && null != clientList) { foreach (GameClient client in clientList) { GameManager.ClientMgr.NotifyImportantMsg(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, StringUtil.substitute(GLang.GetLang(108, new object[0]), new object[0]), GameInfoTypeIndexes.Error, ShowGameInfoTypes.ErrAndBox, 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(); }