JS : 使用历练点完成每日委托 2.1 (#2629)

This commit is contained in:
this-Fish
2026-01-05 20:44:07 +08:00
committed by GitHub
parent 34300b37f6
commit ef578292ec
3 changed files with 91 additions and 45 deletions

View File

@@ -7,38 +7,40 @@
- 可选择是否传送至七天神像切换队伍
2. **历练点使用**
- 自动检查是否可以领取历练点奖励需使用120体力
- 自动领取历练点奖励
- 支持直接使用历练点(不获取双倍好感)
3. **灵活执行时间设置**
- 可设置为每天执行
- 或指定每周的特定几天执行(如只在周一、周三、周五执行)
- 自动处理凌晨时段00:00~04:00视为前一天
4. **双倍好感度获取**
- **在好友的尘歌壶内,队伍人数≤2人时使用历练点完成每日委托才能获取双倍好感度**
- **在好友的尘歌壶内,使用历练点完成每日委托获取双倍好感度**
- **需保持队伍为4人队伍但可通过设置让指定位置角色离队实际出战角色可≤2人**
- 自动进入好友的尘歌壶
- 支持指定特定好友
- 可让指定角色离队确保队伍人数≤2人双倍好感度必要条件
- 支持依次申请多个好友尘歌壶
- 可让指定位置角色离队,确保实际出战角色符合需求
5. **自动检查是否可以使用历练点完成4个任务**
- 如果运行时未识别到 完成所有任務,不领取历练点奖励
6. **前往指定的冒险家协会领取奖励**
- 领取历练点奖励后,前往冒险家协会领取奖励
- 未识别到 完成所有任務時,會跳過领取奖励
- 預計的前往领取奖励的冒险家协会地区為 : 蒙德
- 推荐設置為枫丹
- 如果运行时未识别到 完成4个任务,不领取历练点奖励
6. **自动前往冒险家协会领取奖励**
- 领取历练点奖励后,自动前往指定地区的冒险家协会领取每日委托奖励
- 支持多个地区选择(蒙德、璃月、稻妻、须弥、枫丹、挪德卡莱等)
- 自动进行对话交互,完成奖励领取
## 参数设置说明
### 基本设置
| 说明 | 默认值 | 示例 |
|------|--------|------|
|需要领取好感的队伍名称(不填则不切换队伍) | 无 | "好感队" |
|关闭前往七天神像切换队伍 | 未勾选 | 勾选后不传送到神像 |
|指定星期几执行(","分隔)<br>输入"0"为每天执行 | "0" | "1,3,5"(周一、三、五执行) |
|直接使用历练点完成每日委托<br>(全角色满好感时推荐启用) | 已勾选 | 勾选后不获取双倍好感 |
| 需要领取好感的队伍名称(不填则不切换队伍) | 无 | "好感队" |
| 关闭前往七天神像切换队伍 | 未勾选 | 勾选后不传送到神像 |
| 指定星期几执行(","分隔)<br>输入"0"为每天执行 | "0" | "1,3,5"(周一、三、五执行) |
| 直接使用历练点完成每日委托<br>(全角色满好感时推荐启用) | 已勾选 | 勾选后不获取双倍好感 |
| 前往指定地区的冒险家协会领取奖励 | "蒙德" | "枫丹" |
### 尘歌壶双倍好感设置
|说明 | 示例 |
@@ -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人队伍

View File

@@ -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(`交互或拾取:"领取完成"`);
}
})();

View File

@@ -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": [