更新为4点刷新机制 (#3137)

* 更新为4点刷新机制
This commit is contained in:
古又
2026-04-18 07:51:46 +08:00
committed by GitHub
parent 7dbf8dd8fe
commit cff25d4fb3
4 changed files with 47 additions and 33 deletions

View File

@@ -29,9 +29,7 @@
## 更新
### 版本:2.1.3
记录各子任务运行时间,避免出现重复运行
增加界面调整,应对某些环境,导致点击失败
去除实时任务
### 版本:2.1.4
更改为4点刷新避免一些特殊情况
注意此次更新会覆盖本地默认账户文件

View File

@@ -492,9 +492,8 @@ async function recordForFile(judge) {
/* ---------- 判断取水时间 ---------- */
if (settings.water) {
const now = Date.now(); // 当前毫秒时间戳
const aimWaterTime = new Date(record.lastWaterTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可取水时间 ---------- */
const now = Date.now();
const aimWaterTime = getNextRefreshTime(record.lastWaterTime);
if (aimWaterTime - now > 0) {
log.info(`取水时间还未到!!!`);
recordsTime.waterTime = false;
@@ -506,9 +505,8 @@ async function recordForFile(judge) {
/* ---------- 判断上香时间 ---------- */
if (settings.sticks) {
const now = Date.now(); // 当前毫秒时间戳
const aimSticksTime = new Date(record.lastSticksTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可上香时间 ---------- */
const now = Date.now();
const aimSticksTime = getNextRefreshTime(record.lastSticksTime);
if (aimSticksTime - now > 0) {
log.info(`上香时间还未到!!!`);
recordsTime.sticksTime = false;
@@ -520,9 +518,8 @@ async function recordForFile(judge) {
/* ---------- 判断抽签时间 ---------- */
if (settings.lots) {
const now = Date.now(); // 当前毫秒时间戳
const aimLotsTime = new Date(record.lastLotsTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可抽签时间 ---------- */
const now = Date.now();
const aimLotsTime = getNextRefreshTime(record.lastLotsTime);
if (aimLotsTime - now > 0) {
log.info(`抽签时间还未到!!!`);
recordsTime.lotsTime = false;
@@ -534,9 +531,8 @@ async function recordForFile(judge) {
/* ---------- 判断拾螺时间 ---------- */
if (settings.conchs) {
const now = Date.now(); // 当前毫秒时间戳
const aimConchsTime = new Date(record.lastConchsTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可拾螺时间 ---------- */
const now = Date.now();
const aimConchsTime = getNextRefreshTime(record.lastConchsTime);
if (aimConchsTime - now > 0) {
log.info(`拾螺时间还未到!!!`);
recordsTime.conchsTime = false;
@@ -548,9 +544,8 @@ async function recordForFile(judge) {
/* ---------- 判断探监时间 ---------- */
if (settings.meal) {
const now = Date.now(); // 当前毫秒时间戳
const aimMealTime = new Date(record.lastMealTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可探监时间 ---------- */
const now = Date.now();
const aimMealTime = getNextRefreshTime(record.lastMealTime);
if (aimMealTime - now > 0) {
log.info(`探监时间还未到!!!`);
recordsTime.mealTime = false;
@@ -562,9 +557,8 @@ async function recordForFile(judge) {
/* ---------- 判断拾蛋时间 ---------- */
if (settings.eggs) {
const now = Date.now(); // 当前毫秒时间戳
const aimEggsTime = new Date(record.lastEggsTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可拾蛋时间 ---------- */
const now = Date.now();
const aimEggsTime = getNextRefreshTime(record.lastEggsTime);
if (aimEggsTime - now > 0) {
log.info(`拾蛋时间还未到!!!`);
recordsTime.eggsTime = false;
@@ -576,9 +570,8 @@ async function recordForFile(judge) {
/* ---------- 判断转盘时间 ---------- */
if (settings.turntable) {
const now = Date.now(); // 当前毫秒时间戳
const aimTurntableTime = new Date(record.lastTurntableTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可转盘时间 ---------- */
const now = Date.now();
const aimTurntableTime = getNextRefreshTime(record.lastTurntableTime);
if (aimTurntableTime - now > 0) {
log.info(`转盘时间还未到!!!`);
recordsTime.turntableTime = false;
@@ -590,9 +583,8 @@ async function recordForFile(judge) {
/* ---------- 判断领菜时间 ---------- */
if (settings.todayLuck) {
const now = Date.now(); // 当前毫秒时间戳
const aimTodayLuckTime = new Date(record.lastTodayLuckTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可领菜时间 ---------- */
const now = Date.now();
const aimTodayLuckTime = getNextRefreshTime(record.lastTodayLuckTime);
if (aimTodayLuckTime - now > 0) {
log.info(`领菜时间还未到!!!`);
recordsTime.todayLuckTime = false;
@@ -604,9 +596,8 @@ async function recordForFile(judge) {
/* ---------- 判断领糖时间 ---------- */
if (settings.sweetStatue) {
const now = Date.now(); // 当前毫秒时间戳
const aimSweetStatueTime = new Date(record.lastSweetStatueTime.getTime() + 24 * 60 * 60 * 1000).getTime();
/* ---------- 计算下次可领糖时间 ---------- */
const now = Date.now();
const aimSweetStatueTime = getNextRefreshTime(record.lastSweetStatueTime);
if (aimSweetStatueTime - now > 0) {
log.info(`领糖时间还未到!!!`);
recordsTime.sweetStatueTime = false;
@@ -643,6 +634,24 @@ async function recordForFile(judge) {
};
};
/* ---------- 工具函数计算【下次4点刷新时间】 ---------- */
async function getNextRefreshTime(lastTime) {
const now = new Date();
// 取“最近一次已过去的 04:00”作为当前刷新周期的起点
const lastBoundary = new Date(now);
lastBoundary.setHours(4, 0, 0, 0);
if (now.getTime() < lastBoundary.getTime()) {
lastBoundary.setDate(lastBoundary.getDate() - 1);
};
const ONE_DAY = 24 * 60 * 60 * 1000;
// lastTime 在当前周期之前 → 当前周期起点即可刷新(立即可执行)
// lastTime 已在当前周期内 → 下次刷新为当前周期起点 + 24h
return lastTime.getTime() < lastBoundary.getTime()
? lastBoundary.getTime()
: lastBoundary.getTime() + ONE_DAY;
};
// 检查背包龙蛋数目
async function chcekDragonEggs() {
await genshin.returnMainUi();
@@ -1661,4 +1670,4 @@ async function numberTemplateMatch(
await fakeLog("AutoPickLitter脚本", true, false, 2333);
})();
})();

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "提瓦特杂事(收集)",
"version": "2.1.3",
"version": "2.1.4",
"tags": [
"玄学",
"收集",

View File

@@ -1,3 +1,10 @@
### 版本:2.1.3
记录各子任务运行时间,避免出现重复运行
增加界面调整,应对某些环境,导致点击失败
去除实时任务
注意此次更新会覆盖本地默认账户文件
### 版本:2.1.2
更换识别方式,让龙蛋数量进行准确识别
回退为打开背包识别龙蛋