自动购买每天&3天&每周刷新商品3.2.0 (#2886)

This commit is contained in:
this-Fish
2026-02-16 21:58:21 +08:00
committed by GitHub
parent 5205d63cb6
commit 99678a17d3
64 changed files with 998 additions and 755 deletions

View File

@@ -52,9 +52,9 @@
禁用后,脚本会跳过这些商人或带有指定标签的商人,不会前往购买。
可以使用国家/地区(如"蒙德"、"璃月")或其他标签(如商人信息总览中的标签)
6. **无视购买记录强制购买**:开启后会忽略购买记录,重新购买所有商品
7. **调试模式**:开启后显示详细执行日志
6. **是否跳过调整时间动画**:开启后会啟用时瞬跳过调整时间动画
7. **无视购买记录强制购买**:开启后会忽略购买记录,重新购买所有商品
8. **调试模式**:开启后显示详细执行日志
### 购买记录系统说明
脚本会自动记录购买时间,避免重复购买:
@@ -76,19 +76,25 @@
### 商人信息总览
| 所在地 | 商人名 | 每天刷新商品 | 3天刷新商品 | 每周刷新商品 | 标签 |
|--------|--------|-------------|------------|-------------|------|
| 蒙德-清泉镇 | 神奇的霍普金斯 | 圣水 | - | - | |
| 蒙德-风起地 | 克罗丽丝 | - | 金鱼草、薄荷、钩钩果、落落莓、慕风蘑菇 | - | 移动 |
| 蒙德-清泉镇 | 神奇的霍普金斯 | 圣水 | - | - | 稀少商品 |
| 蒙德-清泉镇 | 杜拉夫 | 兽肉、禽肉、鸟蛋 | - | - | |
| 蒙德-蒙德城 | 布兰琪 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | |
| 蒙德-蒙德城 | 莎拉 | - | - | 面粉、奶油、熏禽肉、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | - |
| 璃月-璃月港 | 东升 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦、稻米、虾仁、豆腐、杏仁 | - | - | |
| 蒙德-蒙德城 | 莎拉 | - | - | 面粉、奶油、熏禽肉、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | |
| 蒙德-蒙德城 | 芙萝拉 | - | 甜甜花、风车菊、塞西莉亚花、小灯草、嘟嘟莲 | - | |
| 蒙德-蒙德城-天使的馈赠 | 查尔斯 | 冰钩钩果汁、树莓薄荷饮、苹果酿、气泡酸莓汁 | - | - | 稀少商品、独立地图 |
| 璃月-璃月港 | 阿山婆 | 霄灯 | - | - | |
| 璃月-璃月港 | 卯师父 | 鱼肉、螃蟹 | 胡萝卜、松茸、绝云椒椒 | 面粉、糖、香肠、火腿 | |
| 璃月-璃月港 | 东升 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦、稻米、虾仁、豆腐、杏仁 | - | - | |
| 璃月-璃月港 | 卯师父 | 鱼肉、螃蟹 | 竹笋、莲蓬、松茸、蘑菇、胡萝卜、白萝卜、绝云椒椒 | 面粉、糖、香肠、火腿 | |
| 璃月-璃月港 | 老孙 | 鱼肉、螃蟹、虾仁 | - | - | |
| 璃月-璃月港 | 老高 | 鱼肉、鱼肉2 | - | - | |
| 璃月-璃月港 | 阿桂 | - | 清心、琉璃袋 | - | |
| 璃月-璃月港 | 阿桂 | - | 清心、马尾、莲蓬、冰雾花花朵、烈焰花花蕊、琉璃袋 | - | |
| 璃月-望舒客栈 | 菲尔戈黛特 | - | 松茸、琉璃袋 | 黄油、香肠 | |
| 璃月-遗珑埠 | 丰泰 | - | 沉玉仙茗、琉璃袋、绝云椒椒 | 蟹黄 | |
| 璃月-遗珑埠 | 连芳 | - | 沉玉仙茗 | - | |
| 稻妻-离岛 | 小畑 | 螃蟹、鱼肉、虾仁 | - | - | |
| 稻妻-离岛 | 卡琵莉亚 | | 蒲公英籽 | - | |
| 稻妻-白狐之野 | 若紫 | - | - | 「四方八方之网」 | |
| 稻妻-稻妻城 | 葵 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
| 稻妻-稻妻城 | 志村勘兵卫 | 鱼肉、螃蟹 | 堇瓜 | - | |
| 稻妻-海祇岛 | 清子 | - | - | 牛奶、番茄、土豆、小麦、豆腐 | |
@@ -102,39 +108,31 @@
| 须弥-奥摩斯港 | 巴巴克 | - | 清心、琉璃袋 | - | |
| 枫丹-枫丹廷 | 布希柯 | 枫达、洋葱、牛奶、卷心菜、土豆、小麦、秃秃豆、杏仁、发酵果实汁、盐、胡椒、番茄 | - | - | |
| 枫丹-枫丹廷 | 阿鲁埃 | 枫达、咖啡豆 | - | - | |
| 枫丹-枫丹廷-德波大饭店 | 桑格内蒂 | 枫达 | - | 面粉、奶油、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | 独立地图 |
| 枫丹-白淞镇 | 安特曼 | 鱼肉、螃蟹、虾仁 | 海露花、汐藻 | - | |
| 枫丹-锈舵酒馆 | 皮托 | 牛奶 | - | 培根、火腿、香肠、奶酪 | 黑心商人 |
| 纳塔-圣火竞技场 | 钦特利 | - | 青蜜莓、苦种 | - | |
| 纳塔-圣火竞技场 | 夏安卡 | - | - | 面粉、奶油、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | |
| 纳塔-圣火竞技场 | 布纳马 | 盐、胡椒、小麦、洋葱、牛奶、番茄、卷心菜、土豆、秃秃豆 | - | - | |
| 纳塔-圣火竞技场 | 布纳马 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦、秃秃豆 | 蘑菇 | - | |
| 挪德卡莱-那夏镇 | 采若 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦、黑麦 | - | - | |
| 挪德卡莱-皮拉米达城 | 科菲策 | 牛奶、咖啡豆 | 微光角菌、琉鳞石 | - | 黑心商人 |
- 移动:指商人会移动,有机会购买失败
- 稀少商品:指稀少商品
- 独立地图:指需要进入独立空间的特殊地图,这些地图部份路径无法使用地图追踪功能
- 黑心商人:指没有折扣的商人,价格较贵的商人
### **标签系统尚未完全添加,欢迎补充标签**
### **商人与商品与标签系统尚未完全添加,欢迎补充**
## 🔧 添加新商品
### 1. 添加商品图片
1. 截图商品图标,尺寸建议 90×90 像素
2. 保存为 PNG 格式,放在 `assets/images/` 目录下
3. 文件名建议使用英文或拼音,如:`new_food.png`
3. 文件名建议使用中文,如:`新商品.png`
### 2. 添加商品数据
在 `assets/data/foods.json` 中添加
```json
"new_food": {
"id": "new_food",
"name": "新商品",
"file": "assets/images/new_food.png"
}
```
### 3. 添加到商人
在 `assets/data/npcs.json` 中找到对应商人,添加到相应的商品列表中:
### 2. 添加到商人
在 `assets/npcs.json` 中找到对应商人,添加到相应的商品列表中
```json
"_1d_foods": ["新商品"] // 每天刷新商品
@@ -142,7 +140,7 @@
"_7d_foods": ["新商品"] // 每周刷新商品
```
### 4. 更新商人与商品支持表
### 3. 更新商人与商品支持表
将新商品添加到本文件的商人与商品支持表中,方便其他用户查看。
## 🆕 添加新商人

View File

@@ -1,242 +0,0 @@
{
"salt": {
"id": "salt",
"name": "盐",
"file": "assets/images/salt.png"
},
"pepper": {
"id": "pepper",
"name": "胡椒",
"file": "assets/images/pepper.png"
},
"onion": {
"id": "onion",
"name": "洋葱",
"file": "assets/images/onion.png"
},
"milk": {
"id": "milk",
"name": "牛奶",
"file": "assets/images/milk.png"
},
"tomato": {
"id": "tomato",
"name": "番茄",
"file": "assets/images/tomato.png"
},
"potato": {
"id": "potato",
"name": "土豆",
"file": "assets/images/potato.png"
},
"wheat": {
"id": "wheat",
"name": "小麦",
"file": "assets/images/wheat.png"
},
"rice": {
"id": "rice",
"name": "稻米",
"file": "assets/images/rice.png"
},
"coffeeBeans": {
"id": "coffeeBeans",
"name": "咖啡豆",
"file": "assets/images/coffeeBeans.png"
},
"glabrousBeans": {
"id": "glabrousBeans",
"name": "秃秃豆",
"file": "assets/images/glabrousBeans.png"
},
"rawMeat": {
"id": "rawMeat",
"name": "兽肉",
"file": "assets/images/rawMeat.png"
},
"fermentedJuice": {
"id": "fermentedJuice",
"name": "发酵果实汁",
"file": "assets/images/fermentedJuice.png"
},
"fonta": {
"id": "fonta",
"name": "枫达",
"file": "assets/images/fonta.png"
},
"shrimp": {
"id": "shrimp",
"name": "虾仁",
"file": "assets/images/shrimp.png"
},
"tofu": {
"id": "tofu",
"name": "豆腐",
"file": "assets/images/tofu.png"
},
"almond": {
"id": "almond",
"name": "杏仁",
"file": "assets/images/almond.png"
},
"cabbage": {
"id": "cabbage",
"name": "卷心菜",
"file": "assets/images/cabbage.png"
},
"fish": {
"id": "fish",
"name": "鱼肉",
"file": "assets/images/fish.png"
},
"fish2": {
"id": "fish",
"name": "鱼肉2",
"file": "assets/images/fish.png"
},
"huMengbu": {
"id": "huMengbu",
"name": "胡萝卜",
"file": "assets/images/huMengbu.png"
},
"viola": {
"id": "viola",
"name": "堇瓜",
"file": "assets/images/viola.png"
},
"romaritimeFlower": {
"id": "romaritimeFlower",
"name": "海露花",
"file": "assets/images/romaritimeFlower.png"
},
"Padisarah": {
"id": "Padisarah",
"name": "帕蒂沙兰",
"file": "assets/images/Padisarah.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"
},
"清心": {
"id": "清心",
"name": "清心",
"file": "assets/images/清心.png"
},
"琉璃袋": {
"id": "琉璃袋",
"name": "琉璃袋",
"file": "assets/images/琉璃袋.png"
},
"蟹黄": {
"id": "蟹黄",
"name": "蟹黄",
"file": "assets/images/蟹黄.png"
},
"crab": {
"id": "crab",
"name": "螃蟹",
"file": "assets/images/crab.png"
},
"tidalga": {
"id": "tidalga",
"name": "汐藻",
"file": "assets/images/tidalga.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"
},
"琉鳞石": {
"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"
},
"黄油": {
"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"
},
"培根": {
"id": "培根",
"name": "培根",
"file": "assets/images/培根.png"
},
"香肠": {
"id": "香肠",
"name": "香肠",
"file": "assets/images/香肠.png"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -1,307 +1,371 @@
{
"神奇的霍普金斯": {
"name": "神奇的霍普金斯",
"enable": true,
"page": 2,
"time": "day",
"path": "assets/path/蒙德-清泉镇-神奇的霍普金斯.json",
"_1d_foods": ["圣水"],
"tags": ["蒙德"]
},
"Blanche": {
"name": "布兰琪",
"enable": true,
"page": 2,
"time": "night",
"path": "assets/path/蒙德-蒙德城-布兰琪.json",
"_1d_foods": ["盐", "胡椒", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "小麦"],
"tags": ["蒙德"]
},
"莎拉": {
"name": "莎拉",
"enable": true,
"page": 4,
"time": "night",
"path": "assets/path/蒙德-蒙德城-莎拉.json",
"_7d_foods": ["面粉","奶油","熏禽肉","黄油","火腿","糖","蟹黄","果酱","奶酪","培根","香肠"],
"tags": ["蒙德"]
},
"阿山婆": {
"name": "阿山婆",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-璃月港-阿山婆.json",
"_1d_foods": ["霄灯"],
"tags": ["璃月"]
},
"DongSheng": {
"name": "东升",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-璃月港-东升.json",
"_1d_foods": ["", "胡椒", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "小麦", "稻米", "虾仁", "豆腐", "杏仁" ],
"tags": ["璃月"]
},
"ChefMao": {
"name": "卯师父",
"enable": true,
"page": 5,
"time": "any",
"path": "assets/path/璃月-璃月港-卯师父.json",
"_1d_foods": ["鱼肉", "螃蟹"],
"_3d_foods": ["胡萝卜", "松茸", "绝云椒椒"],
"_7d_foods": ["面粉","糖","香肠","火腿"],
"tags": ["璃月"]
},
"UncleSun": {
"name": "老孙",
"enable": true,
"page": 1,
"time": "day",
"path": "assets/path/璃月-璃月港-老孙.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"tags": ["璃月"]
},
"UncleGao": {
"name": "老高",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/璃月-璃月港-老高.json",
"_1d_foods": ["鱼肉","鱼肉2"],
"tags": ["璃月"]
},
"阿桂": {
"name": "阿桂",
"enable": true,
"page": 2,
"time": "night",
"path": "assets/path/璃月-璃月港-阿桂.json",
"_3d_foods": ["清心", "琉璃袋"],
"tags": ["璃月"]
},
"菲尔戈黛特": {
"name": "菲尔戈黛特",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-望舒客栈-菲尔戈黛特.json",
"_3d_foods": ["松茸", "琉璃袋"],
"_7d_foods": ["黄油","香肠"],
"tags": ["璃月"]
},
"丰泰": {
"name": "丰泰",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-遗珑埠-丰泰.json",
"_3d_foods": ["沉玉仙茗", "琉璃袋", "绝云椒椒"],
"_7d_foods": ["蟹黄"],
"tags": ["璃月"]
},
"连芳": {
"name": "连芳",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-遗珑埠-连芳.json",
"_3d_foods": ["沉玉仙茗"],
"tags": ["璃月"]
},
"Obata": {
"name": "小畑",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/稻妻-离岛-小畑.json",
"_1d_foods": ["螃蟹","鱼肉", "虾仁"],
"tags": ["稻妻"]
},
"Aoi": {
"name": "葵",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/稻妻-稻妻城-葵.json",
"_1d_foods": ["洋葱", "牛奶", "卷心菜", "土豆", "小麦", "稻米", "虾仁", "豆腐", "盐", "胡椒", "番茄"],
"tags": ["稻妻"]
},
"ShimuraKanbei": {
"name": "志村勘兵卫",
"enable": true,
"page": 4,
"time": "any",
"path": "assets/path/稻妻-稻妻城-志村勘兵卫.json",
"_1d_foods": ["鱼肉", "螃蟹"],
"_3d_foods": ["堇瓜"],
"tags": ["稻妻"]
},
"清子": {
"name": "清子",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/稻妻-海祇岛-清子.json",
"_7d_foods": ["牛奶", "番茄", "土豆", "小麦", "豆腐"],
"tags": ["稻妻"]
},
"Zhute": {
"name": "朱特",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-须弥城-朱特.json",
"_3d_foods": ["帕蒂沙兰"],
"tags": ["须弥"]
},
"Butrus": {
"name": "布特罗斯",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-奥摩斯港-布特罗斯.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"tags": ["须弥"]
},
"Pam": {
"name": "珀姆",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-须弥城-珀姆.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"tags": ["须弥"]
},
"Hamawi": {
"name": "哈马维",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/须弥-须弥城-哈马维.json",
"_1d_foods": ["洋葱", "牛奶", "卷心菜", "土豆", "小麦", "稻米", "虾仁", "豆腐", "盐", "胡椒", "番茄"],
"tags": ["须弥"]
},
"Lambad": {
"name": "兰巴德",
"enable": true,
"page": 3,
"time": "any",
"path": "assets/path/须弥-须弥城-兰巴德酒馆-兰巴德.json",
"_1d_foods": ["鱼肉", "螃蟹"],
"tags": ["须弥","独立地图"]
},
"Enteka": {
"name": "恩忒卡",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/须弥-须弥城-普斯帕咖啡馆-恩忒卡.json",
"_1d_foods": ["咖啡豆"],
"tags": ["须弥","独立地图"]
},
"Azalai": {
"name": "阿扎莱",
"enable": true,
"page": 2,
"time": "night",
"path": "assets/path/须弥-阿如村-阿扎莱.json",
"_1d_foods": ["鱼肉", "兽肉", "秃秃豆"],
"tags": ["须弥", "黑心商人"]
},
"巴巴克": {
"name": "巴巴克",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-奥摩斯港-巴巴克.json",
"_3d_foods": ["清心", "琉璃袋"],
"tags": ["须弥"]
},
"Boucicaut": {
"name": "布希柯",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/枫丹-枫丹廷-布希柯.json",
"_1d_foods": ["枫达", "洋葱", "牛奶", "卷心菜", "土豆", "小麦", "秃秃豆", "杏仁", "发酵果实汁", "盐", "胡椒", "番茄"],
"tags": ["枫丹"]
},
"Arouet": {
"name": "阿鲁埃",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/枫丹-枫丹廷-阿鲁埃.json",
"_1d_foods": ["枫达", "咖啡豆"],
"tags": ["枫丹"]
},
"Antman": {
"name": "安特曼",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/枫丹-白淞镇-安特曼.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"_3d_foods": ["海露花", "汐藻"],
"tags": ["枫丹"]
},
"皮托": {
"name": "皮托",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/枫丹-锈舵酒馆-皮托.json",
"_1d_foods": ["牛奶"],
"_7d_foods": ["培根", "火腿", "香肠", "奶酪"],
"tags": ["枫丹", "黑心商人"]
},
"钦特利": {
"name": "钦特利",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/纳塔-圣火竞技场-钦特利.json",
"_3d_foods": ["青蜜莓", "苦种"],
"tags": ["纳塔"]
},
"夏安卡": {
"name": "夏安卡",
"enable": true,
"page": 3,
"time": "any",
"path": "assets/path/纳塔-圣火竞技场-夏安卡.json",
"_7d_foods": ["面粉", "奶油", "黄油", "火腿", "糖", "蟹黄", "果酱", "奶酪", "培根", "香肠"],
"tags": ["纳塔"]
},
"Bunama": {
"name": "布纳马",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/纳塔-圣火竞技场-布纳马.json",
"_1d_foods": ["盐", "胡椒", "小麦", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "秃秃豆"],
"tags": ["纳塔"]
},
"采若": {
"name": "采若",
"enable": true,
"page": 3,
"time": "any",
"path": "assets/path/挪德卡莱-那夏镇-采若.json",
"_1d_foods": ["盐", "胡椒", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "小麦", "黑麦"],
"tags": ["挪德卡莱"]
},
"科菲策": {
"name": "科菲策",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/挪德卡莱-皮拉米达城-科菲策.json",
"_1d_foods": ["牛奶", "咖啡豆"],
"_3d_foods": ["微光角菌", "琉鳞石"],
"tags": ["挪德卡莱"]
}
{
"克罗丽丝": {
"name": "克罗丽丝",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/蒙德-风起地-克罗丽丝.json",
"_3d_foods": ["金鱼草", "薄荷", "钩钩果","落落莓","慕风蘑菇"],
"tags": ["蒙德", "移动"]
},
"神奇的霍普金斯": {
"name": "神奇的霍普金斯",
"enable": true,
"page": 2,
"time": "day",
"path": "assets/path/蒙德-清泉镇-神奇的霍普金斯.json",
"_1d_foods": ["圣水"],
"tags": ["蒙德","稀少商品"]
},
"杜拉夫": {
"name": "杜拉夫",
"enable": true,
"page": 1,
"time": "day",
"path": "assets/path/蒙德-清泉镇-杜拉夫.json",
"_1d_foods": ["兽肉", "禽肉", "鸟蛋"],
"tags": ["蒙德"]
},
"Blanche": {
"name": "布兰琪",
"enable": true,
"page": 2,
"time": "night",
"path": "assets/path/蒙德-蒙德城-布兰琪.json",
"_1d_foods": ["盐", "胡椒", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "小麦"],
"tags": ["蒙德"]
},
"莎拉": {
"name": "莎拉",
"enable": true,
"page": 4,
"time": "night",
"path": "assets/path/蒙德-蒙德城-莎拉.json",
"_7d_foods": ["面粉","奶油","熏禽肉","黄油","火腿","","蟹黄","果酱","奶酪","培根","香肠"],
"tags": ["蒙德"]
},
"芙萝拉": {
"name": "芙萝拉",
"enable": true,
"page": 1,
"time": "day",
"path": "assets/path/蒙德-蒙德城-芙萝拉.json",
"_3d_foods": ["甜甜花", "风车菊", "塞西莉亚花", "小灯草", "嘟嘟莲"],
"tags": ["蒙德"]
},
"查尔斯": {
"name": "查尔斯",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/蒙德-蒙德城-天使的馈赠-查尔斯.json",
"_1d_foods": ["冰钩钩果汁", "树莓薄荷饮", "苹果酿", "气泡酸莓汁"],
"tags": ["蒙德","独立地图","稀少商品"]
},
"阿山婆": {
"name": "阿山婆",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-璃月港-阿山婆.json",
"_1d_foods": ["霄灯"],
"tags": ["璃月"]
},
"DongSheng": {
"name": "东升",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-璃月港-东升.json",
"_1d_foods": ["盐", "胡椒", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "小麦", "稻米", "虾仁", "豆腐", "杏仁" ],
"tags": ["璃月"]
},
"ChefMao": {
"name": "卯师父",
"enable": true,
"page": 5,
"time": "any",
"path": "assets/path/璃月-璃月港-卯师父.json",
"_1d_foods": ["鱼肉", "螃蟹"],
"_3d_foods": ["竹笋", "莲蓬", "松茸", "蘑菇", "胡萝卜", "白萝卜", "绝云椒椒"],
"_7d_foods": ["面粉","糖","香肠","火腿"],
"tags": ["璃月"]
},
"UncleSun": {
"name": "老孙",
"enable": true,
"page": 1,
"time": "day",
"path": "assets/path/璃月-璃月港-老孙.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"tags": ["璃月"]
},
"UncleGao": {
"name": "老高",
"enable": true,
"page": 1,
"time": "day",
"path": "assets/path/璃月-璃月港-老高.json",
"_1d_foods": ["鱼肉","鱼肉2"],
"tags": ["璃月"]
},
"阿桂": {
"name": "阿桂",
"enable": true,
"page": 2,
"time": "night",
"path": "assets/path/璃月-璃月港-阿桂.json",
"_3d_foods": ["清心", "琉璃袋", "马尾", "莲蓬", "冰雾花花朵", "烈焰花花蕊"],
"tags": ["璃月"]
},
"菲尔戈黛特": {
"name": "菲尔戈黛特",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-望舒客栈-菲尔戈黛特.json",
"_3d_foods": ["松茸", "琉璃袋"],
"_7d_foods": ["黄油","香肠"],
"tags": ["璃月"]
},
"丰泰": {
"name": "丰泰",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-遗珑埠-丰泰.json",
"_3d_foods": ["沉玉仙茗", "琉璃袋", "绝云椒椒"],
"_7d_foods": ["蟹"],
"tags": ["璃月"]
},
"连芳": {
"name": "连芳",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/璃月-遗珑埠-连芳.json",
"_3d_foods": ["沉玉仙茗"],
"tags": ["璃月"]
},
"Obata": {
"name": "小畑",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/稻妻-离岛-小畑.json",
"_1d_foods": ["螃蟹","鱼肉", "虾仁"],
"tags": ["稻妻"]
},
"卡琵莉亚": {
"name": "卡琵莉亚",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/稻妻-离岛-卡琵莉亚.json",
"_3d_foods": ["蒲公英籽"],
"tags": ["稻妻"]
},
"若紫": {
"name": "若紫",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/稻妻-白狐之野-若紫.json",
"_7d_foods": ["「四方八方之网」"],
"tags": ["稻妻"]
},
"Aoi": {
"name": "葵",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/稻妻-稻妻城-葵.json",
"_1d_foods": ["洋葱", "牛奶", "卷心菜", "土豆", "小麦", "稻米", "虾仁", "豆腐", "盐", "胡椒", "番茄"],
"tags": ["稻妻"]
},
"ShimuraKanbei": {
"name": "志村勘兵卫",
"enable": true,
"page": 4,
"time": "any",
"path": "assets/path/稻妻-稻妻城-志村勘兵卫.json",
"_1d_foods": ["鱼肉", "螃蟹"],
"_3d_foods": ["堇瓜"],
"tags": ["稻妻"]
},
"清子": {
"name": "清子",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/稻妻-海祇岛-清子.json",
"_7d_foods": ["牛奶", "番茄", "土豆", "小麦", "豆腐"],
"tags": ["稻妻"]
},
"Zhute": {
"name": "朱特",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-须弥城-朱特.json",
"_3d_foods": ["帕蒂沙兰"],
"tags": ["须弥"]
},
"Butrus": {
"name": "布特罗斯",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-奥摩斯港-布特罗斯.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"tags": ["须弥"]
},
"Pam": {
"name": "珀姆",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-须弥城-珀姆.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"tags": ["须弥"]
},
"Hamawi": {
"name": "哈马维",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/须弥-须弥城-哈马维.json",
"_1d_foods": ["洋葱", "牛奶", "卷心菜", "土豆", "小麦", "稻米", "虾仁", "豆腐", "盐", "胡椒", "番茄"],
"tags": ["须弥"]
},
"Lambad": {
"name": "兰巴德",
"enable": true,
"page": 3,
"time": "any",
"path": "assets/path/须弥-须弥城-兰巴德酒馆-兰巴德.json",
"_1d_foods": ["鱼肉", "螃蟹"],
"tags": ["须弥","独立地图"]
},
"Enteka": {
"name": "恩忒卡",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/须弥-须弥城-普斯帕咖啡馆-恩忒卡.json",
"_1d_foods": ["咖啡豆"],
"tags": ["须弥","独立地图"]
},
"Azalai": {
"name": "阿扎莱",
"enable": true,
"page": 2,
"time": "night",
"path": "assets/path/须弥-阿如村-阿扎莱.json",
"_1d_foods": ["鱼肉", "兽肉", "秃秃豆"],
"tags": ["须弥", "黑心商人"]
},
"巴巴克": {
"name": "巴巴克",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/须弥-奥摩斯港-巴巴克.json",
"_3d_foods": ["清心", "琉璃袋"],
"tags": ["须弥"]
},
"Boucicaut": {
"name": "布希柯",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/枫丹-枫丹廷-布希柯.json",
"_1d_foods": ["枫达", "洋葱", "牛奶", "卷心菜", "土豆", "小麦", "秃秃豆", "杏仁", "发酵果实汁", "盐", "胡椒", "番茄"],
"tags": ["枫丹"]
},
"Arouet": {
"name": "阿鲁埃",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/枫丹-枫丹廷-阿鲁埃.json",
"_1d_foods": ["枫达", "咖啡豆"],
"tags": ["枫丹"]
},
"桑格内蒂": {
"name": "桑格内蒂",
"enable": true,
"page": 5,
"time": "any",
"path": "assets/path/枫丹-枫丹廷-德波大饭店-桑格内蒂.json",
"_1d_foods": ["枫达"],
"_7d_foods": ["面粉","奶油","黄油","火腿","糖","蟹黄","果酱","奶酪","培根","香肠"],
"tags": ["枫丹","独立地图"]
},
"Antman": {
"name": "安特曼",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/枫丹-白淞镇-安特曼.json",
"_1d_foods": ["鱼肉", "螃蟹", "虾仁"],
"_3d_foods": ["海露花", "汐藻"],
"tags": ["枫丹"]
},
"皮托": {
"name": "皮托",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/枫丹-锈舵酒馆-皮托.json",
"_1d_foods": ["牛奶"],
"_7d_foods": ["培根", "火腿", "香肠", "奶酪"],
"tags": ["枫丹", "黑心商人"]
},
"钦特利": {
"name": "钦特利",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/纳塔-圣火竞技场-钦特利.json",
"_3d_foods": ["青蜜莓", "苦种"],
"tags": ["纳塔"]
},
"夏安卡": {
"name": "夏安卡",
"enable": true,
"page": 3,
"time": "any",
"path": "assets/path/纳塔-圣火竞技场-夏安卡.json",
"_7d_foods": ["面粉", "奶油", "黄油", "火腿", "糖", "蟹黄", "果酱", "奶酪", "培根", "香肠"],
"tags": ["纳塔"]
},
"Bunama": {
"name": "布纳马",
"enable": true,
"page": 2,
"time": "any",
"path": "assets/path/纳塔-圣火竞技场-布纳马.json",
"_1d_foods": ["盐", "胡椒", "小麦", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "秃秃豆"],
"tags": ["纳塔"]
},
"采若": {
"name": "采若",
"enable": true,
"page": 3,
"time": "any",
"path": "assets/path/挪德卡莱-那夏镇-采若.json",
"_1d_foods": ["盐", "胡椒", "洋葱", "牛奶", "番茄", "卷心菜", "土豆", "小麦", "黑麦"],
"tags": ["挪德卡莱"]
},
"科菲策": {
"name": "科菲策",
"enable": true,
"page": 1,
"time": "any",
"path": "assets/path/挪德卡莱-皮拉米达城-科菲策.json",
"_1d_foods": ["牛奶", "咖啡豆"],
"_3d_foods": ["微光角菌", "琉鳞石"],
"tags": ["挪德卡莱"]
}
}

View File

@@ -0,0 +1,49 @@
{
"info": {
"authors": [
{
"links": "",
"name": "蜜柑魚"
}
],
"bgi_version": "0.45.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1771235454163,
"map_match_method": "",
"map_name": "Teyvat",
"name": "枫丹-枫丹廷-德波大饭店-桑格内蒂",
"tags": [],
"type": "collect",
"version": "1.0"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": 4645.5244140625,
"y": 3467.85791015625
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "run",
"type": "path",
"x": 4630.04296875,
"y": 3456.9619140625
},
{
"action": "combat_script",
"action_params": "wait(0.5),keypress(F),wait(0.2),keypress(F),wait(0.2),keypress(F),wait(7.5),w(0.2),click(middle),wait(0.5),keydown(W),dash(4),wait(0.5),keyup(W),wait(0.75),s(0.3),wait(0.5),a(0.3),click(middle),wait(0.5),w(2.5),d(0.5),wait(1)",
"id": 3,
"move_mode": "walk",
"type": "target",
"x": 4637.033203125,
"y": 3449.36376953125
}
]
}

View File

@@ -0,0 +1,49 @@
{
"info": {
"authors": [
{
"links": "",
"name": "蜜柑魚"
}
],
"bgi_version": "0.45.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1771244704923,
"map_match_method": "",
"map_name": "Teyvat",
"name": "稻妻-白狐之野-若紫",
"tags": [],
"type": "collect",
"version": "1.0"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": -4223.806640625,
"y": -3003.708984375
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "dash",
"type": "path",
"x": -4244.796875,
"y": -3002.783203125
},
{
"action": "combat_script",
"action_params": "wait(0.3)",
"id": 3,
"move_mode": "walk",
"type": "target",
"x": -4243.78125,
"y": -2999.99609375
}
]
}

View File

@@ -0,0 +1,76 @@
{
"info": {
"authors": [
{
"links": "",
"name": "蜜柑魚"
}
],
"bgi_version": "0.45.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1771244091604,
"map_match_method": "",
"map_name": "Teyvat",
"name": "稻妻-离岛-卡琵莉亚",
"tags": [],
"type": "collect",
"version": "1.0"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": -3812.6640625,
"y": -2546.552734375
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "walk",
"type": "path",
"x": -3815.06640625,
"y": -2547.873046875
},
{
"action": "",
"action_params": "",
"id": 3,
"move_mode": "run",
"type": "path",
"x": -3809.20703125,
"y": -2581.09765625
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "dash",
"type": "path",
"x": -3792.689453125,
"y": -2579.279296875
},
{
"action": "",
"action_params": "",
"id": 5,
"move_mode": "walk",
"type": "path",
"x": -3792.6328125,
"y": -2582.767578125
},
{
"action": "combat_script",
"action_params": "w(0.5),wait(0.25)",
"id": 6,
"move_mode": "walk",
"type": "orientation",
"x": -3792.531381763878,
"y": -2585.5625
}
]
}

View File

@@ -0,0 +1,76 @@
{
"info": {
"authors": [
{
"links": "",
"name": "蜜柑魚"
}
],
"bgi_version": "0.45.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1771239863469,
"map_match_method": "",
"map_name": "Teyvat",
"name": "蒙德-清泉镇-杜拉夫",
"tags": [],
"type": "collect",
"version": "1.0"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": -867.25,
"y": 1992.54541015625
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "dash",
"type": "path",
"x": -877.40625,
"y": 1975.65380859375
},
{
"action": "",
"action_params": "",
"id": 3,
"move_mode": "dash",
"type": "path",
"x": -920.00390625,
"y": 1961.9794921875
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "walk",
"type": "path",
"x": -918.15234375,
"y": 1955.220703125
},
{
"action": "",
"action_params": "",
"id": 5,
"move_mode": "walk",
"type": "target",
"x": -913.53125,
"y": 1956.841796875
},
{
"action": "combat_script",
"action_params": "wait(0.5)",
"id": 6,
"move_mode": "walk",
"type": "target",
"x": -912.013671875,
"y": 1958.0888671875
}
]
}

