diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/Completed.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/Completed.png new file mode 100644 index 000000000..f5786f87e Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/Completed.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconBigmapCommission.jpg b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconBigmapCommission.jpg new file mode 100644 index 000000000..f71a0a4ec Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconBigmapCommission.jpg differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconQuestionCommission.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconQuestionCommission.png new file mode 100644 index 000000000..ea789f4cf Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconQuestionCommission.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconTaskCommission.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconTaskCommission.png new file mode 100644 index 000000000..ae5863335 Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconTaskCommission.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/UnCompleted.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/UnCompleted.png new file mode 100644 index 000000000..3bd30f708 Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/UnCompleted.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/paimon_menu.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/paimon_menu.png new file mode 100644 index 000000000..c424325b1 Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/paimon_menu.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/加入.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/加入.png new file mode 100644 index 000000000..b2c523dc6 Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/加入.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/更换.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/更换.png new file mode 100644 index 000000000..3eca22fc1 Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/更换.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/队伍配置.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/队伍配置.png new file mode 100644 index 000000000..a100017ae Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/队伍配置.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/avatar/combat_avatar.json b/repo/js/AAA-Auto-Story-Loader/Data/avatar/combat_avatar.json new file mode 100644 index 000000000..6f63715e4 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/Data/avatar/combat_avatar.json @@ -0,0 +1,1902 @@ +[ + { + "alias": [ + "旅行者", + "主角", + "卑鄙的外乡人", + "荣誉骑士", + "爷", + "主", + "履刑者", + "抽卡不歪真君" + ], + "id": "20000000", + "name": "旅行者", + "nameEn": "Traveler", + "weapon": "1" + }, + { + "alias": [ + "荧", + "女主", + "女主角", + "莹", + "萤", + "黄毛阿姨", + "荧妹", + "女爷", + "包包", + "宴宁" + ], + "id": "10000007", + "name": "荧", + "nameEn": "PlayerGirl", + "weapon": "1" + }, + { + "alias": [ + "空", + "男主", + "男主角", + "龙哥", + "空哥", + "男爷" + ], + "id": "10000005", + "name": "空", + "nameEn": "PlayerBoy", + "weapon": "1" + }, + { + "alias": [ + "神里绫华", + "Kamisato Ayaka", + "Ayaka", + "神里", + "绫华", + "神里凌华", + "凌华", + "白鹭公主", + "神里大小姐", + "龟", + "龟龟", + "乌龟" + ], + "burstCD": 20, + "id": "10000002", + "name": "神里绫华", + "nameEn": "Ayaka", + "skillCD": 10, + "weapon": "1" + }, + { + "alias": [ + "琴", + "Jean", + "团长", + "代理团长", + "琴团长", + "蒲公英骑士" + ], + "burstCD": 20, + "id": "10000003", + "name": "琴", + "nameEn": "Qin", + "skillCD": 6, + "weapon": "1" + }, + { + "alias": [ + "丽莎", + "Lisa", + "图书管理员", + "图书馆管理员", + "蔷薇魔女", + "阿姨" + ], + "burstCD": 20, + "id": "10000006", + "name": "丽莎", + "nameEn": "Lisa", + "skillCD": 1, + "skillHoldCD": 16, + "weapon": "10" + }, + { + "alias": [ + "芭芭拉", + "Barbara", + "巴巴拉", + "内鬼", + "加湿器", + "肉身解咒", + "肉身解咒真君", + "闪耀偶像", + "偶像" + ], + "burstCD": 20, + "id": "10000014", + "name": "芭芭拉", + "nameEn": "Barbara", + "skillCD": 32, + "weapon": "10" + }, + { + "alias": [ + "凯亚", + "Kaeya", + "盖亚", + "凯子哥", + "凯鸭", + "矿工", + "矿工头子", + "骑兵队长", + "凯子", + "凝冰渡海真君" + ], + "burstCD": 15, + "id": "10000015", + "name": "凯亚", + "nameEn": "Kaeya", + "skillCD": 6, + "weapon": "1" + }, + { + "alias": [ + "迪卢克", + "Diluc", + "卢姥爷", + "姥爷", + "卢老爷", + "卢锅巴", + "正义人", + "正e人", + "正E人", + "卢本伟", + "暗夜英雄", + "卢卢伯爵", + "落魄了", + "落魄了家人们" + ], + "burstCD": 12, + "id": "10000016", + "name": "迪卢克", + "nameEn": "Diluc", + "skillCD": 10, + "weapon": "11" + }, + { + "alias": [ + "雷泽", + "Razor", + "狼少年", + "狼崽子", + "狼崽", + "卢皮卡", + "小狼", + "小狼狗", + "狼孩" + ], + "burstCD": 20, + "id": "10000020", + "name": "雷泽", + "nameEn": "Razor", + "skillCD": 6, + "skillHoldCD": 10, + "weapon": "11" + }, + { + "alias": [ + "安柏", + "Amber", + "安伯", + "兔兔伯爵", + "飞行冠军", + "侦查骑士", + "点火姬", + "点火机", + "打火机", + "打火姬" + ], + "burstCD": 12, + "id": "10000021", + "name": "安柏", + "nameEn": "Ambor", + "skillCD": 15, + "weapon": "12" + }, + { + "alias": [ + "温迪", + "Venti", + "温蒂", + "风神", + "卖唱的", + "巴巴托斯", + "巴巴脱丝", + "芭芭托斯", + "芭芭脱丝", + "干点正事", + "不干正事", + "吟游诗人", + "诶嘿", + "唉嘿", + "摸鱼" + ], + "burstCD": 15, + "id": "10000022", + "name": "温迪", + "nameEn": "Venti", + "skillCD": 6, + "skillHoldCD": 15, + "weapon": "12" + }, + { + "alias": [ + "香菱", + "Xiangling", + "香玲", + "锅巴", + "厨师", + "万民堂厨师", + "香师傅" + ], + "burstCD": 20, + "id": "10000023", + "name": "香菱", + "nameEn": "Xiangling", + "skillCD": 12, + "weapon": "13" + }, + { + "alias": [ + "北斗", + "Beidou", + "大姐头", + "大姐", + "无冕的龙王" + ], + "burstCD": 20, + "id": "10000024", + "name": "北斗", + "nameEn": "Beidou", + "skillCD": 7.5, + "weapon": "11" + }, + { + "alias": [ + "行秋", + "Xingqiu", + "秋秋人", + "秋妹妹", + "书呆子", + "枕玉", + "飞云商会二少爷" + ], + "burstCD": 20, + "id": "10000025", + "name": "行秋", + "nameEn": "Xingqiu", + "skillCD": 21, + "weapon": "1" + }, + { + "alias": [ + "魈", + "Xiao", + "打桩机", + "插秧", + "三眼五显仙人", + "三眼五显真人", + "降魔大圣", + "护法夜叉", + "快乐风男", + "无聊", + "靖妖傩舞", + "矮子仙人", + "三点五尺仙人", + "跳跳虎", + "风夜叉" + ], + "burstCD": 18, + "id": "10000026", + "name": "魈", + "nameEn": "Xiao", + "skillCD": 10, + "weapon": "13" + }, + { + "alias": [ + "凝光", + "Ningguang", + "富婆", + "天权星", + "天权" + ], + "burstCD": 12, + "id": "10000027", + "name": "凝光", + "nameEn": "Ningguang", + "skillCD": 12, + "weapon": "10" + }, + { + "alias": [ + "可莉", + "逃跑的太阳", + "Klee", + "嘟嘟可", + "火花骑士", + "蹦蹦炸弹", + "炸鱼", + "放火烧山", + "放火烧山真君", + "蒙德最强战力", + "逃跑的太阳", + "啦啦啦", + "哒哒哒", + "炸弹人", + "禁闭室", + "太阳", + "小太阳" + ], + "burstCD": 15, + "id": "10000029", + "name": "可莉", + "nameEn": "Klee", + "skillCD": 20, + "weapon": "10" + }, + { + "alias": [ + "钟离", + "Zhongli", + "摩拉克斯", + "岩王爷", + "岩神", + "钟师傅", + "天动万象", + "岩王帝君", + "未来可期", + "帝君", + "拒收病婿" + ], + "burstCD": 12, + "id": "10000030", + "name": "钟离", + "nameEn": "Zhongli", + "skillCD": 4, + "skillHoldCD": 12, + "weapon": "13" + }, + { + "alias": [ + "菲谢尔", + "Fischl", + "皇女", + "小艾米", + "小艾咪", + "奥兹", + "断罪皇女", + "中二病", + "中二少女", + "中二皇女", + "奥兹发射器" + ], + "burstCD": 15, + "id": "10000031", + "name": "菲谢尔", + "nameEn": "Fischl", + "skillCD": 25, + "weapon": "12" + }, + { + "alias": [ + "班尼特", + "Bennett", + "点赞哥", + "点赞", + "倒霉少年", + "倒霉蛋", + "霹雳闪雷真君", + "班神", + "班爷", + "倒霉", + "蒙德火神", + "六星真神" + ], + "burstCD": 15, + "id": "10000032", + "name": "班尼特", + "nameEn": "Bennett", + "skillCD": 5, + "weapon": "1" + }, + { + "alias": [ + "达达利亚", + "Tartaglia", + "Childe", + "Ajax", + "达达鸭", + "达达利鸭", + "公子", + "玩具销售员", + "玩具推销员", + "钱包", + "鸭鸭", + "愚人众末席" + ], + "burstCD": 15, + "id": "10000033", + "name": "达达利亚", + "nameEn": "Tartaglia", + "skillCD": 6, + "skillHoldCD": 45, + "weapon": "12" + }, + { + "alias": [ + "诺艾尔", + "Noelle", + "女仆", + "高达", + "岩王帝姬" + ], + "burstCD": 15, + "id": "10000034", + "name": "诺艾尔", + "nameEn": "Noel", + "skillCD": 24, + "weapon": "11" + }, + { + "alias": [ + "七七", + "Qiqi", + "僵尸", + "肚饿真君", + "度厄真君", + "77" + ], + "burstCD": 20, + "id": "10000035", + "name": "七七", + "nameEn": "Qiqi", + "skillCD": 30, + "weapon": "1" + }, + { + "alias": [ + "重云", + "Chongyun", + "纯阳之体", + "冰棍" + ], + "burstCD": 12, + "id": "10000036", + "name": "重云", + "nameEn": "Chongyun", + "skillCD": 15, + "weapon": "11" + }, + { + "alias": [ + "甘雨", + "Ganyu", + "椰羊", + "椰奶", + "王小美" + ], + "burstCD": 15, + "id": "10000037", + "name": "甘雨", + "nameEn": "Ganyu", + "skillCD": 10, + "weapon": "12" + }, + { + "alias": [ + "阿贝多", + "Albedo", + "可莉哥哥", + "升降机", + "升降台", + "电梯", + "白垩之子", + "贝爷", + "白垩", + "阿贝少", + "花呗多", + "阿贝夕", + "阿师傅" + ], + "burstCD": 12, + "id": "10000038", + "name": "阿贝多", + "nameEn": "Albedo", + "skillCD": 4, + "weapon": "1" + }, + { + "alias": [ + "迪奥娜", + "Diona", + "迪欧娜", + "dio娜", + "冰猫", + "猫猫", + "猫娘", + "喵喵", + "调酒师" + ], + "burstCD": 20, + "id": "10000039", + "name": "迪奥娜", + "nameEn": "Diona", + "skillCD": 6, + "skillHoldCD": 15, + "weapon": "12" + }, + { + "alias": [ + "莫娜", + "Mona", + "穷鬼", + "穷光蛋", + "穷", + "莫纳", + "占星术士", + "占星师", + "讨龙真君", + "半部讨龙真君", + "阿斯托洛吉斯·莫娜·梅姬斯图斯", + "梅姬斯图斯", + "梅姬斯图斯姬" + ], + "burstCD": 15, + "id": "10000041", + "name": "莫娜", + "nameEn": "Mona", + "skillCD": 12, + "weapon": "10" + }, + { + "alias": [ + "刻晴", + "Keqing", + "刻情", + "氪晴", + "刻师傅", + "刻师父", + "牛杂", + "牛杂师傅", + "斩尽牛杂", + "免疫", + "免疫免疫", + "屁斜剑法", + "玉衡星", + "阿晴", + "啊晴", + "璃月雷神" + ], + "burstCD": 12, + "id": "10000042", + "name": "刻晴", + "nameEn": "Keqing", + "skillCD": 7.5, + "weapon": "1" + }, + { + "alias": [ + "砂糖", + "Sucrose", + "sucrose" + ], + "burstCD": 20, + "id": "10000043", + "name": "砂糖", + "nameEn": "Sucrose", + "skillCD": 15, + "weapon": "10" + }, + { + "alias": [ + "辛焱", + "Xinyan", + "辛炎", + "黑妹", + "摇滚" + ], + "burstCD": 15, + "id": "10000044", + "name": "辛焱", + "nameEn": "Xinyan", + "skillCD": 18, + "weapon": "11" + }, + { + "alias": [ + "罗莎莉亚", + "Rosaria", + "罗莎莉娅", + "白色史莱姆", + "白史莱姆", + "修女", + "罗莎利亚", + "罗莎利娅", + "罗沙莉亚", + "罗沙莉娅", + "罗沙利亚", + "罗沙利娅", + "萝莎莉亚", + "萝莎莉娅", + "萝莎利亚", + "萝莎利娅", + "萝沙莉亚", + "萝沙莉娅", + "萝沙利亚", + "萝沙利娅" + ], + "burstCD": 15, + "id": "10000045", + "name": "罗莎莉亚", + "nameEn": "Rosaria", + "skillCD": 6, + "weapon": "13" + }, + { + "alias": [ + "胡桃", + "Hu Tao", + "HuTao", + "Hutao", + "胡淘", + "往生堂堂主", + "火化", + "抬棺的", + "蝴蝶", + "核桃", + "堂主", + "胡堂主", + "雪霁梅香", + "桃子", + "桃" + ], + "burstCD": 15, + "id": "10000046", + "name": "胡桃", + "nameEn": "Hutao", + "skillCD": 16, + "weapon": "13" + }, + { + "alias": [ + "枫原万叶", + "Kaedehara Kazuha", + "Kazuha", + "万叶", + "叶天帝", + "天帝", + "叶师傅" + ], + "burstCD": 15, + "id": "10000047", + "name": "枫原万叶", + "nameEn": "Kazuha", + "skillCD": 6, + "skillHoldCD": 9, + "weapon": "1" + }, + { + "alias": [ + "烟绯", + "Yanfei", + "烟老师", + "律师", + "罗翔" + ], + "burstCD": 20, + "id": "10000048", + "name": "烟绯", + "nameEn": "Feiyan", + "skillCD": 9, + "weapon": "10" + }, + { + "alias": [ + "宵宫", + "Yoimiya", + "霄宫", + "烟花", + "肖宫", + "肖工", + "绷带女孩" + ], + "burstCD": 15, + "id": "10000049", + "name": "宵宫", + "nameEn": "Yoimiya", + "skillCD": 18, + "weapon": "12" + }, + { + "alias": [ + "托马", + "Thoma", + "家政官", + "太郎丸", + "地头蛇", + "男仆", + "拖马" + ], + "burstCD": 20, + "id": "10000050", + "name": "托马", + "nameEn": "Tohma", + "skillCD": 15, + "weapon": "13" + }, + { + "alias": [ + "优菈", + "Eula", + "优拉", + "尤拉", + "尤菈", + "浪花骑士", + "记仇", + "劳伦斯" + ], + "burstCD": 20, + "id": "10000051", + "name": "优菈", + "nameEn": "Eula", + "skillCD": 4, + "skillHoldCD": 10, + "weapon": "11" + }, + { + "alias": [ + "雷电将军", + "Raiden Shogun", + "Raiden", + "雷神", + "将军", + "雷军", + "巴尔", + "阿影", + "影", + "巴尔泽布", + "煮饭婆", + "奶香一刀", + "无想一刀", + "宅女" + ], + "burstCD": 18, + "id": "10000052", + "name": "雷电将军", + "nameEn": "Shougun", + "skillCD": 10, + "weapon": "13" + }, + { + "alias": [ + "早柚", + "Sayu", + "小狸猫", + "狸猫", + "忍者", + "貉" + ], + "burstCD": 20, + "id": "10000053", + "name": "早柚", + "nameEn": "Sayu", + "skillCD": 6, + "weapon": "11" + }, + { + "alias": [ + "珊瑚宫心海", + "Sangonomiya Kokomi", + "Kokomi", + "心海", + "军师", + "珊瑚宫", + "书记", + "观赏鱼", + "水母", + "鱼", + "美人鱼" + ], + "burstCD": 18, + "id": "10000054", + "name": "珊瑚宫心海", + "nameEn": "Kokomi", + "skillCD": 20, + "weapon": "10" + }, + { + "alias": [ + "五郎", + "Gorou", + "柴犬", + "土狗", + "希娜", + "希娜小姐" + ], + "burstCD": 20, + "id": "10000055", + "name": "五郎", + "nameEn": "Gorou", + "skillCD": 10, + "weapon": "12" + }, + { + "alias": [ + "九条裟罗", + "Kujou Sara", + "Sara", + "九条", + "九条沙罗", + "裟罗", + "沙罗", + "天狗" + ], + "burstCD": 20, + "id": "10000056", + "name": "九条裟罗", + "nameEn": "Sara", + "skillCD": 10, + "weapon": "12" + }, + { + "alias": [ + "荒泷一斗", + "Arataki Itto", + "Itto", + "荒龙一斗", + "荒泷天下第一斗", + "一斗", + "一抖", + "荒泷", + "1斗", + "岩牛", + "岩牛牛", + "斗战岩牛", + "斗子哥", + "牛子哥", + "牛子", + "孩子王", + "斗虫", + "巧乐兹", + "放牛的" + ], + "burstCD": 18, + "id": "10000057", + "name": "荒泷一斗", + "nameEn": "Itto", + "skillCD": 10, + "weapon": "11" + }, + { + "alias": [ + "八重神子", + "Yae Miko", + "Miko", + "八重", + "神子", + "狐狸", + "想得美哦", + "巫女", + "屑狐狸", + "骚狐狸", + "八重宫司", + "婶子", + "小八", + "八重寄子", + "寄子", + "八神虫子", + "八神重子" + ], + "burstCD": 22, + "id": "10000058", + "name": "八重神子", + "nameEn": "Yae", + "skillCD": 4, + "weapon": "10" + }, + { + "alias": [ + "鹿野院平藏", + "shikanoin heizou", + "Heizou", + "鹿野苑", + "鹿野院", + "平藏", + "鹿野苑平藏", + "小鹿" + ], + "burstCD": 12, + "id": "10000059", + "name": "鹿野院平藏", + "nameEn": "Heizo", + "skillCD": 10, + "weapon": "10" + }, + { + "alias": [ + "夜兰", + "Yelan", + "夜阑", + "叶澜", + "腋兰", + "夜天后" + ], + "burstCD": 18, + "id": "10000060", + "name": "夜兰", + "nameEn": "Yelan", + "skillCD": 10, + "weapon": "12" + }, + { + "alias": [ + "绮良良", + "Kirara", + "大猫猫", + "大喵喵", + "稻妻猫猫", + "绮娘娘", + "琦良良", + "良良", + "快递员", + "草猫", + "草猫猫", + "草喵", + "草喵喵", + "猫又" + ], + "burstCD": 15, + "id": "10000061", + "name": "绮良良", + "nameEn": "Momoka", + "skillCD": 8, + "weapon": "1" + }, + { + "alias": [ + "埃洛伊", + "Aloy" + ], + "burstCD": 12, + "id": "10000062", + "name": "埃洛伊", + "nameEn": "Aloy", + "skillCD": 20, + "weapon": "12" + }, + { + "alias": [ + "申鹤", + "Shenhe", + "神鹤", + "小姨", + "小姨子", + "审鹤" + ], + "burstCD": 20, + "id": "10000063", + "name": "申鹤", + "nameEn": "Shenhe", + "skillCD": 10, + "skillHoldCD": 15, + "weapon": "13" + }, + { + "alias": [ + "云堇", + "Yun Jin", + "yun jin", + "云瑾", + "云先生", + "云锦", + "神女劈观" + ], + "burstCD": 15, + "id": "10000064", + "name": "云堇", + "nameEn": "Yunjin", + "skillCD": 9, + "weapon": "13" + }, + { + "alias": [ + "久岐忍", + "Kuki Shinobu", + "Kuki", + "Shinobu", + "97忍", + "小忍", + "久歧忍", + "97", + "茄忍", + "茄子", + "紫茄子", + "阿忍", + "忍姐" + ], + "burstCD": 15, + "id": "10000065", + "name": "久岐忍", + "nameEn": "Shinobu", + "skillCD": 15, + "weapon": "1" + }, + { + "alias": [ + "神里绫人", + "Kamisato Ayato", + "Ayato", + "绫人", + "神里凌人", + "凌人", + "0人", + "神人", + "零人", + "大舅哥" + ], + "burstCD": 20, + "id": "10000066", + "name": "神里绫人", + "nameEn": "Ayato", + "skillCD": 12, + "weapon": "1" + }, + { + "alias": [ + "柯莱", + "Collei", + "柯来", + "科莱", + "科来", + "小天使", + "须弥安柏", + "草安柏", + "须弥飞行冠军" + ], + "burstCD": 15, + "id": "10000067", + "name": "柯莱", + "nameEn": "Collei", + "skillCD": 12, + "weapon": "12" + }, + { + "alias": [ + "多莉", + "Dori", + "多利", + "多力", + "奸商" + ], + "burstCD": 20, + "id": "10000068", + "name": "多莉", + "nameEn": "Dori", + "skillCD": 9, + "weapon": "11" + }, + { + "alias": [ + "提纳里", + "Tighnari", + "提那里", + "小提", + "驴" + ], + "burstCD": 12, + "id": "10000069", + "name": "提纳里", + "nameEn": "Tighnari", + "skillCD": 12, + "weapon": "12" + }, + { + "alias": [ + "妮露", + "Nilou", + "尼露", + "妮璐", + "舞娘", + "红牛" + ], + "burstCD": 18, + "id": "10000070", + "name": "妮露", + "nameEn": "Nilou", + "skillCD": 18, + "weapon": "1" + }, + { + "alias": [ + "赛诺", + "Cyno", + "塞诺", + "胡狼", + "大风纪官", + "大风机关" + ], + "burstCD": 20, + "id": "10000071", + "name": "赛诺", + "nameEn": "Cyno", + "skillCD": 7.5, + "skillHoldCD": 3, + "weapon": "13" + }, + { + "alias": [ + "坎蒂丝", + "Candace", + "坎迪斯" + ], + "burstCD": 15, + "id": "10000072", + "name": "坎蒂丝", + "nameEn": "Candace", + "skillCD": 6, + "skillHoldCD": 9, + "weapon": "13" + }, + { + "alias": [ + "纳西妲", + "Nahida", + "草神", + "小吉祥", + "大吉祥", + "小草神", + "大慈树王", + "小吉祥草王", + "草萝莉", + "羽毛球", + "摩诃善法大吉祥智慧主", + "智慧主", + "智慧之神", + "布耶尔" + ], + "burstCD": 13.5, + "id": "10000073", + "name": "纳西妲", + "nameEn": "Nahida", + "skillCD": 5, + "skillHoldCD": 6, + "weapon": "10" + }, + { + "alias": [ + "莱依拉", + "Layla", + "莱依菈", + "来依菈", + "来依拉" + ], + "burstCD": 12, + "id": "10000074", + "name": "莱依拉", + "nameEn": "Layla", + "skillCD": 12, + "weapon": "1" + }, + { + "alias": [ + "流浪者", + "Wanderer", + "散兵", + "国崩", + "雷电国崩", + "大炮", + "雷电大炮", + "雷大炮", + "伞兵", + "斯卡拉姆齐" + ], + "burstCD": 15, + "id": "10000075", + "name": "流浪者", + "nameEn": "Wanderer", + "skillCD": 6, + "weapon": "10" + }, + { + "alias": [ + "珐露珊", + "Faruzan", + "法露珊", + "法璐珊", + "法露姗", + "法璐姗", + "珐露姗", + "珐璐姗", + "百岁珊", + "百岁山", + "前辈", + "仙贝" + ], + "burstCD": 20, + "id": "10000076", + "name": "珐露珊", + "nameEn": "Faruzan", + "skillCD": 6, + "weapon": "12" + }, + { + "alias": [ + "瑶瑶", + "Yaoyao", + "遥遥", + "萝卜", + "月桂" + ], + "burstCD": 20, + "id": "10000077", + "name": "瑶瑶", + "nameEn": "Yaoyao", + "skillCD": 15, + "weapon": "13" + }, + { + "alias": [ + "艾尔海森", + "Alhaitham", + "海哥", + "埃尔海森", + "海森", + "海参", + "书记官" + ], + "burstCD": 18, + "id": "10000078", + "name": "艾尔海森", + "nameEn": "Alhatham", + "skillCD": 18, + "weapon": "1" + }, + { + "alias": [ + "迪希雅", + "Dehya", + "迪希亚", + "迪希娅", + "迪西雅", + "迪西亚" + ], + "burstCD": 18, + "id": "10000079", + "name": "迪希雅", + "nameEn": "Dehya", + "skillCD": 20, + "weapon": "11" + }, + { + "alias": [ + "米卡", + "Mika", + "鹦鹉", + "凤头", + "凤头鹦鹉" + ], + "burstCD": 18, + "id": "10000080", + "name": "米卡", + "nameEn": "Mika", + "skillCD": 15, + "weapon": "13" + }, + { + "alias": [ + "卡维", + "Kaveh", + "艾尔海森室友" + ], + "burstCD": 20, + "id": "10000081", + "name": "卡维", + "nameEn": "Kaveh", + "skillCD": 6, + "weapon": "11" + }, + { + "alias": [ + "白术", + "Baizhu", + "长生", + "白医生" + ], + "burstCD": 20, + "id": "10000082", + "name": "白术", + "nameEn": "Baizhuer", + "skillCD": 10, + "weapon": "10" + }, + { + "alias": [ + "琳妮特", + "Lynette", + "林妮特", + "林尼特", + "琳尼特", + "女魔术师", + "魔术猫", + "魔术喵", + "登登" + ], + "burstCD": 18, + "id": "10000083", + "name": "琳妮特", + "nameEn": "Linette", + "skillCD": 12, + "weapon": "1" + }, + { + "alias": [ + "林尼", + "Lyney", + "林妮", + "琳尼", + "琳妮", + "男魔术师", + "魔术师" + ], + "burstCD": 15, + "id": "10000084", + "name": "林尼", + "nameEn": "Liney", + "skillCD": 15, + "weapon": "12" + }, + { + "alias": [ + "菲米尼", + "Freminet", + "非米尼", + "潜水员" + ], + "burstCD": 15, + "id": "10000085", + "name": "菲米尼", + "nameEn": "Freminet", + "skillCD": 10, + "weapon": "11" + }, + { + "alias": [ + "莱欧斯利", + "Wriothesley", + "莱欧", + "枫丹桑博", + "公爵", + "典狱长", + "牢大" + ], + "burstCD": 15, + "id": "10000086", + "name": "莱欧斯利", + "nameEn": "Wriothesley", + "skillCD": 16, + "weapon": "10" + }, + { + "alias": [ + "那维莱特", + "Neuvillette", + "那维", + "水龙王", + "水龙", + "审判官", + "海獭", + "龙王", + "最高审判官", + "水之龙王" + ], + "burstCD": 18, + "id": "10000087", + "name": "那维莱特", + "nameEn": "Neuvillette", + "skillCD": 12, + "weapon": "10" + }, + { + "alias": [ + "夏洛蒂", + "Charlotte", + "夏洛", + "夏洛帝", + "记者", + "小记者", + "佳能400D", + "400D" + ], + "burstCD": 20, + "id": "10000088", + "name": "夏洛蒂", + "nameEn": "Charlotte", + "skillCD": 12, + "skillHoldCD": 18, + "weapon": "10" + }, + { + "alias": [ + "芙宁娜", + "Furina", + "Focalors", + "水神", + "芙芙", + "芙卡洛斯", + "傻芙芙" + ], + "burstCD": 15, + "id": "10000089", + "name": "芙宁娜", + "nameEn": "Furina", + "skillCD": 20, + "weapon": "1" + }, + { + "alias": [ + "夏沃蕾", + "chevreuse", + "夏沃雷" + ], + "burstCD": 15, + "id": "10000090", + "name": "夏沃蕾", + "nameEn": "Chevreuse", + "skillCD": 15, + "weapon": "13" + }, + { + "alias": [ + "娜维娅", + "navia", + "大小姐", + "刺玫会", + "黄豆", + "流汗黄豆", + "黄豆姐", + "娜薇娅", + "娜薇雅", + "娜维雅" + ], + "burstCD": 15, + "id": "10000091", + "name": "娜维娅", + "nameEn": "Navia", + "skillCD": 9, + "weapon": "11" + }, + { + "alias": [ + "嘉明", + "Gaming", + "jiaming", + "佳明", + "嘉铭", + "家明", + "镖师", + "舞狮少年", + "舞狮" + ], + "burstCD": 15, + "id": "10000092", + "name": "嘉明", + "nameEn": "Gaming", + "skillCD": 6, + "weapon": "11" + }, + { + "alias": [ + "闲云", + "Xianyun", + "流云", + "刘云", + "留云", + "野鹤", + "那个女人", + "留云借风", + "留云借风真君", + "很会聊天", + "很会聊天真君" + ], + "burstCD": 18, + "id": "10000093", + "name": "闲云", + "nameEn": "Liuyun", + "skillCD": 12, + "weapon": "10" + }, + { + "alias": [ + "千织", + "Chiori", + "千只", + "设计师", + "裁缝", + "千织屋老板" + ], + "burstCD": 13.5, + "id": "10000094", + "name": "千织", + "nameEn": "Chiori", + "skillCD": 16, + "weapon": "1" + }, + { + "alias": [ + "希格雯", + "Sigewinne", + "希格文", + "护士", + "护士长" + ], + "burstCD": 18, + "id": "10000095", + "name": "希格雯", + "nameEn": "Sigewinne", + "skillCD": 18, + "weapon": "12" + }, + { + "alias": [ + "阿蕾奇诺", + "Arlecchino", + "阿雷奇诺", + "仆人", + "黑优菈", + "黑暗优菈", + "父亲", + "佩露薇利" + ], + "burstCD": 15, + "id": "10000096", + "name": "阿蕾奇诺", + "nameEn": "Arlecchino", + "skillCD": 30, + "weapon": "13" + }, + { + "alias": [ + "赛索斯", + "Sethos", + "塞索斯", + "塞索思", + "赛索思" + ], + "burstCD": 15, + "id": "10000097", + "name": "赛索斯", + "nameEn": "Sethos", + "skillCD": 8, + "weapon": "12" + }, + { + "alias": [ + "克洛琳德", + "Clorinde", + "琳德", + "科洛琳德", + "克洛林德", + "克罗林德", + "苹果姐" + ], + "burstCD": 15, + "id": "10000098", + "name": "克洛琳德", + "nameEn": "Clorinde", + "skillCD": 16, + "weapon": "1" + }, + { + "alias": [ + "艾梅莉埃", + "Emilie", + "调香师", + "艾梅", + "香水设计师", + "现场清理人" + ], + "burstCD": 13.5, + "id": "10000099", + "name": "艾梅莉埃", + "nameEn": "Emilie", + "skillCD": 10, + "skillHoldCD": 14, + "weapon": "13" + }, + { + "alias": [ + "卡齐娜", + "Kachina", + "卡奇娜", + "卡齐纳", + "卡齐那", + "卡其那", + "冲天钻钻", + "岩莉莉" + ], + "burstCD": 18, + "id": "10000100", + "name": "卡齐娜", + "nameEn": "Kachina", + "skillCD": 20, + "weapon": "13" + }, + { + "alias": [ + "基尼奇", + "Kinich", + "基哥", + "基尼齐", + "蜘蛛侠" + ], + "burstCD": 18, + "id": "10000101", + "name": "基尼奇", + "nameEn": "Kinich", + "skillCD": 18, + "weapon": "11" + }, + { + "alias": [ + "玛拉妮", + "Mualani", + "马拉尼", + "鲨鱼妹", + "海豹妹", + "海豹", + "纳塔鲨", + "逐浪客" + ], + "burstCD": 15, + "id": "10000102", + "name": "玛拉妮", + "nameEn": "Mualani", + "skillCD": 1.8, + "skillHoldCD": 6, + "weapon": "10" + }, + { + "alias": [ + "希诺宁", + "Xilonen", + "豹女", + "岩大猫", + "大岩猫", + "岩猫", + "岩猫猫", + "西诺宁" + ], + "burstCD": 15, + "id": "10000103", + "name": "希诺宁", + "nameEn": "Xilonen", + "skillCD": 7, + "weapon": "1" + }, + { + "alias": [ + "恰斯卡", + "Chasca", + "武卡", + "调停人", + "鸟人" + ], + "burstCD": 15, + "id": "10000104", + "name": "恰斯卡", + "nameEn": "Chasca", + "skillCD": 6.5, + "weapon": "12" + }, + { + "alias": [ + "欧洛伦", + "Ororon", + "庇笛", + "孙子", + "大孙子", + "蝙蝠侠" + ], + "burstCD": 15, + "id": "10000105", + "name": "欧洛伦", + "nameEn": "Olorun", + "skillCD": 15, + "weapon": "12" + }, + { + "alias": [ + "玛薇卡", + "Mavuika", + "火神", + "马薇卡", + "玛维卡", + "马维卡", + "马微卡", + "玛微卡" + ], + "burstCD": 18, + "id": "10000106", + "name": "玛薇卡", + "nameEn": "Mavuika", + "skillCD": 15, + "weapon": "11" + }, + { + "alias": [ + "茜特菈莉", + "Citlali", + "西特菈莉", + "西特拉莉", + "茜特拉莉", + "西特拉利", + "黑曜石奶奶", + "黑曜石", + "奶奶", + "老伴" + ], + "burstCD": 15, + "id": "10000107", + "name": "茜特菈莉", + "nameEn": "Citlali", + "skillCD": 16, + "weapon": "10" + }, + { + "alias": [ + "蓝砚", + "Lanyan", + "蓝燕", + "兰砚", + "兰燕", + "藤编师", + "风鹰侠", + "蓝研", + "蓝颜", + "兰颜" + ], + "burstCD": 15, + "id": "10000108", + "name": "蓝砚", + "nameEn": "Lanyan", + "skillCD": 16, + "weapon": "10" + }, + { + "alias": [ + "梦见月瑞希", + "Yumemizuki Mizuki", + "Mizuki", + "梦见", + "梦见月", + "瑞希", + "瑞幸", + "木更", + "梗小姐", + "食梦貘", + "梦魔", + "魅魔", + "心理医生", + "心理诊疗师" + ], + "burstCD": 15, + "id": "10000109", + "name": "梦见月瑞希", + "nameEn": "Mizuki", + "skillCD": 15, + "weapon": "10" + }, + { + "alias": [ + "伊安珊", + "Iansan", + "123", + "伊安姗", + "教练", + "依安珊" + ], + "burstCD": 18, + "id": "10000110", + "name": "伊安珊", + "nameEn": "Iansan", + "skillCD": 16, + "weapon": "13" + }, + { + "alias": [ + "瓦雷莎", + "Varesa", + "瓦蕾莎", + "瓦蕾沙", + "瓦蕾砂", + "瓦雷沙", + "牛头人", + "牛战士", + "牛牛", + "雷牛", + "雷牛牛", + "奶牛", + "粉牛" + ], + "burstCD": 18, + "id": "10000111", + "name": "瓦雷莎", + "nameEn": "Varesa", + "skillCD": 9, + "weapon": "10" + }, + { + "alias": [ + "爱可菲", + "Escoffier", + "厨师", + "爱可非", + "艾可菲", + "艾可非" + ], + "burstCD": 15, + "id": "10000112", + "name": "爱可菲", + "nameEn": "Escoffier", + "skillCD": 15, + "skillHoldCD": 6, + "weapon": "13" + }, + { + "alias": [ + "伊法", + "Ifa", + "哥们", + "医生" + ], + "burstCD": 15, + "id": "10000113", + "name": "伊法", + "nameEn": "Ifa", + "skillCD": 7.5, + "weapon": "10" + }, + { + "alias": [ + "丝柯克", + "Skirk", + "丝柯可", + "斯柯克" + ], + "burstCD": 15, + "id": "10000114", + "name": "丝柯克", + "nameEn": "SkirkNew", + "skillCD": 8, + "weapon": "1" + }, + { + "alias": [ + "塔利雅", + "Dahlia", + "塔利亚", + "塔丽雅", + "主祭", + "助祭" + ], + "burstCD": 15, + "id": "10000115", + "name": "塔利雅", + "nameEn": "Dahlia", + "skillCD": 9, + "weapon": "1" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/Data/characterimage/纳西妲01.png b/repo/js/AAA-Auto-Story-Loader/Data/characterimage/纳西妲01.png new file mode 100644 index 000000000..7322ee929 Binary files /dev/null and b/repo/js/AAA-Auto-Story-Loader/Data/characterimage/纳西妲01.png differ diff --git a/repo/js/AAA-Auto-Story-Loader/Data/commissions_data.json b/repo/js/AAA-Auto-Story-Loader/Data/commissions_data.json new file mode 100644 index 000000000..b703ee803 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/Data/commissions_data.json @@ -0,0 +1,38 @@ +{ + "timestamp": "2025-07-22T11:29:54.245Z", + "commissions": [ + { + "id": 1, + "name": "惊喜大礼", + "supported": true, + "type": "talk", + "location": "蒙德城", + "country": "蒙德", + "CommissionPosition": { + "X": -685.26171875, + "Y": 2355.3818359375 + } + }, + { + "id": 2, + "name": "丘丘人的一小步", + "supported": true, + "type": "fight", + "location": "已完成" + }, + { + "id": 3, + "name": "邪恶的扩张", + "supported": true, + "type": "fight", + "location": "已完成" + }, + { + "id": 4, + "name": "圆滚滚的易爆品", + "supported": true, + "type": "fight", + "location": "已完成" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/Data/commissions_report.txt b/repo/js/AAA-Auto-Story-Loader/Data/commissions_report.txt new file mode 100644 index 000000000..45f215381 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/Data/commissions_report.txt @@ -0,0 +1,9 @@ +# 原神每日委托识别报告 +生成时间: 2025/7/22 19:29:54 + +## 委托列表 + +1. 惊喜大礼 [talk] - ✅ 支持 +2. 丘丘人的一小步 [fight] - ✅ 支持 +3. 邪恶的扩张 [fight] - ✅ 支持 +4. 圆滚滚的易爆品 [fight] - ✅ 支持 diff --git a/repo/js/AAA-Auto-Story-Loader/README.md b/repo/js/AAA-Auto-Story-Loader/README.md new file mode 100644 index 000000000..7257953ce --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/README.md @@ -0,0 +1,279 @@ +# 自动剧情加载器 - 使用说明 + +## 项目宗旨 + +自动剧情加载器是专为委托开发者设计的**脚本调试与编辑工具**,旨在提升委托开发效率,简化测试流程。 + +> **重要声明**: +> 1. 本项目**不会将任何非委托任务流程脚本上传至脚本仓库** +> 2. **禁止任何人用于商业用途**,禁止在任何场合展示或宣传自动任务效果 +> 3. **不提倡**上传任何任务流程脚本到公开平台 +> 4. 工具仅提供技术框架,**不包含任何自动游戏剧情内容** +> 5. 请勿在任何官方平台(米游社、B站、微博等)讨论本工具 +> 6. 严禁在官方直播、动态或社区提及本工具相关内容 + +**免责声明:** + +1. **使用风险:** + 1. 本脚本为开源学习项目,仅为游戏委托开发提供技术支持,禁止用于商业用途或违反游戏条款的行为。 + +2. **责任限制:** + 1. 本脚本按“现状”提供,不承诺兼容性、安全性或功能完整性。 + 2. 用户应自行承担使用风险,并严格遵守《原神》用户协议。因使用本脚本导致的损失,开发者概不负责。 + +使用即表示您已阅读并同意上述条款。 + +--- + +## 使用方法及配置 +1. 将脚本添加至调度器。 +2. 右键点击脚本以修改 JS 自定义配置。 +3. 在设置中选择"刷新剧情列表" +4. 工具将扫描所有可用剧情脚本 +5. 从更新后的列表中选择要执行的剧情 + +## 安全规范 + +### 社区公约 +> "我们理解大家对工具的热情,但脚本属于敏感领域。请务必: +> - 不在任何官方平台讨论技术细节 +> - 不在直播、视频中展示工具效果 +> - 不与官方产生任何形式冲突 +> +> 保持低调才能让工具持续可用!" + +### 开发者社区 +```markdown +如急需自动剧情脚本,请加入开发者社群: +▨ QQ群:[开发者群号](加作者QQ获取) +▨ 作者QQ:3302871403 +▨ 小提示:群内还有提瓦特全战斗宝箱 + 5.8部分解谜宝箱 + 部分已下架的资源 +``` + +> **再次强调**: +> - **禁止任何人用于商业用途**,禁止在任何场合展示或宣传自动任务效果 +> - **不要将任何非委托任务流程脚本上传至脚本仓库** + +**让我们共同维护良好的社区环境!让大家都BetterGI用!** + +--- + +## 以下为开发指南 + +--- + +## 1 制作前检查 +- 打开 [AutoCommission 开发进度表格](https://docs.qq.com/sheet/DWGRCTGtDUGVPa1h0?tab=BB08J2) + +--- + +## 2 了解委托信息 +- 名称:在任务界面看到的完整委托标题 +- 地点:地图右上角名称 + +--- + +## 3 创建流程文件 +路径规则 \process\{委托名称}\{委托地点}\process.json +- 使用 UTF-8 无 BOM 编码保存。 +- 所有子流程(如 `取餐.json`)放在同一目录,方便相对路径引用。 + +--- + +## 4 流程文件格式总览 + +### 4.1 基本结构 +```json +[ + { + "type": "<步骤类型>", + "data": <任意类型>, + "note": "控制台日志,可选", + "run": "<子流程文件名,可选,仅分支步骤>" + } +] +``` + +### 4.2 支持的步骤类型 +| type | 作用 | data 示例 | 备注 | +|---|---|---|---| +| 委托描述检测 | 按 J 打开任务界面并匹配委托详情 | `"取得制作好的餐品"` | 支持 `run` 跳转子流程 | +| 地址检测 | 检测玩家坐标与给定坐标差距 ≤15 | `[-667, 2285]` | 支持 `run` 跳转子流程 | +| 地图追踪 | 执行地图寻路脚本 | `"tracking1.json"` | 相对路径 | +| 键鼠脚本 | 执行键鼠脚本 | `"script1.json"` | 相对路径 | +| 对话 | 自动对话并优先选择指定选项 | 见下方详解 | | +| 按键 | 按一次键盘按键 | `"F"` 或 `{"action":"press","key":"E"}` | 复杂按键操作对象,包含 action (动作,如"down"、"up"、"press")和 key (按键值)| +| tp | 强制传送到坐标 | `[100,200,true]` | 已不常用 | +| 等待 | 自定义等待 | `3000`(毫秒) | 默认 5000 ms | +| 自动任务 | 开启/关闭 AutoSkip、AutoPick | 见下方详解 | | +| 等待返回主界面 | 判断返回主界面 | — | 无 data | +| 追踪委托 | 追踪NPC头顶图标 | data可以直接写npc的名字(字符串类型),也可以写成一个列表,name是npc的名字,iconType追踪的标,Bigmap大地图的委托图标,Question问号图标,Task任务图标(默认) | 好用 | +--- + +## 5 对话步骤详解 +```json +{ + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": ["同意", "接受委托", "我来帮忙"], + "npcWhiteList": ["派蒙", "凯亚", "安柏"] + }, + "note": "优先选“同意”等选项,且只与白名单 NPC 交互" +} +"skipCount"跳过的前置无选项的对话次数,"priorityOptions"对话中可选的内容,npcWhiteList可以对话的npc +``` + +--- + +## 6 自动任务步骤详解 +#### 功能特点 +- 动态启用/禁用自动任务 +- 支持任务配置参数 +- 统一的任务管理接口 + +#### 使用方法 + +**1. 启用自动拾取(默认配置)** +```json +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick" + }, + "note": "启用自动拾取" +} +``` + +**2. 启用自动拾取(自定义配置)** +```json +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick", + "config": { + "forceInteraction": false + } + }, + "note": "启用自动拾取,禁用急速拾取模式" +} +``` + +**3. 启用自动剧情** +```json +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" +} +``` + +**4. 取消所有自动任务** +```json +{ + "type": "自动任务", + "data": { + "action": "disable" + }, + "note": "取消所有自动任务" +} +``` + +#### 参数详细说明 + +**action** (必需) +- 类型: string +- 可选值: "enable" | "disable" +- "enable": 启用自动任务 +- "disable": 取消所有自动任务 + +**taskType** (启用时必需) +- 类型: string +- 可选值: "AutoSkip" | "AutoPick" +- "AutoSkip": 自动剧情 +- "AutoPick": 自动拾取 + +**config** (可选) +- 类型: object +- 用于配置任务的具体参数 +- 对于 AutoPick 任务: + - `forceInteraction`: boolean - 是否启用急速拾取模式 + +#### 支持的任务类型 + +| 任务类型 | 说明 | 支持的配置 | +|---------|------|----------| +| AutoSkip | 自动剧情 | 无特殊配置 | +| AutoPick | 自动拾取 | forceInteraction: 急速拾取模式开关 | + +--- + +## 7 分支(条件跳转)机制 +仅 `委托描述检测` 与 `地址检测` 支持 `run` 字段: +- 条件匹配 → 执行 `run` 指向的子流程,子流程使用process.json同样的写法 +- 条件不匹配 → 跳过本步骤继续往下执行 + +示例: +```json +[ + { + "type": "委托描述检测", + "data": "取得制作好的餐品", + "note": "分支名字正确的情况", + "run": "取餐.json" + }, + { + "type": "地址检测", + "data": [-667, 2285], + "note": "距离目标 ≤15", + "run": "让纳西妲进尘歌壶.json" + } +] +``` + +--- + +## 8 完整示例 +下面是一份可直接使用的 `process.json` 模板,含新功能: +```json +[ + { + "type": "自动任务", + "data": { "action": "enable", "taskType": "AutoPick", "config": { "forceInteraction": false } }, + "note": "启用自动拾取(非急速)" + }, + { + "type": "地图追踪", + "data": "tracking1.json", + "note": "前往目标 NPC" + }, + { + "type": "等待", + "data": 2000, + "note": "等待传送动画" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "priorityOptions": ["确定", "好的"], + "npcWhiteList": ["鲁道夫"] + }, + "note": "与鲁道夫对话" + }, + { + "type": "自动任务", + "data": { "action": "disable" }, + "note": "清理自动任务" + } +] +``` + +> 完成后把 `process.json` 及所有子流程文件打包发给审核即可。祝制作顺利! \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/main.js b/repo/js/AAA-Auto-Story-Loader/main.js new file mode 100644 index 000000000..459b4eded --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/main.js @@ -0,0 +1,1857 @@ +(async function () { + // 版本和编译信息 + const VERSION = "1.0"; + const BUILD_TIME = "2025.08.18"; + + async function errorlog() { + // 输出版本和编译时间信息 + log.info("=".repeat(20)); + log.info("版本: {version}", VERSION); + log.info("编译时间: {buildTime}", BUILD_TIME); + log.info("=".repeat(20)); + } + + // 统一常量定义 + const Datas = { + // 文件路径常量 + SUPPORT_LIST_PATH: "name.json", + OUTPUT_DIR: "Data", + TALK_PROCESS_BASE_PATH: "assets/process" + }; + + // 获取设置 + /*const getSetting = async () => { + try { + const skipRecognition = settings.skipRecognition || false; + const prepare = settings.prepare || false; + const team = settings.team || ""; + const skipCommissions = ""; + + const result = { + skipRecognition, + prepare, + team, + skipCommissions, + }; + + log.debug("setting:{index}", result); + + return result; + } catch { + log.error("getSetting函数出现错误,将使用默认配置"); + return { + skipRecognition: false, + prepare: true, + team: "", + skipCommissions: "", + }; + } + }; + + const { skipRecognition, prepare, team, skipCommissions } = + await getSetting();*/ + + const Utils = { + iframe: async ({ X, Y, WIDTH, HEIGHT }) => { + try { + log.info("i{index}", { X, Y, WIDTH, HEIGHT }); + + // 最简单的方式创建OCR识别对象 + const ro = RecognitionObject.Ocr(X, Y, WIDTH, HEIGHT); + ro.Name = "debug"; + ro.DrawOnWindow = true; + + // 捕获并识别 + const region = captureGameRegion(); + region.Find(ro); + + // 2000毫秒后移除绘制的边框 + setTimeout(() => { + // 使用相同的名称移除边框 + const drawContent = VisionContext.Instance().DrawContent; + drawContent.RemoveRect("debug"); + // 或者也可以使用 drawContent.Clear() 清除所有绘制的内容 + + log.info("已移除边框"); + }, 2000); + } catch (error) { + // 记录完整错误信息 + log.error("详细错误: " + JSON.stringify(error)); + } + }, + easyOCR: async ({ X, Y, WIDTH, HEIGHT }) => { + try { + // log.info("进行文字识别") + // 创建OCR识别对象 + const locationOcrRo = RecognitionObject.Ocr(X, Y, WIDTH, HEIGHT); + + // 截图识别 + let captureRegion = captureGameRegion(); + let OCRresults = await captureRegion.findMulti(locationOcrRo); + + return OCRresults; + } catch (error) { + log.error("easyOCR识别出错: {error}", error.message); + return { count: 0 }; + } + }, + easyOCROne: async (ocrdata) => { + results = await Utils.easyOCR(ocrdata); + if (results.count > 0) { + // 取第一个结果作为地点 + return results[0].text.trim(); + } + return ""; + }, + // 清理文本(去除标点符号等) + cleanText: (text) => { + if (!text) return ""; + // 去除标点符号和特殊字符 + return text.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, "").trim(); + }, + + // 读取角色别名文件 + readAliases: () => { + try { + const combatText = file.ReadTextSync("Data/avatar/combat_avatar.json"); + const combatData = JSON.parse(combatText); + const aliases = {}; + for (const character of combatData) { + if (character.alias && character.name) { + for (const alias of character.alias) { + aliases[alias] = character.name; + } + } + } + return aliases; + } catch (error) { + log.error("读取角色别名文件失败: {error}", error.message); + return {}; + } + }, + }; + + const UI = { + // 角色选择界面滚动页面函数 + scrollPage: async (totalDistance, stepDistance = 10, delayMs = 5) => { + try { + moveMouseTo(400, 750); + await sleep(50); + leftButtonDown(); + const steps = Math.ceil(totalDistance / stepDistance); + for (let j = 0; j < steps; j++) { + const remainingDistance = totalDistance - j * stepDistance; + const moveDistance = + remainingDistance < stepDistance ? remainingDistance : stepDistance; + moveMouseBy(0, -moveDistance); + await sleep(delayMs); + } + await sleep(700); + leftButtonUp(); + await sleep(100); + return true; + } catch (error) { + log.error(`角色选择界面滚动操作时发生错误:${error.message}`); + return false; + } + }, + }; + + // 步骤处理器类 - 处理不同类型的委托执行步骤 + // TAG:添加脚本功能点1 + const StepProcessor = { + // 处理地图追踪步骤 + processMapTracking: async (step, commissionName, location) => { + const fullPath = `${ + Datas.TALK_PROCESS_BASE_PATH + }/${commissionName}/${location}/${step.data || step}`; + log.info("执行地图追踪: {path}", fullPath); + try { + await pathingScript.runFile(fullPath); + log.info("地图追踪执行完成"); + } catch (error) { + log.error("执行地图追踪时出错: {error}", error.message); + throw error; + } + }, + + // 处理追踪委托步骤 + processCommissionTracking: async (step) => { + try { + // 获取目标NPC名称和图标类型 + let targetNpc = ""; + let iconType = "bigmap"; + + if (typeof step.data === "string") { + targetNpc = step.data; + } else if (typeof step.data === "object") { + if (step.data.npc) targetNpc = step.data.npc; + if (step.data.iconType) iconType = step.data.iconType; + } + + log.info( + "执行追踪委托,目标NPC: {target},图标类型: {type}", + targetNpc, + iconType + ); + await Execute.autoNavigateToTalk(targetNpc, iconType); + log.info("追踪委托执行完成"); + } catch (error) { + log.error("执行追踪委托时出错: {error}", error.message); + throw error; + } + }, + + // 处理键鼠脚本步骤 + processKeyMouseScript: async (step, commissionName, location) => { + log.info("执行键鼠脚本: {path}", step.data); + try { + const fullPath = `${Datas.TALK_PROCESS_BASE_PATH}/${commissionName}/${location}/${step.data}`; + await keyMouseScript.runFile(fullPath); + log.info("键鼠脚本执行完成"); + } catch (error) { + log.error("执行键鼠脚本时出错: {error}", error.message); + throw error; + } + }, + + // 处理按键步骤 + processKeyPress: async (step) => { + if (typeof step.data === "string") { + log.info("执行按键: {key}", step.data); + keyPress(step.data); + } else if (typeof step.data === "object") { + if (step.data.action === "down") { + log.info("按下按键: {key}", step.data.key); + keyDown(step.data.key); + } else if (step.data.action === "up") { + log.info("释放按键: {key}", step.data.key); + keyUp(step.data.key); + } else if (step.data.action === "press") { + log.info("点击按键: {key}", step.data.key); + keyPress(step.data.key); + } + } + }, + + // 处理传送步骤 + processTeleport: async (step) => { + if (Array.isArray(step.data) && step.data.length >= 2) { + log.info("执行传送: {x}, {y}", step.data[0], step.data[1]); + const force = step.data.length > 2 ? step.data[2] : false; + await genshin.tp(step.data[0], step.data[1], force); + log.info("传送完成"); + } else { + log.error("传送参数格式错误"); + throw new Error("传送参数格式错误"); + } + }, + + // 处理等待主界面步骤 + processWaitMainUI: async (isInMainUI) => { + for (let i = 0; i < 120; i++) { + if (isInMainUI()) { + log.info("检测到已返回主界面,结束等待"); + break; + } + await sleep(1000); + } + if (!isInMainUI()) { + log.info("等待返回主界面超时,尝试继续执行后续步骤"); + } + }, + + // 处理地址检测步骤 + processLocationDetection: async ( + step, + commissionName, + location, + processSteps, + currentIndex + ) => { + if (Array.isArray(step.data) && step.data.length >= 2) { + log.info( + `地址检测: {${step.data[0]}},{${step.data[1]}},run:${step.run}` + ); + + try { + // 获取当前委托目标位置 + let commissionTarget = await Execute.findCommissionTarget( + commissionName + ); + + if (commissionTarget) { + const distance2 = CommissionsFunc.calculateDistance( + commissionTarget, + { + x: step.data[0], + y: step.data[1], + } + ); + + log.info( + "地址检测 - 委托位置: ({x}, {y}), 目标位置: ({tx}, {ty}), 距离: {d}", + commissionTarget.x, + commissionTarget.y, + step.data[0], + step.data[1], + distance2 + ); + + if (distance2 < 15) { + log.info("地址检测成功,执行后续步骤"); + const nextSteps = await Execute.loadAndParseProcessFile( + commissionName, + location, + step.run + ); + // 插入到processSteps的这一步后面 + if (nextSteps && Array.isArray(nextSteps)) { + processSteps.splice(currentIndex + 1, 0, ...nextSteps); + log.info("已插入 {count} 个后续步骤", nextSteps.length); + } + } else { + log.info("地址检测失败,距离过远: {distance}", distance2); + } + } else { + log.warn("无法获取委托目标位置,跳过地址检测"); + } + } catch (error) { + log.error("地址检测时出错: {error}", error.message); + throw error; + } + } else { + log.error("地址检测参数格式错误"); + throw new Error("地址检测参数格式错误"); + } + }, + + // 处理委托描述检测步骤 + processCommissionDescriptionDetection: async ( + step, + commissionName, + location, + processSteps, + currentIndex + ) => { + // 按v键打开任务界面 + keyPress("v"); + await sleep(300); + + if (step.data !== "") { + log.info(`委托描述检测: {${step.data}}`); + + // 循环检测,直到稳定 + for (let c = 0; c < 13; c++) { + try { + // 使用委托详情检测区域进行OCR + const taskRegion = { X: 75, Y: 240, WIDTH: 280, HEIGHT: 43 }; + const ocrResult = await Utils.easyOCROne(taskRegion); + if (ocrResult === commissionName || ocrResult === "") { + await sleep(1000); + // 没有延时13s的错误提示,继续检测 + log.debug("检测到委托名称或空文本,继续等待..."); + keyPress("v"); + } + // 成功匹配,开始插入step + else if (ocrResult === step.data) { + log.info("委托描述检测成功,执行后续步骤"); + const nextSteps = await Execute.loadAndParseProcessFile( + commissionName, + location, + step.run + ); + // 插入到这一步后面 + if (nextSteps && Array.isArray(nextSteps)) { + processSteps.splice(currentIndex + 1, 0, ...nextSteps); + log.info("已插入 {count} 个后续步骤", nextSteps.length); + } + break; + } else { + log.warn(`委托描述不匹配,识别:${ocrResult},期望:${step.data}`); + break; + } + } catch (ocrError) { + log.error("委托描述OCR识别出错: {error}", ocrError); + break; + } + } + } else { + log.error("委托描述检测参数格式错误"); + throw new Error("委托描述检测参数格式错误"); + } + }, + + // 处理角色切换步骤 + processSwitchRole: async (step) => { + try { + const { position, character } = step.data; + + if (!position || !character) { + log.error("角色切换参数不完整,需要 position 和 character"); + return false; + } + + log.info(`开始切换角色:第${position}号位 -> ${character}`); + + const positionCoordinates = [ + [460, 538], + [792, 538], + [1130, 538], + [1462, 538], + ]; + + // 读取别名 + const aliases = Utils.readAliases(); + const actualName = aliases[character] || character; + log.info(`设置对应号位为【${character}】,切换角色为【${actualName}】`); + + // 识别对象定义 + const roTeamConfig = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`Data/RecognitionObject/队伍配置.png`), + 0, + 0, + 1920, + 1080 + ); + const roReplace = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`Data/RecognitionObject/更换.png`), + 0, + 0, + 1920, + 1080 + ); + const roJoin = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`Data/RecognitionObject/加入.png`), + 0, + 0, + 1920, + 1080 + ); + + let openPairingTries = 0; + let totalOpenPairingTries = 0; + + // 打开配对界面的内部函数 + const openPairingInterface = async () => { + while (openPairingTries < 3) { + keyPress("l"); + await sleep(3500); + const teamConfigResult = captureGameRegion().find(roTeamConfig); + if (teamConfigResult.isExist()) { + openPairingTries = 0; + return true; + } + openPairingTries++; + totalOpenPairingTries++; + } + if (totalOpenPairingTries < 6) { + await genshin.tp("2297.630859375", "-824.5517578125"); + openPairingTries = 0; + return openPairingInterface(); + } else { + log.error("无法打开配对界面,任务结束"); + return false; + } + }; + + if (!(await openPairingInterface())) { + return false; + } + + const rolenum = position; + const selectedCharacter = actualName; + const [x, y] = positionCoordinates[position - 1]; + click(x, y); + log.info(`开始设置${rolenum}号位角色`); + await sleep(1000); + let characterFound = false; + let pageTries = 0; + + // 最多尝试滚动页面20次 + while (pageTries < 20) { + // 尝试识别所有可能的角色文件名 + for (let num = 1; ; num++) { + const paddedNum = num.toString().padStart(2, "0"); + const characterFileName = `${selectedCharacter}${paddedNum}`; + try { + const characterRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + `Data/characterimage/${characterFileName}.png` + ), + 0, + 0, + 1920, + 1080 + ); + const characterResult = captureGameRegion().find(characterRo); + if (characterResult.isExist()) { + log.info(`已找到角色${selectedCharacter}`); + // 计算向右偏移35像素、向下偏移35像素的位置 + const targetX = characterResult.x + 35; + const targetY = characterResult.y + 35; + + // 边界检查,确保坐标在屏幕范围内 + const safeX = Math.min(Math.max(targetX, 0), 1920); + const safeY = Math.min(Math.max(targetY, 0), 1080); + + click(safeX, safeY); + await sleep(500); // 点击角色后等待0.5秒 + characterFound = true; + break; + } + } catch (error) { + // 如果文件不存在,跳出循环 + break; + } + } + + if (characterFound) { + break; + } + + // 如果不是最后一次尝试,尝试滚动页面 + if (pageTries < 15) { + log.info("当前页面没有目标角色,滚动页面"); + await UI.scrollPage(200); // 使用UI模块的scrollPage函数 + } + pageTries++; + } + + if (!characterFound) { + log.error(`未找到【${selectedCharacter}】`); + return false; + } + + // 识别"更换"或"加入"按钮 + const replaceResult = captureGameRegion().find(roReplace); + const joinResult = captureGameRegion().find(roJoin); + + if (replaceResult.isExist() || joinResult.isExist()) { + await sleep(300); + click(68, 1020); + keyPress("VK_LBUTTON"); + await sleep(500); + log.info(`角色切换完成:${character} -> ${actualName}`); + return true; + } else { + log.error(`该角色已在队伍中,无需切换`); + await sleep(300); + keyPress("VK_ESCAPE"); + await sleep(500); + return false; + } + } catch (error) { + log.error("角色切换过程中出错: {error}", error.message); + return false; + } + }, + + // 处理自动任务步骤 + processAutoTask: async (step) => { + try { + const { action, taskType, config } = step.data; + + if (!action) { + log.error("自动任务参数不完整,需要 action 参数"); + return false; + } + + log.info("执行自动任务操作: {action}", action); + + switch (action) { + case "enable": + // 启用自动任务 + if (!taskType) { + log.error("启用自动任务需要指定 taskType"); + return false; + } + + if (config && typeof config === "object") { + log.info("启用自动任务: {type},配置: {config}", taskType, JSON.stringify(config)); + dispatcher.addTimer(new RealtimeTimer(taskType, config)); + } else { + log.info("启用自动任务: {type}", taskType); + dispatcher.addTimer(new RealtimeTimer(taskType)); + } + break; + + case "disable": + // 取消所有自动任务 + log.info("取消所有自动任务"); + dispatcher.ClearAllTriggers(); + break; + + default: + log.error("未知的自动任务操作: {action}", action); + return false; + } + + return true; + } catch (error) { + log.error("处理自动任务步骤时出错: {error}", error.message); + return false; + } + }, + }; + + // 步骤处理器工厂 - 更好的扩展性设计 + // TAG:添加脚本功能点2 + const StepProcessorFactory = { + // 步骤处理器映射表 + processors: { + 地图追踪: async (step, context) => { + await StepProcessor.processMapTracking( + step, + context.commissionName, + context.location + ); + }, + + 等待: async (step, context) => { + const waitTime = step.data || 5000; + log.info("等待 {time} 毫秒", waitTime); + await sleep(waitTime); + }, + + 追踪委托: async (step, context) => { + await StepProcessor.processCommissionTracking(step); + }, + + 键鼠脚本: async (step, context) => { + await StepProcessor.processKeyMouseScript( + step, + context.commissionName, + context.location + ); + }, + + 对话: async (step, context) => { + await Execute.processDialogStep( + step, + context.priorityOptions, + context.npcWhiteList, + context.isInMainUI + ); + }, + + 按键: async (step, context) => { + await StepProcessor.processKeyPress(step); + }, + + tp: async (step, context) => { + await StepProcessor.processTeleport(step); + }, + + 等待返回主界面: async (step, context) => { + await StepProcessor.processWaitMainUI(context.isInMainUI); + }, + + 地址检测: async (step, context) => { + //await StepProcessor.processLocationDetection(step,context.commissionName,context.location,context.processSteps,context.currentIndex); + log.info("地址检测当前版本用不了,请联请联系作者获取最新版"); + }, + + 委托描述检测: async (step, context) => { + await StepProcessor.processCommissionDescriptionDetection( + step, + context.commissionName, + context.location, + context.processSteps, + context.currentIndex + ); + }, + + 切换角色: async (step, context) => { + await StepProcessor.processSwitchRole(step); + }, + + 自动任务: async (step, context) => { + await StepProcessor.processAutoTask(step); + }, + }, + + // 注册新的步骤处理器 + register: (stepType, processor) => { + StepProcessorFactory.processors[stepType] = processor; + log.info("注册新的步骤处理器: {type}", stepType); + }, + + // 处理步骤 + process: async (step, context) => { + const processor = StepProcessorFactory.processors[step.type]; + if (processor) { + await processor(step, context); + } else { + log.warn("未知的流程类型: {type}", step.type); + } + }, + }; + + // UI工具模块 - 处理UI检测和文本提取等工具函数 + const UIUtils = { + // 创建主界面检测函数 + createMainUIChecker: () => { + const paimonMenuRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync("Data/RecognitionObject/paimon_menu.png"), + 0, + 0, + genshin.width / 3.0, + genshin.width / 5.0 + ); + + return () => { + let captureRegion = captureGameRegion(); + let res = captureRegion.Find(paimonMenuRo); + return !res.isEmpty(); + }; + }, + + // 人名提取函数 + extractName: (text) => { + const patterns = [ + /与(.+?)对话/, + /与(.+?)一起/, + /同(.+?)交谈/, + /向(.+?)打听/, + /向(.+?)回报/, + /向(.+?)报告/, + /给(.+?)听/, + /陪同(.+?)\S+/, + /找到(.+?)\S+/, + /询问(.+?)\S+/, + /拜访(.+?)\S+/, + /寻找(.+?)\S+/, + /告诉(.+?)\S+/, + /带(.+?)去\S+/, + /跟随(.+?)\S+/, + /协助(.+?)\S+/, + /请教(.+?)\S+/, + /拜托(.+?)\S+/, + /委托(.+?)\S+/, + ]; + + for (const pattern of patterns) { + const match = text.match(pattern); + if (match && match[1]) { + return match[1].trim(); + } + } + return null; + }, + }; + + // 对话处理模块 - 处理自动对话相关功能 + const DialogProcessor = { + // 执行优化的自动对话 + executeOptimizedAutoTalk: async ( + extractedName = null, + skipCount = 5, + customPriorityOptions = null, + customNpcWhiteList = null, + isInMainUI + ) => { + // 使用传入的参数,不再加载默认配置 + const effectivePriorityOptions = customPriorityOptions || []; + const effectiveNpcWhiteList = customNpcWhiteList || []; + + // 初始化 + keyPress("V"); + + // 初始触发剧情 - 识别人名并点击 + extractedName = []; + // 人名区域OCR识别 + const nameRegion = { X: 75, Y: 240, WIDTH: 225, HEIGHT: 60 }; + let nameResults = await Utils.easyOCR(nameRegion); + // 尝试提取任务人名 + for (let i = 0; i < nameResults.count; i++) { + let text = nameResults[i].text; + log.info(`任务区域识别文本: ${text}`); + + // 尝试提取任务人名 + let name = UIUtils.extractName(text); + if (name) { + extractedName = name; + log.info(`提取到人名: ${extractedName}`); + break; + } + } + + // 对话选项区域OCR识别 + const dialogRegion = { X: 1150, Y: 300, WIDTH: 350, HEIGHT: 400 }; + nameResults = await Utils.easyOCR(dialogRegion); + let clickedWhitelistNPC = false; + let clickedExtractedName = false; + + // 处理人名区域的OCR结果 + if (nameResults.count > 0) { + log.info(`人名区域识别到 ${nameResults.count} 个文本`); + + // 首先尝试点击白名单中的NPC + for (let i = 0; i < nameResults.count; i++) { + let text = nameResults[i].text; + let res = nameResults[i]; + log.info( + "人名区域识别到{text}:位置({x},{y},{h},{w})", + res.text, + res.x, + res.y, + res.width, + res.Height + ); + // 检查是否包含白名单中的NPC名称 + for (let j = 0; j < effectiveNpcWhiteList.length; j++) { + if (text.includes(effectiveNpcWhiteList[j])) { + log.info(`找到白名单NPC: ${effectiveNpcWhiteList[j]},点击该NPC`); + keyDown("VK_MENU"); + await sleep(500); + click(res.x, res.y); + leftButtonClick(); + keyUp("VK_MENU"); + clickedWhitelistNPC = true; + break; + } + } + if (clickedWhitelistNPC) break; + } + + // 如果没有点击白名单NPC,尝试点击包含提取到的人名的选项 + if (!clickedWhitelistNPC && extractedName) { + for (let i = 0; i < nameResults.count; i++) { + let text = nameResults[i].text; + let res = nameResults[i]; + if (text.includes(extractedName)) { + log.info(`点击包含提取到任务人名的选项: ${text}`); + keyDown("VK_MENU"); + await sleep(500); + click(res.x, res.y); + leftButtonClick(); + keyUp("VK_MENU"); + clickedExtractedName = true; + break; + } + } + } + } + + // 如果没有找到NPC,使用默认触发 + if (!clickedWhitelistNPC && !clickedExtractedName) { + log.info("未找到匹配的NPC,使用默认触发方式"); + keyPress("F"); // 默认触发剧情 + await sleep(500); + } + + // 重复执行自动剧情,直到返回主界面 + let maxAttempts = 100; // 设置最大尝试次数,防止无限循环 + let attempts = 0; + let repetition = 0; + let oldcount = 1; + await sleep(1000); + log.info("开始执行自动剧情"); + + while (!isInMainUI() && attempts < maxAttempts) { + attempts++; + + // 正常跳过对话 + await genshin.chooseTalkOption("纳西妲美貌举世无双", skipCount, false); + + if (isInMainUI()) { + log.info("检测到已返回主界面,结束循环"); + break; + } + + //keyPress("VK_ESCAPE");//关弹窗 + + // 每skipCount次跳过后,进行OCR识别 + if (true) { + // 检查是否有匹配的优先选项 + let foundPriorityOption = false; + + // 获取对话区域截图并进行OCR识别 + const dialogOptionsRegion = { + X: 1250, + Y: 450, + WIDTH: 550, + HEIGHT: 400, + }; + let ocrResults = await Utils.easyOCR(dialogOptionsRegion); + if (ocrResults.count > 0) { + log.info(`识别到 ${ocrResults.count} 个选项`); + + if (ocrResults.count === oldcount) { + repetition++; + } + else { + repetition = 0; + } + oldcount = ocrResults.count; + if (repetition >= 5) { + log.info("连续5次选项数量一样,执行F跳过"); + keyPress("F"); + keyPress("VK_ESCAPE"); + repetition = 0; + } + for (let i = 0; i < ocrResults.count; i++) { + let ocrText = ocrResults[i].text; + + // 检查是否在优先选项列表中 + for (let j = 0; j < effectivePriorityOptions.length; j++) { + if (ocrText.includes(effectivePriorityOptions[j])) { + log.info( + `找到优先选项: ${effectivePriorityOptions[j]},点击该选项` + ); + // 点击该选项 + ocrResults[i].click(); + await sleep(500); + foundPriorityOption = true; + break; + } + } + + if (foundPriorityOption) break; + } + + // 如果没有找到优先选项,则使用默认跳过 + if (!foundPriorityOption) { + await genshin.chooseTalkOption("", 1, false); + } + } + } + + // 检查是否已返回主界面 + if (isInMainUI()) { + log.info("检测到已返回主界面,结束循环"); + break; + } + } + + if (isInMainUI()) { + log.info("已返回主界面,自动剧情执行完成"); + keyPress("V"); + } else { + log.warn(`已达到最大尝试次数 ${maxAttempts},但未检测到返回主界面`); + } + }, + }; + + const Execute = { + // 寻找委托目的地址带追踪任务 + findCommissionTarget: async (commissionName) => { + try { + log.info("开始寻找委托目标位置: {name}", commissionName); + + // 确保回到主界面 + await genshin.returnMainUi(); + + // 第一步,检测这个任务是否在1-3之中 + let index = 4; + + try { + // 进入委托界面 + const enterSuccess = await UI.enterCommissionScreen(); + if (!enterSuccess) { + log.error("无法进入委托界面"); + return null; + } + + await sleep(1000); + + // 识别前3个委托 + log.debug("findCommissionTarget识别前3个委托"); + + // 先识别前3个Main_Dev区域(索引0-2) + for (let regionIndex = 0; regionIndex < 3; regionIndex++) { + const region = Datas.OCR_REGIONS.Main_Dev[regionIndex]; + + try { + let results = await Utils.easyOCR(region); + + // 处理识别结果,取第一个有效结果 + for (let i = 0; i < results.count; i++) { + let result = results[i]; + let text = Utils.cleanText(result.text); + if (text && text.length >= 2) { + log.info( + '第{regionIndex}个委托: "{text}"', + regionIndex + 1, + text + ); + if (text === commissionName) { + index = regionIndex + 1; + log.info( + "找到委托 {name} 在位置 {index}", + commissionName, + index + ); + break; + } + } + } + + // 如果找到了委托,跳出外层循环 + if (index !== 4) { + break; + } + } catch (regionError) { + log.error( + "识别第{index}个委托区域时出错: {error}", + regionIndex + 1, + regionError + ); + continue; + } + } + } catch (error) { + log.error("findCommissionTarget第一步失败: {error}", error.message); + } + + // 如果前3个没找到,检查第4个委托(需要翻页) + if (index === 4) { + try { + log.info("前3个委托中未找到,检查第4个委托"); + await UI.pageScroll(1); + + const region = Datas.OCR_REGIONS.Main_Dev[3]; // 第4个区域 + let results = await Utils.easyOCR(region); + + for (let i = 0; i < results.count; i++) { + let result = results[i]; + let text = Utils.cleanText(result.text); + if (text && text.length >= 2) { + log.info('第4个委托: "{text}"', text); + if (text === commissionName) { + index = 4; + log.info("找到委托 {name} 在第4个位置", commissionName); + break; + } + } + } + } catch (fourthError) { + log.error("识别第4个委托时出错: {error}", fourthError); + } + } + + // 第二步:进入对应的大地图,获取位置 + let currentCommissionPosition = null; + try { + // 点击详情按钮 + if (index === 4) { + // 第4个委托已经翻页了,使用索引3 + index = 3; + } + + const button = Datas.COMMISSION_DETAIL_BUTTONS[index - 1]; + if (button) { + log.info("点击委托详情按钮: {id}", button.id); + click(button.x, button.y); + await sleep(2000); + + // 检查是否有追踪按钮并点击 + const trackingResult = await Utils.easyOCROne( + Datas.OCR_REGIONS.COMMISSION_TRACKING + ); + if (trackingResult === "追踪") { + log.info("发现追踪按钮,点击追踪"); + click(1693, 1000); + await sleep(1000); + } + + // 退出详情页面 + log.info("退出详情页面 - 按ESC"); + keyDown("VK_ESCAPE"); + await sleep(300); + keyUp("VK_ESCAPE"); + await sleep(1200); + await genshin.setBigMapZoomLevel(2); + // 获取地图坐标并保存 + const bigMapPosition = genshin.getPositionFromBigMap(); + if (bigMapPosition) { + currentCommissionPosition = bigMapPosition; + log.info( + "当前委托位置: ({x}, {y})", + bigMapPosition.x, + bigMapPosition.y + ); + } + + await genshin.returnMainUi(); + } else { + log.error("无效的委托按钮索引: {index}", index); + } + } catch (error) { + log.error("findCommissionTarget第2步失败: {error}", error.message); + } + + return currentCommissionPosition; + } catch (error) { + log.error("寻找委托目标位置时出错: {error}", error.message); + return null; + } + }, + + // 读取并解析流程文件为步骤数组 + loadAndParseProcessFile: async ( + commissionName, + location, + locationprocessFilePath = "process.json" + ) => { + const processFilePath = `${Datas.TALK_PROCESS_BASE_PATH}/${commissionName}/${location}/${locationprocessFilePath}`; + let processContent; + let processSteps; + try { + processContent = await file.readText(processFilePath); + log.info("找到对话委托流程文件: {path}", processFilePath); + } catch (error) { + log.warn( + "未找到对话委托 {name} 在 {location} 的流程文件: {path}", + commissionName, + location, + processFilePath + ); + return false; + } + // 解析流程内容 + + try { + // 尝试解析为JSON格式 + const jsonData = JSON.parse(processContent); + if (Array.isArray(jsonData)) { + processSteps = jsonData; + log.debug("JSON流程解析成功"); + } else { + log.error("JSON流程格式错误,应为数组"); + return false; + } + } catch (jsonError) { + // 如果不是JSON格式,按简单格式处理 + const lines = processContent + .split("\n") + .map((line) => line.trim()) + .filter((line) => line.length > 0); + processSteps = lines; + } + return processSteps; + }, + + // 执行对话委托流程(优化版) + executeTalkCommission: async (commissionName, location) => { + try { + const processSteps = await Execute.loadAndParseProcessFile( + commissionName, + location, + "process.json" + ); + + // 使用统一的处理器执行流程 + return await Execute.executeUnifiedTalkProcess( + processSteps, + commissionName, + location + ); + } catch (error) { + log.error("执行对话委托时出错: {error}", error.message); + return false; + } + }, + + // 自动导航到NPC对话位置(从main_branch.js移植) + autoNavigateToTalk: async (npcName = "", iconType = "") => { + try { + // 设置目标NPC名称 + const textArray = npcName; + + // 根据图标类型选择不同的识别对象 + let boxIconRo; + if (iconType === "Bigmap") { + boxIconRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + "Data/RecognitionObject/IconBigmapCommission.jpg" + ) + ); + log.info("使用大地图图标"); + } + else if (iconType === "Question") { + boxIconRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + "Data/RecognitionObject/IconQuestionCommission.png" + ) + ); + log.info("使用问号任务图标"); + } + else { + // 默认使用任务图标 + boxIconRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + "Data/RecognitionObject/IconTaskCommission.png" + ) + ); + log.info("使用任务图标"); + } + + let advanceNum = 0; //前进次数 + + middleButtonClick(); + await sleep(800); + + while (true) { + // 1. 优先检查是否已到达 + await sleep(500);// 等待0.5秒 + let captureRegion = captureGameRegion(); + let rewardTextArea = captureRegion.DeriveCrop(1210, 515, 200, 50); + let rewardResult = rewardTextArea.find(RecognitionObject.ocrThis); + log.debug("检测到文字: " + rewardResult.text); + // 检测到特点文字则结束!!! + if (rewardResult.text == textArray) { + log.info("已到达指定位置,检测到文字: " + rewardResult.text); + return; + } else if (advanceNum > 80) { + throw new Error("前进时间超时"); + } + // 2. 未到达领奖点,则调整视野 + for (let i = 0; i < 100; i++) { + captureRegion = captureGameRegion(); + let iconRes = captureRegion.Find(boxIconRo); + log.info("检测到委托图标位置 ({x}, {y})", iconRes.x, iconRes.y); + if (iconRes.x >= 920 && iconRes.x <= 980 && iconRes.y <= 540) { + advanceNum++; + log.info(`视野已调正,前进第${advanceNum}次`); + break; + } else { + // 小幅度调整 + if (iconRes.y >= 520) moveMouseBy(0, 920); + let adjustAmount = iconRes.x < 920 ? -20 : 20; + let distanceToCenter = Math.abs(iconRes.x - 920); // 计算与920的距离 + let scaleFactor = Math.max(1, Math.floor(distanceToCenter / 50)); // 根据距离缩放,最小为1 + let adjustAmount2 = iconRes.y < 540 ? scaleFactor : 10; + moveMouseBy(adjustAmount * adjustAmount2, 0); + await sleep(100); + } + if (i > 50) throw new Error("视野调整超时"); + } + // 3. 前进一小步 + keyDown("w"); + await sleep(200); + keyPress("VK_SPACE"); + await sleep(200); + keyPress("VK_SPACE"); + await sleep(200); + keyUp("w"); + await sleep(200); // 等待角色移动稳定 + } + } catch (error) { + log.error("自动导航到NPC对话位置时出错: {error}", error.message); + throw error; + } + }, + + // 统一的对话委托流程处理器(重构版 - 更简洁的主控制函数) + executeUnifiedTalkProcess: async ( + processSteps, + commissionName, + location + ) => { + try { + log.info("执行统一对话委托流程: {name}", commissionName); + + if (!processSteps || processSteps.length === 0) { + log.warn("没有找到有效的流程步骤"); + return false; + } + + // 初始化UI检测器和配置 + const isInMainUI = UIUtils.createMainUIChecker(); + let priorityOptions = []; + let npcWhiteList = []; + + // 刚开始就追踪委托目标 + //await Execute.findCommissionTarget(commissionName); + + // 执行处理步骤 + for (let i = 0; i < processSteps.length; i++) { + const step = processSteps[i]; + log.info("执行流程步骤 {step}: {type}", i + 1, step.type || step); + + try { + // 重置为默认值并处理自定义配置 + const stepConfig = Execute.processStepConfiguration( + step, + priorityOptions, + npcWhiteList + ); + priorityOptions = stepConfig.priorityOptions; + npcWhiteList = stepConfig.npcWhiteList; + + // TAG:添加脚本功能点3 + const context = { + commissionName, + location, + processSteps, + currentIndex: i, + isInMainUI, + priorityOptions, + npcWhiteList, + }; + + // 处理步骤 + await Execute.processStep(step, context); + } catch (stepError) { + log.error( + "执行步骤 {step} 时出错: {error}", + i + 1, + stepError.message + ); + // 继续执行下一步,不中断整个流程 + } + + // 每个步骤之间等待一段时间 + await sleep(2000); + } + + log.info("统一对话委托流程执行完成: {name}", commissionName); + return true; + } catch (error) { + log.error("执行统一对话委托流程时出错: {error}", error.message); + return false; + } + }, + + // 处理步骤配置(优先选项和NPC白名单) + processStepConfiguration: ( + step, + defaultPriorityOptions, + defaultNpcWhiteList + ) => { + let priorityOptions = [...defaultPriorityOptions]; + let npcWhiteList = [...defaultNpcWhiteList]; + + // 如果步骤中包含自定义的优先选项和NPC白名单,则使用它们 + if (step.data && typeof step.data === "object") { + if (Array.isArray(step.data.priorityOptions)) { + priorityOptions = step.data.priorityOptions; + log.info("使用自定义优先选项: {options}", priorityOptions.join(", ")); + } + if (Array.isArray(step.data.npcWhiteList)) { + npcWhiteList = step.data.npcWhiteList; + log.info("使用自定义NPC白名单: {npcs}", npcWhiteList.join(", ")); + } + } + + return { priorityOptions, npcWhiteList }; + }, + + // 处理单个步骤 + processStep: async (step, context) => { + if (typeof step === "string") { + // 简单格式处理 + await Execute.processStringStep(step, context); + } else if (typeof step === "object") { + // JSON格式处理 + await Execute.processObjectStep(step, context); + } + }, + + // 处理字符串格式的步骤 + processStringStep: async (step, context) => { + if (step.endsWith(".json")) { + // 地图追踪文件 + await StepProcessor.processMapTracking( + step, + context.commissionName, + context.location + ); + } else if (step === "F") { + // 按F键并执行优化的自动剧情 + log.info("执行自动剧情"); + await DialogProcessor.executeOptimizedAutoTalk( + null, + 5, + context.priorityOptions, + context.npcWhiteList, + context.isInMainUI + ); + } + }, + + // 处理对象格式的步骤 + processObjectStep: async (step, context) => { + if (step.note) { + log.info("步骤说明: {note}", step.note); + } + + // 使用步骤处理器工厂来处理步骤 + await StepProcessorFactory.process(step, context); + }, + + // 示例:注册自定义步骤处理器 + registerCustomStepProcessors: () => { + // 注册等待步骤处理器 + StepProcessorFactory.register("等待", async (step, context) => { + const waitTime = step.data || 1000; + log.info("等待 {time} 毫秒", waitTime); + await sleep(waitTime); + }); + + // 注册截图步骤处理器 + StepProcessorFactory.register("截图", async (step, context) => { + const filename = step.data || `screenshot_${Date.now()}.png`; + log.info("截图保存为: {filename}", filename); + // 这里可以添加实际的截图逻辑 + }); + + // 注册条件检查步骤处理器 + StepProcessorFactory.register("条件检查", async (step, context) => { + const condition = step.data.condition; + const trueSteps = step.data.trueSteps || []; + const falseSteps = step.data.falseSteps || []; + + log.info("执行条件检查: {condition}", condition); + + // 这里可以添加条件判断逻辑 + const conditionResult = true; // 示例结果 + + const stepsToExecute = conditionResult ? trueSteps : falseSteps; + for (const subStep of stepsToExecute) { + await Execute.processStep(subStep, context); + } + }); + + log.info("自定义步骤处理器注册完成"); + }, + + // 处理对话步骤 + processDialogStep: async ( + step, + priorityOptions, + npcWhiteList, + isInMainUI + ) => { + log.info("执行对话"); + let skipCount = 2; // 默认跳过2次 + + // 处理对话选项 + if (typeof step.data === "number") { + // 兼容旧版本,如果data是数字,则视为skipCount + skipCount = step.data; + } else if (typeof step.data === "object" && step.data.skipCount) { + // 新版本,data是对象,包含skipCount + skipCount = step.data.skipCount; + } + + // 执行对话,使用当前步骤的优先选项和NPC白名单 + await DialogProcessor.executeOptimizedAutoTalk( + null, + skipCount, + priorityOptions, + npcWhiteList, + isInMainUI + ); + }, + }; + + const CommissionsFunc = { + + // 计算两点之间的距离 + calculateDistance: (point1, point2) => { + if ( + !point1 || + !point2 || + !point1.X || + !point1.Y || + !point2.x || + !point2.y + ) { + log.warn("无效的位置数据"); + return Infinity; + } + return Math.sqrt( + Math.pow(point1.X - point2.x, 2) + Math.pow(point1.Y - point2.y, 2) + ); + }, + + // 获取委托的目标坐标(从路径追踪文件中获取最后一个坐标) + getCommissionTargetPosition: async (scriptPath) => { + try { + const scriptContent = await file.readText(scriptPath); + const pathData = JSON.parse(scriptContent); + + if (!pathData.positions || pathData.positions.length === 0) { + log.warn("路径追踪文件 {path} 中没有有效的坐标数据", scriptPath); + return null; + } + + const lastPosition = pathData.positions[pathData.positions.length - 1]; + if (!lastPosition.x || !lastPosition.y) { + log.warn( + "路径追踪文件 {path} 的最后一个路径点缺少坐标数据", + scriptPath + ); + return null; + } + + log.debug( + "从脚本路径 {path} 获取到目标坐标: ({x}, {y})", + scriptPath, + lastPosition.x, + lastPosition.y + ); + return { + x: lastPosition.x, + y: lastPosition.y, + }; + } catch (error) { + log.error("获取委托目标坐标时出错: {error}", error.message); + return null; + } + }, + + // 执行带分支的对话委托流程(从main_branch.js移植) + executeTalkCommissionWithBranches: async (processPath) => { + try { + log.info("开始执行对话委托流程: {path}", processPath); + + // 读取流程文件 + const processContent = await file.readText(processPath); + + // 解析流程内容 + const branches = CommissionsFunc.parseProcessBranches(processContent); + + // 确定要执行的分支 + const branchToExecute = await CommissionsFunc.determineBranch(branches); + + if (branchToExecute) { + log.info("执行分支: {id}", branchToExecute.id); + await Execute.executeUnifiedTalkProcess(branchToExecute.steps); + } else { + log.warn("没有找到匹配的分支,执行默认流程"); + // 尝试解析整个内容作为单一流程 + const steps = JSON.parse(processContent); + await Execute.executeUnifiedTalkProcess(steps); + } + } catch (error) { + log.error("执行对话委托流程出错: {error}", error.message); + } + }, + + // 解析流程文件中的分支(从main_branch.js移植) + parseProcessBranches: (content) => { + const branches = []; + const branchRegex = + /分支:(\d+)[\s\S]*?判断方法"([^"]+)"[\s\S]*?data:"([^"]+)"([\s\S]*?)(?=分支:|$)/g; + + let match; + while ((match = branchRegex.exec(content)) !== null) { + const branchId = parseInt(match[1]); + const judgmentMethod = match[2]; + const judgmentData = match[3]; + const stepsContent = match[4].trim(); + + // 解析步骤 + let steps = []; + try { + // 尝试解析JSON数组 + const jsonContent = `[${stepsContent}]`; + steps = JSON.parse(jsonContent); + } catch (error) { + log.warn("解析分支{id}的步骤出错: {error}", branchId, error); + continue; + } + + branches.push({ + id: branchId, + method: judgmentMethod, + data: judgmentData, + steps: steps, + }); + } + + return branches; + }, + + // 确定要执行的分支(从main_branch.js移植) + determineBranch: async (branches) => { + for (const branch of branches) { + switch (branch.method) { + case "坐标": + if (await CommissionsFunc.checkCoordinateMatch(branch.data)) { + return branch; + } + break; + + case "任务追踪": + if (await CommissionsFunc.checkTaskMatch(branch.data)) { + return branch; + } + break; + + default: + log.warn("未知的判断方法: {method}", branch.method); + } + } + + return null; + }, + + // 检查当前坐标是否匹配(从main_branch.js移植) + checkCoordinateMatch: async (coordData) => { + try { + const [targetX, targetY] = coordData + .split(",") + .map((c) => parseFloat(c.trim())); + + // 获取当前委托位置 + const playerPos = await CommissionsFunc.getCurrentCommissionPosition(); + if (!playerPos) return false; + + // 计算距离 + const distance = CommissionsFunc.calculateDistance(playerPos, { + x: targetX, + y: targetY, + }); + log.info( + "当前位置: ({x}, {y}),目标位置: ({tx}, {ty}),距离: {d}", + playerPos.x, + playerPos.y, + targetX, + targetY, + distance + ); + + // 如果距离小于阈值,认为匹配 + return distance < 100; // 可以调整阈值 + } catch (error) { + log.error("检查坐标匹配出错: {error}", error.message); + return false; + } + }, + + // 检查当前任务是否匹配(从main_branch.js移植) + checkTaskMatch: async (taskName) => { + try { + // 识别左上角任务区域文本 + const taskRegion = { X: 75, Y: 240, WIDTH: 225, HEIGHT: 60 }; + const taskResults = await Utils.easyOCR(taskRegion); + + // 检查是否包含目标任务名称 + for (let i = 0; i < taskResults.count; i++) { + const text = taskResults[i].text; + log.info(`任务区域识别文本: ${text}`); + + if (text.includes(taskName)) { + log.info(`找到匹配任务: ${taskName}`); + return true; + } + } + + log.info(`未找到匹配任务: ${taskName}`); + return false; + } catch (error) { + log.error("检查任务匹配出错: {error}", error.message); + return false; + } + }, + + // 获取当前委托位置(辅助函数) + getCurrentCommissionPosition: async () => { + try { + // 这里可以通过多种方式获取当前位置 + // 1. 从大地图获取 + await genshin.setBigMapZoomLevel(2); + const bigMapPosition = genshin.getPositionFromBigMap(); + if (bigMapPosition) { + return bigMapPosition; + } + + // 2. 从当前委托位置变量获取(如果有的话) + if (currentCommissionPosition) { + return currentCommissionPosition; + } + + log.warn("无法获取当前委托位置"); + return null; + } catch (error) { + log.error("获取当前委托位置时出错: {error}", error.message); + return null; + } + }, + }; + + const Test = async () => { + Utils.iframe(Datas.OCR_REGIONS.Main_Dev[0]); + // 角色切换步骤使用示例: + // 在process.json文件中添加如下步骤: + // { + // "type": "切换角色", + // "data": { + // "position": 1, + // "character": "枫原万叶" + // }, + // "note": "切换第1号位为枫原万叶" + // } + + // // 切换角色示例(可选) + // // 如果需要切换角色,可以取消注释下面的代码 + // const switchRoleStep = { + // type: "切换角色", + // data: { position: 1, character: "枫原万叶" }, + // note: "切换第1号位为枫原万叶", + // }; + // await StepProcessor.processSwitchRole(switchRoleStep); + }; + + //Main + const Main = async () => { + log.debug("版本: {version}", VERSION); + + try { + // 读取设置 + const team = settings.team || ""; + const elementTeam = settings.elementTeam || ""; + const selectedProcess = settings.process_selector || "刷新剧情列表"; + + if (selectedProcess === "刷新剧情列表") { + // 刷新操作:扫描所有process.json并更新设置 + await refreshProcessList(); + log.info("委托列表已刷新,请重新选择并运行"); + } else { + // 解析选中的委托路径 + const pathParts = selectedProcess.split('-'); + + // 确保至少有两个文件夹层级 + if (pathParts.length < 2) { + throw new Error("无效的委托路径格式"); + } + + // 提取最后两个文件夹名 + const folder1 = pathParts[pathParts.length - 2]; + const folder2 = pathParts[pathParts.length - 1]; + + // 设置动态基础路径(倒数第二个文件夹之前的所有部分) + Datas.TALK_PROCESS_BASE_PATH = "process/"+pathParts.slice(0, pathParts.length - 2).join('/'); + + log.info("执行委托: {path}", selectedProcess); + log.debug("基础路径: {basePath}", Datas.TALK_PROCESS_BASE_PATH); + log.debug("文件夹1: {folder1}, 文件夹2: {folder2}", folder1, folder2); + + await Execute.executeTalkCommission(folder1, folder2); + dispatcher.ClearAllTriggers(); + } + } catch (error) { + log.error("执行出错: {error}", error.message); + errorlog(); + } +}; + + +// 刷新委托列表(保留完整路径结构) +async function refreshProcessList() { + // 读取所有process.json文件 + const allFiles = await readFolder("process/", true); + + // 筛选并处理符合条件的process.json文件 + const processEntries = allFiles + .filter(file => file.fileName === "process.json") + .map(file => { + const pathSegments = file.folderPathArray; + + // 确保路径中有"process"部分 + const processIndex = pathSegments.indexOf("process"); + if (processIndex === -1 || processIndex >= pathSegments.length - 2) { + throw new Error(`无效的路径结构: ${file.fullPath}`); + } + + // 提取"process"之后的所有部分 + const relativePath = pathSegments.slice(processIndex + 1); + + // 确保至少有两个文件夹层级 + if (relativePath.length < 2) { + throw new Error(`路径层级不足: ${file.fullPath}`); + } + + // 创建选项名称(用连字符连接所有文件夹名) + const optionName = relativePath.join('-'); + + return { + name: optionName, + path: file.fullPath + }; + }); + + // 创建选项列表(以"刷新剧情列表"开头) + const options = ["刷新剧情列表", ...processEntries.map(entry => entry.name)]; + + // 更新settings.json + await updateSettingsFile(options); + log.info("已更新{count}个委托选项", processEntries.length); +} + +// 更新settings.json文件 +async function updateSettingsFile(options) { + const settingsPath = "./settings.json"; + let settingsArray; + + try { + // 读取现有设置 + const content = file.readTextSync(settingsPath); + settingsArray = JSON.parse(content); + } catch (e) { + // 文件不存在或解析失败时创建默认设置 + throw new Error("设置文件不存在"); + } + + // 更新process_selector选项 + const selectorIndex = settingsArray.findIndex(item => item.name === "process_selector"); + if (selectorIndex !== -1) { + settingsArray[selectorIndex].options = options; + settingsArray[selectorIndex].default = "刷新剧情列表"; + } else { + // 如果不存在则添加 + settingsArray.push({ + "name": "process_selector", + "type": "select", + "label": "可执行剧情列表", + "options": options, + "default": "刷新剧情列表" + }); + } + + // 写入更新后的设置 + const success = file.writeTextSync(settingsPath, JSON.stringify(settingsArray, null, 2)); + if (!success) { + throw new Error("写入设置文件失败"); + } +} + +// 文件夹读取函数(优化版) +async function readFolder(folderPath, onlyJson) { + log.info(`开始读取文件夹: ${folderPath}`); + const folderStack = [folderPath]; + const files = []; + + while (folderStack.length > 0) { + const currentPath = folderStack.pop(); + const items = file.ReadPathSync(currentPath); + const subFolders = []; + + for (const itemPath of items) { + if (file.IsFolder(itemPath)) { + subFolders.push(itemPath); + } else if (!onlyJson || itemPath.toLowerCase().endsWith(".json")) { + const pathParts = itemPath.split(/[\\/]/).filter(Boolean); + const fileName = pathParts.pop(); + files.push({ + fullPath: itemPath, + fileName: fileName, + folderPathArray: pathParts + }); + } + } + + // 保持原始顺序添加子文件夹 + folderStack.push(...subFolders.reverse()); + } + + return files; +} + +await Main(); +})(); diff --git a/repo/js/AAA-Auto-Story-Loader/manifest.json b/repo/js/AAA-Auto-Story-Loader/manifest.json new file mode 100644 index 000000000..7a91bd76e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/manifest.json @@ -0,0 +1,15 @@ +{ + "manifest_version": 1, + "name": "自动剧情加载器", + "version": "1.0", + "tags": ["剧情","任务"], + "description": "剧情自动执行器一键挂机过剧情:自动寻路、对话、战斗,脚本拖进调度器就能跑,仅提供技术框架,详情见说明文档", + "authors": [ + { + "name": "星野", + "links": "https://github.com/LX666-666" + } + ], + "settings_ui": "settings.json", + "main": "main.js" +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/process.json new file mode 100644 index 000000000..4ce26c4f6 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/process.json @@ -0,0 +1,3 @@ +圆滚滚的大团骚乱-1.json +F +圆滚滚的大团骚乱-2.json \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-1.json new file mode 100644 index 000000000..cdeb8f6c9 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-1.json @@ -0,0 +1,130 @@ +{ + "info": { + "name": "圆滚滚的大团骚乱-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "圆滚滚的大团骚乱-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -578.8076171875, + "y": 1853.396484375, + "action_params": "" + }, + { + "id": 2, + "x": -496.169921875, + "y": 1821.05224609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -488.1904296875, + "y": 1815.54638671875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -446.2294921875, + "y": 1787.8017578125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -444.9365234375, + "y": 1770.681640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -443.546875, + "y": 1749.72216796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -451.5029296875, + "y": 1708.76025390625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -421.736328125, + "y": 1694.24658203125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -403.6259765625, + "y": 1692.9951171875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -402.4580078125, + "y": 1686.95361328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 11, + "x": -409.0654296875, + "y": 1685.06787109375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -407.998046875, + "y": 1687.474609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -405.185546875, + "y": 1687.04296875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-2.json new file mode 100644 index 000000000..71c831600 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-2.json @@ -0,0 +1,105 @@ +{ + "info": { + "name": "圆滚滚的大团骚乱-2", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "圆滚滚的大团骚乱-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -406.5341796875, + "y": 1686.943359375, + "action_params": "" + }, + { + "id": 2, + "x": -412.4833984375, + "y": 1684.91162109375, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -420.6025390625, + "y": 1653.9306640625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -378.134765625, + "y": 1652.35400390625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -353.4072265625, + "y": 1655.490234375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -326.3935546875, + "y": 1633.00146484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -322.5263671875, + "y": 1631.1552734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 8, + "x": -322.5263671875, + "y": 1631.1552734375, + "type": "path", + "move_mode": "walk", + "action": "anemo_collect", + "action_params": "", + "locked": false + }, + { + "id": 9, + "x": -322.5263671875, + "y": 1631.1552734375, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 10, + "x": -318.3642578125, + "y": 1629.23779296875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/process.json new file mode 100644 index 000000000..1dcf4ef92 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/process.json @@ -0,0 +1,79 @@ +[ + { + "type": "地图追踪", + "data": "愿风带走思念-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" +}, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待", + "data": 20 + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待对话完成" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待", + "data": 20 + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待对话完成" + }, + { + "type": "地图追踪", + "data": "到风神神像手上.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待", + "data": 20 + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "愿风带走思念-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/到风神神像手上.json b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/到风神神像手上.json new file mode 100644 index 000000000..faff3e0bf --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/到风神神像手上.json @@ -0,0 +1,177 @@ +{ + "info": { + "name": "未命名路径", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750834568592 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.390625, + "y": 2263.107421875, + "action_params": "" + }, + { + "id": 2, + "x": -747.5390625, + "y": 2262.634521484375, + "type": "target", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -746.6640625, + "y": 2288.333984375, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 4, + "x": -748.8193359375, + "y": 2312.42626953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -751.2431640625, + "y": 2316.685546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -752.2646484375, + "y": 2319.859130859375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -748.5244140625, + "y": 2325.636474609375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -745.65625, + "y": 2325.71435546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -745.3330078125, + "y": 2323.943115234375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -746.1318359375, + "y": 2319.88916015625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -747.109375, + "y": 2319.633544921875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -748.43359375, + "y": 2319.788330078125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -748.9775390625, + "y": 2320.320556640625, + "type": "target", + "move_mode": "climb", + "action": "", + "action_params": "" + }, + { + "id": 14, + "x": -751.6474609375, + "y": 2321.45068359375, + "type": "target", + "move_mode": "climb", + "action": "", + "action_params": "" + }, + { + "id": 15, + "x": -751.7041015625, + "y": 2320.953369140625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 16, + "x": -752.2158203125, + "y": 2320.233154296875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 17, + "x": -753.3447265625, + "y": 2318.937255859375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 18, + "x": -754.841796875, + "y": 2317.612548828125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/愿风带走思念-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/愿风带走思念-1.json new file mode 100644 index 000000000..b3d7da2d9 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/愿风带走思念-1.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "愿风带走思念-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753433105044 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -867.6884765625, + "y": 2281.375244140625, + "action_params": "" + }, + { + "id": 2, + "x": -850.603515625, + "y": 2247.04443359375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -846.548828125, + "y": 2238.94482421875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -849.9765625, + "y": 2236.47802734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -855.09765625, + "y": 2233.345947265625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/process.json new file mode 100644 index 000000000..564fb2bfc --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/process.json @@ -0,0 +1,2 @@ +此路不通-1.json +F diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/此路不通-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/此路不通-1.json new file mode 100644 index 000000000..b9a931200 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/此路不通-1.json @@ -0,0 +1,104 @@ +{ + "info": { + "name": "此路不通-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1167.66015625, + "y": 2133.339599609375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1183.017578125, + "y": 2114.7578125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1204.1376953125, + "y": 2113.880126953125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1237.576171875, + "y": 2118.918701171875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1257.15625, + "y": 2134.82568359375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1256.58984375, + "y": 2136.4736328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 7, + "x": -1256.58984375, + "y": 2136.4736328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 8, + "x": -1264.908203125, + "y": 2148.431640625, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -1258.1123046875, + "y": 2144.801513671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -1255.60546875, + "y": 2142.148193359375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/process.json new file mode 100644 index 000000000..564fb2bfc --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/process.json @@ -0,0 +1,2 @@ +此路不通-1.json +F diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/此路不通-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/此路不通-1.json new file mode 100644 index 000000000..d162df89e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/此路不通-1.json @@ -0,0 +1,94 @@ +{ + "info": { + "name": "此路不通-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1120.9248046875, + "y": 2190.61865234375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1082.921875, + "y": 2170.38916015625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1077.7021484375, + "y": 2170.734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1054.9169921875, + "y": 2147.05078125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1038.853515625, + "y": 2089.74267578125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1030.337890625, + "y": 2068.903564453125, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": -1038.0185546875, + "y": 2067.16064453125, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -1029.134765625, + "y": 2071.604736328125, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -1029.7587890625, + "y": 2067.420166015625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/process.json new file mode 100644 index 000000000..48d4cd80a --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/process.json @@ -0,0 +1,20 @@ +[ + { + "type": "地址检测", + "data": [ + -774, + 1808 + ], + "note": "目的地址与检测地址超过15的情况", + "run": "执行分支一米拉娜.json" + }, + { + "type": "地址检测", + "data": [ + -568, + 1955 + ], + "note": "目的地址与检测地址超过15的情况", + "run": "执行分支二杰克.json" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支一米拉娜.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支一米拉娜.json new file mode 100644 index 000000000..7f5b1afa8 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支一米拉娜.json @@ -0,0 +1,24 @@ +[ + { + "type": "地图追踪", + "data": "此路不通-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支二杰克.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支二杰克.json new file mode 100644 index 000000000..77ccd5a1d --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支二杰克.json @@ -0,0 +1,24 @@ +[ + { + "type": "地图追踪", + "data": "此路不通-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-1.json new file mode 100644 index 000000000..85f9d3fc5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-1.json @@ -0,0 +1,104 @@ +{ + "info": { + "name": "此路不通-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -914.822265625, + "y": 1795.4873046875, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -904.6572265625, + "y": 1800.70703125, + "type": "path", + "move_mode": "swim", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -889.396484375, + "y": 1808.716796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -834.48046875, + "y": 1806.64208984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -799.4609375, + "y": 1808.38671875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -772.3544921875, + "y": 1808.93017578125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 7, + "x": -772.3544921875, + "y": 1808.93017578125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 8, + "x": -767.53515625, + "y": 1797.4560546875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 9, + "x": -778.1533203125, + "y": 1801.01513671875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 10, + "x": -774.4892578125, + "y": 1808.38037109375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-2.json new file mode 100644 index 000000000..01aeff892 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-2.json @@ -0,0 +1,112 @@ +{ + "info": { + "name": "此路不通-2", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -578.767578125, + "y": 1853.41552734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -583.9541015625, + "y": 1872.5712890625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -540.2041015625, + "y": 1932.1123046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -542.66796875, + "y": 1940.15576171875, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -543.021484375, + "y": 1953.623046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -566.66015625, + "y": 1953.3759765625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": -566.66015625, + "y": 1953.3759765625, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -566.66015625, + "y": 1953.3759765625, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -565.3037109375, + "y": 1949.03466796875, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -564.1240234375, + "y": 1956.7958984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -568.38671875, + "y": 1955.6904296875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/process.json new file mode 100644 index 000000000..3a1088256 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/process.json @@ -0,0 +1,7 @@ +艾琳,未来的骑士-1.json +F +艾琳,未来的骑士-2.json +艾琳,未来的骑士-3.json +艾琳,未来的骑士-4.json +艾琳,未来的骑士-5.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-1.json new file mode 100644 index 000000000..c45f3214f --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-1.json @@ -0,0 +1,59 @@ +{ + "info": { + "name": "艾琳,未来的骑士-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "update_time":20250615 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -738.279296875, + "y": 2264.16845703125, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -730.9306640625, + "y": 2267.73046875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-2.json new file mode 100644 index 000000000..3fb5625f8 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-2.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "艾琳,未来的骑士-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -738.279296875, + "y": 2264.16845703125, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-3.json new file mode 100644 index 000000000..406be6daa --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-3.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "艾琳,未来的骑士-3", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-3", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -734.431640625, + "y": 2264.39208984375, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "300" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-4.json new file mode 100644 index 000000000..260f56aea --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-4.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "艾琳,未来的骑士-4", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-4", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -737.0185546875, + "y": 2263.715087890625, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "200" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-5.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-5.json new file mode 100644 index 000000000..584008608 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-5.json @@ -0,0 +1,76 @@ +{ + "info": { + "name": "艾琳,未来的骑士-5", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-5", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -733.5673828125, + "y": 2264.910888671875, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "钟离 wait(12),e(hold)," + }, + { + "id": 2, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "钟离 wait(12),e(hold),", + "type": "target" + }, + { + "id": 3, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(1),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 4, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(2),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 5, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(3),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 6, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(4),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 7, + "x": -731.0205078125, + "y": 2267.665771484375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/1.json new file mode 100644 index 000000000..7b4ceb03e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/1.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "1", + "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": -1166.845703125, + "y": 2133.358642578125, + "action_params": "" + }, + { + "id": 2, + "x": -1172.5341796875, + "y": 2103.667236328125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1186.0234375, + "y": 2066.802734375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/2.json new file mode 100644 index 000000000..155c47c06 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/2.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "2", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753774931527 + }, + "positions": [ + { + "id": 1, + "x": -867.685546875, + "y": 2281.36083984375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -846.0087890625, + "y": 2238.015625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -852.6513671875, + "y": 2234.505859375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -854.9996745089811, + "y": 2233.3751376736036, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/process.json new file mode 100644 index 000000000..1567d7234 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/process.json @@ -0,0 +1,64 @@ +[ + { + "type": "地图追踪", + "data": "1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + }, + { + "type": "自动任务", + "data": { + "action": "disable" + }, + "note": "取消所有自动任务" +}, + { + "type": "地图追踪", + "data": "2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "键鼠脚本", + "data": "对话并关闭阅读.json", + "note": "对话并关闭阅读" + }, + { + "type": "地图追踪", + "data": "1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + } +] + diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/对话并关闭阅读.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/对话并关闭阅读.json new file mode 100644 index 000000000..7a7735a42 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/对话并关闭阅读.json @@ -0,0 +1 @@ +{"macroEvents":[{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":3250},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":3375},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":5438},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":5547},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":6766},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":6891},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":8407},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":8532},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":9860},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":9969},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":11328},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":11438},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":13063},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":13157},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":14610},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":14719},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":16063},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":16203},{"type":0,"keyCode":27,"mouseX":0,"mouseY":0,"time":18828},{"type":1,"keyCode":27,"mouseX":0,"mouseY":0,"time":18953},{"type":0,"keyCode":27,"mouseX":0,"mouseY":0,"time":20625},{"type":1,"keyCode":27,"mouseX":0,"mouseY":0,"time":20797},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":21297},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":22407},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":22807},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":23047},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":23425},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":23819},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":24072},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":24460},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":25047},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":25488},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":25769},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":26110}],"info":{"name":"","description":"","x":319,"y":195,"width":1920,"height":1080,"recordDpi":1.25}} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/process.json new file mode 100644 index 000000000..a9333410e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/process.json @@ -0,0 +1,40 @@ +[ + { + "type": "地图追踪", + "data": "诗歌交流-坠星山谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + }, + + { + "type": "地图追踪", + "data": "诗歌交流-坠星山谷-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "Celi dada", + "Muhe ye!", + "Ye dada" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + + { + "type": "地图追踪", + "data": "诗歌交流-坠星山谷-3.json", + "note": "执行第三个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json new file mode 100644 index 000000000..ec756ed67 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json @@ -0,0 +1,67 @@ +{ + "info": { + "name": "诗歌交流-坠星山谷-1", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "诗歌交流-坠星山谷-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1536.81640625, + "y": 1978.66552734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1536.109375, + "y": 1982.35986328125, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1502.8125, + "y": 2070.242431640625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1472.19140625, + "y": 2081.34033203125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1474.841796875, + "y": 2133.108154296875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1473.66796875, + "y": 2144.080078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json new file mode 100644 index 000000000..c55338577 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "诗歌交流-坠星山谷-2", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "诗歌交流-坠星山谷-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1473.802734375, + "y": 2143.8759765625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1455.962890625, + "y": 2159.3115234375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1475.9736328125, + "y": 2191.275634765625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json new file mode 100644 index 000000000..4397b440b --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "诗歌交流-坠星山谷-3", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "诗歌交流-坠星山谷-3", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1476.3779296875, + "y": 2190.221923828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1473.28125, + "y": 2143.79248046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/process.json new file mode 100644 index 000000000..7c2120a46 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/process.json @@ -0,0 +1,7 @@ +语言交流-1.json +F +语言交流-2.json +F +语言交流-3.json +语言交流-4.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-1.json new file mode 100644 index 000000000..50cdc8ac3 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-1.json @@ -0,0 +1,30 @@ +{ + "info": { + "name": "语言交流-1", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1558.7587890625, + "y": 2495.6064453125, + "action_params": "" + }, + { + "id": 2, + "x": -1526.3173828125, + "y": 2498.93212890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-2.json new file mode 100644 index 000000000..532cc79b5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-2.json @@ -0,0 +1,30 @@ +{ + "info": { + "name": "语言交流-2", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1526.9365234375, + "y": 2498.802001953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -1527.57421875, + "y": 2479.588134765625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-3.json new file mode 100644 index 000000000..694f500d2 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-3.json @@ -0,0 +1,39 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1527.5419921875, + "y": 2480.11181640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1513.6279296875, + "y": 2478.95361328125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1514.599609375, + "y": 2472.046875, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-4.json new file mode 100644 index 000000000..91e1e3f83 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-4.json @@ -0,0 +1,21 @@ +{ + "info": { + "name": "语言交流-4", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1514.599609375, + "y": 2472.046875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/process.json new file mode 100644 index 000000000..3106a91c7 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/process.json @@ -0,0 +1,9 @@ +语言交流-1.json +F +语言交流-2.json +F +语言交流-3.json +F +语言交流-4.json +语言交流-5.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-1.json new file mode 100644 index 000000000..c5d0787ba --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-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, + "x": -1266.513671875, + "y": 1933.7255859375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1254.9794921875, + "y": 1934.5322265625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1226.2001953125, + "y": 1939.65771484375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1199.3505859375, + "y": 1939.05517578125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1173.5078125, + "y": 1939.14794921875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1148.2265625, + "y": 1940.38720703125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": -1137.47265625, + "y": 1932.69140625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -1137.9951171875, + "y": 1925.18798828125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -1136.283203125, + "y": 1922.94580078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-2.json new file mode 100644 index 000000000..35def7982 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-2.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "语言交流-2", + "type": "collect", + "author": "星野工具箱", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1136.326171875, + "y": 1923.3017578125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1139.361328125, + "y": 1936.99853515625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1146.9228515625, + "y": 1960.92236328125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-3.json new file mode 100644 index 000000000..819843433 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-3.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1147.1240234375, + "y": 1960.763671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1161.0830078125, + "y": 1950.35498046875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-4.json new file mode 100644 index 000000000..bdd83ee96 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-4.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1161.0830078125, + "y": 1950.35498046875, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-5.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-5.json new file mode 100644 index 000000000..6864f5528 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-5.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1161.0830078125, + "y": 1950.35498046875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/process.json new file mode 100644 index 000000000..38bdb31e6 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/process.json @@ -0,0 +1,42 @@ +[ + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-3.json", + "note": "执行第三个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "执行战斗策略.json", + "note": "执行战斗策略" + }, + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-4.json", + "note": "执行第四个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/执行战斗策略.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/执行战斗策略.json new file mode 100644 index 000000000..adc9afdf2 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/执行战斗策略.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "5", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 72.7578125, + "y": 2767.362060546875, + "type": "fight", + "move_mode": "walk", + "action": "", + "action_params": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-1.json new file mode 100644 index 000000000..12f1bb0fd --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-1.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "1", + "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": -83.3798828125, + "y": 2781.734130859375, + "action_params": "" + }, + { + "id": 2, + "x": -4.775390625, + "y": 2798.0595703125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -7.8662109375, + "y": 2803.570068359375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-2.json new file mode 100644 index 000000000..8c58df799 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-2.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "2", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -5.537109375, + "y": 2801.556884765625, + "action_params": "" + }, + { + "id": 2, + "x": 43.2666015625, + "y": 2761.027587890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-3.json new file mode 100644 index 000000000..02d8346e5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-3.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "3", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": 43.578125, + "y": 2761.056640625, + "action_params": "" + }, + { + "id": 2, + "x": 72.7578125, + "y": 2767.362060546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-4.json new file mode 100644 index 000000000..1a2f9688c --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-4.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "4", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 72.7578125, + "y": 2767.362060546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/process.json new file mode 100644 index 000000000..56a5f8fff --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/process.json @@ -0,0 +1,5 @@ +说到做到-1.json +F +说到做到-2.json +说到做到-1.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-1.json new file mode 100644 index 000000000..bac359481 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-1.json @@ -0,0 +1,76 @@ +{ + "info": { + "name": "说到做到-1", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1136, + "y": 1589, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1142.5, + "y": 1623.5, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1097, + "y": 1647.75, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1079.5, + "y": 1666.75, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1091.875, + "y": 1767.5, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1094.125, + "y": 1775.375, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path", + "locked": false + }, + { + "id": 7, + "x": -1088.517578125, + "y": 1770.88134765625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-2.json new file mode 100644 index 000000000..c6091f464 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-2.json @@ -0,0 +1,53 @@ +{ + "info": { + "name": "说到做到-2", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1131.666015625, + "y": 1597.25390625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1155.25, + "y": 1628, + "type": "path", + "move_mode": "dash" + }, + { + "id": 3, + "x": -1186.5, + "y": 1648, + "type": "path", + "move_mode": "fly" + }, + { + "id": 4, + "x": -1198.5, + "y": 1654.75, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -1192.25, + "y": 1645, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/process.json new file mode 100644 index 000000000..8928bb62f --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/process.json @@ -0,0 +1,36 @@ +[ +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick" + }, + "note": "启用自动拾取" +}, + { + "type": "地图追踪", + "data": "钥匙是易丢物品-晨曦酒庄-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢物品-晨曦酒庄-2.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json new file mode 100644 index 000000000..d20757383 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json @@ -0,0 +1,68 @@ +{ + "info": { + "name": "钥匙是易丢物品-晨曦酒庄-1", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -578.76171875, + "y": 1853.5517578125, + "action_params": "" + }, + { + "id": 2, + "x": -555.89453125, + "y": 1844.61572265625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -495.7841796875, + "y": 1822.93310546875, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 4, + "x": -488.7841796875, + "y": 1820.93310546875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -456.9140625, + "y": 1808.41552734375, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "100" + }, + { + "id": 6, + "x": -442.2568359375, + "y": 1790.41357421875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json new file mode 100644 index 000000000..c70fd52c2 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json @@ -0,0 +1,193 @@ +{ + "info": { + "name": "钥匙是易丢物品-晨曦酒庄-2", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -442.783203125, + "y": 1790.21826171875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -443.55078125, + "y": 1755.0136718749998, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -448.6533203125, + "y": 1721.419921875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -455.9951171875, + "y": 1696.10107421875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -459.19921875, + "y": 1705.77734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -466.1142578125, + "y": 1701.08544921875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 7, + "x": -474.76171875, + "y": 1713.13330078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -493.640625, + "y": 1723.76318359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 9, + "x": -477.82421875, + "y": 1750.01806640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -473.2314453125, + "y": 1794.81005859375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 11, + "x": -446.4462890625, + "y": 1804.73046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 12, + "x": -386.4208984375, + "y": 1820.828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 13, + "x": -385.7529296875, + "y": 1832.931640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 14, + "x": -375.109375, + "y": 1804.3125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 15, + "x": -365.55078125, + "y": 1788.20068359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 16, + "x": -362.6923828125, + "y": 1788.6904296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 17, + "x": -385.783203125, + "y": 1777.36572265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 18, + "x": -402.17578125, + "y": 1786.65673828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 19, + "x": -418.06738281250006, + "y": 1780.18115234375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 20, + "x": -441.8291015625, + "y": 1790.55078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json new file mode 100644 index 000000000..4caff8986 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json @@ -0,0 +1,229 @@ +{ + "info": { + "name": "钥匙是易丢物品-晨曦酒庄-2", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "说到做到-山腰", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -442.783203125, + "y": 1790.21826171875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -443.55078125, + "y": 1755.013671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -448.6533203125, + "y": 1721.419921875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -454.09765625, + "y": 1702.578125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -456.978515625, + "y": 1697.5751953125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 6, + "x": -460.173828125, + "y": 1707.54638671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 7, + "x": -464.20703125, + "y": 1703.1494140625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -467.2568359375, + "y": 1699.845703125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 9, + "x": -474.76171875, + "y": 1713.13330078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -489.84765625, + "y": 1721.37841796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -493.640625, + "y": 1723.76318359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 12, + "x": -477.82421875, + "y": 1750.01806640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 13, + "x": -472.4998719544019, + "y": 1794.3751695505216, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 14, + "x": -446.4462890625, + "y": 1804.73046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 15, + "x": -386.4375, + "y": 1820.3751978089422, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 16, + "x": -383.962890625, + "y": 1829.78955078125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 17, + "x": -385.7529296875, + "y": 1832.931640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 18, + "x": -375.109375, + "y": 1804.3125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 19, + "x": -365.55078125, + "y": 1788.20068359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 20, + "x": -362.6923828125, + "y": 1788.6904296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 21, + "x": -385.783203125, + "y": 1777.36572265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 22, + "x": -402.17578125, + "y": 1786.65673828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 23, + "x": -418.0673828125, + "y": 1780.18115234375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 24, + "x": -441.8291015625, + "y": 1790.55078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/process.json new file mode 100644 index 000000000..e524369fe --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/process.json @@ -0,0 +1,48 @@ +[ +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick" + }, + "note": "启用自动拾取" +}, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 6, + "priorityOptions": ["好的"], + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-2.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-3.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "priorityOptions": ["这是你丢的钥匙吗?"], + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json new file mode 100644 index 000000000..19a93f527 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json @@ -0,0 +1,58 @@ +{ + "info": { + "name": "钥匙是易丢物品", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1432.650390625, + "y": 1464.65673828125, + "action_params": "" + }, + { + "id": 2, + "x": -1457.60546875, + "y": 1451.36474609375, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1472.6240234375, + "y": 1444.4580078125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -1500.3818359375, + "y": 1435.9716796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -1538.0888671875, + "y": 1415.87646484375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json new file mode 100644 index 000000000..2b63cba62 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json @@ -0,0 +1,178 @@ +{ + "info": { + "name": "钥匙是易丢物品-达达乌帕谷", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品-达达乌帕谷", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -1537.58984375, + "y": 1415.99169921875, + "action_params": "", + "locked": false + }, + { + "id": 2, + "x": -1531.7080078125, + "y": 1358.65771484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 3, + "x": -1533.7119140625, + "y": 1297.326171875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 4, + "x": -1517.5908203125, + "y": 1275.15966796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -1497.7314453125, + "y": 1288.021484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -1485.02734375, + "y": 1267.44921875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -1439.3837890625, + "y": 1274.07861328125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -1442.4599609375, + "y": 1249.560546875, + "type": "path", + "move_mode": "climb", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -1445.2509765625, + "y": 1251.44140625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -1411.1650390625, + "y": 1258.8120117187498, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 11, + "x": -1436.15234375, + "y": 1255.63525390625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -1467.1767578125, + "y": 1270.5498046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -1488.24609375, + "y": 1266.62744140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 14, + "x": -1496.958984375, + "y": 1282.8486328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 15, + "x": -1514.9072265625, + "y": 1272.970703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 16, + "x": -1533.7119140625, + "y": 1297.326171875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 17, + "x": -1531.7080078125, + "y": 1358.65771484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 18, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -1537.58984375, + "y": 1415.99169921875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json new file mode 100644 index 000000000..ca3c79fe6 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json @@ -0,0 +1,167 @@ +{ + "info": { + "name": "钥匙是易丢物品-达达乌帕谷大锅位置", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品-达达乌帕谷大锅位置", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1540.1884765625, + "y": 1413.04296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -1580.9248046875, + "y": 1411.60546875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1599.0830078125, + "y": 1473.849609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -1607.7294921875, + "y": 1487.51904296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -1613.5263671875, + "y": 1509.744140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -1599.279296875, + "y": 1543.27099609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -1581.9541015625, + "y": 1557.22802734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -1567.30859375, + "y": 1563.79296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -1562.21875, + "y": 1565.611328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 10, + "x": -1564.8750601748943, + "y": 1571.5, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -1563.5623094461644, + "y": 1565.625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -1576.18775072873, + "y": 1561.25, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -1578.5908203125, + "y": 1592.2978515625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path", + "locked": false + }, + { + "id": 14, + "x": -1582.5908203125, + "y": 1600.2978515625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 15, + "x": -1584.154296875, + "y": 1603.55810546875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 16, + "x": -1600.962890625, + "y": 1606.20947265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 17, + "x": -1605.0751953125, + "y": 1609.23193359375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/process.json new file mode 100644 index 000000000..95e5e6eca --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/process.json @@ -0,0 +1,59 @@ +[ + { + "type": "地图追踪", + "data": "餐品订单-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "餐品外送订单", + "好吧" + ], + "npcWhiteList": [ + "莎拉" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "委托描述检测", + "data": "取得制作好的餐品", + "note": "分支名字正确的情况", + "run": "取餐.json" + }, + + { + "type": "委托描述检测", + "data": "询问帕拉德", + "note": "分支名字正确的情况", + "run": "询问帕拉德.json" + }, + { + "type": "委托描述检测", + "data": "运送餐品给活跃的欧琳", + "note": "分支名字正确的情况", + "run": "找到活跃的欧琳.json" + }, + { + "type": "地图追踪", + "data": "餐品订单-1.json", + "note": "执行第四个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "交付餐费", + "这是餐费" + ], + "npcWhiteList": [ + "莎拉" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/取餐.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/取餐.json new file mode 100644 index 000000000..a378d6f99 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/取餐.json @@ -0,0 +1,35 @@ +[ + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "已经找好了" + + ], + "npcWhiteList": [ + "莎拉" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "餐品订单-晨曦酒庄-1.json", + "note": "执行地图追踪找到恩内斯特" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "这是你点的餐" + + ], + "npcWhiteList": [ + "恩内斯特" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/找到活跃的欧琳.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/找到活跃的欧琳.json new file mode 100644 index 000000000..60f5395ab --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/找到活跃的欧琳.json @@ -0,0 +1,16 @@ +[ + { + "type": "地图追踪", + "data": "餐品订单-5.json", + "note": "执行第五个地图追踪步骤,自动战斗" + }, + { + "type": "地图追踪", + "data": "餐品订单-6.json", + "note": "执行第六个地图追踪步骤,对话" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/询问帕拉德.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/询问帕拉德.json new file mode 100644 index 000000000..3a4d9c573 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/询问帕拉德.json @@ -0,0 +1,29 @@ +[ + { + "type": "地图追踪", + "data": "餐品订单-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + }, + { + "type": "地图追踪", + "data": "餐品订单-3.json", + "note": "执行第三个地图追踪步骤,找到冒失的帕拉德" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + }, + { + "type": "地图追踪", + "data": "餐品订单-4.json", + "note": "执行第四个地图追踪步骤,对话" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-1.json new file mode 100644 index 000000000..570360a9b --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-1.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "餐品订单-1", + "type": "collect", + "author": "小鹰划船不用桨", + "version": "1.0", + "description": "寻路", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -867.693359375, + "y": 2281.361572265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -880.0439453125, + "y": 2268.28662109375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -889.107421875, + "y": 2246.7099609375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -888.232421875, + "y": 2241.43359375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-2.json new file mode 100644 index 000000000..2fb8c23cf --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-2.json @@ -0,0 +1,96 @@ +{ + "info": { + "name": "餐品订单-2", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751272328810 + }, + "positions": [ + { + "id": 1, + "x": -867.6806640625, + "y": 1992.19775390625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -876.0380859375, + "y": 1983.77880859375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -880.236328125, + "y": 1966.93603515625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -880.912109375, + "y": 1950.27783203125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -890.921875, + "y": 1930.01904296875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -884.580078125, + "y": 1928.8720703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -882.423828125, + "y": 1935.13330078125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -872.28515625, + "y": 1947.14404296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -869.341796875, + "y": 1948.38330078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-3.json new file mode 100644 index 000000000..0041e57c5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-3.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "餐品订单-3", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-3", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "dash", + "type": "path", + "x": -869.3271484375, + "y": 1948.564453125, + "action_params": "" + }, + { + "id": 2, + "x": -889.55859375, + "y": 1932.28955078125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -896.9921875, + "y": 1917.9619140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -900.1279296875, + "y": 1908.84814453125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-4.json new file mode 100644 index 000000000..702497127 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-4.json @@ -0,0 +1,58 @@ +{ + "info": { + "name": "餐品订单-4", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-4", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "dash", + "type": "path", + "x": -899.7958984375, + "y": 1907.9736328125, + "action_params": "" + }, + { + "id": 2, + "x": -907.2802734375, + "y": 1849.0224609375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -878.3642578125, + "y": 1841.28125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -878.34765625, + "y": 1852.4248046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -880.515625, + "y": 1856.84228515625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-5.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-5.json new file mode 100644 index 000000000..c4b43d003 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-5.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "餐品订单-5", + "type": "collect", + "author": "", + "version": "1.0", + "description": "餐品订单-5", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753169040026 + }, + "positions": [ + { + "id": 1, + "x": -912.716796875, + "y": 1795.1181640625, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -905.14453125, + "y": 1798.400390625, + "type": "path", + "move_mode": "swim", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -882.166015625, + "y": 1807.447265625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -840.013671875, + "y": 1825.50830078125, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-6.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-6.json new file mode 100644 index 000000000..9490e34dd --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-6.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "餐品订单-6", + "type": "collect", + "author": "小鹰划船不用桨", + "version": "1.0", + "description": "餐品订单-6", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -845.49609375, + "y": 1827.08056640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -844.818359375, + "y": 1824.11279296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -838.5029296875, + "y": 1825.25634765625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json new file mode 100644 index 000000000..95f0a2f92 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json @@ -0,0 +1,105 @@ +{ + "info": { + "name": "餐品订单-晨曦酒庄-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-晨曦酒庄-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751031744808 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -578.794921875, + "y": 1853.41015625, + "action_params": "" + }, + { + "id": 2, + "x": -558.85546875, + "y": 1844.28125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -505.28515625, + "y": 1820.08203125, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -498.1748046875, + "y": 1817.87109375, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -461.40234375, + "y": 1800.5986328125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 6, + "x": -426.3291015625, + "y": 1785.091796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -413.607421875, + "y": 1792.0458984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -405.88671875, + "y": 1792.48388671875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -398.4873046875, + "y": 1789.5810546875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -395.7255859375, + "y": 1788.23876953125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/process.json new file mode 100644 index 000000000..23c0ec180 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/process.json @@ -0,0 +1,40 @@ +[ + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": ["鸽子"], + "npcWhiteList": ["杜拉夫"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-3.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": ["鸽子"], + "npcWhiteList": ["杜拉夫"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-1.json new file mode 100644 index 000000000..10387be4e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-1.json @@ -0,0 +1,71 @@ +{ + "info": { + "name": "鸽子习惯一去不回-1", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753107027152 + }, + "positions": [ + { + "id": 1, + "x": -867.611328125, + "y": 1992.30029296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport", + "locked": false + }, + { + "id": 2, + "x": -867.611328125, + "y": 1992.30029296875, + "action": "set_time", + "move_mode": "dash", + "action_params": "8:00", + "type": "path", + "locked": false + }, + { + "id": 3, + "x": -867.611328125, + "y": 1992.30029296875, + "action": "set_time", + "move_mode": "dash", + "action_params": "9:00", + "type": "path" + }, + { + "id": 4, + "x": -889.37109375, + "y": 1986.9931640625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -909.185546875, + "y": 1973.29345703125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -914.1845703125, + "y": 1958.85693359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-2.json new file mode 100644 index 000000000..35cdb0e03 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-2.json @@ -0,0 +1,81 @@ +{ + "info": { + "name": "鸽子习惯一去不回-2", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753091712667 + }, + "positions": [ + { + "id": 1, + "x": -578.7451171875, + "y": 1853.404296875, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -626.267578125, + "y": 1907.54541015625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -672.021484375, + "y": 1960.14453125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 4, + "x": -672.021484375, + "y": 1960.14453125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 6, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 7, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "target", + "move_mode": "walk", + "action": "pick_around", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-3.json new file mode 100644 index 000000000..3d767fe96 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-3.json @@ -0,0 +1,96 @@ +{ + "info": { + "name": "鸽子习惯一去不回-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753091890935 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -867.5166015625, + "y": 1992.19140625, + "action_params": "" + }, + { + "id": 2, + "x": -824.0859375, + "y": 1980.37890625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -803.9501953125, + "y": 1975.4482421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -779.7744140625, + "y": 1977.1767578125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -748.525390625, + "y": 1972.9638671875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -736.8916015625, + "y": 1981.36572265625, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -700.64453125, + "y": 2003.47509765625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -697.267578125, + "y": 2004.078125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 7, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "target", + "move_mode": "walk", + "action": "pick_around", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/process.json new file mode 100644 index 000000000..6e73d6481 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/process.json @@ -0,0 +1,34 @@ +[ + { + "type": "地图追踪", + "data": "鸽子、鸭子、小孩子-坠星山谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "鸽子、鸭子、小孩子-坠星山谷-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "鸽子、鸭子、小孩子-坠星山谷-1.json", + "note": "执行第三个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json new file mode 100644 index 000000000..a067b9054 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "鸽子、鸭子、小孩子-坠星山谷-1", + "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": -1120.9697265625, + "y": 2190.62646484375, + "action_params": "" + }, + { + "id": 2, + "x": -1053.6591796875, + "y": 2184.705810546875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1017.8310546875, + "y": 2184.93603515625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json new file mode 100644 index 000000000..89073de84 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "到达播撒点位", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "到达任务执行地点", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -1018.0361328125, + "y": 2184.58251953125, + "action_params": "" + }, + { + "id": 2, + "x": -1048.16796875, + "y": 2199.8818359375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1071.3662109375, + "y": 2204.976806640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -1069.3525390625, + "y": 2226.945068359375, + "type": "target", + "move_mode": "swim", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/settings.json b/repo/js/AAA-Auto-Story-Loader/settings.json new file mode 100644 index 000000000..25d611b71 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/settings.json @@ -0,0 +1,21 @@ +[ + { + "name": "process_selector", + "type": "select", + "label": "可执行剧情列表", + "options": [ + "刷新剧情列表" + ], + "default": "刷新剧情列表" + }, + { + "name": "team", + "type": "input-text", + "label": "战斗的队伍名称,不填表示不切换队伍" + }, + { + "name": "elementTeam", + "type": "input-text", + "label": "元素采集的队伍名称" + } +] \ No newline at end of file