public void ThreadProc(object state) { do { Thread.Sleep(1000); }while (!this.Persistence.Initialized); for (;;) { try { DateTime now = TimeUtil.NowDateTime(); Global.UpdateNowTime(now); if (now > this.CheckRoleTimerProcTime) { this.CheckRoleTimerProcTime = now.AddSeconds(1.428); int signUpCnt; int startCnt; this.CheckRoleTimerProc(now, out signUpCnt, out startCnt); ClientAgentManager.Instance().SetGameTypeLoad(this.GameType, signUpCnt, startCnt); } if (now > this.SaveServerStateProcTime) { this.SaveServerStateProcTime = now.AddSeconds(30.0); if (now.Hour >= 3 && now.Hour < 4) { this.ClearRolePairFightCount(); this.Persistence.UpdateTianTiRankData(now, false, false); } } if (now > this.CheckGameFuBenTime) { this.CheckGameFuBenTime = now.AddSeconds(1000.0); this.CheckGameFuBenTimerProc(now); } AsyncDataItem[] asyncEvArray = ZhengBaManagerK.Instance().Update(); ClientAgentManager.Instance().BroadCastAsyncEvent(this.GameType, asyncEvArray); this.Persistence.WriteRoleInfoDataProc(); CoupleArenaService.getInstance().Update(); CoupleWishService.getInstance().Update(); zhengDuoService.Instance().Update(now); BangHuiMatchService.Instance().Update(now); CompService.Instance().Update(now); TianTi5v5Service.ThreadProc(null); Zork5v5Service.Instance().Update(now); int sleepMS = (int)(TimeUtil.NowDateTime() - now).TotalMilliseconds; this.Persistence.SaveCostTime(sleepMS); sleepMS = 1000 - sleepMS; if (sleepMS < 50) { sleepMS = 50; } Thread.Sleep(sleepMS); } catch (Exception ex) { LogManager.WriteExceptionUseCache(ex.ToString()); } } }
public static void OnStopServer() { try { CoupleArenaService.getInstance().OnStopServer(); CoupleWishService.getInstance().OnStopServer(); } catch (Exception ex) { LogManager.WriteException(ex.Message); } }
public CoupleArenaPkResultRsp CoupleArenaPkResult(CoupleArenaPkResultReq req) { return(CoupleArenaService.getInstance().CoupleArenaPkResult(req)); }
public CoupleArenaFuBenData GetCoupleFuBenData(long gameId) { return(CoupleArenaService.getInstance().GetCoupleFuBenData(gameId)); }
public int CoupleArenaPreDivorce(int roleId1, int roleId2) { return(CoupleArenaService.getInstance().CoupleArenaPreDivorce(roleId1, roleId2)); }
public CoupleArenaSyncData CoupleArenaSync(DateTime lastSyncTime) { return(CoupleArenaService.getInstance().CoupleArenaSync(lastSyncTime)); }
public int CoupleArenaQuit(int roleId1, int roleId2) { return(CoupleArenaService.getInstance().CoupleArenaQuit(roleId1, roleId2)); }
public int CoupleArenaJoin(int roleId1, int roleId2, int serverId) { return(CoupleArenaService.getInstance().CoupleArenaJoin(roleId1, roleId2, serverId)); }
public void ThreadProc(object state) { Persistence.InitConfig(); ZhengBaManagerK.Instance().InitConfig(); DateTime lastRunTime = TimeUtil.NowDateTime(); Persistence.LoadTianTiRankData(lastRunTime); ZhengBaManagerK.Instance().ReloadSyncData(lastRunTime); CoupleArenaService.getInstance().StartUp(); CoupleWishService.getInstance().StartUp(); do { try { DateTime now = TimeUtil.NowDateTime(); Global.UpdateNowTime(now); //处理游戏逻辑 if (now > CheckRoleTimerProcTime) { CheckRoleTimerProcTime = now.AddSeconds(CheckRoleTimerProcInterval); int signUpCnt, startCnt; CheckRoleTimerProc(now, out signUpCnt, out startCnt); ClientAgentManager.Instance().SetGameTypeLoad(GameType, signUpCnt, startCnt); } if (now > SaveServerStateProcTime) { SaveServerStateProcTime = now.AddSeconds(SaveServerStateProcInterval); if (now.Hour >= 3 && now.Hour < 4) { ClearRolePairFightCount(); Persistence.UpdateTianTiRankData(now); } } if (now > CheckGameFuBenTime) { CheckGameFuBenTime = now.AddSeconds(CheckGameFuBenInterval); CheckGameFuBenTimerProc(now); } AsyncDataItem[] asyncEvArray = ZhengBaManagerK.Instance().Update(); ClientAgentManager.Instance().BroadCastAsyncEvent(GameType, asyncEvArray); Persistence.WriteRoleInfoDataProc(); CoupleArenaService.getInstance().Update(); CoupleWishService.getInstance().Update(); int sleepMS = (int)((TimeUtil.NowDateTime() - now).TotalMilliseconds); Persistence.SaveCostTime(sleepMS); sleepMS = 1000 - sleepMS; //最大睡眠1000ms,最少睡眠50ms if (sleepMS < 50) { sleepMS = 50; } Thread.Sleep(sleepMS); } catch (System.Exception ex) { LogManager.WriteExceptionUseCache(ex.ToString()); } } while (true); }