View File

@@ -0,0 +1,112 @@
{
"info": {
"authors": [
{
"links": "",
"name": "蜜柑魚"
}
],
"bgi_version": "0.45.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1771248205039,
"map_match_method": "",
"map_name": "Teyvat",
"name": "蒙德-蒙德城-天使的馈赠-查尔斯",
"tags": [],
"type": "collect",
"version": "1.0"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": -875.962890625,
"y": 2275.97314453125
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "run",
"type": "path",
"x": -887.1015625,
"y": 2318.0107421875
},
{
"action": "stop_flying",
"action_params": "",
"id": 3,
"move_mode": "fly",
"type": "target",
"x": -890.734375,
"y": 2323.68115234375
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "run",
"type": "path",
"x": -908.830078125,
"y": 2314.8125
},
{
"action": "",
"action_params": "",
"id": 5,
"move_mode": "dash",
"type": "path",
"x": -921.044921875,
"y": 2327.1181640625
},
{
"action": "",
"action_params": "",
"id": 6,
"move_mode": "walk",
"type": "path",
"x": -923.63671875,
"y": 2326.474609375
},
{
"action": "",
"action_params": "",
"id": 7,
"move_mode": "dash",
"type": "path",
"x": -930.8125,
"y": 2322.2509765625
},
{
"action": "",
"action_params": "",
"id": 8,
"move_mode": "walk",
"type": "path",
"x": -934.296875,
"y": 2316.3056640625
},
{
"action": "",
"action_params": "",
"id": 9,
"move_mode": "walk",
"type": "path",
"x": -933.291015625,
"y": 2310.25634765625
},
{
"action": "combat_script",
"action_params": "wait(0.5),keypress(F),wait(0.2),keypress(F),wait(0.2),keypress(F),wait(7.5),keydown(a),keypress(SPACE),wait(0.5),keypress(SPACE),wait(0.5),keypress(SPACE),wait(0.5),keypress(SPACE),wait(0.5),keyup(a),wait(0.5),s(0.5),wait(0.5),d(2),wait(0.5),w(0.8),wait(0.5),a(0.5),wait(1.5)",
"id": 10,
"move_mode": "walk",
"type": "target",
"x": -929.392578125,
"y": 2313.3408203125
}
]
}

