public static void SetWorkId(ScheduleTaskCtrl __instance , ScheduleMgr.ScheduleTime workTime , int taskId , ScheduleCtrl ___m_scheduleCtrl ) { if (workTime == ScheduleMgr.ScheduleTime.DayTime) { MyLog.LogMessage( "ScheduleTaskCtrl.SetWorkId" , workTime , taskId , ___m_scheduleCtrl.SelectedMaid.status.noonWorkId ); } else if (workTime == ScheduleMgr.ScheduleTime.Night) { MyLog.LogMessage( "ScheduleTaskCtrl.SetWorkId" , workTime , taskId , ___m_scheduleCtrl.SelectedMaid.status.nightWorkId ); } }
public static void ScheduleCtrlPatchC( ScheduleCtrl __instance , ref Dictionary <string, ScheduleCtrl.MaidStatusAndTaskUnit> ___m_dicMaidStatusAndTask , ref string ___m_deleteSlotNo , ref ScheduleMgr ___m_scheduleMgr , ref ScheduleScene ___m_scheduleApi , ref CharacterSelectManager ___m_charSelMgr , ref ScheduleCtrl.ExclusiveViewer ___m_currentActiveViewer ) { MyLog.LogMessage( "ScheduleCtrlPatchC" ); instance = __instance; hGetMaidName = AccessTools.Method(typeof(ScheduleCtrl), "GetMaidName"); // 이건 잘됨 //hGetMaidBySlotNo = AccessTools.Method(typeof(ScheduleCtrl), "GetMaidBySlotNo"); // 이건 잘됨 //hSetViewerActive = AccessTools.Method(typeof(ScheduleCtrl), "SetViewerActive"); // 이건 잘됨 //hSetSelectedRowActive = AccessTools.Method(typeof(ScheduleCtrl), "SetSelectedRowActive"); // 이건 잘됨 m_dicMaidStatusAndTask = ___m_dicMaidStatusAndTask; m_deleteSlotNo = ___m_deleteSlotNo; m_scheduleMgr = ___m_scheduleMgr; m_scheduleApi = ___m_scheduleApi; m_charSelMgr = ___m_charSelMgr; m_currentActiveViewer = ___m_currentActiveViewer; }
private static void ClickTask( ScheduleMgr __instance , ScheduleCtrl ___m_Ctrl ) // string __m_BGMName 못가져옴 { MyLog.LogMessage("ClickTask" , UIButton.current.name , MyUtill.GetMaidFullName(___m_Ctrl.SelectedMaid) ); }
/// <summary> /// 初始化调度context /// </summary> public bool Init(JobMeta?config = null) { var properties = new NameValueCollection { ["quartz.jobStore.misfireThreshold"] = (10 * 1000).ToString(), //修改misfire的时间为10秒 }; ScheduleModConfig.Instance.DefaultScheduler = new StdSchedulerFactory(properties).GetScheduler().GetAwaiter().GetResult(); ScheduleModConfig.Instance.DefaultScheduler.Start(); if (config != null) //在当天的用户指定时间运行一次指定的任务 { //TODO 暂不支持 OnceJob var sc = new ScheduleCtrl(); sc.StartJob(config.JobName, config.StartTime, config.RunParams, config.AutoClose); return(true); } else { //加载配置文件,并且运行状态为open的任务 var allJobs = Ioc.GetServices <IJobCtrl>().ToList(); ScheduleModConfig.Instance.Jobs = new List <JobMeta>(allJobs.Count()); var sc = new ScheduleCtrl(); var cacheJobs = sc.GetBGJobInfo(); foreach (var job in allJobs) { var jobParam = job.ReadJobParam(); jobParam = cacheJobs.FirstOrDefault(x => x.JobName.Equals(jobParam.JobName)) == null ? jobParam : cacheJobs.FirstOrDefault(x => x.JobName.Equals(jobParam.JobName)); ScheduleModConfig.Instance.Jobs.Add(jobParam); if (jobParam.State.Equals(JobStateEnum.Open) || jobParam.State.Equals(JobStateEnum.Pause)) { job.StartJob(jobParam); } } } return(true); }