diff --git a/repo/js/TravelersTales/README.md b/repo/js/TravelersTales/README.md new file mode 100644 index 00000000..e2afc924 --- /dev/null +++ b/repo/js/TravelersTales/README.md @@ -0,0 +1,48 @@ +# 自动游逸旅闻 +自动完成游逸旅闻活动 +暂仅支持“鎏溢之章” +## 路线 + +|路径|支持情况|含有键鼠脚本| +|--|--|--| +|八重神子-1|✔️|| +|迪希雅-1|✔️|| +|迪希雅-2|✔️|| +|菲米尼-1|✔️|✔️| +|基尼奇-1|❌[^1]|| +|柯莱-1|✔️|✔️| +|林尼-1|✔️|| +|琳妮特-1|❌[^2]|| +|鹿野院平藏-1|✔️|| +|鹿野院平藏-2|✔️|| +|鹿野院平藏-3|✔️|| +|鹿野院平藏-4|✔️|| +|鹿野院平藏-5|✔️|| +|梦见月瑞希-1|✔️|✔️| +|梦见月瑞希-2|✔️|✔️| +|那维莱特-1|✔️|| +|那维莱特-2|✔️|| +|那维莱特-3|✔️|| +|绮良良-1|✔️|| +|绮良良-2|✔️|| +|绮良良-3|✔️|| +|赛诺-1|✔️|| +|赛诺-2|✔️|| +|赛诺-3|✔️|| +|神里绫人-1|✔️|| +|托马-1|✔️|| +|托马-2|✔️|| +|希诺宁-1|❌[^1]|| +|夏洛蒂-1|✔️|| +|夏洛蒂-2|✔️|| +|夏洛蒂-3|✔️|| +|夏沃蕾-1|✔️|| +|伊安珊-1|❌[^1]|| +|伊法-1|❌[^1]|| +|早柚-1|✔️|| + +[^1]: 角色所在位置(圣火竞技场)无法使用地图追踪功能前往,键鼠录制的效果也非常不稳定 +[^2]: 角色所在位置(灰河)无法使用地图追踪功能前往,键鼠录制的效果也非常不稳定 + +## 待完成功能 +- [x] 连续运行 \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/avatars/八重神子.png b/repo/js/TravelersTales/assets/avatars/八重神子.png new file mode 100644 index 00000000..0f8bea6e Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/八重神子.png differ diff --git a/repo/js/TravelersTales/assets/avatars/夏洛蒂.png b/repo/js/TravelersTales/assets/avatars/夏洛蒂.png new file mode 100644 index 00000000..6690bb0a Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/夏洛蒂.png differ diff --git a/repo/js/TravelersTales/assets/avatars/托马.png b/repo/js/TravelersTales/assets/avatars/托马.png new file mode 100644 index 00000000..720a38f1 Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/托马.png differ diff --git a/repo/js/TravelersTales/assets/avatars/林尼.png b/repo/js/TravelersTales/assets/avatars/林尼.png new file mode 100644 index 00000000..436782d6 Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/林尼.png differ diff --git a/repo/js/TravelersTales/assets/avatars/柯莱.png b/repo/js/TravelersTales/assets/avatars/柯莱.png new file mode 100644 index 00000000..95b4f0ea Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/柯莱.png differ diff --git a/repo/js/TravelersTales/assets/avatars/梦见月瑞希.png b/repo/js/TravelersTales/assets/avatars/梦见月瑞希.png new file mode 100644 index 00000000..f7e5605e Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/梦见月瑞希.png differ diff --git a/repo/js/TravelersTales/assets/avatars/神里绫人.png b/repo/js/TravelersTales/assets/avatars/神里绫人.png new file mode 100644 index 00000000..7660ebf7 Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/神里绫人.png differ diff --git a/repo/js/TravelersTales/assets/avatars/赛诺.png b/repo/js/TravelersTales/assets/avatars/赛诺.png new file mode 100644 index 00000000..f8da37f4 Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/赛诺.png differ diff --git a/repo/js/TravelersTales/assets/avatars/迪希雅.png b/repo/js/TravelersTales/assets/avatars/迪希雅.png new file mode 100644 index 00000000..5abb0642 Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/迪希雅.png differ diff --git a/repo/js/TravelersTales/assets/avatars/那维莱特.png b/repo/js/TravelersTales/assets/avatars/那维莱特.png new file mode 100644 index 00000000..ef90f206 Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/那维莱特.png differ diff --git a/repo/js/TravelersTales/assets/avatars/鹿野院平藏.png b/repo/js/TravelersTales/assets/avatars/鹿野院平藏.png new file mode 100644 index 00000000..f3e16f6a Binary files /dev/null and b/repo/js/TravelersTales/assets/avatars/鹿野院平藏.png differ diff --git a/repo/js/TravelersTales/assets/icon/paimon_menu.png b/repo/js/TravelersTales/assets/icon/paimon_menu.png new file mode 100644 index 00000000..c424325b Binary files /dev/null and b/repo/js/TravelersTales/assets/icon/paimon_menu.png differ diff --git a/repo/js/TravelersTales/assets/icon/三个点.png b/repo/js/TravelersTales/assets/icon/三个点.png new file mode 100644 index 00000000..9d2b8ba9 Binary files /dev/null and b/repo/js/TravelersTales/assets/icon/三个点.png differ diff --git a/repo/js/TravelersTales/assets/icon/两个点.png b/repo/js/TravelersTales/assets/icon/两个点.png new file mode 100644 index 00000000..17c54e8d Binary files /dev/null and b/repo/js/TravelersTales/assets/icon/两个点.png differ diff --git a/repo/js/TravelersTales/assets/keymouse/托马-2.json b/repo/js/TravelersTales/assets/keymouse/托马-2.json new file mode 100644 index 00000000..2cc669b2 --- /dev/null +++ b/repo/js/TravelersTales/assets/keymouse/托马-2.json @@ -0,0 +1 @@ +{"macroEvents":[{"type":0,"keyCode":68,"mouseX":0,"mouseY":0,"time":1266},{"type":1,"keyCode":68,"mouseX":0,"mouseY":0,"time":1906},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":3000},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":4344}],"info":{"name":"","description":"","x":0,"y":0,"width":1920,"height":1080,"recordDpi":1}} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/keymouse/柯莱-1.json b/repo/js/TravelersTales/assets/keymouse/柯莱-1.json new file mode 100644 index 00000000..e8536fa0 --- /dev/null +++ b/repo/js/TravelersTales/assets/keymouse/柯莱-1.json @@ -0,0 +1 @@ +{"macroEvents":[{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":2062},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":3719},{"type":3,"mouseX":7,"mouseY":-4,"time":4010},{"type":3,"mouseX":9,"mouseY":-5,"time":4042},{"type":3,"mouseX":8,"mouseY":-7,"time":4073},{"type":3,"mouseX":6,"mouseY":-4,"time":4104},{"type":3,"mouseX":3,"mouseY":-3,"time":4151},{"type":3,"mouseX":2,"mouseY":-1,"time":4182},{"type":3,"mouseX":1,"mouseY":-2,"time":4214},{"type":3,"mouseX":2,"mouseY":-2,"time":4245},{"type":3,"mouseX":3,"mouseY":-3,"time":4276},{"type":3,"mouseX":2,"mouseY":-3,"time":4307},{"type":3,"mouseX":2,"mouseY":-1,"time":4339},{"type":3,"mouseX":2,"mouseY":-4,"time":4370},{"type":3,"mouseX":2,"mouseY":-2,"time":4401},{"type":3,"mouseX":3,"mouseY":-3,"time":4432},{"type":3,"mouseX":4,"mouseY":-5,"time":4464},{"type":3,"mouseX":1,"mouseY":-2,"time":4495},{"type":3,"mouseX":1,"mouseY":0,"time":4589},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":4781},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":13265},{"type":3,"mouseX":-11,"mouseY":5,"time":13870},{"type":3,"mouseX":-28,"mouseY":11,"time":13901},{"type":3,"mouseX":-46,"mouseY":13,"time":13932},{"type":3,"mouseX":-48,"mouseY":13,"time":13964},{"type":3,"mouseX":-25,"mouseY":10,"time":13995},{"type":3,"mouseX":-7,"mouseY":3,"time":14026},{"type":3,"mouseX":-51,"mouseY":22,"time":14057},{"type":3,"mouseX":-44,"mouseY":14,"time":14089},{"type":3,"mouseX":-45,"mouseY":10,"time":14120},{"type":3,"mouseX":-23,"mouseY":6,"time":14151},{"type":3,"mouseX":-29,"mouseY":10,"time":14229},{"type":3,"mouseX":-9,"mouseY":6,"time":14260},{"type":3,"mouseX":-16,"mouseY":10,"time":14292},{"type":3,"mouseX":-23,"mouseY":15,"time":14323},{"type":3,"mouseX":-18,"mouseY":12,"time":14354},{"type":3,"mouseX":-13,"mouseY":9,"time":14385},{"type":3,"mouseX":-12,"mouseY":7,"time":14417},{"type":3,"mouseX":-12,"mouseY":6,"time":14448},{"type":3,"mouseX":-6,"mouseY":5,"time":14479},{"type":3,"mouseX":-8,"mouseY":5,"time":14510},{"type":3,"mouseX":-7,"mouseY":5,"time":14542},{"type":3,"mouseX":-3,"mouseY":4,"time":14573},{"type":3,"mouseX":-5,"mouseY":3,"time":14620},{"type":3,"mouseX":-3,"mouseY":2,"time":14651},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":15015},{"type":3,"mouseX":0,"mouseY":-1,"time":16339},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":19625},{"type":3,"mouseX":-3,"mouseY":1,"time":20010},{"type":3,"mouseX":-17,"mouseY":6,"time":20042},{"type":3,"mouseX":-25,"mouseY":3,"time":20073},{"type":3,"mouseX":-23,"mouseY":1,"time":20104},{"type":3,"mouseX":-37,"mouseY":1,"time":20135},{"type":3,"mouseX":-36,"mouseY":0,"time":20167},{"type":3,"mouseX":-27,"mouseY":-1,"time":20198},{"type":3,"mouseX":-17,"mouseY":-2,"time":20229},{"type":3,"mouseX":-15,"mouseY":0,"time":20260},{"type":3,"mouseX":-9,"mouseY":-1,"time":20292},{"type":3,"mouseX":-4,"mouseY":-1,"time":20323},{"type":3,"mouseX":-8,"mouseY":0,"time":20354},{"type":3,"mouseX":-15,"mouseY":-2,"time":20385},{"type":3,"mouseX":-10,"mouseY":-1,"time":20417},{"type":3,"mouseX":-5,"mouseY":-1,"time":20448},{"type":3,"mouseX":-13,"mouseY":0,"time":20479},{"type":3,"mouseX":-12,"mouseY":0,"time":20510},{"type":3,"mouseX":-16,"mouseY":-1,"time":20542},{"type":3,"mouseX":-3,"mouseY":0,"time":20573},{"type":3,"mouseX":-1,"mouseY":-1,"time":20635},{"type":3,"mouseX":7,"mouseY":-2,"time":20760},{"type":3,"mouseX":2,"mouseY":-1,"time":20792},{"type":3,"mouseX":1,"mouseY":-1,"time":20823},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":21109},{"type":3,"mouseX":0,"mouseY":-1,"time":21417},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":22500}],"info":{"name":"","description":"","x":0,"y":0,"width":1920,"height":1080,"recordDpi":1}} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/keymouse/梦见月瑞希-1.json b/repo/js/TravelersTales/assets/keymouse/梦见月瑞希-1.json new file mode 100644 index 00000000..2c1326b7 --- /dev/null +++ b/repo/js/TravelersTales/assets/keymouse/梦见月瑞希-1.json @@ -0,0 +1 @@ +{"macroEvents":[{"type":3,"mouseX":0,"mouseY":-1,"time":245},{"type":3,"mouseX":-1,"mouseY":0,"time":713},{"type":3,"mouseX":-11,"mouseY":1,"time":745},{"type":3,"mouseX":-10,"mouseY":0,"time":776},{"type":3,"mouseX":-9,"mouseY":0,"time":807},{"type":3,"mouseX":-10,"mouseY":1,"time":838},{"type":3,"mouseX":-11,"mouseY":0,"time":870},{"type":3,"mouseX":-7,"mouseY":0,"time":901},{"type":3,"mouseX":-8,"mouseY":0,"time":932},{"type":3,"mouseX":-9,"mouseY":0,"time":963},{"type":3,"mouseX":-21,"mouseY":0,"time":995},{"type":3,"mouseX":-14,"mouseY":0,"time":1026},{"type":3,"mouseX":-26,"mouseY":0,"time":1057},{"type":3,"mouseX":-19,"mouseY":0,"time":1088},{"type":3,"mouseX":-17,"mouseY":0,"time":1120},{"type":3,"mouseX":-17,"mouseY":1,"time":1151},{"type":3,"mouseX":-17,"mouseY":1,"time":1182},{"type":3,"mouseX":-14,"mouseY":0,"time":1213},{"type":3,"mouseX":-19,"mouseY":0,"time":1245},{"type":3,"mouseX":-14,"mouseY":1,"time":1276},{"type":3,"mouseX":-12,"mouseY":0,"time":1307},{"type":3,"mouseX":-17,"mouseY":0,"time":1338},{"type":3,"mouseX":-12,"mouseY":0,"time":1370},{"type":3,"mouseX":-18,"mouseY":0,"time":1401},{"type":3,"mouseX":-12,"mouseY":0,"time":1432},{"type":3,"mouseX":-6,"mouseY":0,"time":1463},{"type":3,"mouseX":-8,"mouseY":0,"time":1495},{"type":3,"mouseX":-10,"mouseY":0,"time":1526},{"type":3,"mouseX":-8,"mouseY":0,"time":1557},{"type":3,"mouseX":-10,"mouseY":0,"time":1588},{"type":3,"mouseX":-8,"mouseY":0,"time":1620},{"type":3,"mouseX":-7,"mouseY":1,"time":1651},{"type":3,"mouseX":-6,"mouseY":0,"time":1682},{"type":3,"mouseX":-5,"mouseY":0,"time":1713},{"type":3,"mouseX":-6,"mouseY":0,"time":1745},{"type":3,"mouseX":-5,"mouseY":1,"time":1776},{"type":3,"mouseX":-7,"mouseY":0,"time":1807},{"type":3,"mouseX":-5,"mouseY":0,"time":1838},{"type":3,"mouseX":-4,"mouseY":0,"time":1870},{"type":3,"mouseX":-3,"mouseY":1,"time":1901},{"type":3,"mouseX":-3,"mouseY":0,"time":1932},{"type":3,"mouseX":-1,"mouseY":0,"time":1963},{"type":3,"mouseX":-1,"mouseY":0,"time":1995},{"type":3,"mouseX":-1,"mouseY":0,"time":2026},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":2640},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":3734},{"type":0,"keyCode":65,"mouseX":0,"mouseY":0,"time":4484},{"type":1,"keyCode":65,"mouseX":0,"mouseY":0,"time":5765}],"info":{"name":"","description":"","x":318,"y":199,"width":1920,"height":1080,"recordDpi":1.5}} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/keymouse/梦见月瑞希-2.json b/repo/js/TravelersTales/assets/keymouse/梦见月瑞希-2.json new file mode 100644 index 00000000..e959e1b9 --- /dev/null +++ b/repo/js/TravelersTales/assets/keymouse/梦见月瑞希-2.json @@ -0,0 +1 @@ +{"macroEvents":[{"type":3,"mouseX":-4,"mouseY":1,"time":964},{"type":3,"mouseX":-2,"mouseY":0,"time":1105},{"type":3,"mouseX":-9,"mouseY":1,"time":1136},{"type":3,"mouseX":-9,"mouseY":1,"time":1167},{"type":3,"mouseX":-13,"mouseY":1,"time":1198},{"type":3,"mouseX":-14,"mouseY":0,"time":1230},{"type":3,"mouseX":-16,"mouseY":1,"time":1261},{"type":3,"mouseX":-20,"mouseY":2,"time":1292},{"type":3,"mouseX":-26,"mouseY":2,"time":1323},{"type":3,"mouseX":-18,"mouseY":1,"time":1355},{"type":3,"mouseX":-7,"mouseY":1,"time":1386},{"type":3,"mouseX":-17,"mouseY":0,"time":1417},{"type":3,"mouseX":-13,"mouseY":0,"time":1448},{"type":3,"mouseX":-13,"mouseY":0,"time":1480},{"type":3,"mouseX":-14,"mouseY":1,"time":1511},{"type":3,"mouseX":-11,"mouseY":0,"time":1542},{"type":3,"mouseX":-13,"mouseY":0,"time":1573},{"type":3,"mouseX":-13,"mouseY":1,"time":1605},{"type":3,"mouseX":-19,"mouseY":1,"time":1636},{"type":3,"mouseX":-26,"mouseY":0,"time":1667},{"type":3,"mouseX":-14,"mouseY":0,"time":1698},{"type":3,"mouseX":-1,"mouseY":0,"time":1776},{"type":3,"mouseX":-2,"mouseY":0,"time":1808},{"type":3,"mouseX":-10,"mouseY":1,"time":1839},{"type":3,"mouseX":-1,"mouseY":1,"time":1917},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":2094},{"type":3,"mouseX":7,"mouseY":-3,"time":2308},{"type":3,"mouseX":4,"mouseY":-2,"time":2339},{"type":3,"mouseX":0,"mouseY":-1,"time":2448},{"type":3,"mouseX":0,"mouseY":1,"time":3151},{"type":3,"mouseX":2,"mouseY":0,"time":3495},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":4922},{"type":3,"mouseX":2,"mouseY":0,"time":5745},{"type":3,"mouseX":15,"mouseY":3,"time":5776},{"type":3,"mouseX":14,"mouseY":3,"time":5808},{"type":3,"mouseX":24,"mouseY":5,"time":5839},{"type":3,"mouseX":24,"mouseY":5,"time":5870},{"type":3,"mouseX":20,"mouseY":5,"time":5901},{"type":3,"mouseX":17,"mouseY":4,"time":5933},{"type":3,"mouseX":19,"mouseY":3,"time":5964},{"type":3,"mouseX":17,"mouseY":1,"time":5995},{"type":3,"mouseX":18,"mouseY":1,"time":6026},{"type":3,"mouseX":17,"mouseY":1,"time":6058},{"type":3,"mouseX":32,"mouseY":2,"time":6089},{"type":3,"mouseX":33,"mouseY":1,"time":6120},{"type":3,"mouseX":41,"mouseY":3,"time":6151},{"type":3,"mouseX":43,"mouseY":4,"time":6183},{"type":3,"mouseX":17,"mouseY":2,"time":6214},{"type":3,"mouseX":19,"mouseY":1,"time":6245},{"type":3,"mouseX":29,"mouseY":2,"time":6276},{"type":3,"mouseX":27,"mouseY":1,"time":6308},{"type":3,"mouseX":35,"mouseY":1,"time":6339},{"type":3,"mouseX":38,"mouseY":2,"time":6370},{"type":3,"mouseX":28,"mouseY":1,"time":6401},{"type":3,"mouseX":24,"mouseY":2,"time":6433},{"type":3,"mouseX":16,"mouseY":1,"time":6464},{"type":3,"mouseX":25,"mouseY":5,"time":6495},{"type":3,"mouseX":26,"mouseY":4,"time":6526},{"type":3,"mouseX":26,"mouseY":2,"time":6558},{"type":3,"mouseX":27,"mouseY":4,"time":6589},{"type":3,"mouseX":28,"mouseY":7,"time":6620},{"type":3,"mouseX":25,"mouseY":5,"time":6651},{"type":3,"mouseX":27,"mouseY":6,"time":6683},{"type":3,"mouseX":34,"mouseY":10,"time":6730},{"type":3,"mouseX":30,"mouseY":8,"time":6761},{"type":3,"mouseX":22,"mouseY":1,"time":6792},{"type":3,"mouseX":13,"mouseY":1,"time":6823},{"type":3,"mouseX":10,"mouseY":0,"time":6855},{"type":3,"mouseX":18,"mouseY":-3,"time":6886},{"type":3,"mouseX":14,"mouseY":-1,"time":6917},{"type":3,"mouseX":11,"mouseY":0,"time":6948},{"type":3,"mouseX":2,"mouseY":0,"time":7120},{"type":3,"mouseX":2,"mouseY":-1,"time":7151},{"type":3,"mouseX":1,"mouseY":0,"time":7183},{"type":3,"mouseX":5,"mouseY":0,"time":7292},{"type":3,"mouseX":5,"mouseY":1,"time":7323},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":7547},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":8500},{"type":3,"mouseX":-1,"mouseY":1,"time":8745},{"type":3,"mouseX":-2,"mouseY":0,"time":8776},{"type":3,"mouseX":-4,"mouseY":1,"time":8933},{"type":3,"mouseX":-13,"mouseY":1,"time":8964},{"type":3,"mouseX":-20,"mouseY":1,"time":8995},{"type":3,"mouseX":-12,"mouseY":0,"time":9026},{"type":3,"mouseX":-21,"mouseY":2,"time":9058},{"type":3,"mouseX":-33,"mouseY":2,"time":9089},{"type":3,"mouseX":-36,"mouseY":1,"time":9120},{"type":3,"mouseX":-27,"mouseY":0,"time":9151},{"type":3,"mouseX":-29,"mouseY":0,"time":9183},{"type":3,"mouseX":-49,"mouseY":1,"time":9214},{"type":3,"mouseX":-66,"mouseY":0,"time":9245},{"type":3,"mouseX":-60,"mouseY":-2,"time":9276},{"type":3,"mouseX":-43,"mouseY":-2,"time":9308},{"type":3,"mouseX":-54,"mouseY":-2,"time":9339},{"type":3,"mouseX":-67,"mouseY":-1,"time":9370},{"type":3,"mouseX":-72,"mouseY":-4,"time":9401},{"type":3,"mouseX":-61,"mouseY":-2,"time":9433},{"type":3,"mouseX":-63,"mouseY":-2,"time":9464},{"type":3,"mouseX":-72,"mouseY":0,"time":9495},{"type":3,"mouseX":-50,"mouseY":0,"time":9526},{"type":3,"mouseX":-23,"mouseY":0,"time":9558},{"type":3,"mouseX":-40,"mouseY":0,"time":9589},{"type":3,"mouseX":-40,"mouseY":-2,"time":9620},{"type":3,"mouseX":-11,"mouseY":-3,"time":9651},{"type":3,"mouseX":1,"mouseY":0,"time":9730},{"type":3,"mouseX":1,"mouseY":-2,"time":9776},{"type":3,"mouseX":4,"mouseY":-1,"time":9980},{"type":3,"mouseX":1,"mouseY":-1,"time":10011},{"type":3,"mouseX":0,"mouseY":-1,"time":10058},{"type":3,"mouseX":2,"mouseY":0,"time":10136},{"type":3,"mouseX":1,"mouseY":-1,"time":10167},{"type":3,"mouseX":1,"mouseY":-1,"time":10198},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":10266},{"type":3,"mouseX":0,"mouseY":-1,"time":10511},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":12141},{"type":3,"mouseX":-20,"mouseY":6,"time":12667},{"type":3,"mouseX":-52,"mouseY":7,"time":12698},{"type":3,"mouseX":-47,"mouseY":3,"time":12730},{"type":3,"mouseX":-70,"mouseY":2,"time":12761},{"type":3,"mouseX":-65,"mouseY":5,"time":12792},{"type":3,"mouseX":-43,"mouseY":7,"time":12823},{"type":3,"mouseX":-50,"mouseY":9,"time":12855},{"type":3,"mouseX":-64,"mouseY":10,"time":12886},{"type":3,"mouseX":-54,"mouseY":12,"time":12917},{"type":3,"mouseX":-6,"mouseY":1,"time":12995},{"type":3,"mouseX":-45,"mouseY":-15,"time":13230},{"type":3,"mouseX":-61,"mouseY":-8,"time":13261},{"type":3,"mouseX":-105,"mouseY":-8,"time":13292},{"type":3,"mouseX":-44,"mouseY":-1,"time":13323},{"type":3,"mouseX":-26,"mouseY":0,"time":13355},{"type":3,"mouseX":-9,"mouseY":1,"time":13386},{"type":3,"mouseX":-10,"mouseY":0,"time":13417},{"type":3,"mouseX":-21,"mouseY":2,"time":13448},{"type":3,"mouseX":-16,"mouseY":2,"time":13480},{"type":3,"mouseX":-11,"mouseY":0,"time":13511},{"type":3,"mouseX":-12,"mouseY":1,"time":13542},{"type":3,"mouseX":-19,"mouseY":2,"time":13573},{"type":3,"mouseX":-21,"mouseY":3,"time":13605},{"type":3,"mouseX":-22,"mouseY":2,"time":13636},{"type":3,"mouseX":-18,"mouseY":3,"time":13667},{"type":3,"mouseX":-11,"mouseY":1,"time":13698},{"type":3,"mouseX":-18,"mouseY":3,"time":13730},{"type":3,"mouseX":-21,"mouseY":4,"time":13761},{"type":3,"mouseX":-15,"mouseY":3,"time":13792},{"type":3,"mouseX":-4,"mouseY":1,"time":13823},{"type":3,"mouseX":-7,"mouseY":1,"time":13917},{"type":3,"mouseX":-3,"mouseY":0,"time":13948},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":14141},{"type":3,"mouseX":-1,"mouseY":0,"time":14276},{"type":3,"mouseX":-1,"mouseY":1,"time":14355},{"type":3,"mouseX":1,"mouseY":0,"time":14433},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":14938},{"type":3,"mouseX":11,"mouseY":0,"time":15167},{"type":3,"mouseX":24,"mouseY":1,"time":15198},{"type":3,"mouseX":60,"mouseY":4,"time":15230},{"type":3,"mouseX":84,"mouseY":7,"time":15261},{"type":3,"mouseX":102,"mouseY":5,"time":15292},{"type":3,"mouseX":108,"mouseY":4,"time":15323},{"type":3,"mouseX":105,"mouseY":5,"time":15355},{"type":3,"mouseX":110,"mouseY":6,"time":15386},{"type":3,"mouseX":87,"mouseY":7,"time":15417},{"type":3,"mouseX":113,"mouseY":8,"time":15448},{"type":3,"mouseX":97,"mouseY":5,"time":15480},{"type":3,"mouseX":74,"mouseY":5,"time":15511},{"type":3,"mouseX":50,"mouseY":3,"time":15542},{"type":3,"mouseX":28,"mouseY":0,"time":15573},{"type":3,"mouseX":5,"mouseY":0,"time":15605},{"type":3,"mouseX":-8,"mouseY":0,"time":15808},{"type":3,"mouseX":-9,"mouseY":0,"time":15839},{"type":3,"mouseX":-7,"mouseY":-1,"time":15870},{"type":3,"mouseX":-14,"mouseY":-3,"time":15901},{"type":3,"mouseX":-11,"mouseY":-3,"time":15933},{"type":3,"mouseX":-12,"mouseY":-1,"time":15964},{"type":3,"mouseX":-13,"mouseY":-3,"time":15995},{"type":3,"mouseX":-12,"mouseY":-3,"time":16026},{"type":3,"mouseX":-3,"mouseY":-2,"time":16120},{"type":3,"mouseX":-1,"mouseY":0,"time":16167},{"type":3,"mouseX":-1,"mouseY":-2,"time":16198},{"type":3,"mouseX":-1,"mouseY":-1,"time":16230},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":16391},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":17031}],"info":{"name":"","description":"","x":0,"y":0,"width":1920,"height":1080,"recordDpi":1}} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/keymouse/菲米尼-1.json b/repo/js/TravelersTales/assets/keymouse/菲米尼-1.json new file mode 100644 index 00000000..3ba6fce2 --- /dev/null +++ b/repo/js/TravelersTales/assets/keymouse/菲米尼-1.json @@ -0,0 +1 @@ +{"macroEvents":[{"type":0,"keyCode":68,"mouseX":0,"mouseY":0,"time":328},{"type":1,"keyCode":68,"mouseX":0,"mouseY":0,"time":4250},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":4875},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":7360},{"type":4,"mouseX":959,"mouseY":539,"mouseButton":"Middle","time":8063},{"type":3,"mouseX":-8,"mouseY":6,"time":8183},{"type":3,"mouseX":-10,"mouseY":7,"time":8214},{"type":5,"mouseX":959,"mouseY":539,"mouseButton":"Middle","time":8219},{"type":3,"mouseX":0,"mouseY":1,"time":8323},{"type":0,"keyCode":68,"mouseX":0,"mouseY":0,"time":8797},{"type":1,"keyCode":68,"mouseX":0,"mouseY":0,"time":12203},{"type":4,"mouseX":960,"mouseY":540,"mouseButton":"Middle","time":12782},{"type":5,"mouseX":960,"mouseY":540,"mouseButton":"Middle","time":12953},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":13469},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":21469}],"info":{"name":"","description":"","x":0,"y":0,"width":1920,"height":1080,"recordDpi":1}} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/八重神子-1.json b/repo/js/TravelersTales/assets/pathing/八重神子-1.json new file mode 100644 index 00000000..cea52135 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/八重神子-1.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "八重神子-1", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750328452356 + }, + "positions": [ + { + "id": 1, + "x": -4375.716796875, + "y": -2498.1533203125, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -4393.720703125, + "y": -2484.8095703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4398.73828125, + "y": -2491.287109375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4424.5078125, + "y": -2475.228515625, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keydown(w),wait(3),keyup(w)" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/夏沃蕾-1.json b/repo/js/TravelersTales/assets/pathing/夏沃蕾-1.json new file mode 100644 index 00000000..9e198c9f --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/夏沃蕾-1.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "夏沃蕾-1", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751036415928 + }, + "positions": [ + { + "id": 1, + "x": 4318.32080078125, + "y": 3591.339599609375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 4318.32080078125, + "y": 3591.339599609375, + "action": "combat_script", + "move_mode": "walk", + "action_params": "wait(0.2),keydown(SPACE),wait(5),keyup(SPACE)", + "type": "path" + }, + { + "id": 3, + "x": 4344.07470703125, + "y": 3671.5439453125, + "action": "", + "move_mode": "run", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 4346.1875, + "y": 3697.3125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": 4343.519, + "y": 3701.963, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 4354.89306640625, + "y": 3707.44287109375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 4379.984375, + "y": 3716.22900390625, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w)" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/夏洛蒂-1.json b/repo/js/TravelersTales/assets/pathing/夏洛蒂-1.json new file mode 100644 index 00000000..6d813df3 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/夏洛蒂-1.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "夏洛蒂-1", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750327464492 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 4610.97021484375, + "y": 3601.181640625, + "action_params": "" + }, + { + "id": 2, + "x": 4605.48583984375, + "y": 3587.205810546875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 4607.0400390625, + "y": 3555.32470703125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 4618.89013671875, + "y": 3516.02392578125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "2000" + }, + { + "id": 5, + "x": 4618.59521484375, + "y": 3518.6279296875, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w)" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/夏洛蒂-2.json b/repo/js/TravelersTales/assets/pathing/夏洛蒂-2.json new file mode 100644 index 00000000..0ee2f640 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/夏洛蒂-2.json @@ -0,0 +1,67 @@ +{ + "info": { + "name": "夏洛蒂-2", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 4645.43994140625, + "y": 3467.868896484375, + "type": "teleport", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 4643.67138671875, + "y": 3481.740966796875, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 4642.9287109375, + "y": 3487.9013671875, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 4645.36962890625, + "y": 3493.369140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 4641.8642578125, + "y": 3495.07763671875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 4641.8369140625, + "y": 3495.466064453125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/夏洛蒂-3.json b/repo/js/TravelersTales/assets/pathing/夏洛蒂-3.json new file mode 100644 index 00000000..ca0ca170 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/夏洛蒂-3.json @@ -0,0 +1,67 @@ +{ + "info": { + "name": "夏洛蒂-3", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "run", + "type": "teleport", + "x": 4454.59033203125, + "y": 3444.196044921875, + "action_params": "" + }, + { + "id": 2, + "x": 4430.828125, + "y": 3457.917724609375, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 4425.0263671875, + "y": 3503.76220703125, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 4439.91845703125, + "y": 3531.34912109375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 4440.798828125, + "y": 3532.854736328125, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 4443.71435546875, + "y": 3537.876708984375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/托马-1.json b/repo/js/TravelersTales/assets/pathing/托马-1.json new file mode 100644 index 00000000..66bb5e82 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/托马-1.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "托马-1", + "type": "collect", + "author": "HZYgrandma", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750221072722 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -4402.515625, + "y": -3053.001953125, + "action_params": "" + }, + { + "id": 2, + "x": -4397.998046875, + "y": -3062.0732421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4380.201171875, + "y": -3074.171875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4375.798828125, + "y": -3083.328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4386.919921875, + "y": -3098.255859375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -4394.58984375, + "y": -3124.421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -4399.65234375, + "y": -3130.015625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/托马-2.json b/repo/js/TravelersTales/assets/pathing/托马-2.json new file mode 100644 index 00000000..2892b97c --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/托马-2.json @@ -0,0 +1,159 @@ +{ + "info": { + "name": "托马-2", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750496772417 + }, + "positions": [ + { + "id": 1, + "x": -867.689453125, + "y": 2281.361083984375, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -867.8779296875, + "y": 2289.819091796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -874.130859375, + "y": 2302.76611328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -882.0615234375, + "y": 2317.410888671875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -887.4970703125, + "y": 2326.26025390625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -891.3330078125, + "y": 2321.82421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -905.26953125, + "y": 2313.772216796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -909.91015625, + "y": 2312.240234375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -911.29296875, + "y": 2315.97998046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -918.0234375, + "y": 2327.587890625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -921.2900390625, + "y": 2327.424072265625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -929.6376953125, + "y": 2323.208251953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -935.4296875, + "y": 2314.172607421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 14, + "x": -939.9609375, + "y": 2306.020751953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 15, + "x": -945.205078125, + "y": 2307.8359375, + "type": "target", + "move_mode": "jump", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 16, + "x": -929.5537109375, + "y": 2301.4296875, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/早柚-1.json b/repo/js/TravelersTales/assets/pathing/早柚-1.json new file mode 100644 index 00000000..30988fb0 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/早柚-1.json @@ -0,0 +1,94 @@ +{ + "info": { + "name": "早柚-1", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "run", + "type": "teleport", + "x": -4402.552734375, + "y": -3053.0302734375, + "action_params": "" + }, + { + "id": 2, + "x": -4394.763671875, + "y": -3064.9873046875, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4365.87890625, + "y": -3091.501953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4363.03125, + "y": -3094.111328125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4330.353515625, + "y": -3137.642578125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 6, + "x": -4327.9609375, + "y": -3140.708984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -4327.91796875, + "y": -3140.705078125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -4327.04296875, + "y": -3140.8291015625, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -4326.71875, + "y": -3140.927734375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/林尼-1.json b/repo/js/TravelersTales/assets/pathing/林尼-1.json new file mode 100644 index 00000000..442cc8aa --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/林尼-1.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "林尼-1", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750236621542 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 4301.302734375, + "y": 4765.01025390625, + "action_params": "" + }, + { + "id": 2, + "x": 4289.541015625, + "y": 4764.77734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 4268.943359375, + "y": 4759.98681640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 4237.4873046875, + "y": 4783.37353515625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 4230.89111328125, + "y": 4788.2646484375, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 4209.32958984375, + "y": 4804.1025390625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 4197.10400390625, + "y": 4805.5341796875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/柯莱-1.json b/repo/js/TravelersTales/assets/pathing/柯莱-1.json new file mode 100644 index 00000000..40ee8010 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/柯莱-1.json @@ -0,0 +1,105 @@ +{ + "info": { + "name": "柯莱-1", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750225668959 + }, + "positions": [ + { + "id": 1, + "x": 2694.0634765625, + "y": -416.45068359375, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 2708.0478515625, + "y": -422.43115234375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 2725.3505859375, + "y": -418.0947265625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 2737.44140625, + "y": -414.5146484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 2758.19140625, + "y": -408.62158203125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 2775.984375, + "y": -394.5595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 2795.8076171875, + "y": -397.115234375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": 2810.3837890625, + "y": -393.03857421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": 2827.4443359375, + "y": -388.52685546875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": 2843.248046875, + "y": -384.18798828125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/梦见月瑞希-1.json b/repo/js/TravelersTales/assets/pathing/梦见月瑞希-1.json new file mode 100644 index 00000000..9942dd37 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/梦见月瑞希-1.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "梦见月瑞希-1", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750325435366 + }, + "positions": [ + { + "id": 1, + "x": -4402.470703125, + "y": -3053.05078125, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -4407.0234375, + "y": -3066.736328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4439.341796875, + "y": -3106.0869140625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4455.4921875, + "y": -3116.537109375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4458.6171875, + "y": -3111.31640625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/梦见月瑞希-2.json b/repo/js/TravelersTales/assets/pathing/梦见月瑞希-2.json new file mode 100644 index 00000000..9942dd37 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/梦见月瑞希-2.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "梦见月瑞希-1", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750325435366 + }, + "positions": [ + { + "id": 1, + "x": -4402.470703125, + "y": -3053.05078125, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -4407.0234375, + "y": -3066.736328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4439.341796875, + "y": -3106.0869140625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4455.4921875, + "y": -3116.537109375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4458.6171875, + "y": -3111.31640625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/神里绫人-1.json b/repo/js/TravelersTales/assets/pathing/神里绫人-1.json new file mode 100644 index 00000000..029fc7df --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/神里绫人-1.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "神里绫人-1", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750412953192 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -4492.0078125, + "y": -3208.1435546875, + "action_params": "" + }, + { + "id": 2, + "x": -4479.404296875, + "y": -3185.94921875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4490.958984375, + "y": -3143.4794921875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4473.443359375, + "y": -3131.95703125, + "type": "target", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4470.8359375, + "y": -3130.203125, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w)" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/绮良良-1.json b/repo/js/TravelersTales/assets/pathing/绮良良-1.json new file mode 100644 index 00000000..91ea3b03 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/绮良良-1.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "绮良良-1", + "type": "collect", + "author": "HZYgrandma", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750220971981 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 267.9384765625, + "y": -665.15576171875, + "action_params": "" + }, + { + "id": 2, + "x": 247.98046875, + "y": -665.54345703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 232.5732421875, + "y": -664.62890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 230.8349609375, + "y": -671.86962890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/绮良良-2.json b/repo/js/TravelersTales/assets/pathing/绮良良-2.json new file mode 100644 index 00000000..91ea3b03 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/绮良良-2.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "绮良良-1", + "type": "collect", + "author": "HZYgrandma", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750220971981 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 267.9384765625, + "y": -665.15576171875, + "action_params": "" + }, + { + "id": 2, + "x": 247.98046875, + "y": -665.54345703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 232.5732421875, + "y": -664.62890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 230.8349609375, + "y": -671.86962890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/绮良良-3.json b/repo/js/TravelersTales/assets/pathing/绮良良-3.json new file mode 100644 index 00000000..0e2cc4de --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/绮良良-3.json @@ -0,0 +1,112 @@ +{ + "info": { + "name": "绮良良-3", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -4578.759765625, + "y": -2577.7197265625, + "type": "teleport", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -4568.271484375, + "y": -2599.685546875, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4539.041015625, + "y": -2642.1279296875, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4522.158203125, + "y": -2652.9345703125, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4499.05078125, + "y": -2652.861328125, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -4484.30859375, + "y": -2659.0625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -4478.20703125, + "y": -2656.6845703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -4472.6015625, + "y": -2654.2275390625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -4472.626953125, + "y": -2654.2333984375, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -4472.626953125, + "y": -2654.2333984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -4473.568359375, + "y": -2655.318359375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/菲米尼-1.json b/repo/js/TravelersTales/assets/pathing/菲米尼-1.json new file mode 100644 index 00000000..554988a1 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/菲米尼-1.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "菲米尼-1", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750225048040 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 4212, + "y": 2996.5, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/赛诺-1.json b/repo/js/TravelersTales/assets/pathing/赛诺-1.json new file mode 100644 index 00000000..52c44c55 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/赛诺-1.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "赛诺-1", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750225356014 + }, + "positions": [ + { + "id": 1, + "x": 3097.2314453125, + "y": -355.9384765625, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 3077.6220703125, + "y": -314.19384765625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 3058.3193359375, + "y": -272.73779296875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 3058.193359375, + "y": -269.69873046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 3062.4736328125, + "y": -267.92431640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/赛诺-2.json b/repo/js/TravelersTales/assets/pathing/赛诺-2.json new file mode 100644 index 00000000..a332658b --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/赛诺-2.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "赛诺-2", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750500484149 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 3097.2197265625, + "y": -355.92333984375, + "action_params": "" + }, + { + "id": 2, + "x": 3086.1279296875, + "y": -343.08251953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 3080.5048828125, + "y": -321.27294921875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 3075.7685546875, + "y": -312.60498046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 3059.2041015625, + "y": -276.119140625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 3057.1142578125, + "y": -271.5478515625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 3059.7607421875, + "y": -268.31884765625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/赛诺-3.json b/repo/js/TravelersTales/assets/pathing/赛诺-3.json new file mode 100644 index 00000000..f4b59f9d --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/赛诺-3.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "赛诺-3", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751042155932 + }, + "positions": [ + { + "id": 1, + "x": 2867.2216796875, + "y": -381.30224609375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": 2864.5419921875, + "y": -381.12060546875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 2862.8505859375, + "y": -381.5927734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 2861.4150390625, + "y": -381.31591796875, + "action": "combat_script", + "move_mode": "walk", + "action_params": "keypress(w),wait(1)", + "type": "orientation" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/迪希雅-1.json b/repo/js/TravelersTales/assets/pathing/迪希雅-1.json new file mode 100644 index 00000000..2fececba --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/迪希雅-1.json @@ -0,0 +1,69 @@ +{ + "info": { + "name": "迪希雅-1", + "type": "collect", + "author": "HZYgrandma", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750221371509 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 3774.046875, + "y": 3784.006103515625, + "action_params": "" + }, + { + "id": 2, + "x": 3786.087890625, + "y": 3775.61328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 3782.7685546875, + "y": 3737.6064453125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 3777.861328125, + "y": 3682.564453125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 3772.1533203125, + "y": 3611.31591796875, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 6, + "x": 3771.6982421875, + "y": 3608.28466796875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/迪希雅-2.json b/repo/js/TravelersTales/assets/pathing/迪希雅-2.json new file mode 100644 index 00000000..d32074c8 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/迪希雅-2.json @@ -0,0 +1,87 @@ +{ + "info": { + "name": "迪希雅-2", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750500882383 + }, + "positions": [ + { + "id": 1, + "x": 4454.61328125, + "y": 3444.1884765625, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 4454.59912109375, + "y": 3449.80712890625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 4449.28466796875, + "y": 3491.033935546875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 4452.33056640625, + "y": 3508.1708984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 4451.8212890625, + "y": 3514.510986328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 4436.044921875, + "y": 3516.88330078125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 4436.0830078125, + "y": 3528.451416015625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": 4436.166015625, + "y": 3539.046630859375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/那维莱特-1.json b/repo/js/TravelersTales/assets/pathing/那维莱特-1.json new file mode 100644 index 00000000..519c6a80 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/那维莱特-1.json @@ -0,0 +1,58 @@ +{ + "info": { + "name": "那维莱特-1", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 3635.4814453125, + "y": 3801.474365234375, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 3635.5458984375, + "y": 3801.385009765625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 3595.3310546875, + "y": 3796.18896484375, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 3595.4423828125, + "y": 3798.190185546875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 3596.189453125, + "y": 3801.076171875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/那维莱特-2.json b/repo/js/TravelersTales/assets/pathing/那维莱特-2.json new file mode 100644 index 00000000..867fa25c --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/那维莱特-2.json @@ -0,0 +1,69 @@ +{ + "info": { + "name": "那维莱特-2", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750501056343 + }, + "positions": [ + { + "id": 1, + "x": 4454.62060546875, + "y": 3444.1884765625, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 4469.05615234375, + "y": 3460.261962890625, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 3, + "x": 4477.69140625, + "y": 3484.501953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 4475.39306640625, + "y": 3511.39111328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 4474.451171875, + "y": 3527.21875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 4472.65234375, + "y": 3553.238037109375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/那维莱特-3.json b/repo/js/TravelersTales/assets/pathing/那维莱特-3.json new file mode 100644 index 00000000..a19df7af --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/那维莱特-3.json @@ -0,0 +1,76 @@ +{ + "info": { + "name": "那维莱特-3", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "run", + "type": "teleport", + "x": 4749.50341796875, + "y": 2636.222412109375, + "action_params": "" + }, + { + "id": 2, + "x": 4776.52978515625, + "y": 2646.732177734375, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 4790.2392578125, + "y": 2655.89453125, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 4793.83740234375, + "y": 2658.263427734375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 4794.06396484375, + "y": 2658.477294921875, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 4796.341796875, + "y": 2660.043701171875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 4796.982421875, + "y": 2660.5205078125, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/鹿野院平藏-1.json b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-1.json new file mode 100644 index 00000000..a7a1fbe8 --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-1.json @@ -0,0 +1,87 @@ +{ + "info": { + "name": "鹿野院平藏-1", + "type": "collect", + "author": "Tool_tingsu", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750225271847 + }, + "positions": [ + { + "id": 1, + "x": -4402.529296875, + "y": -3053.0478515625, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -4404.390625, + "y": -3063.318359375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4419.326171875, + "y": -3081.58984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4434.171875, + "y": -3100.005859375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4445.580078125, + "y": -3109.501953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -4465.625, + "y": -3124.6982421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -4458.404296875, + "y": -3136.1962890625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -4459.763671875, + "y": -3140.841796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/鹿野院平藏-2.json b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-2.json new file mode 100644 index 00000000..6f690acd --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-2.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "鹿野院平藏-2", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750324635349 + }, + "positions": [ + { + "id": 1, + "x": -4402.529296875, + "y": -3053.0478515625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -4404.390625, + "y": -3063.318359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -4419.326171875, + "y": -3081.58984375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -4434.171875, + "y": -3100.005859375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -4445.580078125, + "y": -3109.501953125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -4465.625, + "y": -3124.6982421875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": -4467.0078125, + "y": -3127.4365234375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/鹿野院平藏-3.json b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-3.json new file mode 100644 index 00000000..f15cf2ad --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-3.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "鹿野院平藏-3", + "type": "collect", + "author": "ddaodan", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750527027100 + }, + "positions": [ + { + "id": 1, + "x": -4402.58984375, + "y": -3052.966796875, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -4413.51171875, + "y": -3052.0634765625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4421.5859375, + "y": -3044.1337890625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4416.76171875, + "y": -3037.1416015625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/鹿野院平藏-4.json b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-4.json new file mode 100644 index 00000000..1a9a4a9f --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-4.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "鹿野院平藏-4", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -4232.08203125, + "y": -3001.919921875, + "action_params": "" + }, + { + "id": 2, + "x": -4231.97265625, + "y": -3001.6142578125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4232.4296875, + "y": -2999.6240234375, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4232.515625, + "y": -2998.97265625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/assets/pathing/鹿野院平藏-5.json b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-5.json new file mode 100644 index 00000000..a980482c --- /dev/null +++ b/repo/js/TravelersTales/assets/pathing/鹿野院平藏-5.json @@ -0,0 +1,67 @@ +{ + "info": { + "name": "鹿野院平藏-5", + "type": "collect", + "author": "哈少", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -4232.6796875, + "y": -3002.3818359375, + "action_params": "" + }, + { + "id": 2, + "x": -4232.58984375, + "y": -3001.791015625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -4232.3828125, + "y": -3000.5322265625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -4231.89453125, + "y": -2999.8427734375, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -4231.140625, + "y": -2998.328125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -4231.52734375, + "y": -2998.3193359375, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/config.json b/repo/js/TravelersTales/config.json new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/repo/js/TravelersTales/config.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/repo/js/TravelersTales/data.json b/repo/js/TravelersTales/data.json new file mode 100644 index 00000000..96a8ecf6 --- /dev/null +++ b/repo/js/TravelersTales/data.json @@ -0,0 +1,79 @@ +{ + "errorThreshold": 100, + "mapPositions": [ + { + "name": "须弥", + "x": 2872, + "y": -378, + "country": "须弥" + }, + { + "name": "枫丹", + "x": 4514, + "y": 3631, + "country": "枫丹", + "zoom": 3.0 + }, + { + "name": "露泽咖啡厅", + "x": 4520, + "y": 3518, + "country": "枫丹", + "zoom": 1.0 + }, + { + "name": "塔拉塔海谷锚点", + "x": 4330, + "y": 3962, + "country": "枫丹" + }, + { + "name": "茉洁站锚点", + "x": 3776, + "y": 3785, + "country": "枫丹", + "zoom": 2.0 + }, + { + "name": "厄里那斯七天神像", + "x": 4750, + "y": 2638, + "country": "枫丹", + "zoom": 2.0 + }, + { + "name": "璃月", + "x": 270, + "y": -666, + "country": "璃月" + }, + { + "name": "稻妻", + "x": -4399, + "y": -3049, + "country": "稻妻", + "zoom": 3.0 + }, + { + "name": "镇守之森锚点", + "x": -4428, + "y": -2797, + "country": "稻妻", + "zoom": 2.0 + }, + { + "name": "鸣神大社锚点", + "x": -4375, + "y": -2497, + "country": "稻妻", + "zoom": 1.0 + }, + { + "name": "蒙德", + "x": -876, + "y": 2277, + "country": "蒙德", + "zoom": 2.0 + } + ] +} \ No newline at end of file diff --git a/repo/js/TravelersTales/main.js b/repo/js/TravelersTales/main.js new file mode 100644 index 00000000..7b120752 --- /dev/null +++ b/repo/js/TravelersTales/main.js @@ -0,0 +1,477 @@ + +// 全局变量声明 +let data, config; +let characterX, characterY; +let avatar; +let failed = false; + +(async function () { + setGameMetrics(1920, 1080, 1); + await genshin.returnMainUi(); + dispatcher.addTimer(new RealtimeTimer("AutoSkip")); // 开启自动剧情 + await loadData(); + + // 角色点位信息(提前定义以便全局使用) + const characterPositions = [ // 角色点位信息 + { name: "柯莱-1", x: 2843, y: -384, hasKeyMouse: true }, + { name: "迪希雅-1", x: 3771, y: 3608 }, + { name: "迪希雅-2", x: 4436, y: 3539 }, + { name: "赛诺-1", x: 3062, y: -268 }, + { name: "赛诺-2", x: 3059, y: -268 }, + { name: "赛诺-3", x: 2863, y: -380 }, + { name: "林尼-1", x: 4197, y: 4805 }, + { name: "夏沃蕾-1", x: 4356, y: 3707 }, + { name: "菲米尼-1", x: 4202, y: 3037, hasKeyMouse: true }, + { name: "夏洛蒂-1", x: 4618, y: 3518 }, + { name: "夏洛蒂-2", x: 4642, y: 3495 }, + { name: "夏洛蒂-3", x: 4443, y: 3538 }, + { name: "绮良良-1", x: 231, y: -672 }, + { name: "绮良良-2", x: 231, y: -672 }, + { name: "绮良良-3", x: -4473, y: -2655 }, + { name: "鹿野院平藏-1", x: -4459, y: -3141 }, + { name: "鹿野院平藏-2", x: -4467, y: -3127 }, + { name: "鹿野院平藏-3", x: -4417, y: -3037 }, + { name: "鹿野院平藏-4", x: -4232, y: -2999 }, + { name: "鹿野院平藏-5", x: -4232, y: -2999 }, + { name: "托马-1", x: -4399, y: -3130 }, + { name: "托马-2", x: -929, y: 2301, hasKeyMouse: true }, + { name: "梦见月瑞希-1", x: -4458, y: -3111, hasKeyMouse: true }, + { name: "梦见月瑞希-2", x: -4458, y: -3111, hasKeyMouse: true }, + { name: "八重神子-1", x: -4424, y: -2475 }, + { name: "那维莱特-1", x: 3600, y: 3804 }, + { name: "那维莱特-2", x: 4472, y: 3553 }, + { name: "那维莱特-3", x: 4797, y: 2660 }, + { name: "神里绫人-1", x: -4473, y: -3132 }, + { name: "早柚-1", x: -4327, y: -3141 }, + ]; + + // 检查进度并显示统计信息 + const progressInfo = checkProgress(characterPositions); + + log.info(`=== 对话进度统计 ===`); + log.info(`总角色数量: ${progressInfo.total}`); + log.info(`已完成: ${progressInfo.completed} (${progressInfo.completionRate}%)`); + log.info(`待完成: ${progressInfo.remaining}`); + + // 处理重置设置 + await handleResetSettings(); + + // 重新检查进度(可能已重置) + let currentProgress = checkProgress(characterPositions); + + if (currentProgress.remaining === 0) { + log.info("所有角色都已完成对话!"); + log.info("如需在其他账号使用,请在设置中启用自动重置选项"); + return; + } + + if (currentProgress.remaining > 0) { + log.info(`未完成的角色: ${currentProgress.remainingCharacters.join(", ")}`); + } // 前往七天神像 + // await genshin.tpToStatueOfTheSeven(); + let runCount = 0; + const maxRuns = parseInt(settings.maxRuns) || 50; + + log.info(`最大运行次数: ${maxRuns}`); + showCurrentSettings(); + + let failCount = 0; + let lastProgress = -1; + + let skipList = []; + + while (runCount < maxRuns) { + log.info(`开始第${runCount + 1}次运行`); + + // 在每次运行前检查是否还有未完成的角色 + currentProgress = checkProgress(characterPositions); + + if (currentProgress.remaining === lastProgress) { + log.warn("与上轮循环剩余数量一致,可能所有点位都不可用或运行失败"); + failCount++; + } + else { + failCount = 0; + } + + lastProgress = currentProgress.remaining; + + if (failCount >= 4) { + log.error("连续五轮循环剩余数量没有变化,结束循环,请手动清理现在在地图上的旅闻后重新启动js") + break; + } + + if (currentProgress.remaining === 0) { + log.info("🎉 所有角色都已完成对话!任务结束。"); + break; + } + + log.info(`当前进度: ${currentProgress.completed}/${currentProgress.total} (剩余${currentProgress.remaining}个)`); + + const detectedCharacters = await find(); + let pathingName = null; + let hasKeyMouse = false; + let found = false; + let matchedNames = []; + for (const pos of characterPositions) { + //如果启用了跳过已完成角色的设置,则跳过已完成的角色 + if (settings.skipCompletedCharacters && config[pos.name]) { + skipList.push(pos.name); + } + + // 使用 Set 去除重复项 + skipList = [...new Set(skipList)]; + + if (isNearPosition(characterX, characterY, pos.x, pos.y)) { + matchedNames.push(pos.name); + /* + pathingName = pos.name; + hasKeyMouse = !!pos.hasKeyMouse; + found = true; + log.info(`找到角色,执行路线:${pathingName}`); + break; + */ + } + } + if (matchedNames.length === 1) { + pathingName = matchedNames[0]; + const pos = characterPositions.find(p => p.name === pathingName); + hasKeyMouse = !!(pos && pos.hasKeyMouse); + found = true; + log.info(`找到角色,执行路线:${pathingName}`); + } else if (matchedNames.length > 1) { + log.info(`找到多个路线:${matchedNames.join(", ")}`); + + // 首先尝试通过检测到的角色名字进行匹配 + let foundByName = false; + for (const name of matchedNames) { + if (skipList.includes(name)) { + continue; + } + const avatarName = name.split("-")[0]; + if (detectedCharacters.includes(avatarName)) { + pathingName = name; + const pos = characterPositions.find(p => p.name === pathingName); + hasKeyMouse = !!(pos && pos.hasKeyMouse); + found = true; + log.info(`通过角色名字匹配到路线:${pathingName} (角色:${avatarName})`); + foundByName = true; + break; + } + } + + // 如果通过角色名字没有找到,则回退到原来的图像识别方法 + if (!foundByName) { + for (const name of matchedNames) { + if (skipList.includes(name)) { + continue; + } + const avatarName = name.split("-")[0]; + const isChar = captureGameRegion().findMulti(RecognitionObject.TemplateMatch(file.ReadImageMatSync(`assets/avatars/${avatarName}.png`))); + if (isChar && isChar.count > 0) { + pathingName = name; + const pos = characterPositions.find(p => p.name === pathingName); + hasKeyMouse = !!(pos && pos.hasKeyMouse); + found = true; + log.info(`通过图像识别匹配到路线:${pathingName}`); + break; + } + } + } + } + if (!found) { + currentProgress = checkProgress(characterPositions); + log.error("未找到角色,或者角色未被收录"); + log.error(`当前位置可能没有未完成的角色对话`); + log.error(`剩余未完成角色: ${currentProgress.remainingCharacters.join(", ")}`); + log.info("继续寻找下一个角色..."); + continue; // 继续下一次循环而不是直接返回 + } + log.info(`正在前往 ${pathingName} 所在位置...`); + if (pathingName == "赛诺-3") { // 特殊处理 + await genshin.moveMapTo(2871, -377, "须弥"); + await genshin.setBigMapZoomLevel(1.0); + await genshin.tp(2871, -377); + } + await pathingScript.runFile(`assets/pathing/${pathingName}.json`) + keyPress("F"); + if (!hasKeyMouse) { + log.info("开始对话..."); + } + await sleep(3000); + await waitToMain(hasKeyMouse); + if (hasKeyMouse) { + log.info("执行对应键鼠脚本"); + await keyMouseScript.runFile(`assets/keymouse/${pathingName}.json`) + keyPress("F"); + log.info("开始对话..."); + await sleep(3000); + await waitToMain(hasKeyMouse); + } + if (failed) { + log.info("本次运行结果不会被保存"); + // 将 pathingName 加入 skipList + skipList.push(pathingName); + } else { + config[pathingName] = true; + await file.writeText("config.json", JSON.stringify(config, null, 4)); + log.info(`对话完成,已保存本次运行结果`); + } + runCount++; + if (runCount < maxRuns) { + log.info(`第${runCount}次运行完成`); + // 根据设置决定进度更新间隔 + const updateInterval = parseInt(settings.progressUpdateInterval) || 3; + if (runCount % updateInterval === 0) { + currentProgress = checkProgress(characterPositions); + log.info(`=== 进度更新 (第${runCount}次运行后) ===`); + log.info(`完成进度: ${currentProgress.completed}/${currentProgress.total} (${currentProgress.completionRate}%)`); + if (currentProgress.remaining > 0) { + log.info(`剩余角色: ${currentProgress.remainingCharacters.slice(0, 5).join(", ")}${currentProgress.remaining > 5 ? '...' : ''}`); + } + } + } + } + + // 最终统计 + const finalProgress = checkProgress(characterPositions); + log.info(`=== 任务完成统计 ===`); + log.info(`总运行次数: ${runCount}`); + log.info(`最终完成进度: ${finalProgress.completed}/${finalProgress.total} (${finalProgress.completionRate}%)`); + + if (finalProgress.remaining === 0) { + log.info("🎉 恭喜!所有角色对话已完成!"); + } else { + log.info(`还有 ${finalProgress.remaining} 个角色未完成:`); + log.info(finalProgress.remainingCharacters.join(", ")); + } + log.info(`程序结束`); +})(); + +/** + * 加载数据 + * @returns {Promise} + */ +async function loadData() { + try { + data = JSON.parse(await file.readText("data.json")); + config = JSON.parse(await file.readText("config.json")); + } catch (error) { + log.error(`加载配置文件失败: ${error.message}`); + } +} +/** + * 寻找角色 + * @async + * @returns {Promise} 找到的角色名字数组,如果没有找到则返回空数组 + */ +async function find() { + log.info(`开始寻找角色...`); + const positions = data.mapPositions; // 读取data.json中的点位数据 + for (let retryCount = 0; retryCount < positions.length; retryCount++) { + const position = positions[retryCount]; + + log.info(`第 ${retryCount + 1} 次尝试定位...`); + log.info(`移动到位置:(${position.x}, ${position.y}), ${position.name || '未命名位置'}`); + + await genshin.moveMapTo(position.x, position.y, position.country); + try { + const detectedNames = await locate(); + if (detectedNames && detectedNames.length > 0) { + return detectedNames; // 保持兼容性,设置全局变量 + } + } catch (error) { + continue; + } + } + log.error("寻找所有角色可能存在的位置都没有找到角色"); + throw new Error("在所有可能的位置都没有找到角色,结束任务,请手动清理出现在地图上的旅闻后重新启动js"); +} + +/** + * 定位角色并获取坐标 + * @async + * @returns {Promise} 检测到的角色名字数组 + */ +async function locate() { + await sleep(500); // 确保画面稳定 + await genshin.setBigMapZoomLevel((data && typeof data.zoom === "number") ? data.zoom : 6.0); + + let character = captureGameRegion().findMulti(RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/icon/三个点.png"))); + + if (character && character.count > 0) { + avatar = character[0]; + + const center = genshin.getPositionFromBigMap(); + const mapZoomLevel = genshin.getBigMapZoomLevel(); + const mapScaleFactor = 2.361; + + characterX = (960 - avatar.x - 13) * mapZoomLevel / mapScaleFactor + center.x + 20; + characterY = (540 - avatar.y - 13) * mapZoomLevel / mapScaleFactor + center.y + 20; + log.info(`找到角色的大致坐标:(${characterX}, ${characterY})`); + + await sleep(200); + click(avatar.x + 20, avatar.y + 20); + await sleep(2000); + let resList = captureGameRegion().findMulti(RecognitionObject.ocrThis); + + // 识别text中的角色名字 + const characterNames = [ + "柯莱", "迪希雅", "赛诺", "林尼", "夏沃蕾", "菲米尼", "夏洛蒂", + "绮良良", "鹿野院平藏", "托马", "梦见月瑞希", "八重神子", + "那维莱特", "神里绫人", "早柚" + ]; + let foundNames = []; + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + for (let j = 0; j < characterNames.length; j++) { + if (res.text.includes(characterNames[j])) { + log.info("识别到角色:{} ({x},{y})", characterNames[j]); + foundNames.push(characterNames[j]); + } + } + } + log.info(`识别到的角色名字:${foundNames.length > 0 ? foundNames.join(", ") : "未知"}`); + await sleep(200); + keyPress("VK_ESCAPE"); // 关闭菜单 + await sleep(1000); // 等待菜单关闭 + return foundNames; + } else { + log.warn("未找到角色"); + throw new Error("未找到角色,当前位置没有角色"); + } +} + +/** + * 检查是否存在派蒙菜单图标,等待游戏返回主菜单 + * + * @param {boolean} hasKeyMouse - 是否需要执行键鼠操作 + * @returns {Promise} - 如果检测到主菜单,则返回 true,否则在超时时返回 false。 + */ +async function waitToMain(hasKeyMouse = false) { + log.info("等待返回主界面..."); + const paimonMenuRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/icon/paimon_menu.png"), 0, 0, genshin.width / 3.0, genshin.width / 5.0); + const maxRetries = 180; // 设置最大重试次数以防止无限循环 + let retries = 0; + let enteredLoop = false; + while (captureGameRegion().Find(paimonMenuRo).isEmpty()) { + enteredLoop = true; + if (retries >= maxRetries) { + log.error("返回主界面超时"); + return false; + } + await sleep(1000); + retries++; + } + if (!enteredLoop && !hasKeyMouse) { + log.error("进入对话失败"); + failed = true; + return false; + } + failed = false; + return true; +} + +/** + * 判断坐标是否在指定位置附近(误差范围内) + * @param {number} x - 当前X坐标 + * @param {number} y - 当前Y坐标 + * @param {number} targetX - 目标X坐标 + * @param {number} targetY - 目标Y坐标 + * @returns {boolean} 是否在指定范围内 + */ +function isNearPosition(x, y, targetX, targetY) { + // 使用配置中的阈值或默认值100 + const errorThreshold = 150; + return Math.abs(x - targetX) <= errorThreshold && Math.abs(y - targetY) <= errorThreshold; +} + + +/** + * 检查对话进度并返回统计信息 + * @param {Object[]} characterPositions - 角色点位信息数组 + * @returns {Object} 包含进度统计的对象 + */ +function checkProgress(characterPositions) { + const total = characterPositions.length; + let completed = 0; + const remainingCharacters = []; + const completedCharacters = []; + + for (const pos of characterPositions) { + if (config[pos.name]) { + completed++; + completedCharacters.push(pos.name); + } else { + remainingCharacters.push(pos.name); + } + } + + const remaining = total - completed; + const completionRate = total > 0 ? Math.round((completed / total) * 100) : 0; + + return { + total, + completed, + remaining, + completionRate, + remainingCharacters, + completedCharacters + }; +} + +/** + * 重置所有对话配置 + * @returns {Promise} + */ +async function resetAllProgress() { + log.info("重置所有对话进度..."); + config = {}; + await file.writeText("config.json", JSON.stringify(config, null, 4)); + log.info("✅ 所有对话进度已重置,将重新开始所有角色的对话"); +} + +/** + * 检查是否有未完成的角色,如果没有则提前结束 + * @param {Object[]} characterPositions - 角色点位信息数组 + * @returns {boolean} 是否还有未完成的角色 + */ +function hasRemainingCharacters(characterPositions) { + for (const pos of characterPositions) { + if (!config[pos.name]) { + return true; + } + } + return false; +} + +// === 设置管理相关函数 (BetterGI 自动处理设置) === + +/** + * 显示当前设置 + */ +function showCurrentSettings() { + log.info("=== 当前设置 ==="); + log.info(`启动时重置进度: ${settings.resetOnStart ? "✅ 启用" : "❌ 禁用"}`); + log.info(`进度更新间隔: ${settings.progressUpdateInterval} 次`); + log.info(`最大运行次数: ${settings.maxRuns}`); + log.info(`跳过已完成角色: ${settings.skipCompletedCharacters ? "✅ 启用" : "❌ 禁用"}`); + log.info("==============="); +} + +/** + * 处理重置相关设置 + * @param {Object[]} characterPositions - 角色点位信息数组 + * @returns {Promise} 是否继续执行程序 + */ +async function handleResetSettings() { + // 启动时重置 + if (settings.resetOnStart) { + log.info("⚠️ 检测到启动时重置设置已启用"); + log.info("将在 5 秒后重置所有进度,如需取消请立即停止程序"); + await sleep(5000); + + await resetAllProgress(); + log.info("🔄 已根据设置重置所有进度"); + } +} \ No newline at end of file diff --git a/repo/js/TravelersTales/manifest.json b/repo/js/TravelersTales/manifest.json new file mode 100644 index 00000000..d2ef8f57 --- /dev/null +++ b/repo/js/TravelersTales/manifest.json @@ -0,0 +1,21 @@ +{ + "manifest_version": 1, + "name": "游逸旅闻", + "version": "0.1.3", + "bgi_version": "0.45.1", + "description": "自动游逸旅闻", + "authors": [ + { + "name": "ddaodan", + "link": "https://github.com/ddaodan" + }, + { + "name": "秋云" + }, + { + "name": "mno" + } + ], + "settings_ui": "settings.json", + "main": "main.js" +} \ No newline at end of file diff --git a/repo/js/TravelersTales/settings.json b/repo/js/TravelersTales/settings.json new file mode 100644 index 00000000..56a0b5f3 --- /dev/null +++ b/repo/js/TravelersTales/settings.json @@ -0,0 +1,33 @@ +[ + { + "name": "resetOnStart", + "type": "checkbox", + "label": "启动时重置所有进度", + "default": false + }, + { + "name": "progressUpdateInterval", + "type": "select", + "label": "进度更新间隔(次数)", + "options": [ + "1", + "3", + "5", + "10", + "20" + ], + "default": "3" + }, + { + "name": "maxRuns", + "type": "input-text", + "label": "最大运行次数", + "default": "50" + }, + { + "name": "skipCompletedCharacters", + "type": "checkbox", + "label": "跳过已完成的角色", + "default": true + } +] \ No newline at end of file