View File

@@ -0,0 +1,85 @@
{
"info": {
"authors": [
{
"links": "",
"name": "蜜柑魚"
}
],
"bgi_version": "0.45.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1771245132008,
"map_match_method": "",
"map_name": "Teyvat",
"name": "蒙德-蒙德城-芙萝拉",
"tags": [],
"type": "collect",
"version": "1.0"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": -875.962890625,
"y": 2275.97314453125
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "dash",
"type": "path",
"x": -881.373046875,
"y": 2266.9462890625
},
{
"action": "",
"action_params": "",
"id": 3,
"move_mode": "dash",
"type": "path",
"x": -905.27734375,
"y": 2242.64794921875
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "dash",
"type": "path",
"x": -929.93359375,
"y": 2236.62841796875
},
{
"action": "",
"action_params": "",
"id": 5,
"move_mode": "walk",
"type": "target",
"x": -931.033203125,
"y": 2244.7998046875
},
{
"action": "",
"action_params": "",
"id": 6,
"move_mode": "walk",
"type": "target",
"x": -928.744140625,
"y": 2245.970703125
},
{
"action": "combat_script",
"action_params": "w(0.6),wait(0.65)",
"id": 7,
"move_mode": "walk",
"type": "orientation",
"x": -925.978515625,
"y": 2247.224609375
}
]
}

