diff --git a/repo/js/使用历练点完成每日委托/README.md b/repo/js/使用历练点完成每日委托/README.md
index b10d3e7e0..e448560b7 100644
--- a/repo/js/使用历练点完成每日委托/README.md
+++ b/repo/js/使用历练点完成每日委托/README.md
@@ -7,38 +7,40 @@
- 可选择是否传送至七天神像切换队伍
2. **历练点使用**:
+ - 自动检查是否可以领取历练点奖励(需使用120体力)
- 自动领取历练点奖励
- - 支持直接使用历练点(不获取双倍好感)
3. **灵活执行时间设置**:
- 可设置为每天执行
- 或指定每周的特定几天执行(如只在周一、周三、周五执行)
+ - 自动处理凌晨时段(00:00~04:00视为前一天)
4. **双倍好感度获取**:
- - **在好友的尘歌壶内,队伍人数≤2人时使用历练点完成每日委托才能获取双倍好感度**
+ - **在好友的尘歌壶内,使用历练点完成每日委托可获取双倍好感度**
+ - **需保持队伍为4人队伍,但可通过设置让指定位置角色离队,实际出战角色可≤2人**
- 自动进入好友的尘歌壶
- 支持指定特定好友
- - 可让指定角色离队,确保队伍人数≤2人(双倍好感度必要条件)
+ - 支持依次申请多个好友尘歌壶
+ - 可让指定位置角色离队,确保实际出战角色符合需求
5. **自动检查是否可以使用历练点完成4个任务**:
- - 如果运行时未识别到 完成所有任務,不领取历练点奖励
-
-6. **前往指定的冒险家协会领取奖励**:
- - 领取历练点奖励后,前往冒险家协会领取奖励
- - 未识别到 完成所有任務時,會跳過领取奖励
- - 預計的前往领取奖励的冒险家协会地区為 : 蒙德
- - 推荐設置為枫丹
+ - 如果运行时未识别到 完成4个任务,不领取历练点奖励
+6. **自动前往冒险家协会领取奖励**:
+ - 领取历练点奖励后,自动前往指定地区的冒险家协会领取每日委托奖励
+ - 支持多个地区选择(蒙德、璃月、稻妻、须弥、枫丹、挪德卡莱等)
+ - 自动进行对话交互,完成奖励领取
## 参数设置说明
### 基本设置
| 说明 | 默认值 | 示例 |
|------|--------|------|
-|需要领取好感的队伍名称(不填则不切换队伍) | 无 | "好感队" |
-|关闭前往七天神像切换队伍 | 未勾选 | 勾选后不传送到神像 |
-|指定星期几执行(","分隔)
输入"0"为每天执行 | "0" | "1,3,5"(周一、三、五执行) |
-|直接使用历练点完成每日委托
(全角色满好感时推荐启用) | 已勾选 | 勾选后不获取双倍好感 |
+| 需要领取好感的队伍名称(不填则不切换队伍) | 无 | "好感队" |
+| 关闭前往七天神像切换队伍 | 未勾选 | 勾选后不传送到神像 |
+| 指定星期几执行(","分隔)
输入"0"为每天执行 | "0" | "1,3,5"(周一、三、五执行) |
+| 直接使用历练点完成每日委托
(全角色满好感时推荐启用) | 已勾选 | 勾选后不获取双倍好感 |
+| 前往指定地区的冒险家协会领取奖励 | "蒙德" | "枫丹" |
### 尘歌壶双倍好感设置
|说明 | 示例 |
@@ -50,44 +52,46 @@
| 让3号位角色离队 | 勾选 |
| 让4号位角色离队 | 勾选 |
-### 尘歌壶双倍好感设置
-|说明 | 示例 |
-|前往指定地区的冒险家协会领取奖励|枫丹|
-
## 使用建议
### 双倍好感度获取流程
-0. 先自行消耗120体力
-1. 自动进入好友尘歌壶
-2. 让指定位置角色离队(确保队伍≤2人)
-3. 打开冒险之证领取历练点奖励
-4. 返回大世界
-5. 前往冒险家协会
+1. 先自行消耗120体力(获得历练点)
+2. 自动进入好友尘歌壶
+3. 让指定位置角色离队(根据设置)
+4. 打开冒险之证领取历练点奖励
+5. 返回大世界
+6. 前往冒险家协会领取每日委托奖励
### 角色离队策略
-- 当需要获取双倍好感时,建议保留2个需要提升好感的角色
+- 当需要获取双倍好感时,建议只保留2个需要提升好感的角色在队伍中
- 勾选需要离队的角色位置(1号位为最左侧角色)
-- **注意**:不能同时让所有角色离队(至少保留1个角色)
+- **注意**:不能同时让所有角色离队(至少保留1个角色在队伍中)
+- 离队操作在进入尘歌壶后自动执行
### 时间设置技巧
- 使用"0"设置为每天执行
- 使用"1,3,5"设置为周一、三、五执行
- 脚本会自动处理凌晨时段(00:00-04:00视为前一天)
+### 冒险家协会地区选择
+- 推荐设置为"枫丹",路程较短
+- 可根据需要选择其他地区(蒙德、璃月、稻妻、须弥等)
+
## 常见问题
**Q:为什么没有进入好友尘歌壶?**
A:请检查:
-1. 是否已禁用双倍好感 (**直接使用历练点完成每日委托** 被勾选)
+1. 是否已禁用双倍好感(**直接使用历练点完成每日委托**被勾选)
2. 好友名称是否正确(区分大小写和空格)
3. 好友尘歌壶权限是否设置为"允许直接加入"
+4. 网络连接是否良好
+5. 是否非战斗状态
**Q:角色没有离队怎么办?**
A:请检查:
1. 是否正确勾选了角色位置
2. 游戏是否处于可切换队伍状态
-
**Q:如何知道今天是否会执行脚本?**
A:脚本日志会显示:
- "今天是星期X,开始使用历练点完成每日委托"
@@ -97,10 +101,21 @@ A:脚本日志会显示:
A:可能因为:
1. 处于联机模式
2. 队伍名称设置错误
+3. 无法正确识别游戏界面
+
+**Q:冒险家协会奖励没有领取怎么办?**
+A:请检查:
+1. 是否已经完成所有每日委托
+2. 是否已经领取过奖励
+3. 自动寻路是否正常执行
+4. BGI是否最新版
+5. 队伍是否4人
## 注意事项
1. 游戏需运行在**1920×1080分辨率**下
2. 进入好友尘歌壶需要**网络连接良好**
-3. 双倍好感度需要队伍中**不超过2个角色**
+3. 双倍好感度需要在好友尘歌壶内,自己角色不超过2个角色时,领取历练点奖励
4. 若使用指定好友功能,请确保**好友名称完全匹配**
+5. 确保有足够的历练点可以领取(需完成所有每日委托并消耗120体力)
+6. 冒险家协会领奖功能依赖自动寻路,请确保游戏内队伍为4人队伍
diff --git a/repo/js/使用历练点完成每日委托/main.js b/repo/js/使用历练点完成每日委托/main.js
index 6000d042d..0a6501da3 100644
--- a/repo/js/使用历练点完成每日委托/main.js
+++ b/repo/js/使用历练点完成每日委托/main.js
@@ -68,6 +68,7 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
log.info(`今天是星期 ${dayOfWeek},开始使用历练点完成每日委托`);
} else {
log.info(`今天是星期 ${dayOfWeek},不使用历练点`);
+ log.info(`交互或拾取:"不运行"`);
return;
}
} else {
@@ -77,13 +78,15 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
}
// 检查是否可以领取历练点奖励
- if (settingsNotDoublePoints == false) {
- if (await checkEncounterPointsRewards() == true) {
- log.info("可以领取历练点奖励,开始执行");
- } else {
- log.warn("无法领取历练点奖励,可能是未完成委托或已领取\n或 未识别到 完成所有任務,而不领取历练点奖励");
- return;
- }
+ //好友尘歌壶历時檢查
+ // 直接領取時檢查&領取
+ log.info("检查是否可以领取历练点奖励");
+ if (await checkEncounterPointsRewards() == true) {
+ log.info("可以领取历练点奖励,开始执行");
+ } else {
+ log.warn("无法领取历练点奖励,可能是未完成委托或已领取\n或 未识别到 完成所有任務,而不领取历练点奖励");
+ log.info(`交互或拾取:"未满足领取条件"`);
+ return;
}
if (shouldRun) {
@@ -111,8 +114,8 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
// 区分双倍好感
if (settingsNotDoublePoints == true) {
- log.info(`不使用好友尘歌壶历练点领取双倍好感,直接使用历练点`);
- await claimEncounterPointsRewards();
+
+ // await claimEncounterPointsRewards();
await fontaineCatherineCommissionAward()
} else if (settingsNotDoublePoints == false) {
// 进好友尘歌壶领历练点奖励后返回大世界
@@ -164,7 +167,6 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
}
}
-
// 以下为可供调用的函数部分
// 切换队伍
@@ -443,9 +445,9 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
// 模板匹配领取历练点奖励
async function claimEncounterPointsRewards() {
- await sleep(2000);
+ await sleep(1300);
log.info("正在打开冒险之证领取历练点奖励");
- await sleep(2000);
+ await sleep(1300);
keyPress("VK_ESCAPE");
await sleep(2000);
@@ -495,9 +497,9 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
let returnValue = false;
- await sleep(1000);
+ await sleep(1300);
log.info("正在打开冒险之证檢查历练点完成度");
- await sleep(1000);
+ await sleep(1300);
keyPress("VK_ESCAPE");
await sleep(2000);
@@ -535,6 +537,23 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
await sleep(2000);
log.info("可领取历练点奖励");
+
+ if (settingsNotDoublePoints == true) {
+ log.info(`不使用好友尘歌壶历练点领取双倍好感,直接使用历练点`);
+ const ro29 = captureGameRegion();
+ let EncounterPointsStageRewardsButton = ro29.find(EncounterPointsStageRewardsRo);
+ ro29.dispose();
+ if (EncounterPointsStageRewardsButton.isExist()) {
+ log.info("识别到历练点领取按钮");
+ EncounterPointsStageRewardsButton.click();
+ await sleep(2000);
+ log.info("已领取历练点奖励");
+ keyPress("VK_ESCAPE");
+ } else if (EncounterPointsStageRewardsButton.isEmpty()) {
+ log.warn("未识别到历练点领取奖励按钮,可能是已领取或未完成");
+ }
+ }
+
keyPress("VK_ESCAPE");
} else if (EncounterPointsStageRewardsButton.isEmpty()) {
log.info("未识别到 完成所有任務");
@@ -724,8 +743,19 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
// 自動凱瑟琳領奬
async function fontaineCatherineCommissionAward() {
await sleep(1000);
+ try {
+ const avatars = Array.from(getAvatars?.() || []);
+ if (avatars.length < 4) {
+ log.warn(`非4人隊伍 或 识别角色失败,不前往冒险家协会領奬`);
+ log.info(`交互或拾取:"领取失败"`);
+ return;
+ }
+ } catch (e) {
+ return;
+ }
+
//到指定冒险家协会領奬
- log.info(`开始到${adventurePath}冒险家协会領奬`);
+ log.info(`开始前往${adventurePath}冒险家协会領奬`);
let Catherine_Egeria = `Assets/AutoPath/冒险家协会_${adventurePath}.json`;
await pathingScript.runFile(Catherine_Egeria);
log.info('开始每日委托或探索派遣,若无退出对话,则说明重复领取或未完成派遣');
@@ -737,6 +767,7 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用
await sleep(10000);
await genshin.returnMainUi();
await sleep(1000);
+ log.info(`交互或拾取:"领取完成"`);
}
})();
\ No newline at end of file
diff --git a/repo/js/使用历练点完成每日委托/manifest.json b/repo/js/使用历练点完成每日委托/manifest.json
index 7bd1127db..beddbd19e 100644
--- a/repo/js/使用历练点完成每日委托/manifest.json
+++ b/repo/js/使用历练点完成每日委托/manifest.json
@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "使用历练点完成每日委托",
- "version": "2.0.2",
+ "version": "2.1.0",
"bgi_version": "0.44.1",
"description": "使用历练点完成每日委托:\n支持进入好友尘歌壶,使用历练点领取双倍好感(队伍中小于等于两人时,能使队伍中两人获得双倍好感)\n支持进入好友尘歌壶后,让指定位置角色离队\n能指定星期几执行,星期几不执行\n前往冒险家协会领取奖励",
"authors": [