Open lostduel opened 12 months ago
我想在每天4点小怪刷新之后自动锄地,这样醒来之后可以直接完成每日任务的一些项。 凌晨自动锄地的时候可能会因为小月卡的领取界面卡住不动。
1.选择地图后增加一个选项,询问是否要定时启动,输入-1直接开始,输入时间则到点再开始。 2.在大地图上时如果跳出了小月卡的领取界面则自动点击跳过。
1.选择完功能或地图后,询问用户是否要定时启动,并让用户输入时间,用户输入-1或类似于1234的时间,前者直接开始功能,后者等到12点34分时自动启动
1.
def run_at_time(num):
import datetime # 定义一个函数,将4位数转换为datetime对象 def convert_to_datetime(num): # 检查输入是否是4位数 if len(str(num)) != 4: print("请输入一个4位数") return None # 提取小时和分钟 hour = int(str(num)[:2]) minute = int(str(num)[2:]) # 检查小时和分钟是否有效 if hour < 0 or hour > 23 or minute < 0 or minute > 59: print("请输入一个有效的时间") return None # 获取当前日期 today = datetime.date.today() # 创建一个datetime对象 dt = datetime.datetime(today.year, today.month, today.day, hour, minute) return dt # 调用函数,将用户输入转换为datetime对象 user_time = convert_to_datetime(num) # 如果转换成功,继续执行 if user_time is not None: # 获取当前时间 current_time = datetime.datetime.now() # 计算时间差 delta = user_time - current_time # 如果时间差为正,每秒刷新剩余时间 if delta.total_seconds() > 0: # 导入time模块 import time # 循环直到时间差为0 while delta.total_seconds() > 0: # 打印剩余时间 print(f"剩余{delta.total_seconds()}秒 ",end="\r",flush=True) # 等待一秒 time.sleep(1) # 更新当前时间和时间差 current_time = datetime.datetime.now() delta = user_time - current_time # 如果时间差为负,判断是否是第二天的时间 else: # 如果用户输入的时间比当前时间的小时数小,说明是第二天的时间 if user_time.hour < current_time.hour: # 将用户时间加上一天 user_time = user_time + datetime.timedelta(days=1) # 重新计算时间差 delta = user_time - current_time # 每秒刷新剩余时间 import time while delta.total_seconds() > 0: print(f"剩余{delta.total_seconds()}秒 ",end="\r",flush=True) time.sleep(1) current_time = datetime.datetime.now() delta = user_time - current_time # 如果用户输入的时间不是第二天的时间,提示用户输入的时间已过 else: print("你输入的时间已过") # 运行接下来的代码 print("运行接下来的代码")
原因
我想在每天4点小怪刷新之后自动锄地,这样醒来之后可以直接完成每日任务的一些项。 凌晨自动锄地的时候可能会因为小月卡的领取界面卡住不动。
功能简述
1.选择地图后增加一个选项,询问是否要定时启动,输入-1直接开始,输入时间则到点再开始。 2.在大地图上时如果跳出了小月卡的领取界面则自动点击跳过。
功能逻辑
1.选择完功能或地图后,询问用户是否要定时启动,并让用户输入时间,用户输入-1或类似于1234的时间,前者直接开始功能,后者等到12点34分时自动启动
实现参考
1.
定义一个函数,接受一个4位数作为参数,然后执行之前的逻辑
def run_at_time(num):
导入datetime模块