diff --git a/repo/js/AutoDomainCustomizable/README.md b/repo/js/AutoDomainCustomizable/README.md index 87ee680b3..779271f6e 100644 --- a/repo/js/AutoDomainCustomizable/README.md +++ b/repo/js/AutoDomainCustomizable/README.md @@ -1,14 +1,16 @@ # 传送并自动秘境 (增强版) -本脚本为 **BetterGI** 自带脚本的增强版本。允许用户直接在脚本设置中自定义“刷取次数”、“树脂类型”及其他高级参数,无需修改 BetterGI 全局设置。 +本脚本为 **BetterGI** 自带脚本的增强版本。 +允许用户直接在脚本设置中自定义“刷取次数”、“树脂类型”及其他高级参数,支持周期性素材刷取,无需修改 BetterGI 全局设置。 --- ## ✨ 主要功能 +* **全球时区自动换日**:内置时区计算逻辑,自动适配游戏服务器换日时间。 * **自定义树脂策略**:支持指定各类型树脂的使用次数,或选择自动刷取至树脂耗尽。 * **智能队伍切换**:进本前自动切换至指定队伍。 -* **全自动托管**:直接调用 BetterGI 内置的自动秘境逻辑,支持自动传送、自动进门、战斗及领奖。 +* **全自动托管**:自动传送、进门、战斗及领奖。 * **自动处理**:支持结束后自动分解圣遗物。 --- @@ -24,47 +26,72 @@ * **指定要前往的秘境** * 请在下拉菜单中选择目标副本。 + * **注意**:【角色天赋】、【武器升级】、【圣遗物】三类选项**互斥** (只能选其中一个),若同时选择多项,脚本将报错停止。 -* **树脂策略 (二选一)** - * **☑️ 刷取至树脂耗尽 (勾选)** - * 优先使用原粹树脂,耗尽后使用浓缩树脂。 - * 此模式下**忽略**下方的具体次数设定。 - * **⬜ 指定每种树脂刷取次数 (不勾选)** - * 严格按照下方填写的各树脂次数进行刷取。 - * 若四种树脂次数都为 0,脚本将不会进行任何战斗。 +* **树脂策略配置** + * **刷取至树脂耗尽 (最高优先级)** + * 若启用此选项,脚本将**忽略**下方所有具体次数的设定。 + * 消耗逻辑:优先使用**浓缩树脂**,耗尽后使用**原粹树脂**。 + * **指定每种树脂刷取次数** + * 仅在“刷取至树脂耗尽”**关闭**时生效。 + * 脚本将按照设定的次数进行刷取(若四项均为 0 则不执行战斗)。 + * 支持的树脂类型: + * **浓缩树脂** + * **原粹树脂** (注意:单次消耗 20 或 40 取决于秘境内上次的记忆设定) + * **须臾树脂** + * **脆弱树脂** ### ⚙️ 可选项 -* **自动切换到指定队伍** - * 输入预设队伍名称(需完全一致),留空则不切换。 -* **秘境刷取轮数** - * `0`:刷到体力耗尽或达到指定次数。 - * `数字`:刷满该场数后强制停止。 -* **结束后自动分解圣遗物** - * 开启后自动执行分解逻辑。 -* **周日副本序号** - * 仅周日全开时有效,填 `1` / `2` / `3` 对应界面选项。 +* **【风险】强制运行** + * **功能**:勾选后将**忽略日期与星期几的检查**,直接进入副本。 + * **适用场景**:仅在确认游戏内有“限时全开”或“精通移涌”活动时使用。 + * **警告**:若当日未开放该素材且无活动,勾选此项将会导致刷错素材。 -### 🔧 进阶/除错项 +* **自动切换到指定队伍** + * 输入预设队伍名称(需与游戏内完全一致,支持正则表达式),留空则不切换。 + +* **秘境刷取轮数** + * `0`:刷到体力耗尽或达到指定树脂次数(默认)。 + * `数字`:刷满该场数后强制停止(无论是否还有体力)。 * **战斗完成后等待时间** - * 建议设置 5 秒以上,防止战斗结束过快导致识别错误。 -* **启用调试模式** - * 勾选后,日志窗口会显示详细参数,供排查问题使用。 + * 设置战斗结算后的缓冲秒数(默认 5 秒),防止因电脑读取卡顿导致过早退出或识别失败。 -> *注:复活重试次数、寻路优化等参数请直接在 BetterGI 主界面的设置中修改。* +* **结束后自动分解圣遗物** + * **功能**:开启后,任务结束前会自动执行圣遗物分解逻辑。 + * **分解星级**:可指定分解 **1~4 星** 的圣遗物(需配合下拉菜单设置)。 + +* **启用调试模式** + * 开启后会输出更多详细日志信息,用于脚本出错时排查问题。 --- -## ❓ 常见问题 +## ⏰ 时区设置 -* **Q: 脚本显示“未找到秘境”?** - * **A:** 请确认选择的秘境名称是否在当前版本 BetterGI 支持列表中。 +脚本会自动读取 BetterGI 的全局设置来判定今日素材。 +请务必前往 **BetterGI设置 > 其他设置 > 服务器时区设置** 进行正确配置(如亚服设为 UTC+08:00)。 + +--- + +## ⚠️ 已知问题 + +### 1. 原粹树脂消耗量 (20 vs 40) +BetterGI 传送并自动秘境任务不支持JS脚本选择 20 或 40 树脂。 +若未手动切换,游戏会**沿用上一次**刷取时的设定。 +* **操作建议**:若您打算使用原粹树脂,请在运行脚本前**手动进入一次秘境**,调整好 20 或 40 的选项。 + +### 2. 为什么不能自动识别 "限时全开" 活动? +受限于 BetterGI 的底层架构设计,**JS 脚本无法获取游戏内的画面资讯**: +* **执行时序矛盾**:JS 脚本必须在任务开始 **前** 决定策略(刷什么副本),而 "限时全开" 的 OCR 识别是在任务开始 **后**(C# 底层进入秘境介面时)才执行 。 +* **数据无法回传**:BetterGI 的 API 设计为「射后不理」(Fire-and-Wait),底层的 OCR 识别结果(如是否有限时字样)并不会回传给 JS 层 。 + +因此,本脚本仅能依赖 **纯数学计算** 来判断素材开放日。若当前有 "限时全开" 或 "精通移涌" 活动,请务必手动勾选 **「强制运行」** 以绕过日期检查。 --- ## 👨‍💻 关于作者 -* **原作者**: huiyadanli, iris, 霁 +* **原作者**: [huiyadanli](https://github.com/huiyadanli), iris, 霁 * **修改者**: [RJFAC](https://github.com/RJFAC) * **辅助生成**: AI \ No newline at end of file diff --git a/repo/js/AutoDomainCustomizable/main.js b/repo/js/AutoDomainCustomizable/main.js index 9b6f4d6dc..83c0ea60c 100644 --- a/repo/js/AutoDomainCustomizable/main.js +++ b/repo/js/AutoDomainCustomizable/main.js @@ -1,104 +1,266 @@ (async function () { + // ========================================================================= + // 0. 数据定义 (源自 Genshin_Domains_SC_Live_Source.json) + // ========================================================================= + const MATERIAL_DB = { + // ====== 角色天赋素材 ====== + // 蒙德 + "「自由」的哲学": { domain: "忘却之峡", idx: 1 }, + "「抗争」的哲学": { domain: "忘却之峡", idx: 2 }, + "「诗文」的哲学": { domain: "忘却之峡", idx: 3 }, + // 璃月 + "「繁荣」的哲学": { domain: "太山府", idx: 1 }, + "「勤劳」的哲学": { domain: "太山府", idx: 2 }, + "「黄金」的哲学": { domain: "太山府", idx: 3 }, + // 稻妻 + "「浮世」的哲学": { domain: "堇色之庭", idx: 1 }, + "「风雅」的哲学": { domain: "堇色之庭", idx: 2 }, + "「天光」的哲学": { domain: "堇色之庭", idx: 3 }, + // 须弥 + "「诤言」的哲学": { domain: "昏识塔", idx: 1 }, + "「巧思」的哲学": { domain: "昏识塔", idx: 2 }, + "「笃行」的哲学": { domain: "昏识塔", idx: 3 }, + // 枫丹 + "「公平」的哲学": { domain: "苍白的遗荣", idx: 1 }, + "「正义」的哲学": { domain: "苍白的遗荣", idx: 2 }, + "「秩序」的哲学": { domain: "苍白的遗荣", idx: 3 }, + // 纳塔 + "「角逐」的哲学": { domain: "蕴火的幽墟", idx: 1 }, + "「焚燔」的哲学": { domain: "蕴火的幽墟", idx: 2 }, + "「纷争」的哲学": { domain: "蕴火的幽墟", idx: 3 }, + // 挪德卡莱 + "「月光」的哲学": { domain: "无光的深都", idx: 1 }, + "「乐园」的哲学": { domain: "无光的深都", idx: 2 }, + "「浪迹」的哲学": { domain: "无光的深都", idx: 3 }, + + // ====== 武器升级素材 ====== + // 蒙德 + "高塔孤王的碎梦": { domain: "塞西莉亚苗圃", idx: 1 }, + "凛风奔狼的怀乡": { domain: "塞西莉亚苗圃", idx: 2 }, + "狮牙斗士的理想": { domain: "塞西莉亚苗圃", idx: 3 }, + // 璃月 + "孤云寒林的神体": { domain: "震雷连山密宫", idx: 1 }, + "雾海云间的转还": { domain: "震雷连山密宫", idx: 2 }, + "漆黑陨铁的一块": { domain: "震雷连山密宫", idx: 3 }, + // 稻妻 + "远海夷地的金枝": { domain: "砂流之庭", idx: 1 }, + "鸣神御灵的勇武": { domain: "砂流之庭", idx: 2 }, + "今昔剧画之鬼人": { domain: "砂流之庭", idx: 3 }, + // 须弥 + "谧林涓露的金符": { domain: "有顶塔", idx: 1 }, + "绿洲花园的真谛": { domain: "有顶塔", idx: 2 }, + "烈日威权的旧日": { domain: "有顶塔", idx: 3 }, + // 枫丹 + "悠古弦音的回响": { domain: "深潮的余响", idx: 1 }, + "纯圣露滴的真粹": { domain: "深潮的余响", idx: 2 }, + "无垢之海的金杯": { domain: "深潮的余响", idx: 3 }, + // 纳塔 + "贡祭炽心的荣膺": { domain: "深古瞭望所", idx: 1 }, + "谵妄圣主的神面": { domain: "深古瞭望所", idx: 2 }, + "神合秘烟的启示": { domain: "深古瞭望所", idx: 3 }, + // 挪德卡莱 + "奇巧秘器的真愿": { domain: "失落的月庭", idx: 1 }, + "长夜燧火的烈辉": { domain: "失落的月庭", idx: 2 }, + "终北遗嗣的煌熠": { domain: "失落的月庭", idx: 3 }, + + // ====== 圣遗物 (type: 'artifact') ====== + // 蒙德 + "如雷的盛怒 / 平息雷鸣的尊者": { domain: "仲夏庭园", type: "artifact" }, + "翠绿之影 / 被怜爱的少女": { domain: "铭记之谷", type: "artifact" }, + "沉沦之心 / 冰风迷途的勇士": { domain: "芬德尼尔之顶", type: "artifact" }, + // 璃月 + "炽烈的炎之魔女 / 渡过烈火的贤人": { domain: "无妄引咎密宫", type: "artifact" }, + "昔日宗室之仪 / 染血的骑士道": { domain: "华池岩岫", type: "artifact" }, + "悠古的磐岩 / 逆飞的流星": { domain: "孤云凌霄之处", type: "artifact" }, + "辰砂往生录 / 来歆余响": { domain: "岩中幽谷", type: "artifact" }, + // 稻妻 + "绝缘之旗印 / 追忆之注连": { domain: "椛染之庭", type: "artifact" }, + "海染砗磲 / 华馆梦醒形骸记": { domain: "沉眠之庭", type: "artifact" }, + // 须弥 + "深林的记忆 / 饰金之梦": { domain: "缘觉塔", type: "artifact" }, + "沙上楼阁史话 / 乐园遗落之花": { domain: "赤金的城墟", type: "artifact" }, + "水仙之梦 / 花海甘露之光": { domain: "熔铁的孤塞", type: "artifact" }, + // 枫丹 + "逐影猎人 / 黄金剧团": { domain: "罪祸的终末", type: "artifact" }, + "昔时之歌 / 回声之林夜话": { domain: "临瀑之城", type: "artifact" }, + "谐律异想断章 / 未竟的遐思": { domain: "剧变丛林", type: "artifact" }, + // 纳塔 + "黑曜秘典 / 烬城勇者绘卷": { domain: "虹灵的净土", type: "artifact" }, + "深廊终曲 / 长夜之誓": { domain: "荒废砌造坞", type: "artifact" }, + // 挪德卡莱 + "纺月的夜歌 / 穹境示现之夜": { domain: "霜凝的机枢", type: "artifact" } + }; + // ========================================================================= // 1. 读取用户设置 // ========================================================================= let userConfig = settings; let enableDebug = userConfig.EnableDebug; - // --- 参数解析 --- - let pDomainName = userConfig.DomainName; + // --- 读取三个独立栏位 --- + let pTalent = userConfig.TargetTalentMaterialName; + let pWeapon = userConfig.TargetWeaponMaterialName; + let pArtifact = userConfig.TargetArtifactName; + let pForceRunMode = userConfig.ForceRunMode; + + // --- 互斥检查与目标确定 --- + let selectedCount = (pTalent ? 1 : 0) + (pWeapon ? 1 : 0) + (pArtifact ? 1 : 0); + + if (selectedCount === 0) { + log.error("【配置错误】您未选择任何素材!请在天赋、武器或圣遗物中选择一项。"); + return; + } + + if (selectedCount > 1) { + log.error("【配置冲突】您同时选择了多种类型的素材!请只保留一项,将其余两项设为空。"); + return; + } + + let pTargetMaterial = pTalent || pWeapon || pArtifact; + + // --- 通用参数 --- let pPartyName = userConfig.PartyName || ""; let pRunUntilDepleted = userConfig.RunUntilResinDepleted; let pAutoArtifactSalvage = userConfig.AutoArtifactSalvage; let pMaxArtifactStar = userConfig.MaxArtifactStar || "4"; - let pSundaySelectedValue = userConfig.SundaySelectedValue || ""; + + // 初始化目标参数 + let pDomainName = ""; + let pSundaySelectedValue = ""; - // 数值转换 + // 数值参数 let pOriginal = parseInt(userConfig.OriginalResinUseCount) || 0; let pCondensed = parseInt(userConfig.CondensedResinUseCount) || 0; let pTransient = parseInt(userConfig.TransientResinUseCount) || 0; let pFragile = parseInt(userConfig.FragileResinUseCount) || 0; let pDomainRoundNum = parseInt(userConfig.DomainRoundNum) || 0; - - // 注意:FightEndDelay 在 JS 层执行,作为 C# 任务结束后的额外等待 let pFightEndDelay = parseInt(userConfig.FightEndDelay) || 5; - // --- 检查 --- - if (!pDomainName) { - log.error("请先在配置中选择要前往的秘境!"); - return; + // [新增] 树脂机制警告 + if (!pRunUntilDepleted && pOriginal > 0) { + log.warn("【树脂警告】您设置了使用原粹树脂。由于 BetterGI 本体任务目前不支持选择 20/40 树脂:"); + log.warn(" -> 请务必在运行脚本前,手动进入一次秘境,确认并调整好游戏内的树脂消耗选项,否则可能导致消耗不符合预期。"); } // ========================================================================= - // 2. 主流程 + // 2. 智能逻辑处理 + // ========================================================================= + + // 中文星期对照表 (0-6) + const WEEK_MAP = ["日", "一", "二", "三", "四", "五", "六"]; + + let materialInfo = MATERIAL_DB[pTargetMaterial]; + if (!materialInfo) { + log.error(`【数据错误】无法在数据库中找到项目:${pTargetMaterial}`); + return; + } + + if (materialInfo.type === 'artifact') { + // [圣遗物] 每日开放,直接放行 + pDomainName = materialInfo.domain; + pSundaySelectedValue = ""; + log.info(`【圣遗物模式】目标:${pTargetMaterial}`); + log.info(`【自动定位】秘境:${pDomainName} (每日开放)`); + } else { + // [天赋/武器素材] 需要日期检查 + let requiredIdx = materialInfo.idx; + pDomainName = materialInfo.domain; + pSundaySelectedValue = requiredIdx.toString(); + + // --- 全球通用时间逻辑 (跨时区修正版) --- + + // 1. 获取 BGI 配置的服务器偏移量 (例如亚服为 +8小时,单位毫秒) + let serverOffsetMs = ServerTime.GetServerTimeZoneOffset(); + + // 2. 获取当前的 UTC 时间戳 (全球统一,不受电脑时区影响) + let utcNow = Date.now(); + + // 3. 计算"游戏服务器的逻辑时间戳" + // 算法: UTC时间 + 服务器偏移量 - 4小时(换日) + // 这样算出来的时间,如果视作 UTC 时间,其"星期几"就是游戏内的"星期几" + let logicTimeMs = utcNow + serverOffsetMs - (4 * 60 * 60 * 1000); + let logicDate = new Date(logicTimeMs); + + // 4. 获取 UTC 星期 (关键: 必须用 getUTCDay,忽略本地时区) + let dayOfWeek = logicDate.getUTCDay(); + let dayStr = WEEK_MAP[dayOfWeek]; + + if (enableDebug) { + // 调试信息:计算当前的服务器名义时间 + let serverTimeDate = new Date(utcNow + serverOffsetMs); + log.info(`[DEBUG] 游戏服务器时间(UTC视角): ${serverTimeDate.toUTCString()}`); + log.info(`[DEBUG] 逻辑判定后星期: ${dayStr}`); + } + + // 判断今日是否开放 + let isDateOpen = false; + if (dayOfWeek === 0) isDateOpen = true; // 周日 + else if (requiredIdx === 1 && (dayOfWeek === 1 || dayOfWeek === 4)) isDateOpen = true; + else if (requiredIdx === 2 && (dayOfWeek === 2 || dayOfWeek === 5)) isDateOpen = true; + else if (requiredIdx === 3 && (dayOfWeek === 3 || dayOfWeek === 6)) isDateOpen = true; + + log.info(`【智能匹配】目标: ${pTargetMaterial} (游戏内星期${dayStr})`); + + if (isDateOpen) { + log.info(`【日期检查】通过,今日为常规开放日。`); + } else { + log.warn(`【日期检查】警告:今日 (游戏内星期${dayStr}) 非該素材常規開放日!`); + + if (pForceRunMode) { + log.warn(`【强制运行】检测到"强制运行"已勾选。脚本将继续执行。`); + log.warn(`【风险提示】若游戏内并无"限时全开"活动,底层的 OCR 将无法识别活动,BetterGI 將會直接進入今日預設副本,導致刷錯素材!`); + } else { + log.error(`【停止运行】为防止刷错素材,脚本已停止。`); + log.error(` -> 若您确认当前游戏有"限时全开/精通移涌"活动,请在设置中勾选"强制运行"以忽略此警告。`); + return; // 安全退出 + } + } + } + + // ========================================================================= + // 3. 执行主流程 // ========================================================================= while (true) { try { - // --- A. 创建并配置 C# 参数对象 --- - // 直接使用 EngineExtend 暴露的 AutoDomainParam 类 let taskParam = new AutoDomainParam(pDomainRoundNum); - - // 填入参数 (仅填入 AutoDomainParam 实际支持的属性) taskParam.DomainName = pDomainName; taskParam.PartyName = pPartyName; taskParam.AutoArtifactSalvage = pAutoArtifactSalvage; taskParam.MaxArtifactStar = pMaxArtifactStar; taskParam.SundaySelectedValue = pSundaySelectedValue; - // 重要:树脂设置逻辑 taskParam.SpecifyResinUse = !pRunUntilDepleted; if (!pRunUntilDepleted) { - // 指定次数模式 taskParam.OriginalResinUseCount = pOriginal; taskParam.CondensedResinUseCount = pCondensed; taskParam.TransientResinUseCount = pTransient; taskParam.FragileResinUseCount = pFragile; - // 设置优先级:从左到右 taskParam.SetResinPriorityList("浓缩树脂", "原粹树脂", "须臾树脂", "脆弱树脂"); } else { - // 刷到耗尽模式 taskParam.SetResinPriorityList("浓缩树脂", "原粹树脂"); } - if (enableDebug) { - log.info(`[DEBUG] 参数注入完成。模式: ${!pRunUntilDepleted ? "指定次数" : "刷到耗尽"}`); - log.info(`[DEBUG] 浓缩: ${pCondensed}, 原粹: ${pOriginal}, 周日: ${pSundaySelectedValue}`); - } - - // --- B. 执行任务 --- - // 使用 RunAutoDomainTask 直接执行 C# 托管的完整流程 - // 包含自动传送、自动进门、战斗及重试 logic await dispatcher.RunAutoDomainTask(taskParam); - // --- C. 战后等待 (脚本层面额外等待) --- if (pFightEndDelay > 0) { - log.info(`[脚本] 任务执行完毕,额外等待 ${pFightEndDelay} 秒...`); + log.info(`[脚本] 任务结束,等待 ${pFightEndDelay} 秒...`); await sleep(pFightEndDelay * 1000); } - break; - } catch (ex) { let msg = ex.message || ""; if (msg.includes("背包物品已满") || msg.includes("未检测到秘境结束")) { log.warn(`[脚本] 任务可能已完成,但检测到: ${msg}`); break; - } - else if (msg.includes("检测到复苏界面") || msg.includes("复苏")) { - log.warn(`[脚本] 角色死亡,准备复活重试...`); + } else if (msg.includes("复苏")) { + log.warn(`[脚本] 角色死亡,5秒后重试...`); await sleep(5000); continue; - } - else if (msg.includes("TaskCanceledException") || msg.includes("A task was canceled")) { - log.info("[脚本] 任务已取消或停止。"); + } else if (msg.includes("TaskCanceledException")) { + log.info("[脚本] 任务已取消。"); break; - } - else if (msg.includes("取消自动任务")) { - log.info("[脚本] 用户手动停止任务。"); - break; - } - else { - log.error(`[脚本] 发生错误: ${msg}`); + } else { + log.error(`[脚本] 错误: ${msg}`); throw ex; } } diff --git a/repo/js/AutoDomainCustomizable/manifest.json b/repo/js/AutoDomainCustomizable/manifest.json index bd8e5bad4..dbf750f8f 100644 --- a/repo/js/AutoDomainCustomizable/manifest.json +++ b/repo/js/AutoDomainCustomizable/manifest.json @@ -1,9 +1,9 @@ { "manifest_version": 1, "name": "传送并自动秘境(增强版)", - "version": "0.4", - "bgi_version": "0.53.0", - "description": "BetterGI自带脚本的增强版。支持自定义传送后执行自动秘境的各项参数(如多种树脂设置、自动废弃圣遗物、轮数设置等)。(本脚本逻辑由AI辅助生成)", + "version": "0.5", + "bgi_version": "0.54.0", + "description": "BetterGI自带脚本的增强版,用于传送后并执行自动秘境。秘境中角色死亡复活后继续回去战斗。支持自定义各项参数(如树脂设置、自动废弃圣遗物、轮数设置等)与周期性素材刷取。(本脚本由AI辅助生成)", "authors": [ { "name": "huiyadanli", diff --git a/repo/js/AutoDomainCustomizable/settings.json b/repo/js/AutoDomainCustomizable/settings.json index 4f0773ae0..415c0a350 100644 --- a/repo/js/AutoDomainCustomizable/settings.json +++ b/repo/js/AutoDomainCustomizable/settings.json @@ -1,129 +1,155 @@ [ { - "name": "DomainName", + "name": "TargetTalentMaterialName", "type": "select", - "label": "指定要前往的秘境 (自动传送到刷取的秘境)", + "label": "【角色天赋素材】(自动判定日期,若选此项请勿选其他两项)", "options": [ "", - "仲夏庭园", - "塞西莉亚苗圃", - "震雷连山密宫", - "铭记之谷", - "孤云凌霄之处", - "无妄引咎密宫", - "华池岩岫", - "忘却之峡", - "太山府", - "芬德尼尔之顶", - "山脊守望", - "砂流之庭", - "菫色之庭", - "椛染之庭", - "沉眠之庭", - "岩中幽谷", - "缘觉塔", - "有顶塔", - "赤金的城墟", - "熔铁的孤塞", - "苍白的遗荣", - "深潮的余响", - "罪祸的终末", - "临瀑之城", - "褪色的剧场", - "蕴火的幽墟", - "深古瞭望所", - "虹灵的净土", - "昏识塔", - "荒废砌造坞", - "霜凝的机枢", - "失落的月庭", - "无光的深都" + "=== 蒙德 ===", + "「自由」的哲学", "「抗争」的哲学", "「诗文」的哲学", + "=== 璃月 ===", + "「繁荣」的哲学", "「勤劳」的哲学", "「黄金」的哲学", + "=== 稻妻 ===", + "「浮世」的哲学", "「风雅」的哲学", "「天光」的哲学", + "=== 须弥 ===", + "「诤言」的哲学", "「巧思」的哲学", "「笃行」的哲学", + "=== 枫丹 ===", + "「公平」的哲学", "「正义」的哲学", "「秩序」的哲学", + "=== 纳塔 ===", + "「角逐」的哲学", "「焚燔」的哲学", "「纷争」的哲学", + "=== 挪德卡莱 ===", + "「月光」的哲学", "「乐园」的哲学", "「浪迹」的哲学" ], "default": "" }, + { + "name": "TargetWeaponMaterialName", + "type": "select", + "label": "【武器升级素材】(自动判定日期,若选此项请勿选其他两项)", + "options": [ + "", + "=== 蒙德 ===", + "高塔孤王的碎梦", "凛风奔狼的怀乡", "狮牙斗士的理想", + "=== 璃月 ===", + "孤云寒林的神体", "雾海云间的转还", "漆黑陨铁的一块", + "=== 稻妻 ===", + "远海夷地的金枝", "鸣神御灵的勇武", "今昔剧画之鬼人", + "=== 须弥 ===", + "谧林涓露的金符", "绿洲花园的真谛", "烈日威权的旧日", + "=== 枫丹 ===", + "悠古弦音的回响", "纯圣露滴的真粹", "无垢之海的金杯", + "=== 纳塔 ===", + "贡祭炽心的荣膺", "谵妄圣主的神面", "神合秘烟的启示", + "=== 挪德卡莱 ===", + "奇巧秘器的真愿", "长夜燧火的烈辉", "终北遗嗣的煌熠" + ], + "default": "" + }, + { + "name": "TargetArtifactName", + "type": "select", + "label": "【圣遗物】(每日开放,若选此项请勿选其他两项)", + "options": [ + "", + "=== 蒙德 ===", + "如雷的盛怒 / 平息雷鸣的尊者", + "翠绿之影 / 被怜爱的少女", + "沉沦之心 / 冰风迷途的勇士", + "=== 璃月 ===", + "炽烈的炎之魔女 / 渡过烈火的贤人", + "昔日宗室之仪 / 染血的骑士道", + "悠古的磐岩 / 逆飞的流星", + "辰砂往生录 / 来歆余响", + "=== 稻妻 ===", + "绝缘之旗印 / 追忆之注连", + "海染砗磲 / 华馆梦醒形骸记", + "=== 须弥 ===", + "深林的记忆 / 饰金之梦", + "沙上楼阁史话 / 乐园遗落之花", + "水仙之梦 / 花海甘露之光", + "=== 枫丹 ===", + "逐影猎人 / 黄金剧团", + "昔时之歌 / 回声之林夜话", + "谐律异想断章 / 未竟的遐思", + "=== 纳塔 ===", + "黑曜秘典 / 烬城勇者绘卷", + "深廊终曲 / 长夜之誓", + "=== 挪德卡莱 ===", + "纺月的夜歌 / 穹境示现之夜" + ], + "default": "" + }, + { + "name": "ForceRunMode", + "type": "checkbox", + "label": "【风险】强制运行 (仅在有限时全开活动时勾选)", + "default": false + }, { "name": "PartyName", "type": "input-text", - "label": "自动切换到指定队伍 (注意队伍名称是游戏内你手动设置的名称)", + "label": "自动切换到指定队伍 (支持正则)", "default": "" }, { "name": "RunUntilResinDepleted", "type": "checkbox", - "label": "刷取至树脂耗尽 (优先用原粹后用浓缩,其余不用)", + "label": "刷取至树脂耗尽 (优先用原粹后用浓缩)", "default": false }, { "name": "OriginalResinUseCount", "type": "input-text", - "label": "原粹树脂刷取次数 (请输入数字)", + "label": "原粹树脂刷取次数 (请先在游戏内手动调整 20/40 选项)", "default": "0" }, { "name": "CondensedResinUseCount", "type": "input-text", - "label": "浓缩树脂刷取次数 (请输入数字)", + "label": "浓缩树脂刷取次数", "default": "0" }, { "name": "TransientResinUseCount", "type": "input-text", - "label": "须臾树脂刷取次数 (请输入数字)", + "label": "须臾树脂刷取次数", "default": "0" }, { "name": "FragileResinUseCount", "type": "input-text", - "label": "脆弱树脂刷取次数 (请输入数字)", + "label": "脆弱树脂刷取次数", "default": "0" }, { "name": "AutoArtifactSalvage", "type": "checkbox", "label": "结束后自动分解圣遗物", - "default": true + "default": false }, { "name": "MaxArtifactStar", "type": "select", "label": "需要快速分解圣遗物的最高星级", - "options": [ - "1", - "2", - "3", - "4", - "5" - ], + "options": ["1", "2", "3", "4"], "default": "4" }, { "name": "FightEndDelay", "type": "input-text", - "label": "战斗完成后等待时间 (秒) (任务结束后的额外延迟)", + "label": "战斗完成后等待时间 (秒)", "default": "5" }, { "name": "DomainRoundNum", "type": "input-text", - "label": "秘境刷取轮数 (0表示9999轮,刷取至体力耗尽或达到指定次数)", + "label": "秘境刷取轮数 (0表示9999轮)", "default": "0" }, - { - "name": "SundaySelectedValue", - "type": "select", - "label": "周日副本序号 (限时副本全开时用)", - "options": [ - "", - "1", - "2", - "3" - ], - "default": "" - }, { "name": "EnableDebug", "type": "checkbox", - "label": "启用调试模式 (将在日志中显示详细参数信息)", + "label": "启用调试模式", "default": false } ] \ No newline at end of file