archive js
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 876 B After Width: | Height: | Size: 876 B |
@@ -1,56 +1,56 @@
|
||||
(async function () {
|
||||
dispatcher.addTimer(new RealtimeTimer("AutoPick"));
|
||||
|
||||
async function AutoPath(locationName) {
|
||||
let filePath = `assets/Benchmark/${locationName}.json`;
|
||||
await pathingScript.runFile(filePath);
|
||||
await sleep(1000);
|
||||
}
|
||||
|
||||
function logScore(startTime, testName) {
|
||||
const endTime = Date.now();
|
||||
const timeTaken = (endTime - startTime) / 1000;
|
||||
const presetTimes = {
|
||||
'传送速度测试': 4500,
|
||||
'飞行速度测试': 3000,
|
||||
'游泳速度测试': 6000,
|
||||
'攀爬速度测试': 7000,
|
||||
'寻路速度测试': 12000,
|
||||
'抗打断测试': 9000
|
||||
};
|
||||
const score = presetTimes[testName] / timeTaken;
|
||||
log.info(`完成 ${testName} ,得分 ${score.toFixed(2)}`);
|
||||
return score;
|
||||
}
|
||||
|
||||
async function runTest(testName, weight) {
|
||||
const startTime = Date.now();
|
||||
log.info('进行 {name}', testName);
|
||||
await AutoPath(testName);
|
||||
const score = await logScore(startTime, testName);
|
||||
scores.push({ name: testName, score, weight });
|
||||
}
|
||||
|
||||
const weights = {
|
||||
'传送速度测试': 0.1,
|
||||
'飞行速度测试': 0.1,
|
||||
'游泳速度测试': 0.1,
|
||||
'攀爬速度测试': 0.1,
|
||||
'抗打断测试': 0.1,
|
||||
'寻路速度测试': 0.5
|
||||
};
|
||||
|
||||
const scores = [];
|
||||
|
||||
await runTest('传送速度测试', weights['传送速度测试']);
|
||||
await runTest('飞行速度测试', weights['飞行速度测试']);
|
||||
await runTest('游泳速度测试', weights['游泳速度测试']);
|
||||
await runTest('攀爬速度测试', weights['攀爬速度测试']);
|
||||
await runTest('寻路速度测试', weights['寻路速度测试']);
|
||||
await runTest('抗打断测试', weights['抗打断测试']);
|
||||
|
||||
// 计算加权总得分
|
||||
const totalWeightedScore = scores.reduce((sum, item) => sum + item.score * item.weight, 0);
|
||||
log.info(`加权总得分:${totalWeightedScore.toFixed(2)}`);
|
||||
keyPress("m");
|
||||
(async function () {
|
||||
dispatcher.addTimer(new RealtimeTimer("AutoPick"));
|
||||
|
||||
async function AutoPath(locationName) {
|
||||
let filePath = `assets/Benchmark/${locationName}.json`;
|
||||
await pathingScript.runFile(filePath);
|
||||
await sleep(1000);
|
||||
}
|
||||
|
||||
function logScore(startTime, testName) {
|
||||
const endTime = Date.now();
|
||||
const timeTaken = (endTime - startTime) / 1000;
|
||||
const presetTimes = {
|
||||
'传送速度测试': 4500,
|
||||
'飞行速度测试': 3000,
|
||||
'游泳速度测试': 6000,
|
||||
'攀爬速度测试': 7000,
|
||||
'寻路速度测试': 12000,
|
||||
'抗打断测试': 9000
|
||||
};
|
||||
const score = presetTimes[testName] / timeTaken;
|
||||
log.info(`完成 ${testName} ,得分 ${score.toFixed(2)}`);
|
||||
return score;
|
||||
}
|
||||
|
||||
async function runTest(testName, weight) {
|
||||
const startTime = Date.now();
|
||||
log.info('进行 {name}', testName);
|
||||
await AutoPath(testName);
|
||||
const score = await logScore(startTime, testName);
|
||||
scores.push({ name: testName, score, weight });
|
||||
}
|
||||
|
||||
const weights = {
|
||||
'传送速度测试': 0.1,
|
||||
'飞行速度测试': 0.1,
|
||||
'游泳速度测试': 0.1,
|
||||
'攀爬速度测试': 0.1,
|
||||
'抗打断测试': 0.1,
|
||||
'寻路速度测试': 0.5
|
||||
};
|
||||
|
||||
const scores = [];
|
||||
|
||||
await runTest('传送速度测试', weights['传送速度测试']);
|
||||
await runTest('飞行速度测试', weights['飞行速度测试']);
|
||||
await runTest('游泳速度测试', weights['游泳速度测试']);
|
||||
await runTest('攀爬速度测试', weights['攀爬速度测试']);
|
||||
await runTest('寻路速度测试', weights['寻路速度测试']);
|
||||
await runTest('抗打断测试', weights['抗打断测试']);
|
||||
|
||||
// 计算加权总得分
|
||||
const totalWeightedScore = scores.reduce((sum, item) => sum + item.score * item.weight, 0);
|
||||
log.info(`加权总得分:${totalWeightedScore.toFixed(2)}`);
|
||||
keyPress("m");
|
||||
})();
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "路径追踪配队跑分",
|
||||
"version": "1.0",
|
||||
"description": "对配队的路径追踪性能进行量化呈现",
|
||||
"authors": [
|
||||
{
|
||||
"name": "HZYgrandma",
|
||||
"links": "https://github.com/HZYgrandma"
|
||||
}
|
||||
],
|
||||
"main": "main.js"
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "路径追踪配队跑分",
|
||||
"version": "1.0",
|
||||
"description": "对配队的路径追踪性能进行量化呈现",
|
||||
"authors": [
|
||||
{
|
||||
"name": "HZYgrandma",
|
||||
"links": "https://github.com/HZYgrandma"
|
||||
}
|
||||
],
|
||||
"main": "main.js"
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
1、使用前将JS脚本添加到调度器,右键修改JS脚本自定义配置,选择宅邸的建筑类型
|
||||
|
||||
根据请根据宅邸类型选择自定义配置
|
||||
罗浮洞、翠黛峰 默认使用“默认宅邸类型.png”左2的宅邸,即璃月绿顶建筑;
|
||||
清琼岛 默认使用“默认宅邸类型.png”左1的宅邸,即蒙德红顶建筑;
|
||||
绘绮庭 默认使用“默认宅邸类型.png”左3的宅邸,即稻妻蓝顶建筑;
|
||||
妙香林 默认使用“默认宅邸类型.png”左4的宅邸,即须弥绿色建筑;
|
||||
旋流屿 默认使用“默认宅邸类型.png”左5的宅邸,即枫丹白色建筑;
|
||||
|
||||
2、确保4个快捷道具都装备上了
|
||||
3、请在平坦区域运行此脚本
|
||||
|
||||
V1.1修复了自定义选项与实际不匹配的BUG
|
||||
V1.2完善了自定义选项,使之更符合使用习惯
|
||||
1、使用前将JS脚本添加到调度器,右键修改JS脚本自定义配置,选择宅邸的建筑类型
|
||||
|
||||
根据请根据宅邸类型选择自定义配置
|
||||
罗浮洞、翠黛峰 默认使用“默认宅邸类型.png”左2的宅邸,即璃月绿顶建筑;
|
||||
清琼岛 默认使用“默认宅邸类型.png”左1的宅邸,即蒙德红顶建筑;
|
||||
绘绮庭 默认使用“默认宅邸类型.png”左3的宅邸,即稻妻蓝顶建筑;
|
||||
妙香林 默认使用“默认宅邸类型.png”左4的宅邸,即须弥绿色建筑;
|
||||
旋流屿 默认使用“默认宅邸类型.png”左5的宅邸,即枫丹白色建筑;
|
||||
|
||||
2、确保4个快捷道具都装备上了
|
||||
3、请在平坦区域运行此脚本
|
||||
|
||||
V1.1修复了自定义选项与实际不匹配的BUG
|
||||
V1.2完善了自定义选项,使之更符合使用习惯
|
||||
@@ -1,75 +1,75 @@
|
||||
(async function () {
|
||||
setGameMetrics(1920, 1080, 2);
|
||||
// 来自于界面配置
|
||||
let sereniteaPotType = settings.sereniteaPot;
|
||||
log.info('快捷道具栏需装满4个,确保尘歌壶在第5位');
|
||||
setGameMetrics(1920, 1080, 2);
|
||||
await sleep(1000);
|
||||
keyPress("B"); //打开背包
|
||||
await sleep(1000);
|
||||
click(1058, 48); //小道具
|
||||
await sleep(500);
|
||||
click(765, 190); //背包第5位(诚哥壶)
|
||||
await sleep(500);
|
||||
click(1700, 1018); //放置
|
||||
await sleep(1000);
|
||||
keyPress("F"); //进入诚哥壶
|
||||
await sleep(10000);
|
||||
|
||||
if (sereniteaPotType == "璃月绿顶建筑"){
|
||||
log.info("璃月绿顶建筑");
|
||||
keyDown("D");
|
||||
await sleep(500);
|
||||
keyUp("D");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "蒙德红顶建筑"){
|
||||
log.info("蒙德红顶建筑");
|
||||
keyDown("A");
|
||||
await sleep(1200);
|
||||
keyUp("A");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "稻妻蓝顶建筑"){
|
||||
log.info("稻妻蓝顶建筑");
|
||||
keyDown("A");
|
||||
await sleep(1700);
|
||||
keyUp("A");
|
||||
await sleep(500);
|
||||
keyDown("S");
|
||||
await sleep(1700);
|
||||
keyUp("S");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "须弥绿色建筑"){
|
||||
log.info("须弥绿色建筑");
|
||||
keyDown("D");
|
||||
await sleep(1300);
|
||||
keyUp("D");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "枫丹白色建筑"){
|
||||
log.info("枫丹白色建筑");
|
||||
keyDown("S");
|
||||
await sleep(1300);
|
||||
keyUp("S");
|
||||
await sleep(500);
|
||||
keyDown("A");
|
||||
await sleep(500);
|
||||
keyUp("A");
|
||||
await sleep(500);
|
||||
}else{
|
||||
}
|
||||
keyPress("F"); //阿圆对话
|
||||
await sleep(2000);
|
||||
click(1081, 955); //跳过对话
|
||||
await sleep(2000);
|
||||
click(1383, 430); //信任等阶
|
||||
await sleep(2000);
|
||||
click(1081, 955); //宝钱
|
||||
await sleep(2000);
|
||||
click(1812, 716); //好感度
|
||||
await sleep(2000);
|
||||
click(1863, 48);; //返回
|
||||
await sleep(5000);
|
||||
click(1356, 804); //再见1
|
||||
await sleep(2000);
|
||||
click(1356, 804); //再见2
|
||||
await sleep(1000);
|
||||
(async function () {
|
||||
setGameMetrics(1920, 1080, 2);
|
||||
// 来自于界面配置
|
||||
let sereniteaPotType = settings.sereniteaPot;
|
||||
log.info('快捷道具栏需装满4个,确保尘歌壶在第5位');
|
||||
setGameMetrics(1920, 1080, 2);
|
||||
await sleep(1000);
|
||||
keyPress("B"); //打开背包
|
||||
await sleep(1000);
|
||||
click(1058, 48); //小道具
|
||||
await sleep(500);
|
||||
click(765, 190); //背包第5位(诚哥壶)
|
||||
await sleep(500);
|
||||
click(1700, 1018); //放置
|
||||
await sleep(1000);
|
||||
keyPress("F"); //进入诚哥壶
|
||||
await sleep(10000);
|
||||
|
||||
if (sereniteaPotType == "璃月绿顶建筑"){
|
||||
log.info("璃月绿顶建筑");
|
||||
keyDown("D");
|
||||
await sleep(500);
|
||||
keyUp("D");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "蒙德红顶建筑"){
|
||||
log.info("蒙德红顶建筑");
|
||||
keyDown("A");
|
||||
await sleep(1200);
|
||||
keyUp("A");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "稻妻蓝顶建筑"){
|
||||
log.info("稻妻蓝顶建筑");
|
||||
keyDown("A");
|
||||
await sleep(1700);
|
||||
keyUp("A");
|
||||
await sleep(500);
|
||||
keyDown("S");
|
||||
await sleep(1700);
|
||||
keyUp("S");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "须弥绿色建筑"){
|
||||
log.info("须弥绿色建筑");
|
||||
keyDown("D");
|
||||
await sleep(1300);
|
||||
keyUp("D");
|
||||
await sleep(500);
|
||||
}else if(sereniteaPotType == "枫丹白色建筑"){
|
||||
log.info("枫丹白色建筑");
|
||||
keyDown("S");
|
||||
await sleep(1300);
|
||||
keyUp("S");
|
||||
await sleep(500);
|
||||
keyDown("A");
|
||||
await sleep(500);
|
||||
keyUp("A");
|
||||
await sleep(500);
|
||||
}else{
|
||||
}
|
||||
keyPress("F"); //阿圆对话
|
||||
await sleep(2000);
|
||||
click(1081, 955); //跳过对话
|
||||
await sleep(2000);
|
||||
click(1383, 430); //信任等阶
|
||||
await sleep(2000);
|
||||
click(1081, 955); //宝钱
|
||||
await sleep(2000);
|
||||
click(1812, 716); //好感度
|
||||
await sleep(2000);
|
||||
click(1863, 48);; //返回
|
||||
await sleep(5000);
|
||||
click(1356, 804); //再见1
|
||||
await sleep(2000);
|
||||
click(1356, 804); //再见2
|
||||
await sleep(1000);
|
||||
})();
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "尘歌壶",
|
||||
"version": "1.2",
|
||||
"description": "自动领诚哥壶奖励",
|
||||
"authors": [
|
||||
{
|
||||
"name": "愚溪",
|
||||
"links": "https://github.com/Kupder"
|
||||
}
|
||||
],
|
||||
"settings_ui": "settings.json",
|
||||
"main": "main.js"
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "尘歌壶",
|
||||
"version": "1.2",
|
||||
"description": "自动领诚哥壶奖励",
|
||||
"authors": [
|
||||
{
|
||||
"name": "愚溪",
|
||||
"links": "https://github.com/Kupder"
|
||||
}
|
||||
],
|
||||
"settings_ui": "settings.json",
|
||||
"main": "main.js"
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
[
|
||||
{
|
||||
"name": "sereniteaPot",
|
||||
"type": "select",
|
||||
"label": "宅邸类型",
|
||||
"options": [
|
||||
"蒙德红顶建筑",
|
||||
"璃月绿顶建筑",
|
||||
"稻妻蓝顶建筑",
|
||||
"须弥绿色建筑",
|
||||
"枫丹白色建筑"
|
||||
]
|
||||
}
|
||||
[
|
||||
{
|
||||
"name": "sereniteaPot",
|
||||
"type": "select",
|
||||
"label": "宅邸类型",
|
||||
"options": [
|
||||
"蒙德红顶建筑",
|
||||
"璃月绿顶建筑",
|
||||
"稻妻蓝顶建筑",
|
||||
"须弥绿色建筑",
|
||||
"枫丹白色建筑"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |