mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-15 03:23:22 +08:00
JS : 自动购买每天&3天&每周刷新食材 3.0 (#2752)
* JS : 自动购买每天&3天&每周刷新食材 2.0.1 補充月之四新NPC * Delete repo/js/自动购买每天&3天&每周刷新食材 directory * 自动购买每天&3天&每周刷新食材 改用input-text輸入要買商品 減少頁面長度 * 調整說明
This commit is contained in:
@@ -1,248 +1,197 @@
|
||||
# 自动购买每天&3天&每周刷新食材 - 使用说明
|
||||
# 自动购买商品 - 使用说明
|
||||
|
||||
## 功能说明
|
||||
## 🚀 快速开始
|
||||
|
||||
这个脚本可以自动购买原神游戏中各个商人的食材,支持三种刷新周期:
|
||||
- **每天刷新食材**:每天凌晨4点刷新
|
||||
- **3天刷新食材**:每3天刷新一次
|
||||
- **每周刷新食材**:每周刷新,可指定购买日
|
||||
- **智能记录系统**:避免重复购买,只购买刷新后的商品
|
||||
### 1. 基本设置
|
||||
1. **账号名**:填写账号名,用于区分不同账号的购买记录
|
||||
2. **要购买的商品**:输入商品名称,用空格分隔(支援的商人与商品请查看下方表格)
|
||||
```
|
||||
示例:盐 胡椒 螃蟹 圣水 松茸 沉玉仙茗 蟹黄
|
||||
```
|
||||
3. **每周商品购买方式**:
|
||||
- 0:跟随游戏系统周期自动判断
|
||||
- 1-7:指定周几购买(1=周一,7=周日)
|
||||
4. **要禁用的NPC**:不想购买的NPC,用空格分隔
|
||||
```
|
||||
示例:阿扎莱 皮托
|
||||
```
|
||||
5. **无视购买记录强制购买**:开启后会忽略购买记录,重新购买所有商品
|
||||
6. **调试模式**:开启后显示详细执行日志
|
||||
|
||||
## 快速开始
|
||||
### 2. 智能购买记录系统
|
||||
脚本会自动记录购买时间,避免重复购买:
|
||||
- **每天商品**:购买后24小时(凌晨4点)刷新
|
||||
- **3天商品**:购买后3天刷新
|
||||
- **每周商品**:购买后7天刷新(可设置购买日)
|
||||
|
||||
### 1. 准备工作
|
||||
- 游戏分辨率:**1920×1080 解析度**
|
||||
- 游戏内时间需可调整(非多人模式)
|
||||
- 准备足够的摩拉购买食材
|
||||
购买记录保存在:`record/你填的账号名/records.json`
|
||||
- 下次执行时只购买已刷新商品
|
||||
- 可通过"无视购买记录强制购买"选项重置
|
||||
|
||||
### 2. 首次使用
|
||||
1. 打开脚本设置界面
|
||||
2. 勾选要购买的食材
|
||||
3. 设置每周食材购买日
|
||||
4. 保存设置
|
||||
5. 在主界面运行脚本
|
||||
### 3. 运行脚本
|
||||
1. 确保游戏分辨率设置为 **1920×1080**
|
||||
2. 游戏角色需在单人模式
|
||||
3. 确保有足够的摩拉和背包空间
|
||||
4. 运行脚本即可自动购买
|
||||
|
||||
## 设置说明
|
||||
- **账号名**:区分不同账号的记录
|
||||
- **无视记录强制购买**:不推荐开启,会重复购买
|
||||
- **记录调试模式**:显示详细日志信息
|
||||
- **禁用NPC功能**:可以输入要禁用的NPC名称(空格分隔):
|
||||
```
|
||||
布兰琪 东升 莎拉
|
||||
```
|
||||
## 📋 商人与商品支持表
|
||||
|
||||
禁用后,脚本会跳过这些NPC,不会前往购买。
|
||||
### 如何查看支持的商品?
|
||||
- **查看本文件下方表格**:包含所有支持的商人与商品
|
||||
- **查看`assets/data/foods.json`**:所有商品的中文名称
|
||||
|
||||
### 食材设置
|
||||
食材分为三类,可以单独选择是否购买:
|
||||
1. **每天刷新食材** - 每天凌晨4点刷新
|
||||
2. **3天刷新食材** - 每3天刷新一次
|
||||
3. **每周刷新食材** - 每周固定週一购买
|
||||
### 商人信息总览
|
||||
| 所在地 | 商人名 | 每天刷新商品 | 3天刷新商品 | 每周刷新商品 | 备注 |
|
||||
|--------|--------|-------------|------------|-------------|------|
|
||||
| 蒙德-清泉镇 | 神奇的霍普金斯 | 圣水 | - | - | 白天出现 |
|
||||
| 蒙德-蒙德城 | 布兰琪 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | 晚上出现 |
|
||||
| 蒙德-蒙德城 | 莎拉 | - | - | 蟹黄 | - |
|
||||
| 璃月-璃月港 | 东升 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、杏仁、盐、胡椒、番茄 | - | - | |
|
||||
| 璃月-璃月港 | 卯师父 | 鱼肉、螃蟹 | 胡萝卜、松茸、绝云椒椒 | - | |
|
||||
| 璃月-璃月港 | 老孙 | 鱼肉、螃蟹、虾仁 | - | - | 白天出现 |
|
||||
| 璃月-璃月港 | 老高 | 鱼肉 | - | - | |
|
||||
| 璃月-璃月港 | 阿桂 | - | 清心、琉璃袋 | - | 晚上出现 |
|
||||
| 璃月-望舒客栈 | 菲尔戈黛特 | - | 松茸、琉璃袋 | - | |
|
||||
| 璃月-遗珑埠 | 丰泰 | - | 沉玉仙茗、琉璃袋、绝云椒椒 | 蟹黄 | |
|
||||
| 璃月-遗珑埠 | 连芳 | - | 沉玉仙茗 | - | |
|
||||
| 稻妻-离岛 | 小畑 | 螃蟹、鱼肉、虾仁 | - | - | |
|
||||
| 稻妻-稻妻城 | 葵 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
|
||||
| 稻妻-稻妻城 | 志村勘兵卫 | 鱼肉、螃蟹 | 堇瓜 | - | |
|
||||
| 稻妻-海祇岛 | 清子 | - | - | 牛奶、番茄、土豆、小麦、豆腐 | |
|
||||
| 须弥-须弥城 | 朱特 | - | 帕蒂沙兰 | - | |
|
||||
| 须弥-奥摩斯港 | 布特罗斯 | 鱼肉、螃蟹、虾仁 | - | - | |
|
||||
| 须弥-须弥城 | 珀姆 | 鱼肉、螃蟹、虾仁 | - | - | |
|
||||
| 须弥-须弥城 | 哈马维 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
|
||||
| 须弥-须弥城 | 兰巴德 | 鱼肉、螃蟹 | - | - | 独立地图 |
|
||||
| 须弥-须弥城 | 恩忒卡 | 咖啡豆 | - | - | 独立地图 |
|
||||
| 须弥-阿如村 | 阿扎莱 | 鱼肉、兽肉、秃秃豆 | - | - | 晚上出现 |
|
||||
| 须弥-奥摩斯港 | 巴巴克 | - | 清心、琉璃袋 | - | |
|
||||
| 枫丹-枫丹廷 | 布希柯 | 枫达、洋葱、牛奶、卷心菜、土豆、小麦、秃秃豆、杏仁、发酵果实汁、盐、胡椒、番茄 | - | - | |
|
||||
| 枫丹-枫丹廷 | 阿鲁埃 | 咖啡豆、枫达 | - | - | |
|
||||
| 枫丹-白淞镇 | 安特曼 | 鱼肉、螃蟹 | 海露花、汐藻 | - | |
|
||||
| 枫丹-锈舵酒馆 | 皮托 | 牛奶 | - | 培根、火腿、香肠、奶酪 | |
|
||||
| 纳塔-圣火竞技场 | 钦特利 | - | 青蜜莓、苦种 | - | |
|
||||
| 纳塔-圣火竞技场 | 夏安卡 | - | - | 蟹黄 | |
|
||||
| 纳塔-圣火竞技场 | 布纳马 | 盐、胡椒、小麦、洋葱、牛奶、番茄、卷心菜、土豆、秃秃豆 | - | - | |
|
||||
| 挪德卡莱-那夏镇 | 采若 | 黑麦、盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | |
|
||||
| 挪德卡莱-皮拉米达城 | 科菲策 | 牛奶、咖啡豆 | 微光角菌、琉鳞石 | - | |
|
||||
|
||||
### 购买日设置
|
||||
- **0**:跟随游戏系统周期自动判断
|
||||
- **1-7**:指定週几购买(1=週一,7=週日)
|
||||
## 🔧 添加新商品
|
||||
|
||||
## 调试模式
|
||||
### 1. 添加商品图片
|
||||
1. 截图商品图标,尺寸建议 90×90 像素
|
||||
2. 保存为 PNG 格式,放在 `assets/images/` 目录下
|
||||
3. 文件名建议使用英文或拼音,如:`new_food.png`
|
||||
|
||||
开启`记录调试模式`后,会显示详细执行信息:
|
||||
|
||||
```
|
||||
[调试] 开始处理NPC: 布兰琪
|
||||
[调试] NPC当前记录: {npcname: "布兰琪", 1d_time: "2024-12-10T04:00:00+08:00"}
|
||||
[调试] 购买判断结果:
|
||||
[调试] 1天商品: 盐, 胡椒, 洋葱
|
||||
[调试] 开始购买第 1 页
|
||||
[调试] 尝试购买: 盐
|
||||
[调试] 找到物品: 盐 位置(100,200,90,90)
|
||||
购买成功: 盐
|
||||
交互或拾取:"盐"
|
||||
```
|
||||
|
||||
```json
|
||||
## 数据文件说明
|
||||
|
||||
脚本使用外部数据文件,方便维护:
|
||||
|
||||
### 食材数据 (assets/data/foods.json)
|
||||
```json
|
||||
{
|
||||
"盐": {
|
||||
"id": "盐",
|
||||
"name": "盐",
|
||||
"file": "assets/images/salt.png"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### NPC数据 (assets/data/npcs.json)
|
||||
```json
|
||||
{
|
||||
"布兰琪": {
|
||||
"name": "布兰琪",
|
||||
"enable": true,
|
||||
"page": 2,
|
||||
"time": "night",
|
||||
"path": "assets/path/蒙德-蒙德城-布兰琪.json",
|
||||
"_1d_foods": ["盐", "胡椒", "洋葱"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 图片要求
|
||||
- 尺寸:90×90像素
|
||||
- 格式:PNG
|
||||
- 路径:assets/images/
|
||||
|
||||
### 路径文件
|
||||
- 格式:JSON
|
||||
- 路径:assets/path/
|
||||
|
||||
## 添加新食材
|
||||
|
||||
### 1. 添加食材图片
|
||||
将食材截图保存为`assets/images/新食材.png`
|
||||
- 食材图片:85×85像素PNG格式
|
||||
|
||||
### 2. 添加食材设置
|
||||
在`settings.json`中添加:
|
||||
```json
|
||||
{
|
||||
"name": "新食材",
|
||||
"type": "checkbox",
|
||||
"label": "新食材",
|
||||
"default": false
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 添加食材数据
|
||||
在`assets/data/foods.json`中添加:
|
||||
```json
|
||||
"新食材": {
|
||||
"id": "新食材",
|
||||
"name": "新食材",
|
||||
"file": "assets/images/新食材.png"
|
||||
}
|
||||
```
|
||||
|
||||
### 4. 添加NPC数据
|
||||
在`assets/data/npcs.json`中为对应的NPC添加:
|
||||
```json
|
||||
"_1d_foods": ["新食材"] // 根据刷新周期选择
|
||||
```
|
||||
|
||||
## 如何添加新的NPC商人
|
||||
### 准备工作
|
||||
1. 路径文件:錄製前往NPC的路径JSON文件
|
||||
2. 命名规则:`国家-地区-NPC名称.json`
|
||||
### 添加步骤
|
||||
|
||||
#### 1. 添加食材数据(如未添加)
|
||||
### 2. 添加商品数据
|
||||
在 `assets/data/foods.json` 中添加:
|
||||
|
||||
```json
|
||||
"新食材": {
|
||||
"id": "新食材",
|
||||
"name": "新食材",
|
||||
"file": "assets/images/新食材.png"
|
||||
"new_food": {
|
||||
"id": "new_food",
|
||||
"name": "新商品",
|
||||
"file": "assets/images/new_food.png"
|
||||
}
|
||||
```
|
||||
|
||||
在 `settings.json` 对应区域添加食材选项。
|
||||
### 3. 添加到商人
|
||||
在 `assets/data/npcs.json` 中找到对应商人,添加到相应的商品列表中:
|
||||
|
||||
#### 2. 添加NPC数据
|
||||
```json
|
||||
"_1d_foods": ["新商品"] // 每天刷新商品
|
||||
"_3d_foods": ["新商品"] // 3天刷新商品
|
||||
"_7d_foods": ["新商品"] // 每周刷新商品
|
||||
```
|
||||
|
||||
### 4. 更新商人与商品支持表
|
||||
将新商品添加到本文件的商人与商品支持表中,方便其他用户查看。
|
||||
|
||||
## 🆕 添加新商人
|
||||
|
||||
### 1. 录制路径
|
||||
1. 使用路径录制工具录制前往商人的路径
|
||||
2. 保存为 JSON 文件,命名格式:`地区-位置-商人名.json`
|
||||
3. 放在 `assets/path/` 目录下
|
||||
|
||||
### 2. 添加商人数据
|
||||
在 `assets/data/npcs.json` 中添加:
|
||||
|
||||
```json
|
||||
"新NPC名称": {
|
||||
"name": "新NPC名称",
|
||||
"enable": true,
|
||||
"page": 2,
|
||||
"time": "any",
|
||||
"path": "assets/path/国家-地区-新NPC名称.json",
|
||||
"_1d_foods": ["食材1", "食材2"],
|
||||
"_3d_foods": ["食材3"],
|
||||
"_7d_foods": ["食材4"]
|
||||
"new_npc": {
|
||||
"name": "新商人名",
|
||||
"enable": true,
|
||||
"page": 2, // 商店总页数
|
||||
"time": "any", // any/day/night
|
||||
"path": "assets/path/地区-位置-新商人名.json",
|
||||
"_1d_foods": ["商品1", "商品2"], // 每天刷新
|
||||
"_3d_foods": ["商品3"], // 3天刷新
|
||||
"_7d_foods": ["商品4"] // 每周刷新
|
||||
}
|
||||
```
|
||||
|
||||
**参数说明**:
|
||||
- `page`:商店总页数
|
||||
- `time`:`any`(任何时间)/`day`(白天)/`night`(晚上)
|
||||
- `_1d_foods`:每天刷新食材列表
|
||||
- `_3d_foods`:3天刷新食材列表
|
||||
- `_7d_foods`:每周刷新食材列表
|
||||
### 3. 参数说明
|
||||
- `page`: 商店的总页数
|
||||
- `time`: 商人出现时间
|
||||
- `any`: 全天出现
|
||||
- `day`: 白天出现
|
||||
- `night`: 晚上出现
|
||||
- `path`: 路径文件位置
|
||||
|
||||
#### 3. 放置相关文件
|
||||
- 食材图片:`assets/images/新食材.png`
|
||||
- 路径文件:`assets/path/国家-地区-NPC名称.json`
|
||||
### 4. 更新商人与商品支持表
|
||||
将新商人添加到本文件的商人与商品支持表中。
|
||||
|
||||
#### 4. 测试验证
|
||||
1. 重新加载脚本设置
|
||||
2. 勾选新食材
|
||||
3. 运行脚本测试购买流程
|
||||
4. 检查日志确认执行成功
|
||||
## ❓ 常见问题
|
||||
|
||||
### 注意事项
|
||||
- NPC名称需与路径文件名称对应
|
||||
- 食材名称需与foods.json中的name一致
|
||||
- 首次添加建议开启调试模式检查
|
||||
### Q: 脚本不购买任何商品?
|
||||
A: 检查:
|
||||
1. 是否在设置中填写了要购买的商品
|
||||
2. 商品名称是否正确(参考上方表格)
|
||||
3. 游戏分辨率是否为 1920×1080
|
||||
4. 角色是否在单人模式
|
||||
5. 是否有购买记录导致商品未刷新
|
||||
|
||||
### Q: 如何知道支持哪些商品名称?
|
||||
A: 查看:
|
||||
1. 本文件中的"商人与商品支持表"
|
||||
2. `assets/data/foods.json` 文件中的 `name` 字段
|
||||
3. 运行脚本时的日志输出会显示"用户启用了以下食材"
|
||||
|
||||
## 常见问题
|
||||
### Q: 为什么跳过某些商人?
|
||||
A: 可能原因:
|
||||
1. 该商人没有你要购买的商品
|
||||
2. 商人在禁用列表中
|
||||
3. 购买记录显示商品还未到刷新时间
|
||||
|
||||
### 1. 脚本不购买食材
|
||||
- 检查游戏是否在主界面
|
||||
- 确认解析度设定正确(1920×1080)
|
||||
- 检查NPC是否在正确时间出现(白天/晚上)
|
||||
- 查看是否有足够的摩拉
|
||||
### Q: 如何重置购买记录?
|
||||
A: 有几种方法:
|
||||
1. 启用"无视购买记录强制购买"选项
|
||||
2. 删除 `record/你的账号名/records.json` 文件
|
||||
3. 等待商品自然刷新
|
||||
|
||||
### 2. 记录不更新
|
||||
- 检查`record/账号名/records.json`文件权限
|
||||
- 开启调试模式查看详细日志
|
||||
### Q: 每天什么时候刷新?
|
||||
A: 游戏内的刷新时间是**每天凌晨4点**。脚本会考虑这个时间点:
|
||||
- 如果当前时间在4点前,视为前一天
|
||||
- 购买记录基于4点刷新时间计算
|
||||
|
||||
### 3. 图片识别失败
|
||||
- 确认图片尺寸为90×90
|
||||
- 检查图片路径是否正确
|
||||
- 尝试重新截图
|
||||
## 📝 注意事项
|
||||
|
||||
### 4. 路径执行失败
|
||||
- 确认路径文件存在
|
||||
- 检查NPC是否被障碍物阻挡
|
||||
- 尝试重新录制路径
|
||||
|
||||
## 记录系统
|
||||
|
||||
脚本会自动记录购买时间,保存在`record/账号名/records.json`:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"npcname": "布兰琪",
|
||||
"1d": ["盐", "胡椒", "洋葱"],
|
||||
"1d_time": "2024-12-10T04:00:00+08:00",
|
||||
"3d": [],
|
||||
"3d_time": null,
|
||||
"7d": [],
|
||||
"7d_time": null
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 脚本运行时不要操作游戏
|
||||
2. 确保背包有足够空间
|
||||
3. 每个NPC购买完成后会返回主界面
|
||||
4. 脚本会自动调整游戏时间(白天/晚上)
|
||||
5. 每周食材购买日设置后,只在指定日期购买4. 逐一添加食材测试
|
||||
1. **游戏时间**:脚本会自动调整白天/晚上时间
|
||||
2. **背包空间**:确保有足够空间购买商品
|
||||
3. **摩拉**:确保有足够的摩拉
|
||||
4. **记录系统**:购买记录保存在 `record/账号名/` 目录下
|
||||
5. **多人模式**:脚本只能在单人模式下运行
|
||||
6. **刷新时间**:基于游戏服务器时间(GMT+8),每天4点刷新
|
||||
|
||||
## 🤝 贡献指南
|
||||
|
||||
欢迎提交新的食材配置!请遵循以下格式:
|
||||
欢迎提交新的商人和商品配置!
|
||||
|
||||
1. **提交新的NPC**:包含路径文件和图片
|
||||
2. **提交新的食材**:包含图片和设定
|
||||
3. **问题回报**:提供详细的重现步骤和日志
|
||||
1. **提交新的商人**:包含路径文件和商人数据
|
||||
2. **提交新的商品**:包含图片和商品数据
|
||||
3. **更新文档**:记得更新本README中的商人信息表
|
||||
4. **问题反馈**:提供详细的重现步骤和日志
|
||||
|
||||
---
|
||||
|
||||
> 注意:本脚本仅供学习与研究使用,请遵守游戏使用条款。
|
||||
> 注意:本脚本仅供学习与研究使用,请遵守游戏使用条款。
|
||||
```
|
||||
|
||||
@@ -119,10 +119,10 @@
|
||||
"name": "沉玉仙茗",
|
||||
"file": "assets/images/沉玉仙茗.png"
|
||||
},
|
||||
"青蜜梅": {
|
||||
"id": "青蜜梅",
|
||||
"name": "青蜜梅",
|
||||
"file": "assets/images/青蜜梅.png"
|
||||
"青蜜莓": {
|
||||
"id": "青蜜莓",
|
||||
"name": "青蜜莓",
|
||||
"file": "assets/images/青蜜莓.png"
|
||||
},
|
||||
"苦种": {
|
||||
"id": "苦种",
|
||||
@@ -163,11 +163,20 @@
|
||||
"id": "黑麦",
|
||||
"name": "黑麦",
|
||||
"file": "assets/images/黑麦.png"
|
||||
}
|
||||
,
|
||||
"絶云椒椒": {
|
||||
"id": "絶云椒椒",
|
||||
"name": "絶云椒椒",
|
||||
"file": "assets/images/絶云椒椒.png"
|
||||
},
|
||||
"绝云椒椒": {
|
||||
"id": "绝云椒椒",
|
||||
"name": "绝云椒椒",
|
||||
"file": "assets/images/绝云椒椒.png"
|
||||
},
|
||||
"微光角菌": {
|
||||
"id": "微光角菌",
|
||||
"name": "微光角菌",
|
||||
"file": "assets/images/微光角菌.png"
|
||||
},
|
||||
"琉鳞石": {
|
||||
"id": "琉鳞石",
|
||||
"name": "琉鳞石",
|
||||
"file": "assets/images/琉鳞石.png"
|
||||
}
|
||||
}
|
||||
@@ -38,7 +38,7 @@
|
||||
"time": "any",
|
||||
"path": "assets/path/璃月-璃月港-卯师父.json",
|
||||
"_1d_foods": ["鱼肉", "螃蟹"],
|
||||
"_3d_foods": ["胡萝卜", "松茸", "絶云椒椒"]
|
||||
"_3d_foods": ["胡萝卜", "松茸", "绝云椒椒"]
|
||||
},
|
||||
"UncleSun": {
|
||||
"name": "老孙",
|
||||
@@ -78,7 +78,7 @@
|
||||
"page": 2,
|
||||
"time": "any",
|
||||
"path": "assets/path/璃月-遗珑埠-丰泰.json",
|
||||
"_3d_foods": ["沉玉仙茗", "琉璃袋", "絶云椒椒"],
|
||||
"_3d_foods": ["沉玉仙茗", "琉璃袋", "绝云椒椒"],
|
||||
"_7d_foods": ["蟹黃"]
|
||||
},
|
||||
"连芳": {
|
||||
@@ -95,7 +95,7 @@
|
||||
"page": 1,
|
||||
"time": "any",
|
||||
"path": "assets/path/稻妻-离岛-小畑.json",
|
||||
"_1d_foods": ["螃蟹"]
|
||||
"_1d_foods": ["螃蟹","鱼肉", "虾仁"]
|
||||
},
|
||||
"Aoi": {
|
||||
"name": "葵",
|
||||
@@ -229,7 +229,7 @@
|
||||
"page": 1,
|
||||
"time": "any",
|
||||
"path": "assets/path/纳塔-圣火竞技场-钦特利.json",
|
||||
"_3d_foods": ["青蜜梅", "苦种"]
|
||||
"_3d_foods": ["青蜜莓", "苦种"]
|
||||
},
|
||||
"夏安卡": {
|
||||
"name": "夏安卡",
|
||||
@@ -256,5 +256,16 @@
|
||||
"path": "assets/path/挪德卡莱-那夏镇-采若.json",
|
||||
"_1d_foods": ["黑麦", "盐", "胡椒", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "小麦"]
|
||||
}
|
||||
,
|
||||
"科菲策": {
|
||||
"name": "科菲策",
|
||||
"enable": true,
|
||||
"page": 1,
|
||||
"time": "any",
|
||||
"path": "assets/path/挪德卡莱-皮拉米达城-科菲策.json",
|
||||
"_1d_foods": ["牛奶", "咖啡豆"],
|
||||
"_3d_foods": ["微光角菌", "琉鳞石"]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
BIN
repo/js/自动购买每天&3天&每周刷新食材/assets/images/微光角菌.png
Normal file
BIN
repo/js/自动购买每天&3天&每周刷新食材/assets/images/微光角菌.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
repo/js/自动购买每天&3天&每周刷新食材/assets/images/琉鳞石.png
Normal file
BIN
repo/js/自动购买每天&3天&每周刷新食材/assets/images/琉鳞石.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
58
repo/js/自动购买每天&3天&每周刷新食材/assets/path/挪德卡莱-皮拉米达城-科菲策.json
Normal file
58
repo/js/自动购买每天&3天&每周刷新食材/assets/path/挪德卡莱-皮拉米达城-科菲策.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "",
|
||||
"name": "蜜柑魚"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768924602203,
|
||||
"map_match_method": "SIFT",
|
||||
"map_name": "Teyvat",
|
||||
"name": "挪德卡莱-皮拉米达城-科菲策",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 9452.2978515625,
|
||||
"y": 5235.1337890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 9435.392578125,
|
||||
"y": 5236.27099609375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 9432.2568359375,
|
||||
"y": 5225.869140625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 9434.470703125,
|
||||
"y": 5222.7021484375
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -116,18 +116,48 @@ function logConditional(message) {
|
||||
let foodsData = {};
|
||||
let npcData = {};
|
||||
|
||||
// 存储用户要购买的商品ID集合
|
||||
let userFoodsToBuy = new Set();
|
||||
|
||||
async function loadExternalData() {
|
||||
try {
|
||||
// 加载食材数据
|
||||
// 加载商品数据
|
||||
const foodsContent = await file.readText("assets/data/foods.json");
|
||||
foodsData = JSON.parse(foodsContent);
|
||||
logConditional(`已加载食材数据: ${Object.keys(foodsData).length} 种食材`);
|
||||
|
||||
logConditional(`已加载商品数据: ${Object.keys(foodsData).length} 种商品`);
|
||||
|
||||
// 加载NPC数据
|
||||
const npcsContent = await file.readText("assets/data/npcs.json");
|
||||
npcData = JSON.parse(npcsContent);
|
||||
logConditional(`已加载NPC数据: ${Object.keys(npcData).length} 个NPC`);
|
||||
|
||||
|
||||
// 解析用户要购买的商品列表
|
||||
const foodsInput = (settings.foodsToBuy || "").trim();
|
||||
if (foodsInput) {
|
||||
const foodNames = foodsInput.split(/\s+/);
|
||||
const enabledFoodsList = [];
|
||||
for (const foodName of foodNames) {
|
||||
// 查找商品对应的ID
|
||||
const foodEntry = Object.values(foodsData).find(
|
||||
food => food.name === foodName || food.id === foodName
|
||||
);
|
||||
if (foodEntry) {
|
||||
userFoodsToBuy.add(foodEntry.id);
|
||||
enabledFoodsList.push(foodEntry.name); // 保存商品名称用于显示
|
||||
} else {
|
||||
log.warn(`未找到商品: ${foodName}`);
|
||||
}
|
||||
}
|
||||
// 输出用户启用的商品列表
|
||||
if (enabledFoodsList.length > 0) {
|
||||
log.info(`用户启用了下列商品:${enabledFoodsList.join(", ")}`);
|
||||
} else {
|
||||
log.warn("用户未启用任何商品");
|
||||
}
|
||||
} else {
|
||||
log.warn("用户未指定要购买的商品");
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (error) {
|
||||
log.error(`加载外部数据失败: ${error.message}`);
|
||||
@@ -135,6 +165,34 @@ async function loadExternalData() {
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 辅助函数:过滤用户要购买的商品 ====================
|
||||
function filterUserFoods(foodList) {
|
||||
if (!foodList || !Array.isArray(foodList)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return foodList.filter(food => {
|
||||
// 查找商品对应的ID
|
||||
const foodEntry = Object.values(foodsData).find(
|
||||
f => f.name === food || f.id === food
|
||||
);
|
||||
|
||||
if (!foodEntry) {
|
||||
if (recordDebug) {
|
||||
log.info(`[调试] 商品列表中未找到: ${food}`);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查是否在用户要购买的商品集合中
|
||||
const shouldBuy = userFoodsToBuy.has(foodEntry.id);
|
||||
if (recordDebug && shouldBuy) {
|
||||
log.info(`[调试] 用户选择购买: ${foodEntry.name} (ID: ${foodEntry.id})`);
|
||||
}
|
||||
return shouldBuy;
|
||||
});
|
||||
}
|
||||
|
||||
// ==================== 辅助函数:获取调整后的星期几(1-7,周一为1) ====================
|
||||
function getAdjustedDayOfWeek() {
|
||||
const now = new Date();
|
||||
@@ -190,10 +248,10 @@ let followSystem = false;
|
||||
if (AKFValue === 0) {
|
||||
// 0 表示跟随系统判定
|
||||
followSystem = true;
|
||||
log.info("7天食材购买: 跟随系统判定");
|
||||
log.info("7天商品购买: 跟随系统判定");
|
||||
} else {
|
||||
AFKDay = AKFValue === 7 ? 0 : AKFValue;
|
||||
log.info(`7天食材购买: 每周${AFKDay === 0 ? "日" : AFKDay}购买`);
|
||||
log.info(`7天商品购买: 每周${AFKDay === 0 ? "日" : AFKDay}购买`);
|
||||
}
|
||||
|
||||
// 获取账号记录路径
|
||||
@@ -294,26 +352,26 @@ function updateNpcRecord(records, npcName, refreshType, purchasedItems) {
|
||||
// 3天商品:基于基准日的3天周期计算
|
||||
// 基准时间:2025-08-09 04:00 GMT+8 (转换为本地时间)
|
||||
const baseTime = new Date(2025, 7, 9, 4, 0, 0); // 2025-08-09 04:00
|
||||
|
||||
|
||||
// 调整当前时间到4点基准
|
||||
const adjustedNow = new Date(now);
|
||||
if (adjustedNow.getHours() < 4) {
|
||||
adjustedNow.setDate(adjustedNow.getDate() - 1);
|
||||
}
|
||||
adjustedNow.setHours(4, 0, 0, 0);
|
||||
|
||||
|
||||
// 计算距离基准日的天数
|
||||
const timeDiff = adjustedNow.getTime() - baseTime.getTime();
|
||||
const daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
|
||||
|
||||
|
||||
// 计算当前3天周期
|
||||
const currentPeriod = Math.floor(daysDiff / 3);
|
||||
|
||||
|
||||
// 下一个3天周期的开始时间
|
||||
const nextPeriod = currentPeriod + 1;
|
||||
refreshTime = new Date(baseTime);
|
||||
refreshTime.setDate(baseTime.getDate() + (nextPeriod * 3));
|
||||
|
||||
|
||||
// 确保刷新时间是04:00
|
||||
refreshTime.setHours(4, 0, 0, 0);
|
||||
} else if (refreshType === "7d") {
|
||||
@@ -372,15 +430,15 @@ function shouldBuyFoods(npc, npcRecord, currentPeriod, forceRefresh = false) {
|
||||
|
||||
if (forceRefresh) {
|
||||
// 强制刷新,但只购买已启用的商品
|
||||
if (npc._1d_foods) foodsToBuy["1d"] = filterEnabledFoods(npc._1d_foods);
|
||||
if (npc._3d_foods) foodsToBuy["3d"] = filterEnabledFoods(npc._3d_foods);
|
||||
if (npc._7d_foods) foodsToBuy["7d"] = filterEnabledFoods(npc._7d_foods);
|
||||
if (npc._1d_foods) foodsToBuy["1d"] = filterUserFoods(npc._1d_foods);
|
||||
if (npc._3d_foods) foodsToBuy["3d"] = filterUserFoods(npc._3d_foods);
|
||||
if (npc._7d_foods) foodsToBuy["7d"] = filterUserFoods(npc._7d_foods);
|
||||
return foodsToBuy;
|
||||
}
|
||||
|
||||
// 1天商品逻辑
|
||||
if (npc._1d_foods) {
|
||||
const enabledFoods = filterEnabledFoods(npc._1d_foods);
|
||||
const enabledFoods = filterUserFoods(npc._1d_foods);
|
||||
if (enabledFoods.length > 0) {
|
||||
if (!npcRecord || !npcRecord["1d_time"]) {
|
||||
// 没有记录,需要购买已启用的商品
|
||||
@@ -401,7 +459,7 @@ function shouldBuyFoods(npc, npcRecord, currentPeriod, forceRefresh = false) {
|
||||
|
||||
// 3天商品逻辑
|
||||
if (npc._3d_foods) {
|
||||
const enabledFoods = filterEnabledFoods(npc._3d_foods);
|
||||
const enabledFoods = filterUserFoods(npc._3d_foods);
|
||||
if (enabledFoods.length > 0) {
|
||||
if (!npcRecord || !npcRecord["3d_time"]) {
|
||||
// 没有记录,直接购买
|
||||
@@ -428,7 +486,7 @@ function shouldBuyFoods(npc, npcRecord, currentPeriod, forceRefresh = false) {
|
||||
|
||||
// 7天商品逻辑
|
||||
if (npc._7d_foods) {
|
||||
const enabledFoods = filterEnabledFoods(npc._7d_foods);
|
||||
const enabledFoods = filterUserFoods(npc._7d_foods);
|
||||
if (enabledFoods.length > 0) {
|
||||
if (!npcRecord || !npcRecord["7d_time"]) {
|
||||
// 没有记录,直接购买
|
||||
@@ -472,22 +530,6 @@ function shouldBuyFoods(npc, npcRecord, currentPeriod, forceRefresh = false) {
|
||||
return foodsToBuy;
|
||||
}
|
||||
|
||||
// ==================== 新增函数:过滤已启用的食材 ====================
|
||||
function filterEnabledFoods(foodList) {
|
||||
if (!foodList || !Array.isArray(foodList)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return foodList.filter(food => {
|
||||
// 检查食材是否在 settings 中被启用
|
||||
const foodId = translationList[food] || food;
|
||||
return settings[foodId] === true;
|
||||
});
|
||||
}
|
||||
|
||||
const translationList = {};
|
||||
const enableFoods = new Set([]);
|
||||
|
||||
const othrtRo = {
|
||||
"buy": {
|
||||
"name": "购买按钮",
|
||||
@@ -831,27 +873,27 @@ async function buyFoods(npcName, npcRecords, currentPeriod) {
|
||||
if (recordDebug) {
|
||||
log.info(`[调试] 尝试购买: ${item}`);
|
||||
}
|
||||
|
||||
// 将中文食材名转换为对应的英文ID
|
||||
|
||||
// 查找商品对应的ID(支持中文名和英文ID)
|
||||
let foodId = null;
|
||||
|
||||
// 首先在translationList中查找(中文名->英文ID)
|
||||
if (translationList[item]) {
|
||||
foodId = translationList[item];
|
||||
} else {
|
||||
// 如果没有找到,直接在foodsData中查找是否有中文键
|
||||
foodId = Object.keys(foodsData).find(key =>
|
||||
foodsData[key].name === item || foodsData[key].id === item
|
||||
);
|
||||
let foodName = item;
|
||||
|
||||
// 直接在foodsData中查找
|
||||
for (const [id, food] of Object.entries(foodsData)) {
|
||||
if (food.name === item || food.id === item) {
|
||||
foodId = id;
|
||||
foodName = food.name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!foodId) {
|
||||
log.warn(`未找到食材 "${item}" 的识别数据,跳过`);
|
||||
log.warn(`未找到商品 "${item}" 的识别数据,跳过`);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (!foodsData[foodId] || !foodsData[foodId].ro) {
|
||||
log.warn(`食材 "${item}" (ID: ${foodId}) 未启用或没有识别对象,跳过`);
|
||||
log.warn(`商品 "${foodName}" (ID: ${foodId}) 未启用或没有识别对象,跳过`);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -907,7 +949,7 @@ async function buyFoods(npcName, npcRecords, currentPeriod) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (purchasedFoods.length > 0) {
|
||||
log.info(`${npc.name} 购买完成,成功购买: ${purchasedFoods.join(", ")}`);
|
||||
} else {
|
||||
@@ -959,17 +1001,14 @@ async function initNpcData(records) {
|
||||
// 加载识别对象
|
||||
async function initRo() {
|
||||
try {
|
||||
// 加载识别对象
|
||||
// 加载识别对象 - 只加载用户选择的商品
|
||||
for (let [key, item] of Object.entries(foodsData)) {
|
||||
// 填充中英文对照表
|
||||
translationList[item.name] = item.id;
|
||||
// 判断启动商品、加载识别对象
|
||||
if (settings[item.id]) {
|
||||
enableFoods.add(item.id);
|
||||
// 判断是否在用户选择的商品中
|
||||
if (userFoodsToBuy.has(item.id)) {
|
||||
item.ro = RecognitionObject.TemplateMatch(file.ReadImageMatSync(item.file));
|
||||
item.ro.Threshold = 0.75;
|
||||
item.ro.Use3Channels = true;
|
||||
logConditional(`已启用食材: ${item.name} (${item.id})`);
|
||||
logConditional(`已启用商品: ${item.name} (${item.id})`);
|
||||
}
|
||||
}
|
||||
// 加载其他识别对象
|
||||
@@ -978,7 +1017,7 @@ async function initRo() {
|
||||
item.ro.Threshold = 0.85;
|
||||
}
|
||||
|
||||
logConditional(`总共启用了 ${enableFoods.size} 种食材`);
|
||||
logConditional(`总共启用了 ${userFoodsToBuy.size} 种商品`);
|
||||
return true;
|
||||
}
|
||||
catch (error) {
|
||||
@@ -992,22 +1031,22 @@ async function initRo() {
|
||||
// ==================== 初始化账号 ====================
|
||||
log.info(`当前账户: ${userName}`);
|
||||
|
||||
// ==================== 加载外部数据 ====================
|
||||
// ==================== 加载外部数据 ====================
|
||||
if (!await loadExternalData()) {
|
||||
log.error("食材或NPC数据加载失败,脚本终止");
|
||||
log.error("商品或NPC数据加载失败,脚本终止");
|
||||
return;
|
||||
}
|
||||
|
||||
// ==================== 初始化识别对象 ====================
|
||||
await initRo();
|
||||
|
||||
|
||||
logConditional("识别对象初始化完成");
|
||||
|
||||
// ==================== 加载NPC购买记录 ====================
|
||||
let npcRecords = await loadNpcRecords();
|
||||
|
||||
|
||||
logConditional(`已加载 ${npcRecords.length} 个NPC的购买记录`);
|
||||
|
||||
|
||||
if (recordDebug && npcRecords.length > 0) {
|
||||
log.info("[调试] 当前NPC记录:");
|
||||
npcRecords.forEach(record => {
|
||||
@@ -1083,7 +1122,7 @@ async function initRo() {
|
||||
}
|
||||
}
|
||||
|
||||
log.info("=== 食材购买脚本执行完成 ===");
|
||||
log.info("=== 商品购买脚本执行完成 ===");
|
||||
|
||||
} catch (error) {
|
||||
log.error(`执行时发生错误: ${error.message}`);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "自动购买每天&3天&每周刷新食材",
|
||||
"version": "2.0.0",
|
||||
"description": "自动购买每天&3天&每周刷新食材\n每天刷新食材:自动购买食材\n3天刷新食材:未到刷新日不购买该食材\n每周刷新食材:可指定每周购买食材",
|
||||
"name": "自动购买每天&3天&每周刷新商品",
|
||||
"version": "3.0.0",
|
||||
"description": "自动购买每天&3天&每周刷新商品\n每天刷新商品:自动购买商品\n3天刷新商品:未到刷新日不购买该商品\n每周刷新商品:可指定每周购买商品",
|
||||
"authors": [
|
||||
{
|
||||
"name": "蜜柑魚",
|
||||
@@ -10,7 +10,7 @@
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
"购买食材",
|
||||
"购买商品",
|
||||
"模拟点击"
|
||||
],
|
||||
"saved_files": [
|
||||
|
||||
@@ -6,219 +6,15 @@
|
||||
"default": "默认账户"
|
||||
},
|
||||
{
|
||||
"name": "ignoreRecords",
|
||||
"type": "checkbox",
|
||||
"label": "-----------------\n无视记录强制购买(不推荐)",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "recordDebug",
|
||||
"type": "checkbox",
|
||||
"label": "记录调试模式(显示详细日志)",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "disabledNpcs",
|
||||
"name": "foodsToBuy",
|
||||
"type": "input-text",
|
||||
"label": "禁用 NPC\n(多個NPC以空格隔)",
|
||||
"default": "阿扎莱 皮托"
|
||||
},
|
||||
{
|
||||
"name": "圣水",
|
||||
"type": "checkbox",
|
||||
"label": "每天刷新食材\n\n圣水",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "crab",
|
||||
"type": "checkbox",
|
||||
"label": "螃蟹",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "salt",
|
||||
"type": "checkbox",
|
||||
"label": "盐",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "pepper",
|
||||
"type": "checkbox",
|
||||
"label": "胡椒",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "onion",
|
||||
"type": "checkbox",
|
||||
"label": "洋葱",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "milk",
|
||||
"type": "checkbox",
|
||||
"label": "牛奶",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "tomato",
|
||||
"type": "checkbox",
|
||||
"label": "番茄",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "potato",
|
||||
"type": "checkbox",
|
||||
"label": "土豆",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "wheat",
|
||||
"type": "checkbox",
|
||||
"label": "小麦",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "rice",
|
||||
"type": "checkbox",
|
||||
"label": "稻米",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "shrimp",
|
||||
"type": "checkbox",
|
||||
"label": "虾仁",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "almond",
|
||||
"type": "checkbox",
|
||||
"label": "杏仁",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "cabbage",
|
||||
"type": "checkbox",
|
||||
"label": "卷心菜",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "tofu",
|
||||
"type": "checkbox",
|
||||
"label": "豆腐",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "fish",
|
||||
"type": "checkbox",
|
||||
"label": "鱼肉",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "coffeeBeans",
|
||||
"type": "checkbox",
|
||||
"label": "咖啡豆",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "glabrousBeans",
|
||||
"type": "checkbox",
|
||||
"label": "秃秃豆",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "rawMeat",
|
||||
"type": "checkbox",
|
||||
"label": "兽肉",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "fermentedJuice",
|
||||
"type": "checkbox",
|
||||
"label": "发酵果实汁",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "黑麦",
|
||||
"type": "checkbox",
|
||||
"label": "黑麦",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "松茸",
|
||||
"type": "checkbox",
|
||||
"label": "-----------------\n3天刷新食材\n\n松茸",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "huMengbu",
|
||||
"type": "checkbox",
|
||||
"label": "胡萝卜",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "沉玉仙茗",
|
||||
"type": "checkbox",
|
||||
"label": "沉玉仙茗",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "清心",
|
||||
"type": "checkbox",
|
||||
"label": "清心",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "琉璃袋",
|
||||
"type": "checkbox",
|
||||
"label": "琉璃袋",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "viola",
|
||||
"type": "checkbox",
|
||||
"label": "堇瓜",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "Padisarah",
|
||||
"type": "checkbox",
|
||||
"label": "帕蒂沙兰",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "romaritimeFlower",
|
||||
"type": "checkbox",
|
||||
"label": "海露花",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "tidalga",
|
||||
"type": "checkbox",
|
||||
"label": "汐藻",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "苦种",
|
||||
"type": "checkbox",
|
||||
"label": "苦种",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "青蜜梅",
|
||||
"type": "checkbox",
|
||||
"label": "青蜜梅",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "絶云椒椒",
|
||||
"type": "checkbox",
|
||||
"label": "絶云椒椒",
|
||||
"default": false
|
||||
"label": "要购买的商品(多个商品用空格分隔)\n示例:\"小麦 黑麦\"\n支援的 商人与商品详细 请前往 README.md 查看",
|
||||
"default": "小麦 黑麦"
|
||||
},
|
||||
{
|
||||
"name": "AKF",
|
||||
"type": "select",
|
||||
"label": "-----------------\n每周刷新食材\n\n可选购买方式:\n0=跟随系统周期自动判定\n1-7=指定星期几购买(1=周一,7=周日)",
|
||||
"label": "每周商品购买方式\n0=跟随系统周期自动判定\n1-7=指定星期几购买(1=周一,7=周日)",
|
||||
"options": [
|
||||
"0",
|
||||
"1",
|
||||
@@ -232,9 +28,21 @@
|
||||
"default": "0"
|
||||
},
|
||||
{
|
||||
"name": "蟹黃",
|
||||
"name": "disabledNpcs",
|
||||
"type": "input-text",
|
||||
"label": "要禁用的NPC\n(多个NPC用空格分隔)\n示例:阿扎莱 皮托",
|
||||
"default": "阿扎莱 皮托"
|
||||
},
|
||||
{
|
||||
"name": "ignoreRecords",
|
||||
"type": "checkbox",
|
||||
"label": "蟹黃",
|
||||
"label": "-----------------\n无视记录强制购买(不推荐)",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "recordDebug",
|
||||
"type": "checkbox",
|
||||
"label": "记录调试模式(显示详细日志)",
|
||||
"default": false
|
||||
}
|
||||
]
|
||||
41
repo/js/自动购买每天&3天&每周刷新食材/商人与商品支持表.md
Normal file
41
repo/js/自动购买每天&3天&每周刷新食材/商人与商品支持表.md
Normal file
@@ -0,0 +1,41 @@
|
||||
## 📋 商人与商品支持表
|
||||
|
||||
### 如何查看支持的商品?
|
||||
- **查看本文件下方表格**:包含所有支持的商人与商品
|
||||
- **查看`assets/data/foods.json`**:所有商品的中文名称
|
||||
|
||||
### 商人信息总览
|
||||
| 所在地 | 商人名 | 每天刷新商品 | 3天刷新商品 | 每周刷新商品 | 备注 |
|
||||
|--------|--------|-------------|------------|-------------|------|
|
||||
| 蒙德-清泉镇 | 神奇的霍普金斯 | 圣水 | - | - | 白天出现 |
|
||||
| 蒙德-蒙德城 | 布兰琪 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | 晚上出现 |
|
||||
| 蒙德-蒙德城 | 莎拉 | - | - | 蟹黄 | - |
|
||||
| 璃月-璃月港 | 东升 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、杏仁、盐、胡椒、番茄 | - | - | |
|
||||
| 璃月-璃月港 | 卯师父 | 鱼肉、螃蟹 | 胡萝卜、松茸、绝云椒椒 | - | |
|
||||
| 璃月-璃月港 | 老孙 | 鱼肉、螃蟹、虾仁 | - | - | 白天出现 |
|
||||
| 璃月-璃月港 | 老高 | 鱼肉 | - | - | |
|
||||
| 璃月-璃月港 | 阿桂 | - | 清心、琉璃袋 | - | 晚上出现 |
|
||||
| 璃月-望舒客栈 | 菲尔戈黛特 | - | 松茸、琉璃袋 | - | |
|
||||
| 璃月-遗珑埠 | 丰泰 | - | 沉玉仙茗、琉璃袋、绝云椒椒 | 蟹黄 | |
|
||||
| 璃月-遗珑埠 | 连芳 | - | 沉玉仙茗 | - | |
|
||||
| 稻妻-离岛 | 小畑 | 螃蟹、鱼肉、虾仁 | - | - | |
|
||||
| 稻妻-稻妻城 | 葵 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
|
||||
| 稻妻-稻妻城 | 志村勘兵卫 | 鱼肉、螃蟹 | 堇瓜 | - | |
|
||||
| 稻妻-海祇岛 | 清子 | - | - | 牛奶、番茄、土豆、小麦、豆腐 | |
|
||||
| 须弥-须弥城 | 朱特 | - | 帕蒂沙兰 | - | |
|
||||
| 须弥-奥摩斯港 | 布特罗斯 | 鱼肉、螃蟹、虾仁 | - | - | |
|
||||
| 须弥-须弥城 | 珀姆 | 鱼肉、螃蟹、虾仁 | - | - | |
|
||||
| 须弥-须弥城 | 哈马维 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
|
||||
| 须弥-须弥城 | 兰巴德 | 鱼肉、螃蟹 | - | - | 独立地图 |
|
||||
| 须弥-须弥城 | 恩忒卡 | 咖啡豆 | - | - | 独立地图 |
|
||||
| 须弥-阿如村 | 阿扎莱 | 鱼肉、兽肉、秃秃豆 | - | - | 晚上出现 |
|
||||
| 须弥-奥摩斯港 | 巴巴克 | - | 清心、琉璃袋 | - | |
|
||||
| 枫丹-枫丹廷 | 布希柯 | 枫达、洋葱、牛奶、卷心菜、土豆、小麦、秃秃豆、杏仁、发酵果实汁、盐、胡椒、番茄 | - | - | |
|
||||
| 枫丹-枫丹廷 | 阿鲁埃 | 咖啡豆、枫达 | - | - | |
|
||||
| 枫丹-白淞镇 | 安特曼 | 鱼肉、螃蟹 | 海露花、汐藻 | - | |
|
||||
| 枫丹-锈舵酒馆 | 皮托 | 牛奶 | - | 培根、火腿、香肠、奶酪 | |
|
||||
| 纳塔-圣火竞技场 | 钦特利 | - | 青蜜莓、苦种 | - | |
|
||||
| 纳塔-圣火竞技场 | 夏安卡 | - | - | 蟹黄 | |
|
||||
| 纳塔-圣火竞技场 | 布纳马 | 盐、胡椒、小麦、洋葱、牛奶、番茄、卷心菜、土豆、秃秃豆 | - | - | |
|
||||
| 挪德卡莱-那夏镇 | 采若 | 黑麦、盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | |
|
||||
| 挪德卡莱-皮拉米达城 | 科菲策 | 牛奶、咖啡豆 | 微光角菌、琉鳞石 | - | |
|
||||
36
repo/js/自动购买每天&3天&每周刷新食材/商人信息表.md
Normal file
36
repo/js/自动购买每天&3天&每周刷新食材/商人信息表.md
Normal file
@@ -0,0 +1,36 @@
|
||||
商人信息表
|
||||
|
||||
| 所在地 | 商人名 | 每天刷新商品 | 3天刷新商品 | 每周刷新商品 | 备注 |
|
||||
|--------|--------|-------------|------------|-------------|------|
|
||||
| 蒙德-清泉镇 | 神奇的霍普金斯 | 圣水 | - | - | 白天出现 |
|
||||
| 蒙德-蒙德城 | 布兰琪 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | 晚上出现 |
|
||||
| 蒙德-蒙德城 | 莎拉 | - | - | 蟹黄 | - |
|
||||
| 璃月-璃月港 | 东升 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、杏仁、盐、胡椒、番茄 | - | - | |
|
||||
| 璃月-璃月港 | 卯师父 | 鱼肉、螃蟹 | 胡萝卜、松茸、绝云椒椒 | - | |
|
||||
| 璃月-璃月港 | 老孙 | 鱼肉、螃蟹、虾仁 | - | - | 白天出现 |
|
||||
| 璃月-璃月港 | 老高 | 鱼肉 | - | - | |
|
||||
| 璃月-璃月港 | 阿桂 | - | 清心、琉璃袋 | - | 晚上出现 |
|
||||
| 璃月-望舒客栈 | 菲尔戈黛特 | - | 松茸、琉璃袋 | - | |
|
||||
| 璃月-遗珑埠 | 丰泰 | - | 沉玉仙茗、琉璃袋、绝云椒椒 | 蟹黄 | |
|
||||
| 璃月-遗珑埠 | 连芳 | - | 沉玉仙茗 | - | |
|
||||
| 稻妻-离岛 | 小畑 | 螃蟹、鱼肉、虾仁 | - | - | |
|
||||
| 稻妻-稻妻城 | 葵 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
|
||||
| 稻妻-稻妻城 | 志村勘兵卫 | 鱼肉、螃蟹 | 堇瓜 | - | |
|
||||
| 稻妻-海祇岛 | 清子 | - | - | 牛奶、番茄、土豆、小麦、豆腐 | |
|
||||
| 须弥-须弥城 | 朱特 | - | 帕蒂沙兰 | - | |
|
||||
| 须弥-奥摩斯港 | 布特罗斯 | 鱼肉、螃蟹、虾仁 | - | - | |
|
||||
| 须弥-须弥城 | 珀姆 | 鱼肉、螃蟹、虾仁 | - | - | |
|
||||
| 须弥-须弥城 | 哈马维 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
|
||||
| 须弥-须弥城 | 兰巴德 | 鱼肉、螃蟹 | - | - | 独立地图 |
|
||||
| 须弥-须弥城 | 恩忒卡 | 咖啡豆 | - | - | 独立地图 |
|
||||
| 须弥-阿如村 | 阿扎莱 | 鱼肉、兽肉、秃秃豆 | - | - | 晚上出现 |
|
||||
| 须弥-奥摩斯港 | 巴巴克 | - | 清心、琉璃袋 | - | |
|
||||
| 枫丹-枫丹廷 | 布希柯 | 枫达、洋葱、牛奶、卷心菜、土豆、小麦、秃秃豆、杏仁、发酵果实汁、盐、胡椒、番茄 | - | - | |
|
||||
| 枫丹-枫丹廷 | 阿鲁埃 | 咖啡豆、枫达 | - | - | |
|
||||
| 枫丹-白淞镇 | 安特曼 | 鱼肉、螃蟹 | 海露花、汐藻 | - | |
|
||||
| 枫丹-锈舵酒馆 | 皮托 | 牛奶 | - | 培根、火腿、香肠、奶酪 | |
|
||||
| 纳塔-圣火竞技场 | 钦特利 | - | 青蜜莓、苦种 | - | |
|
||||
| 纳塔-圣火竞技场 | 夏安卡 | - | - | 蟹黄 | |
|
||||
| 纳塔-圣火竞技场 | 布纳马 | 盐、胡椒、小麦、洋葱、牛奶、番茄、卷心菜、土豆、秃秃豆 | - | - | |
|
||||
| 挪德卡莱-那夏镇 | 采若 | 黑麦、盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | |
|
||||
| 挪德卡莱-皮拉米达城 | 科菲策 | 牛奶、咖啡豆 | 微光角菌、琉鳞石 | - | |
|
||||
Reference in New Issue
Block a user