mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-30 05:49:51 +08:00
feat(config): 添加高阶过滤功能并限制连续分隔符数量
- 实现了 limitConsecutiveSeparators 函数来限制连续分隔符不超过3个 - 在模板匹配设置中应用分隔符数量限制逻辑 - 更新 README.md 添加 high_level_filtering 配置项说明 - 添加高阶过滤语法说明文档和使用示例 - 修改 settings.json 中高阶过滤标签提示查看文档 - 优化配置界面中的高阶过滤功能描述
This commit is contained in:
@@ -185,29 +185,47 @@ sequenceDiagram
|
||||
|
||||
## 重要配置项一览(settings.json)
|
||||
|
||||
| 配置项 | 类型 | 主要作用 | 推荐默认/示例 |
|
||||
|---------------------|-----|-------------------------------------------------------------|--------------------------------------------|
|
||||
| config_uid | 复选框 | 当前配置uid:{无}(仅仅显示配置uid无其他作用) | xxx |
|
||||
| key | 文本 | 脚本密钥 | xxx |
|
||||
| config_run | 下拉 | 运行模式:刷新 / 加载 / 执行 | 刷新 → 首次,加载 → 日常 |
|
||||
| refresh_record | 复选框 | 配置模式-刷新-清空运行记录 | |
|
||||
| refresh_record_mode | 下拉 | 清空运行记录模式 全部 | UID | |
|
||||
| loading_level | 文本 | 路径层级深度(≥1,实际支持更高深度) | 2 或 3 |
|
||||
| 配置项 | 类型 | 主要作用 | 推荐默认/示例 |
|
||||
|---------------------|-----|-------------------------------------------------|--------------------------------------------|
|
||||
| config_uid | 复选框 | 当前配置uid:{无}(仅仅显示配置uid无其他作用) | xxx |
|
||||
| key | 文本 | 脚本密钥 | xxx |
|
||||
| config_run | 下拉 | 运行模式:刷新 / 加载 / 执行 | 刷新 → 首次,加载 → 日常 |
|
||||
| refresh_record | 复选框 | 配置模式-刷新-清空运行记录 | |
|
||||
| refresh_record_mode | 下拉 | 清空运行记录模式 全部 | UID | |
|
||||
| high_level_filtering | 文本 | 高阶过滤 | |
|
||||
| loading_level | 文本 | 路径层级深度(≥1,实际支持更高深度) | 2 或 3 |
|
||||
| the_layer | 复选框 | 只加载指定层级 | |
|
||||
| order_rules | 文本 | 执行顺序规则(可留空)<br>语法:父文件夹名称->文件夹名称=顺序整数,...<br>示例:食材与炼金->晶蝶=1, | ""(默认按扫描顺序)或 "食材与炼金->晶蝶=1,pathing->地方特产=2" |
|
||||
| config_white_list | 文本 | 白名单(逗号分隔) | 晶蝶,特产 |
|
||||
| config_black_list | 文本 | 黑名单(优先级更高) | 其他,锄地专区,周本 |
|
||||
| open_cd | 复选框 | 启用冷却控制 | 建议开启 |
|
||||
| http_api | 文本 | Cron 解析服务地址 | http://127.0.0.1:8081/... |
|
||||
| real_time_missions | 多选 | 实时辅助(对话/战斗/拾取) | 至少开「自动拾取」 |
|
||||
| choose_best | 复选框 | 择优模式(优先未跑/最久未跑路径) | 推荐开启 |
|
||||
| mode | 下拉 | 全自动 / 半自动 | 全自动(日常) |
|
||||
| auto_semi_key_mode | 下拉 | 半自动快捷键行为(继续/跳过) | 继续运行 |
|
||||
| auto_key | 文本 | 半自动干预快捷键 | F10 / F11(避免冲突) |
|
||||
| team_fight | 文本 | 战斗/通用行走队伍名称 | 必须填写 |
|
||||
| team_hoe_ground | 文本 | 锄地特化队伍配置(语法:父文件夹->子文件夹=队伍名,...) | 敌人与魔物->蕈兽=蕈兽队 |
|
||||
| team_seven_elements | 文本 | 七元素队伍(矿物,火,水,风,雷,草,冰,岩) | 按顺序填写 |
|
||||
| is_debug | 复选框 | 开发者模式(详细日志) | 调试时开启 |
|
||||
| config_white_list | 文本 | 白名单(逗号分隔) | 晶蝶,特产 |
|
||||
| config_black_list | 文本 | 黑名单(优先级更高) | 其他,锄地专区,周本 |
|
||||
| open_cd | 复选框 | 启用冷却控制 | 建议开启 |
|
||||
| http_api | 文本 | Cron 解析服务地址 | http://127.0.0.1:8081/... |
|
||||
| real_time_missions | 多选 | 实时辅助(对话/战斗/拾取) | 至少开「自动拾取」 |
|
||||
| choose_best | 复选框 | 择优模式(优先未跑/最久未跑路径) | 推荐开启 |
|
||||
| mode | 下拉 | 全自动 / 半自动 | 全自动(日常) |
|
||||
| auto_semi_key_mode | 下拉 | 半自动快捷键行为(继续/跳过) | 继续运行 |
|
||||
| auto_key | 文本 | 半自动干预快捷键 | F10 / F11(避免冲突) |
|
||||
| team_fight | 文本 | 战斗/通用行走队伍名称 | 必须填写 |
|
||||
| team_hoe_ground | 文本 | 锄地特化队伍配置(语法:父文件夹->子文件夹=队伍名,...) | 敌人与魔物->蕈兽=蕈兽队 |
|
||||
| team_seven_elements | 文本 | 七元素队伍(矿物,火,水,风,雷,草,冰,岩) | 按顺序填写 |
|
||||
| is_debug | 复选框 | 开发者模式(详细日志) | 调试时开启 |
|
||||
|
||||
|
||||
|
||||
## 语法说明
|
||||
- high_level_filtering 高阶过滤
|
||||
```text
|
||||
语法:xxx->xxx-> ..... 无限制
|
||||
|
||||
实例:pathing\地方特产\
|
||||
语法:地方特产
|
||||
实例:pathing\地方特产\枫丹\
|
||||
语法:地方特产->枫丹
|
||||
实例:pathing\地方特产\枫丹\幽光星星\
|
||||
语法:地方特产->枫丹->幽光星星
|
||||
实例:pathing\地方特产\枫丹\幽光星星\幽光星星@jbcaaa\
|
||||
语法:地方特产->枫丹->幽光星星->幽光星星@jbcaaa
|
||||
```
|
||||
- 语法风格请保持一致 ,否则会导致路径会出现异常运行 如使用 地产->nam=1 同时保持 地产->nam=队伍名1 则路径会出现异常运行
|
||||
- order_rules 执行顺序规则
|
||||
1. `rootName` 根目录下层文件夹名称,`parentName` 父目录名称,`name` 文件夹名称
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
{
|
||||
"name": "high_level_filtering",
|
||||
"type": "input-text",
|
||||
"label": "高阶过滤<配置模式 加载 生效>",
|
||||
"label": "高阶过滤{语法看文档}<配置模式 加载 生效>",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
|
||||
@@ -593,7 +593,37 @@ async function loadUidSettingsMap(uidSettingsMap) {
|
||||
templateMatchSettings[templateMatchSettings.length - 1]?.type === "separator") {
|
||||
templateMatchSettings.pop();
|
||||
}
|
||||
/**
|
||||
* 限制连续的分隔符数量不超过3个
|
||||
* @param {Array} settings - 设置项数组
|
||||
* @returns {Array} 处理后的设置项数组
|
||||
*/
|
||||
function limitConsecutiveSeparators(settings) {
|
||||
if (!Array.isArray(settings) || settings.length === 0) {
|
||||
return settings;
|
||||
}
|
||||
|
||||
const result = [];
|
||||
let consecutiveSeparatorCount = 0;
|
||||
|
||||
for (const item of settings) {
|
||||
if (item?.type === "separator") {
|
||||
consecutiveSeparatorCount++;
|
||||
|
||||
// 只有当连续分隔符数量不超过3个时才添加
|
||||
if (consecutiveSeparatorCount <= 3) {
|
||||
result.push(item);
|
||||
}
|
||||
} else {
|
||||
// 遇到非分隔符时重置计数
|
||||
consecutiveSeparatorCount = 0;
|
||||
result.push(item);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
templateMatchSettings = limitConsecutiveSeparators(templateMatchSettings)
|
||||
// uidSettings.push(levelSettings)
|
||||
// 将更新后的设置写入配置文件
|
||||
file.writeTextSync(manifest.settings_ui, JSON.stringify(templateMatchSettings))
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
{
|
||||
"name": "high_level_filtering",
|
||||
"type": "input-text",
|
||||
"label": "高阶过滤<配置模式 加载 生效>",
|
||||
"label": "高阶过滤{语法看文档}<配置模式 加载 生效>",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user