public void startMianZhanTimer(long startTime, long endTime) { TimerTask task = new TimerTask(startTime, endTime, 1); task.taskId = TaskID.DragonMianZhanTimer; task.onEventEnd += mianZhanTimeCompleted; this.mianZhanTime = endTime - startTime; this.mianZhanTime = this.mianZhanTime <= 0 ? 0 : this.mianZhanTime; if (this.mianZhanTimerEvent != null) { this.mianZhanTimerEvent(this.mianZhanTime); } task.onEvent += (TimerTask t) => { if (task.taskId == TaskID.DragonMianZhanTimer) { this.mianZhanTime = t.leftTime; if (this.mianZhanTimerEvent != null) { this.mianZhanTimerEvent(this.mianZhanTime); } } }; task.DispatchToRealHandler(); }
void StartTimer(ZhaoMuStateData state) { if (m_dicZhaomuData.ContainsKey(state.pron)) { m_dicZhaomuData [state.pron] = state; } else { m_dicZhaomuData.Add(state.pron, state); } if (m_dicTimer.ContainsKey(state.pron)) { Core.TimerEng.deleteTask(m_dicTimer [state.pron]); m_dicTimer.Remove(state.pron); } long curTime = Core.TimerEng.curTime; if (state.coolTime > 0) { TimerTask task = new TimerTask(curTime, curTime + state.coolTime, 1, ThreadType.MainThread); task.onEventEnd = OnTimeEnd; task.onEvent = OnTimer; task.DispatchToRealHandler(); m_dicTimer.Add(state.pron, task._Id); } }
//精力计时完成 protected void JingLiCalEnd(TimerTask task) { if (player.totalJingli > player.RTData.curJingLi) { player.RTData.curJingLi += 1; if (lab_Energy != null) { lab_Energy.SafeText(player.curJingLi.ToString() + "/" + player.totalJingli.ToString()); float res = (float)player.curJingLi / (float)player.totalJingli; if (energySlider != null) { energySlider.value = res; } } } // Debug.LogWarning (" jing li end total jingli = " + player.totalJingli + " cur jingli " + player.RTData.curJingLi); if (player.totalJingli > player.RTData.curJingLi) { long nNow = Core.TimerEng.curTime; TimerTask MonaTask = new TimerTask(nNow, nNow + player.RTData.unixTimeForJingLi, 1, ThreadType.MainThread); MonaTask.taskId = TaskID.CalJingLi; MonaTask.onEventEnd += JingLiCalEnd; MonaTask.onEvent += JingliMinus; MonaTask.DispatchToRealHandler(); } }
/// <summary> /// 开始记录下,第二天凌晨12点的时间。防止有部分用户会在晚上玩游戏之后不关闭游戏,导致服务器状态和客户端状态不一致 /// 与此同时,也记录下当天晚上9点的时间。 /// </summary> public void recordDayChanged(long sysTime) { // //------ 当天结束 ------- // long LeftOfDayEnd = DateHelper.getLeftTimingbeforeDayChanged(sysTime); ConsoleEx.DebugLog("Start to recording Day Changed.. leaving seconds = " + LeftOfDayEnd, ConsoleEx.YELLOW); long now = Core.TimerEng.curTime; TimerTask task = new TimerTask(now, now + LeftOfDayEnd, 1); task.onEventEnd = OnDayChanged; task.DispatchToRealHandler(); // // ------ 当天晚上9点 ------- // long LeftOfNineNight = DateHelper.getNineNight(sysTime); ConsoleEx.DebugLog("Start to recording 21:00.. leaving seconds = " + LeftOfNineNight, ConsoleEx.YELLOW); if (LeftOfNineNight > 0) { TimerTask task2 = new TimerTask(now, now + LeftOfNineNight, 1); task2.onEventEnd = OnNineChanged; task2.DispatchToRealHandler(); } }
/// <summary> /// 延迟让用户可以点击 /// </summary> void delayMakeUserCanClick() { long now = Core.TimerEng.curTime; TimerTask task = new TimerTask(now, now + 2, 1); task.onEventEnd = (t) => { AnimIsOver = true; }; task.DispatchToRealHandler(); }
public void startCallDragonTimer(DragonType dragonType, long startTime, long endTime) { TimerTask task = new TimerTask(startTime, endTime, 1, ThreadType.MainThread); long leftTime = endTime - startTime; leftTime = leftTime <= 0 ? 0 : leftTime; if (leftTime > 0 && leftTime < 5) { leftTime = 10; } if (dragonType == DragonType.EarthDragon) { task.taskId = TaskID.CallEarthDragonTimer; this.callEarthDragonTime = leftTime; if (callDragonTimerEvent != null) { callDragonTimerEvent(DragonType.EarthDragon, this.callEarthDragonTime); } } else if (dragonType == DragonType.NMKXDragon) { task.taskId = TaskID.CallNMKXDragonTimer; this.callNMKXDragonTime = leftTime; if (callDragonTimerEvent != null) { callDragonTimerEvent(DragonType.NMKXDragon, this.callNMKXDragonTime); } } task.onEventEnd = callDragonTimeCompleted; task.onEvent = (TimerTask t) => { if (task.taskId == TaskID.CallEarthDragonTimer) { this.callEarthDragonTime = t.leftTime; if (callDragonTimerEvent != null) { callDragonTimerEvent(DragonType.EarthDragon, this.callEarthDragonTime); } } else if (task.taskId == TaskID.CallNMKXDragonTimer) { this.callNMKXDragonTime = t.leftTime; if (callDragonTimerEvent != null) { callDragonTimerEvent(DragonType.NMKXDragon, this.callNMKXDragonTime); } } }; task.DispatchToRealHandler(); }
public void setHourChanged() { ActivityLimitTimeRequest(); // sendSer(null); // long curSysTime = Core.TimerEng.curTime; TimerTask tt = new TimerTask(curSysTime, curSysTime + 86400, 300, ThreadType.BackGround); tt.onEvent = sendSer; tt.DispatchToRealHandler(); }
/// <summary> /// 计时器 /// </summary> /// <param name="sTime">开始时间.</param> /// <param name="endTime">截止时间.</param> /// <param name="interval">时间间隔 = 1 秒.</param> void TimerCounting(long sTime, long DeadTime, int interval) { TimerTask task = new TimerTask(Core.TimerEng.curTime, DeadTime, interval); task.onEventBegin += eventBegin; task.onEventEnd += eventEnd; task.onEvent += (TimerTask t) => { timeLeft = t.leftTime; }; task.DispatchToRealHandler(); }
/// <summary> /// 不停的测试网络发送 /// </summary> void loopTest() { long now = Core.TimerEng.curTime; TimerTask timer = new TimerTask(now + 5, TimerTask.INFINITY, 1); timer.onEvent = ((obj) => { for (int i = 0; i < 1; ++i) { Server.proxyCli.CtorEnv(warInfo.Map); } }); timer.DispatchToRealHandler(); }
/*技能副本计时*/ public void CreateTimerSkill(long startTime, long endTime, int interval) { long now = Core.TimerEng.curTime; //时间已到 if (startTime >= endTime || now >= endTime) { if (SkillFBCoding != null) { isSkillFBCoding = false; SkillFBCoding(0); } return; } TimerTask task = new TimerTask(now, endTime, interval, ThreadType.MainThread); isSkillFBCoding = true; task.onEvent = (TimerTask t) => { Core.Data.temper.SkillDJS = t.leftTime; if (!isApplicationPause) { AsyncTask.QueueOnMainThread(() => { if (SkillFBCoding != null) { SkillFBCoding(t.leftTime); } }); } }; task.onEventEnd = (TimerTask t) => { Core.Data.temper.SkillDJS = 0; if (!isApplicationPause) { AsyncTask.QueueOnMainThread(() => { isSkillFBCoding = false; if (SkillFBCoding != null) { SkillFBCoding(0); } }); } }; task.DispatchToRealHandler(); }
void SetTimer(long _start, long _end) { if (m_TimeLab == null) { return; } m_Lefttime = _end - Core.TimerEng.curTime; TimerTask task = new TimerTask(Core.TimerEng.curTime, _end, 1); task.taskId = TaskID.ActivityLimitTime; task.onEvent = TimerEvent; task.DispatchToRealHandler(); InvokeRepeating("SetTimerText", 0f, 1f); }
void HttpComingBack(BaseHttpRequest request, BaseResponse response) { if (response != null && response.status != BaseResponse.ERROR) { MovableNoticeResponse movResp = response as MovableNoticeResponse; if (movResp != null && movResp.data != null) { cached.Clear(); maxValidate = 0; foreach (NoticeDataConfig config in movResp.data) { if (config != null) { cached.Add(config); maxValidate++; } } if (maxValidate > 0) { //存储到本地 saveTofile(); } else { //从本地读取 loadFromConfig(); } if (onFinished != null) { onFinished(); } } else { ConsoleEx.DebugLog("Get Movable notice : " + Core.Data.stringManager.getString(response.errorCode)); } //开始计时,5分钟后继续更新 Core.Data.temper.setNoticeReady(true); long curSysTime = Core.TimerEng.curTime; TimerTask getNoticeTask = new TimerTask(curSysTime, curSysTime + FIVE_MINITE, 1, ThreadType.BackGround); getNoticeTask.onEventEnd = Core.Data.temper.onNetworkCallBack; getNoticeTask.DispatchToRealHandler(); } }
public void recordDayChanged(long sysTime) { //long LeftOfDayEnd = DateHelper.getLeftTimingAtDayChanged(sysTime); long now = Core.TimerEng.curTime; TimerTask task = new TimerTask(now + 1, now + 10, 1, ThreadType.MainThread); //Debug.LogError("now="+now.ToString() + " "+(now + LeftOfDayEnd).ToString() ); //System.Action<TimerTask > OnChange = OnDayChanged ; task.onEventBegin += OnDayChangedA; task.onEvent = OnDayChanged; task.onEventEnd = OnDayChangedB; task.DispatchToRealHandler(); }
public MonitorClient() : base() { CharactorPool = new WarServerCharactor(); sync = new IpcSyncClientMsg(); validateSyncClient = false; stopwatch = Stopwatch.StartNew(); /// /// 因为NetMq的缘故,所有的对Dictionary,只有NetMq线程写入, Timer线程只负责读 /// readerWriterLock = new ReaderWriterLockSlim(); task = new TimerTask(TimerTask.RIGHTNOW, TimerTask.INFINITY, 1); task.onEvent = checkClientStatus; task.DispatchToRealHandler(); }
//第一次 执行 protected void CalTimer() { if (player.RTData.isFirstData) { player.RTData.isFirstData = false; Core.TimerEng.deleteTask(TaskID.CalJingLi); long passedTime = Core.TimerEng.curTime - player.RTData.systemTime; long calTime = 0; long now = Core.TimerEng.curTime; //精力 calTime = 0; if (passedTime < player.RTData.unixTimeForJingLiFull) { calTime = player.RTData.unixTimeForJingLiFull - passedTime; } else if (passedTime == player.RTData.unixTimeForJingLiFull) { calTime = player.RTData.unixTimeForJingLi; } else { //体力已经增加一点了。 calTime = player.RTData.unixTimeForJingLi - (passedTime - player.RTData.unixTimeForJingLiFull); if (player.totalJingli > player.curJingLi) { player.RTData.curJingLi += (int)((passedTime - player.RTData.unixTimeForJingLiFull) / player.RTData.unixTimeForJingLi + 1); } } if (player.totalJingli > player.curJingLi) { // ConsoleEx.DebugLog ("calTime = " + calTime,"yellow"); TimerTask MonaTask = new TimerTask(now, now + calTime, 1, ThreadType.MainThread); MonaTask.taskId = TaskID.CalJingLi; MonaTask.onEventEnd += JingLiCalEnd; MonaTask.onEvent = JingliMinus; MonaTask.DispatchToRealHandler(); } } }
void testTimer1() { //-------- // Core.TimerEng.OnLogin(1007); TimerTask task = new TimerTask(DateHelper.LocalDateTimeToUnixTimeStamp(System.DateTime.UtcNow) + 7, DateHelper.LocalDateTimeToUnixTimeStamp(System.DateTime.UtcNow) + 11, 1); //All this methods is running in the background task.onEventBegin += eventBegin; task.onEventEnd += eventEnd; // equals to task.onEvent += frequent; task.onEvent += (TimerTask t) => { Debug.Log("Timer Engine : = on event frequent. => " + t.leftTime + " 22"); }; task.DispatchToRealHandler(); }
protected void AutoChecker() { if (player == null) { Debug.LogError("AutoChecker() player==null add by jc"); return; } if (mCurJingLi != player.curJingLi) { if (lab_Energy != null) { lab_Energy.SafeText(player.curJingLi.ToString() + "/" + player.totalJingli.ToString()); } mCurJingLi = player.curJingLi; } //精力满的情况下 if (player.curJingLi >= player.totalJingli) { Core.TimerEng.deleteTask(TaskID.CalJingLi); } else { // Debug.Log (" checkkkkkkkk == " + Core.TimerEng.checkExist (TaskID.CalJingLi)+ " == energy -=== " + energyTime.Seconds); if (!Core.TimerEng.checkExist(TaskID.CalJingLi)) { long nNow = Core.TimerEng.curTime; Core.TimerEng.deleteTask(TaskID.CalJingLi); ConsoleEx.DebugLog("player.RTData.unixTimeForJingLi = " + player.RTData.unixTimeForJingLi); TimerTask MonaTask = new TimerTask(nNow, nNow + player.RTData.unixTimeForJingLi, 1, ThreadType.MainThread); MonaTask.taskId = TaskID.CalJingLi; MonaTask.onEventEnd += this.JingLiCalEnd; MonaTask.onEvent += this.JingliMinus; MonaTask.DispatchToRealHandler(); } } }
void testTimer() { //We must tell Timer the system unix time stamp, so right now we simulate it for test purpose. Core.TimerEng.OnLogin(DateHelper.LocalDateTimeToUnixTimeStamp(System.DateTime.UtcNow)); //-------- TimerTask task = new TimerTask(DateHelper.LocalDateTimeToUnixTimeStamp(System.DateTime.UtcNow), DateHelper.LocalDateTimeToUnixTimeStamp(System.DateTime.UtcNow) + 10, 1); //All this methods is running in the background task.onEventBegin += eventBegin; task.onEventEnd += eventEnd; // equals to task.onEvent += frequent; task.onEvent += (TimerTask t) => { Debug.Log("Timer Engine : = on event frequent. => " + t.leftTime + " 111"); }; task.DispatchToRealHandler(); testTimer1(); }
/// <summary> /// ResponseSocket准备好了 /// </summary> void ServerRepOk() { int condition = warInfo.RequiredClientCount; ServerInfo info = Server.cached.curServer; long now = Core.TimerEng.curTime; TimerTask timer = new TimerTask(now + 2, TimerTask.INFINITY, 1); timer.onEvent = ((obj) => { if (Server.monitor.ReadyClientCount >= condition) { obj.Enabled = false; Server.monitor.CharactorPool.EnterWarScene(); Server.proxyCli.EnterWar(info, warInfo.Map); } else { Server.proxyCli.ServerReady(info); } }); timer.DispatchToRealHandler(); }
/// <summary> /// 测试连接-断线-连接-断线- /// </summary> void ReconnectTest() { long now = Core.TimerEng.curTime; TimerTask timer = new TimerTask(now + 2, now + 10, 1); ServerInfo info = Server.cached.curServer; timer.onEvent = ((obj) => { Server.proxyCli.CtorEnv(warInfo.Map); Server.proxyCli.ServerReady(info); }); timer.onEventEnd = ( (obj) => { try { if (Server != null) { Server.Dispose(); } if (Client != null) { Client.Quit(); } } catch (System.Exception ex) { ConsoleEx.DebugLog(ex.ToString()); } AsyncTask.QueueOnMainThread( () => { Invoke("WarBegin", 1f); } ); } ); timer.DispatchToRealHandler(); }
private void startTimer() { /// /// --- 如果是自动战斗,则不让时间流逝的变慢 ---- /// AccountConfigManager accMgr = Core.Data.AccountMgr; bool makeTimeQucik = accMgr.UserConfig.AutoBat == (short)1; if (makeTimeQucik == false) { TimeMgr.getInstance().setExtLine(BanTimeCenter.Scale_Down_Slow); } long now = Core.TimerEng.curTime; long end = now + 8; TimerTask task = new TimerTask(now, end, 1, ThreadType.MainThread); if (makeTimeQucik == false) { task.onEvent = QueueNormal; } task.onEventEnd = QueueEnd; task.DispatchToRealHandler(); }
protected override void OnEvent(EventTypeDefine p_e, object p_param) { ConsoleEx.DebugLog("EventType = " + p_e.ToString(), ConsoleEx.YELLOW); BanBattleManager battleMgr = BanBattleManager.Instance; BanSideInfo attside = battleMgr != null ? battleMgr.attackSideInfo : null; GuideManager guideMgr = Core.Data.guideManger; #if NewGuide NewUIGuide guideUI = NewUIGuide.Instance; #else UIGuide guideUI = UIGuide.Instance; #endif TemporyData temp = Core.Data.temper; switch (p_e) { //打开第一个宝箱 case EventTypeDefine.OpenTreasureChest: if (Open != null) { GuideData data = p_param as GuideData; if (data != null) { Open(data.MultiIndex); Core.Data.guideManger.DelayAutoRun(1.5f); } } break; //退出战斗 case EventTypeDefine.ExitFightingScene: if (Exit != null) { AsyncTask.QueueOnMainThread( () => { Exit(); #region Add by jc 如果没有升级并且已经是最后一步引导了 if (Core.Data.playerManager.Lv <= temp.mPreLevel && temp.mPreLevel > 0 && !guideMgr.isLastOfCurGuide) { guideUI.HideGuide(); Core.Data.guideManger.DelayAutoRun(2.5f); } #endregion } , 0.5f ); } break; case EventTypeDefine.Click_XiaoWuKongVBiKe: //显示双方队伍 case EventTypeDefine.Click_WuKong2_Anger: //孙悟空2继承小悟空20怒气 case EventTypeDefine.Click_BILUSI_V_WuKong3: //比鲁斯 case EventTypeDefine.Click_WuKong3_NO_ANGER: //没有怒气值不能释放主动技能 case EventTypeDefine.Click_WuKong3_Vs_BiLu: //孙悟空3对决比鲁斯 guideUI.HideGuide(); Time.timeScale = 1.0f; break; #region 怒气技的起始阶段 case EventTypeDefine.Click_XiaoWuKong_OS_4: { Time.timeScale = 1.0f; SkillData sd = Core.Data.skillManager.getSkillDataConfig(25037); attside.PlayerAngryWord.FeatureWarShow(1, sd.name, () => { Time.timeScale = 0f; }); } break; case EventTypeDefine.Click_WuKong2_OS_4: { Time.timeScale = 1.0f; SkillData sd = Core.Data.skillManager.getSkillDataConfig(25008); attside.PlayerAngryWord.FeatureWarShow(1, sd.name, () => { Time.timeScale = 0f; }); } break; case EventTypeDefine.Click_WuKong3_OS_4: { Time.timeScale = 1.0f; SkillData sd = Core.Data.skillManager.getSkillDataConfig(25058); attside.PlayerAngryWord.FeatureWarShow(1, sd.name, () => { Time.timeScale = 0f; }); } break; #endregion case EventTypeDefine.Click_XiaoWuKong_OS_4_2: Time.timeScale = 1.0f; attside.PlayerAngryWord.FeatureWarShow(2, string.Empty, () => { Time.timeScale = 0f; }); break; case EventTypeDefine.Click_XiaoWuKong_OS_4_3: Time.timeScale = 1.0f; attside.PlayerAngryWord.FeatureWarShow(3, string.Empty, () => { Time.timeScale = 0f; }); break; case EventTypeDefine.Click_XiaoWuKong_OS_4_4: Time.timeScale = 1.0f; guideUI.HideGuide(); AsyncTask.RemoveAllDelayedWork(); attside.PlayerAngryWord.FeatureWarShow(4, string.Empty, () => { battleMgr.AngryUI(false, null, -1); }); long now = Core.TimerEng.curTime; TimerTask task = new TimerTask(now, now + 2, 1, ThreadType.MainThread); task.onEventEnd = (t) => { Time.timeScale = 1.0f; AsyncTask.RemoveAllDelayedWork(); battleMgr.AngryUI(false, null, -1); }; task.DispatchToRealHandler(); break; case EventTypeDefine.Click_XiaoWuKong_Lv1: { Time.timeScale = 1.0f; guideUI.HideGuide(); AsyncTask.RemoveAllDelayedWork(); attside.PlayerAngryWord.FeatureWarShow(1, string.Empty, () => { battleMgr.AngryUI(false, null, -1); }); attside.angrySlot.curAP = 0; battleMgr.Root.Camera1.eventReceiverMask = LayerMask.NameToLayer("Everything"); } break; //调用武者强化 case EventTypeDefine.Click_JumpToStrengthening: if (Exit != null) { UIGuide.Instance.HideGuide(); Core.Data.guideManger.DelayAutoRun(2f); // --- 武者强化 --- FinalTrialMgr.GetInstance().jumpTo = TrialEnum.None; BattleToUIInfo.From = RUIType.EMViewState.S_Team_NoSelect; Exit(); } break; } }