View File

@@ -0,0 +1,58 @@
{
"info": {
"authors": [
{
"links": "",
"name": "蜜柑魚"
}
],
"bgi_version": "0.45.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1771237666381,
"map_match_method": "",
"map_name": "Teyvat",
"name": "蒙德-风起地-克罗丽丝",
"tags": [],
"type": "collect",
"version": "1.0"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": -1536.5703125,
"y": 1978.89501953125
},
{
"action": "stop_flying",
"action_params": "",
"id": 2,
"move_mode": "fly",
"type": "path",
"x": -1527.044921875,
"y": 1989.955078125
},
{
"action": "",
"action_params": "",
"id": 3,
"move_mode": "dash",
"type": "path",
"x": -1467.35546875,
"y": 2080.52734375
},
{
"action": "combat_script",
"action_params": "wait(0.5)",
"id": 4,
"move_mode": "walk",
"type": "target",
"x": -1466.11328125,
"y": 2083.4228515625
}
]
}

View File

@@ -1,10 +1,10 @@
// fakeLog 函数,使用方法:将本函数放在主函数前,调用时请务必使用await否则可能出现v8白框报错
//在js开头处伪造该js结束运行的日志信息如 await fakeLog("js脚本", true, true, 0);
//在js结尾处伪造该js开始运行的日志信息如 await fakeLog("js脚本", true, false, 2333);
//duration项目仅在伪造结束信息时有效且无实际作用可以任意填写当你需要在日志中输出特定值时才需要单位为毫秒
//在调用地图追踪前伪造该地图追踪开始运行的日志信息,如 await fakeLog(`地图追踪.json`, false, true, 0);
//在调用地图追踪后伪造该地图追踪结束运行的日志信息,如 await fakeLog(`地图追踪.json`, false, false, 0);
//如此便可以在js运行过程中伪造地图追踪的日志信息可以在日志分析等中查看
// 在js开头处伪造该js结束运行的日志信息如 await fakeLog("js脚本", true, true, 0);
// 在js结尾处伪造该js开始运行的日志信息如 await fakeLog("js脚本", true, false, 2333);
// duration项目仅在伪造结束信息时有效且无实际作用可以任意填写当你需要在日志中输出特定值时才需要单位为毫秒
// 在调用地图追踪前伪造该地图追踪开始运行的日志信息,如 await fakeLog(`地图追踪.json`, false, true, 0);
// 在调用地图追踪后伪造该地图追踪结束运行的日志信息,如 await fakeLog(`地图追踪.json`, false, false, 0);
// 如此便可以在js运行过程中伪造地图追踪的日志信息可以在日志分析等中查看
// name: 字符串,表示脚本或地图追踪的名称
// isJs: 布尔值true表示脚本false表示地图追踪
// isStart: 布尔值true表示开始日志false表示结束日志
@@ -45,8 +45,6 @@ async function fakeLog(name, isJs, isStart, duration) {
return;
}
// 将 currentTime 转换为 Date 对象并格式化为 HH:mm:ss.sss
const date = new Date(currentTime);
const hours = String(date.getHours()).padStart(2, '0');
@@ -113,44 +111,31 @@ 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} 种商品`);
// 加载商人数据
const npcsContent = await file.readText("assets/data/npcs.json");
const npcsContent = await file.readText("assets/npcs.json");
npcData = JSON.parse(npcsContent);
logConditional(`已加载商人数据: ${Object.keys(npcData).length} 个商人`);
// 解析用户要购买的商品列表
// 解析用户要购买的商品列表(中文商品名,空格分隔)
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}`);
}
// 直接使用用户输入的商品名,不需要验证是否存在(由用户自行确保)
userFoodsToBuy.add(foodName);
enabledFoodsList.push(foodName);
}
// 输出用户启用的商品列表
if (enabledFoodsList.length > 0) {
log.info(`用户启用了下列商品:${enabledFoodsList.join(", ")}`);
log.info(`用户启用了下列商品: ${enabledFoodsList.join(", ")}`);
} else {
log.warn("用户未启用任何商品");
}
@@ -172,22 +157,10 @@ function filterUserFoods(foodList) {
}
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);
// 直接检查商品名是否在用户要购买的商品集合中
const shouldBuy = userFoodsToBuy.has(food);
if (recordDebug && shouldBuy) {
log.info(`[调试] 用户选择购买: ${foodEntry.name} (ID: ${foodEntry.id})`);
log.info(`[调试] 用户选择购买: ${food}`);
}
return shouldBuy;
});
@@ -586,77 +559,6 @@ function formatDateToLocalISO(date) {
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}+08:00`;
}
// 设置游戏时间
async function setTime(hour, minute) {
// 关于setTime
// 原作者: Tim
// 脚本名称: SetTimeMinute - 精确调整游戏时间到分钟
// 脚本版本: 1.0
// Hash: f5c2547dfc286fc643c733d630f775e8fbf12971
// 设置游戏分辨率和DPI缩放
setGameMetrics(1920, 1080, 1);
// 圆心坐标
const centerX = 1441;
const centerY = 501.6;
// 半径
const r1 = 30;
const r2 = 150;
const r3 = 300;
const stepDuration = 50;
function getPosition(r, index) {
let angle = index * Math.PI / 720;
return [Math.round(centerX + r * Math.cos(angle)), Math.round(centerY + r * Math.sin(angle))];
}
async function mouseClick(x, y) {
moveMouseTo(x, y);
await sleep(50);
leftButtonDown();
await sleep(50);
leftButtonUp();
await sleep(stepDuration);
}
async function mouseClickAndMove(x1, y1, x2, y2) {
moveMouseTo(x1, y1);
await sleep(50);
leftButtonDown();
await sleep(50);
moveMouseTo(x2, y2);
await sleep(50);
leftButtonUp();
await sleep(stepDuration);
}
async function setTime(hour, minute) {
const end = (hour + 6) * 60 + minute - 20;
const n = 3;
for (let i = - n + 1; i < 1; i++) {
let [x, y] = getPosition(r1, end + i * 1440 / n);
await mouseClick(x, y);
}
let [x1, y1] = getPosition(r2, end + 5);
let [x2, y2] = getPosition(r3, end + 20 + 0.5);
await mouseClickAndMove(x1, y1, x2, y2);
}
let h = Math.floor(hour + minute / 60);
const m = Math.floor(hour * 60 + minute) - h * 60;
h = ((h % 24) + 24) % 24;
log.info(`设置时间到 ${h}${m}`);
await keyPress("Escape");
await sleep(1000);
await click(50, 700);
await sleep(2000);
await setTime(h, m);
await sleep(1000);
await click(1500, 1000);//确认
await sleep(18000);
await keyPress("Escape");
await sleep(2000);
await keyPress("Escape");
await sleep(2000);
}
// 地图追踪
async function autoPath(locationPath) {
try {
@@ -778,13 +680,21 @@ async function qucikBuy() {
async function spikChat(npcName) {
let count = 6; // 添加let声明
await sleep(1000);
if (npcName == "布纳马") {
if (npcName == "布纳马" || npcName == "杜拉夫") {
// 设置脚本环境的游戏分辨率和DPI缩放
setGameMetrics(1920, 1080, 1);
await sleep(1000);
// 交互
for (let i = 0; i < 3; i++) {
let loop_count = 3;
if (npcName == "布纳马") {
loop_count = 3;
} else if (npcName == "杜拉夫") {
loop_count = 2;
}
for (let i = 0; i < loop_count; i++) {
keyPress("VK_F");
await sleep(1500);
}
@@ -793,7 +703,7 @@ async function spikChat(npcName) {
let captureRegion = captureGameRegion()
let resList = captureRegion.findMulti(RecognitionObject.ocrThis);
for (let i = 0; i < resList.count; i++) {
if (resList[i].text.includes("有什么卖的")) {
if (resList[i].text.includes("有什么卖的") || resList[i].text.includes("可以卖一些")) {
await sleep(500);
click(resList[i].x + 30, resList[i].y + 30); // 点击有什么卖的
await sleep(500);
@@ -816,6 +726,40 @@ async function spikChat(npcName) {
}
}
// ==================== 商品识别对象映射表 ====================
let foodROMap = {}; // 键为商品名(中文),值为 RecognitionObject
// 加载识别对象(只加载用户选择的商品)
async function initRo() {
try {
for (let foodName of userFoodsToBuy) {
// 图片文件路径assets/images/商品名.png
const imagePath = `assets/images/${foodName}.png`;
try {
const ro = RecognitionObject.TemplateMatch(file.ReadImageMatSync(imagePath));
ro.Threshold = 0.75;
ro.Use3Channels = true;
foodROMap[foodName] = ro;
logConditional(`已启用商品: ${foodName}`);
} catch (e) {
log.error(`加载商品图片失败: ${imagePath},请确保图片存在`);
}
}
// 加载其他识别对象(购买按钮等)
for (let [key, item] of Object.entries(othrtRo)) {
item.ro = RecognitionObject.TemplateMatch(file.ReadImageMatSync(item.file));
item.ro.Threshold = 0.85;
}
logConditional(`总共启用了 ${userFoodsToBuy.size} 种商品`);
return true;
}
catch (error) {
log.error("加载识别对象时发生错误: {error}", error.message);
throw error;
}
}
// 主要购买逻辑
async function buyFoods(npcName, npcRecords, currentPeriod) {
// 设置脚本环境的游戏分辨率和DPI缩放
@@ -896,43 +840,27 @@ async function buyFoods(npcName, npcRecords, currentPeriod) {
log.info(`[调试] 尝试购买: ${item}`);
}
// 查找商品对应的ID支持中文名和英文ID
let foodId = null;
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}" 的识别数据,跳过`);
// 直接从映射表中获取识别对象
const ro = foodROMap[item];
if (!ro) {
log.warn(`商品 "${item}" 未启用或没有识别对象,跳过`);
continue;
}
if (!foodsData[foodId] || !foodsData[foodId].ro) {
log.warn(`商品 "${foodName}" (ID: ${foodId}) 未启用或没有识别对象,跳过`);
continue;
}
let resList = captureRegion.FindMulti(foodsData[foodId].ro);
let resList = captureRegion.FindMulti(ro);
for (let res of resList) {
if (recordDebug) {
log.info(`[调试] 找到物品: ${foodsData[foodId].name} 位置(${res.x},${res.y},${res.width},${res.height})`);
log.info(`[调试] 找到物品: ${item} 位置(${res.x},${res.y},${res.width},${res.height})`);
}
// 移除已购买的物品
boughtFoods.add(item);
// 点击商品
click(res.x * 2 + res.width, res.y * 2 + res.height);
if (await qucikBuy()) {
log.info(`购买成功: ${foodsData[foodId].name}`);
log.info(`购买成功: ${item}`);
// 交互或拾取:"XXXX"
await fakeLog(foodsData[foodId].name, false, false, 23333);
await fakeLog(item, false, false, 23333);
// 记录购买的商品
purchasedFoods.push(item);
@@ -945,12 +873,12 @@ async function buyFoods(npcName, npcRecords, currentPeriod) {
await saveNpcRecords(npcRecords);
}
await sleep(2000);
await sleep(1500);
// 重新截图
captureRegion = captureGameRegion();
}
else {
log.info(`购买失败: ${foodsData[foodId].name}, 背包已经满或商品已售罄`);
log.info(`购买失败: ${item}, 背包已经满或商品已售罄`);
}
}
}
@@ -1032,34 +960,6 @@ async function initNpcData(records) {
}
}
// 加载识别对象
async function initRo() {
try {
// 加载识别对象 - 只加载用户选择的商品
for (let [key, item] of Object.entries(foodsData)) {
// 判断是否在用户选择的商品中
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})`);
}
}
// 加载其他识别对象
for (let [key, item] of Object.entries(othrtRo)) {
item.ro = RecognitionObject.TemplateMatch(file.ReadImageMatSync(item.file));
item.ro.Threshold = 0.85;
}
logConditional(`总共启用了 ${userFoodsToBuy.size} 种商品`);
return true;
}
catch (error) {
log.error("加载识别对象时发生错误: {error}", error.message);
throw error;
}
}
(async function () {
try {
// ==================== 初始化账号 ====================
@@ -1067,9 +967,10 @@ async function initRo() {
// ==================== 加载外部数据 ====================
if (!await loadExternalData()) {
log.error("商品或商人数据加载失败,脚本终止");
log.error("商人数据加载失败,脚本终止");
return;
}
const skip = settings.skip || false;
// ==================== 初始化识别对象 ====================
await initRo();
@@ -1126,10 +1027,12 @@ async function initRo() {
// 设置游戏时间
if (npc.time === "night") {
await setTime(20, 0); // 设置为晚上8点
// 设置为晚上8点
await genshin.setTime(20, 0, skip);
}
else if (npc.time === "day") {
await setTime(8, 0); // 设置为早上8点
// 设置为早上8点
await genshin.setTime(8, 0, skip);
}
await autoPath(npc.path);
@@ -1164,4 +1067,4 @@ async function initRo() {
log.error(`执行时发生错误: ${error.message}`);
}
})();
})();

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "自动购买每天&3天&每周刷新商品",
"version": "3.1.3",
"version": "3.2.0",
"description": "自动购买每天&3天&每周刷新商品\n每天刷新商品自动购买商品\n3天刷新商品未到刷新日不购买该商品\n每周刷新商品可指定每周购买商品",
"authors": [
{

View File

@@ -39,6 +39,12 @@
"label": "禁用标签\n多个标签以空格分隔黑心商人 挪德卡莱)",
"default": ""
},
{
"name": "skip",
"type": "checkbox",
"label": "跳过调整时间动画(不推荐)",
"default": false
},
{
"name": "ignoreRecords",
"type": "checkbox",

View File

@@ -7,19 +7,25 @@
### 商人信息总览
| 所在地 | 商人名 | 每天刷新商品 | 3天刷新商品 | 每周刷新商品 | 标签 |
|--------|--------|-------------|------------|-------------|------|
| 蒙德-清泉镇 | 神奇的霍普金斯 | 圣水 | - | - | |
| 蒙德-风起地 | 克罗丽丝 | - | 金鱼草、薄荷、钩钩果、落落莓、慕风蘑菇 | - | 移动 |
| 蒙德-清泉镇 | 神奇的霍普金斯 | 圣水 | - | - | 稀少商品 |
| 蒙德-清泉镇 | 杜拉夫 | 兽肉、禽肉、鸟蛋 | - | - | |
| 蒙德-蒙德城 | 布兰琪 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦 | - | - | |
| 蒙德-蒙德城 | 莎拉 | - | - | 面粉、奶油、熏禽肉、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | - |
| 蒙德-蒙德城 | 莎拉 | - | - | 面粉、奶油、熏禽肉、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | |
| 蒙德-蒙德城 | 芙萝拉 | - | 甜甜花、风车菊、塞西莉亚花、小灯草、嘟嘟莲 | - | |
| 蒙德-蒙德城-天使的馈赠 | 查尔斯 | 冰钩钩果汁、树莓薄荷饮、苹果酿、气泡酸莓汁 | - | - | 稀少商品、独立地图 |
| 璃月-璃月港 | 阿山婆 | 霄灯 | - | - | |
| 璃月-璃月港 | 东升 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦、稻米、虾仁、豆腐、杏仁 | - | - | |
| 璃月-璃月港 | 卯师父 | 鱼肉、螃蟹 | 胡萝卜、松茸、绝云椒椒 | 面粉、糖、香肠、火腿 | |
| 璃月-璃月港 | 卯师父 | 鱼肉、螃蟹 | 竹笋、莲蓬、松茸、蘑菇、胡萝卜、白萝卜、绝云椒椒 | 面粉、糖、香肠、火腿 | |
| 璃月-璃月港 | 老孙 | 鱼肉、螃蟹、虾仁 | - | - | |
| 璃月-璃月港 | 老高 | 鱼肉、鱼肉2 | - | - | |
| 璃月-璃月港 | 阿桂 | - | 清心、琉璃袋 | - | |
| 璃月-璃月港 | 阿桂 | - | 清心、马尾、莲蓬、冰雾花花朵、烈焰花花蕊、琉璃袋 | - | |
| 璃月-望舒客栈 | 菲尔戈黛特 | - | 松茸、琉璃袋 | 黄油、香肠 | |
| 璃月-遗珑埠 | 丰泰 | - | 沉玉仙茗、琉璃袋、绝云椒椒 | 蟹黄 | |
| 璃月-遗珑埠 | 连芳 | - | 沉玉仙茗 | - | |
| 稻妻-离岛 | 小畑 | 螃蟹、鱼肉、虾仁 | - | - | |
| 稻妻-离岛 | 卡琵莉亚 | | 蒲公英籽 | - | |
| 稻妻-白狐之野 | 若紫 | - | - | 「四方八方之网」 | |
| 稻妻-稻妻城 | 葵 | 洋葱、牛奶、卷心菜、土豆、小麦、稻米、虾仁、豆腐、盐、胡椒、番茄 | - | - | |
| 稻妻-稻妻城 | 志村勘兵卫 | 鱼肉、螃蟹 | 堇瓜 | - | |
| 稻妻-海祇岛 | 清子 | - | - | 牛奶、番茄、土豆、小麦、豆腐 | |
@@ -33,15 +39,18 @@
| 须弥-奥摩斯港 | 巴巴克 | - | 清心、琉璃袋 | - | |
| 枫丹-枫丹廷 | 布希柯 | 枫达、洋葱、牛奶、卷心菜、土豆、小麦、秃秃豆、杏仁、发酵果实汁、盐、胡椒、番茄 | - | - | |
| 枫丹-枫丹廷 | 阿鲁埃 | 枫达、咖啡豆 | - | - | |
| 枫丹-枫丹廷-德波大饭店 | 桑格内蒂 | 枫达 | - | 面粉、奶油、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | 独立地图 |
| 枫丹-白淞镇 | 安特曼 | 鱼肉、螃蟹、虾仁 | 海露花、汐藻 | - | |
| 枫丹-锈舵酒馆 | 皮托 | 牛奶 | - | 培根、火腿、香肠、奶酪 | 黑心商人 |
| 纳塔-圣火竞技场 | 钦特利 | - | 青蜜莓、苦种 | - | |
| 纳塔-圣火竞技场 | 夏安卡 | - | - | 面粉、奶油、黄油、火腿、糖、蟹黄、果酱、奶酪、培根、香肠 | |
| 纳塔-圣火竞技场 | 布纳马 | 盐、胡椒、小麦、洋葱、牛奶、番茄、卷心菜、土豆、秃秃豆 | - | - | |
| 纳塔-圣火竞技场 | 布纳马 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦、秃秃豆 | 蘑菇 | - | |
| 挪德卡莱-那夏镇 | 采若 | 盐、胡椒、洋葱、牛奶、番茄、卷心菜、土豆、小麦、黑麦 | - | - | |
| 挪德卡莱-皮拉米达城 | 科菲策 | 牛奶、咖啡豆 | 微光角菌、琉鳞石 | - | 黑心商人 |
- 移动:指商人会移动,有机会购买失败
- 稀少商品:指稀少商品
- 独立地图:指需要进入独立空间的特殊地图,这些地图部份路径无法使用地图追踪功能
- 黑心商人:指没有折扣的商人,价格较贵的商人
### **标签系统尚未完全添加,欢迎补充标签**
### **商人与商品与标签系统尚未完全添加,欢迎补充**