diff --git a/repo/js/一条龙不含自动副本+尘歌壶版/json/冒险家协会/冒险家协会_枫丹.json b/repo/js/一条龙不含自动副本+尘歌壶版/json/冒险家协会/冒险家协会_枫丹.json new file mode 100644 index 00000000..8b5e4be3 --- /dev/null +++ b/repo/js/一条龙不含自动副本+尘歌壶版/json/冒险家协会/冒险家协会_枫丹.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "冒险家协会_枫丹", + "type": "collect", + "author": "yemaxul", + "version": "2.0", + "description": "移动到枫丹冒险家协会", + "bgiVersion": "0.35.0" + }, + "positions": [ + { + "id": 1, + "x": 4495.5, + "y": 3638.5, + "type": "target", + "move_mode": "walk", + "action": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/一条龙不含自动副本+尘歌壶版/json/合成台/合成台_枫丹.json b/repo/js/一条龙不含自动副本+尘歌壶版/json/合成台/合成台_枫丹.json new file mode 100644 index 00000000..e293fdd6 --- /dev/null +++ b/repo/js/一条龙不含自动副本+尘歌壶版/json/合成台/合成台_枫丹.json @@ -0,0 +1,28 @@ +{ + "info": { + "name": "合成台_枫丹", + "type": "collect", + "author": "huiyadanli", + "version": "1.0", + "description": "枫丹合成台", + "bgiVersion": "0.35.0" + }, + "positions": [ + { + "id": 1, + "x": 4508.97509765625, + "y": 3630.557373046875, + "type": "teleport", + "move_mode": "walk", + "action": "" + }, + { + "id": 2, + "x": 4480.8, + "y": 3628.1, + "type": "target", + "move_mode": "walk", + "action": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/一条龙不含自动副本+尘歌壶版/main.js b/repo/js/一条龙不含自动副本+尘歌壶版/main.js new file mode 100644 index 00000000..c2b9408d --- /dev/null +++ b/repo/js/一条龙不含自动副本+尘歌壶版/main.js @@ -0,0 +1,315 @@ +(async function () { + // 定义文件路径数组,直接包含完整的文件路径 + const pathingA = [ + "json/合成台/合成台_枫丹.json" // 枫丹合成台路径文件 + ]; + + const pathingB = [ + "json/冒险家协会/冒险家协会_枫丹.json" // 枫丹冒险家协会路径文件 + ]; + + // 定义一个运行单个文件的方法 + async function runFile(filePath) { + try { + // 日志:打印当前正在执行的文件路径 + log.info(`Executing file: ${filePath}`); + // 调用路径脚本的 `runFile` 方法,执行路径文件 + await pathingScript.runFile(filePath); + } catch (error) { + // 如果执行文件时发生错误,打印错误日志 + log.error(`Error executing file: ${filePath} - ${error}`); + } + } + + // 定义批量执行文件的函数 + async function batch(files) { + for (let filePath of files) { + await runFile(filePath); // 执行每个文件 + } + } + + // 主函数,控制路径A的执行流程 + async function mainA() { + // 设置游戏运行的分辨率和缩放 + setGameMetrics(1920, 1080, 1); + + // 日志:开始执行路径A的任务 + log.info("开始执行合成台任务"); + // 批量执行路径A中的文件 + await batch(pathingA); + + // 日志:完成路径A的任务 + log.info("合成台任务执行完成"); + } + + // 主函数,控制路径B的执行流程 + async function mainB() { + // 设置游戏运行的分辨率和缩放 + setGameMetrics(1920, 1080, 1); + + // 日志:开始执行路径B的任务 + log.info("开始执行冒险家协会任务"); + // 批量执行路径B中的文件 + await batch(pathingB); + + // 日志:完成路径B的任务 + log.info("冒险家协会任务执行完成"); + } + + //0、设置不可加入 + log.info("请确保执行脚本时处于主界面"); + + keyPress("VK_F2") + await sleep(1000); + click(330,1010) //点击世界权限 + await sleep(1000); + let domainName = settings.domainName; + + switch (domainName) { + case "直接加入": + click(330, 910); + log.info("权限设置为【直接加入】"); + break; + case "不允许加入": + click(330, 850); // 不允许 + log.info("权限设置为【不允许加入】"); + break; + case "确认后可加入": + click(330, 960); // 确认后 + log.info("权限设置为【确认后可加入】"); + break; + default: + click(330, 850); // 不允许 + log.info("锁门"); + break; +} + + // 1、前往_枫丹_合成台 + await mainA(); // 执行合成台任务 + + // 2、合成浓缩树脂 + setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI + keyPress("1"); + await sleep(5000); + keyPress("F"); + await sleep(3000); + click(960, 540); + await sleep(1000); + click(960, 540); + await sleep(1000); + click(1750, 1010); + await sleep(5000); + keyPress("Escape"); + await sleep(1000); + keyPress("Escape"); + log.info("已完成合成浓缩树脂"); + + // 3、领取历练点 + setGameMetrics(3840, 2160, 2); + await sleep(1600); + keyPress("F1"); + await sleep(1600); + click(580, 680); + await sleep(1000); + click(3110, 1508); + await sleep(1000); + click(3110, 1508); + await sleep(1500); + keyPress("Escape"); + log.info("已领取历练点"); + + // 4、前往_枫丹_冒险家协会 + await mainB(); // 执行冒险家协会任务 + + // 5、领取每日委托奖励 + setGameMetrics(1920, 1080, 2); + keyPress("1"); + await sleep(5000); + keyPress("F"); + log.info("按下F键"); + await sleep(1800); + log.info("等待1秒"); + click(960, 540); + log.info("点击坐标(960, 540)(屏幕中心)"); + await sleep(2000); + log.info("等待1秒"); + click(1380, 425); + log.info("点击坐标(1380, 425)(领取「每日委托」奖励)"); + await sleep(2000); + log.info("等待1秒"); + click(960, 540); + log.info("点击坐标(960, 540)(屏幕中心)"); + await sleep(3000); + log.info("等待3秒"); + click(960, 960); + log.info("点击坐标(960, 960)(关闭奖励弹出页面)"); + log.info("结束"); + + // 6、等待5秒 + setGameMetrics(1920, 1080, 2); + await sleep(6000); // 转换时间单位,从20ms到秒 + log.info("等待了5秒"); + + // 7、重新探索派遣 + setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI + keyPress("F"); + await sleep(3500); + click(960, 540); + await sleep(1000); + click(1400, 580); + await sleep(1000); + click(160, 1010); + await sleep(1000); + click(1160, 1020); + await sleep(1000); + keyPress("Escape"); + log.info("重新探索派遣完成"); + + // 8、领取纪行奖励 + setGameMetrics(3840, 2160, 2); + await sleep(1600); + keyPress("F4"); + await sleep(1500); + click(1920, 100); + await sleep(1000); + click(3480, 1948); + await sleep(1000); + click(1726, 192); + await sleep(1000); + click(3480, 1948); + await sleep(1000); + keyPress("Escape"); + await sleep(1000); + keyPress("Escape"); + log.info("已领取纪行奖励"); + + // 9、领取邮件 + setGameMetrics(3840, 2160, 2); + await sleep(1600); + keyPress("Escape"); + await sleep(1500); + click(94, 1212); + await sleep(1500); + click(500, 2024); + await sleep(1000); + keyPress("Escape"); + await sleep(1000); + keyPress("Escape"); + await sleep(1000); + keyPress("Escape"); + log.info("已领取邮件"); + + // 10、向后行走1.5秒 + setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI + keyDown("S"); + await sleep(1500); + keyUp("S"); + log.info("已进入向后走1.5秒"); + + //11、进入尘歌壶 + keyPress("B"); + await sleep(3000); + click(1060, 50); + await sleep(3000); + click(770, 180); + await sleep(3000); + click(1690, 1010); + await sleep(3000); + keyPress("F"); + await sleep(10000); + log.info("已进入尘歌壶"); + + //等待3秒 + await sleep(7000); + log.info("等待3秒防止加载卡岩"); + + //12、尘歌壶找阿圆 + (async function () { + await sleep(3000); + // 绘绮庭路径 + const pathingA = async function() { + keyDown("S"); // 按下 S 键 + await sleep(500); // 等待 500ms + keyUp("S"); // 松开 S 键 + await sleep(500); // 等待 500ms + keyDown("S"); // 按下 S 键 + keyDown("A"); // 按下 A 键 + await sleep(2100); // 等待 2100ms + keyUp("S"); // 松开 S 键 + keyUp("A"); // 松开 A 键 + log.info("绮庭路径执行完毕"); // 输出日志 + }; + + // 妙香林路径 + const pathingB = async function() { + keyDown("D"); // 按下 D 键 + await sleep(1500); // 等待 1500ms + keyUp("D"); // 松开 D 键 + log.info("妙香林路径执行完毕"); // 输出日志 + }; + + // 黛翠峰&罗浮洞路径 + const pathingC = async function() { + keyDown("D"); // 按下 D 键 + await sleep(500); // 等待 500ms + keyUp("D"); // 松开 D 键 + log.info("黛翠峰&罗浮洞路径执行完毕"); // 输出日志 + }; + + // 清琼岛路径 + const pathingD = async function() { + keyDown("A"); // 按下 A 键 + await sleep(1500); // 等待 1500ms + keyUp("A"); // 松开 A 键 + log.info("清琼岛路径执行完毕"); // 输出日志 + }; + + // 读取用户设置 + let path = settings.path !== undefined ? settings.path : ''; // 使用设置的路径 + + log.debug(`path: ${path}`); + + // 主逻辑 + setGameMetrics(1920, 1080, 1); + + // 根据选择的路径执行相应操作,默认执行路径A(绘绮庭路径) + if (path === '绘绮庭') { + log.info('开始执行绮庭路径'); + await pathingA(); // 执行绘绮庭路径 + } else if (path === '妙香林') { + log.info('开始执行妙香林路径'); + await pathingB(); // 执行妙香林路径 + } else if (path === '黛翠峰&罗浮洞') { + log.info('开始执行黛翠峰&罗浮洞路径'); + await pathingC(); // 执行黛翠峰or罗浮洞路径 + } else if (path === '清琼岛') { + log.info('开始执行清琼岛路径'); + await pathingD(); // 执行清琼岛路径 + } else if (path === '自动') { + log.info('自动选择路径,执行路径A(绘绮庭)'); + await pathingA(); // 自动执行绮庭路径 + } else { + log.info('未选择有效路径,执行默认路径A(绘绮庭)'); + await pathingA(); // 默认执行路径A(绘绮庭) + } + +})(); + + //领取洞天宝钱和好感度 + await sleep(10000); + keyPress("F"); + await sleep(2000); + click(1370, 420); + await sleep(2000); + click(1370, 420); + await sleep(2000); + click(1800, 710); + await sleep(2000); + click(1080, 960); + await sleep(2000); + click(1865, 44); + await sleep(2800); + click(1480, 799); + log.info("已领取洞天宝钱和好感"); + +})(); diff --git a/repo/js/一条龙不含自动副本+尘歌壶版/manifest.json b/repo/js/一条龙不含自动副本+尘歌壶版/manifest.json new file mode 100644 index 00000000..c4a18f3b --- /dev/null +++ b/repo/js/一条龙不含自动副本+尘歌壶版/manifest.json @@ -0,0 +1,15 @@ +{ + "manifest_version": 1, + "name": "一条龙不含自动副本+尘歌壶版", + "version": "1.0", + "description": "一条龙不含自动副本+尘歌壶版", + "authors": [ + { + "name": "凉城" + } + ], +//选择尘歌壶 + "settings_ui": "settings.json", + "main": "main.js" +} +//感谢@Yang-z@HZYgrandma @风埠@花火@鹤望兰 本人只是基于大佬们提交的js脚本进行优化整合实现奖励领取一条龙 \ No newline at end of file diff --git a/repo/js/一条龙不含自动副本+尘歌壶版/settings.json b/repo/js/一条龙不含自动副本+尘歌壶版/settings.json new file mode 100644 index 00000000..ef66ba6d --- /dev/null +++ b/repo/js/一条龙不含自动副本+尘歌壶版/settings.json @@ -0,0 +1,23 @@ +[ + { + "name": "path", + "type": "select", + "label": "尘歌壶名称(默认:绘绮庭)", + "options": [ + "绘绮庭 ", + "妙香林", + "黛翠峰&罗浮洞", + "清琼岛", + ] + }, + { + "name": "domainName", + "type": "select", + "label": "设置权限", + "options": [ + "直接加入", + "确认后可加入", + "不允许加入" + ] + } +] diff --git a/repo/js/一条龙不含自动副本+尘歌壶版/用前须知.txt b/repo/js/一条龙不含自动副本+尘歌壶版/用前须知.txt new file mode 100644 index 00000000..a875e060 --- /dev/null +++ b/repo/js/一条龙不含自动副本+尘歌壶版/用前须知.txt @@ -0,0 +1,2 @@ +可以自定义原壶找壶灵 绘绮庭本人亲测,其他搬运仓库大佬,运行前右键配置尘歌壶,默认绘绮庭 +*注意带了钟离等自动开盾自动放回血技能角色的不要放到第一位 为了防止操作失误,设置有等待时间5秒左右可自行更改