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
             );
     }
 }
예제 #2
0
        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)
                      );
 }
예제 #4
0
        /// <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);
        }