JS脚本:fix:兽肉好感前往触发地点重上回原地的bug,removed:移除旧的返回七天神像切换队伍

This commit is contained in:
起个名字好难
2025-04-08 17:52:23 +08:00
parent ef8068aa9f
commit 49f2b197ac
10 changed files with 61 additions and 33 deletions

View File

@@ -0,0 +1 @@
有新脚本替代

View File

@@ -5,12 +5,12 @@
"author": "起个名字好难的喵", "author": "起个名字好难的喵",
"version": "1.0", "version": "1.0",
"description": "", "description": "",
"bgiVersion": "0.43.5" "bgiVersion": "0.44.4"
}, },
"positions": [ "positions": [
{ {
"id": 1, "id": 1,
"action": "", "action": "exit_and_relogin",
"move_mode": "dash", "move_mode": "dash",
"type": "path", "type": "path",
"x": 3614.6240234375, "x": 3614.6240234375,
@@ -41,7 +41,7 @@
"y": -521.4970703125, "y": -521.4970703125,
"type": "path", "type": "path",
"move_mode": "dash", "move_mode": "dash",
"action": "exit_and_relogin", "action": "",
"action_params": "" "action_params": ""
} }
] ]

View File

@@ -5,14 +5,14 @@
"author": "起个名字好难的喵", "author": "起个名字好难的喵",
"version": "1.0", "version": "1.0",
"description": "", "description": "",
"bgiVersion": "0.43.5" "bgiVersion": "0.44.4"
}, },
"positions": [ "positions": [
{ {
"id": 1, "id": 1,
"x": 3614.63, "x": 3614.63,
"y": -521.6, "y": -521.6,
"action": "", "action": "exit_and_relogin",
"move_mode": "dash", "move_mode": "dash",
"action_params": "", "action_params": "",
"type": "path" "type": "path"
@@ -84,7 +84,7 @@
"id": 9, "id": 9,
"x": 3614.63, "x": 3614.63,
"y": -521.6, "y": -521.6,
"action": "exit_and_relogin", "action": "",
"move_mode": "dash", "move_mode": "dash",
"action_params": "", "action_params": "",
"type": "path" "type": "path"

View File

@@ -5,7 +5,7 @@
"author": "起个名字好难的喵", "author": "起个名字好难的喵",
"version": "1.0", "version": "1.0",
"description": "", "description": "",
"bgiVersion": "0.43.5" "bgiVersion": "0.44.4"
}, },
"positions": [ "positions": [
{ {
@@ -31,15 +31,8 @@
"y": -521.2724609375, "y": -521.2724609375,
"type": "path", "type": "path",
"move_mode": "walk", "move_mode": "walk",
"action": "combat_script", "action": "",
"action_params": "wait(10)" "action_params": ""
},
{
"x": 3615.4814453125,
"y": -521.2724609375,
"type": "path",
"move_mode": "walk",
"action": "exit_and_relogin"
} }
] ]
} }

View File

@@ -22,7 +22,7 @@
async function AutoPath(locationName) { async function AutoPath(locationName) {
try { try {
let filePath = `assets/AutoPath/${locationName}.json`; let filePath = `Assets/AutoPath/${locationName}.json`;
await pathingScript.runFile(filePath); await pathingScript.runFile(filePath);
} catch (error) { } catch (error) {
log.error(`执行 ${locationName} 路径时发生错误`); log.error(`执行 ${locationName} 路径时发生错误`);
@@ -31,27 +31,61 @@
await sleep(1000); await sleep(1000);
} }
async function comparePosition() {
const targetPosition = { X: 3615.48, Y: -521.27 };
const maxDistance = 20;
let currentPosition;
try {
// 优先使用小地图坐标
await genshin.returnMainUi();
currentPosition = genshin.getPositionFromMap();
log.info(`当前小地图坐标: X=${currentPosition.X}, Y=${currentPosition.Y}`);
} catch (error) {
// 如果失败,使用大地图坐标
log.warn(`获取小地图坐标失败,使用大地图坐标。错误信息: ${error}`);
await genshin.returnMainUi();
keyPress("M");
await sleep(2000);
currentPosition = genshin.getPositionFromBigMap();
log.info(`当前大地图坐标: X=${currentPosition.X}, Y=${currentPosition.Y}`);
keyPress("Escape");
}
// 计算欧氏距离
const dx = currentPosition.X - targetPosition.X;
const dy = currentPosition.Y - targetPosition.Y;
const distance = Math.sqrt(dx * dx + dy * dy);
log.info(`与目标坐标的距离为: ${distance}`);
// 判断距离是否在允许范围内
if (distance <= maxDistance) {
log.info("距离在突发任务范围内,循环继续");
return true;
} else {
log.warn("距离超出突发任务范围,执行触发线路");
return false;
}
}
// 好感核心函数 // 好感核心函数
async function AutoFriendship(runTimes, statueTimes, GetMeatMode,startTime) { async function AutoFriendship(runTimes, statueTimes, GetMeatMode,startTime) {
log.info(`导航至好感-张牙舞爪的恶党-触发位置(二净甸)`);
await AutoPath(`好感-张牙舞爪的恶党-触发位置(二净甸)`);
log.info(`已抵达预期位置,兽肉好感循环开始...`);
for (let i = 0; i < runTimes; i++) { for (let i = 0; i < runTimes; i++) {
if ((i + 1) % statueTimes === 0) { if ((i + 1) % statueTimes === 0) { // 判断当前循环次数否达到去神像设置值
await genshin.tp(2297.60, -824.45); // 神像坐标 await genshin.tpToStatueOfTheSeven();
await AutoPath(`好感-张牙舞爪的恶党-触发位置(二净甸)`);
} else if (!await comparePosition()){ // 对比触发位置坐标,如果不符合预期坐标则重新执行触发线路
log.info(`导航至好感-张牙舞爪的恶党-触发位置(二净甸)`);
await AutoPath(`好感-张牙舞爪的恶党-触发位置(二净甸)`); await AutoPath(`好感-张牙舞爪的恶党-触发位置(二净甸)`);
log.info(`当前次数:${i + 1}/${runTimes}`);
await AutoPath(`好感-张牙舞爪的恶党-循环${GetMeatMode ? '(二净甸刷肉版)' : '(二净甸)'}`);
} else {
log.info(`当前次数:${i + 1}/${runTimes}`);
await AutoPath(`好感-张牙舞爪的恶党-循环${GetMeatMode ? '(二净甸刷肉版)' : '(二净甸)'}`);
} }
log.info(`当前次数:${i + 1}/${runTimes}`);
await AutoPath(`好感-张牙舞爪的恶党-循环${GetMeatMode ? '(二净甸刷肉版)' : '(二净甸)'}`);
const estimatedCompletion = calculateEstimatedCompletion(startTime, i + 1, runTimes); const estimatedCompletion = calculateEstimatedCompletion(startTime, i + 1, runTimes);
log.info(`已完成次数:${i + 1}/${runTimes}`); log.info(`已完成次数:${i + 1}/${runTimes}`);
logTimeTaken(startTime); logTimeTaken(startTime);
log.info(`预计完成时间:${estimatedCompletion}`); log.info(`预计完成时间:${estimatedCompletion}`);
await sleep(10000);
} }
log.info('兽肉好感已完成'); log.info('兽肉好感已完成');
} }
@@ -92,7 +126,6 @@
// Main // Main
dispatcher.addTimer(new RealtimeTimer("AutoPick", { "forceInteraction": true })); dispatcher.addTimer(new RealtimeTimer("AutoPick", { "forceInteraction": true }));
const startTime = Date.now();
let messages = [ let messages = [
'请确保队伍满员,并为队伍配置相应的战斗策略', '请确保队伍满员,并为队伍配置相应的战斗策略',
`使用的七天神像周期为: ${statueTimes}`, `使用的七天神像周期为: ${statueTimes}`,
@@ -107,8 +140,8 @@
// 切换队伍 // 切换队伍
if (!!settings.partyName) { if (!!settings.partyName) {
try { try {
await genshin.tp(2297.60, -824.45); await genshin.tpToStatueOfTheSeven();
await sleep(3000); await sleep(2000);
log.info("正在尝试切换至" + settings.partyName); log.info("正在尝试切换至" + settings.partyName);
await genshin.switchParty(settings.partyName); await genshin.switchParty(settings.partyName);
} catch { } catch {
@@ -119,6 +152,7 @@
await genshin.returnMainUi(); await genshin.returnMainUi();
} }
const startTime = Date.now();
await AutoFriendship(runTimes,statueTimes,GetMeatMode,startTime); await AutoFriendship(runTimes,statueTimes,GetMeatMode,startTime);
log.info(`兽肉好感运行总时长:${LogTimeTaken(startTime)}`); log.info(`兽肉好感运行总时长:${LogTimeTaken(startTime)}`);

View File

@@ -1,7 +1,7 @@
{ {
"manifest_version": 1, "manifest_version": 1,
"name": "兽肉好感:自动好感度&刷两只鳄鱼兽肉&卡时间", "name": "兽肉好感:自动好感度&刷两只鳄鱼兽肉&卡时间",
"version": "1.2.0", "version": "1.3.0",
"description": "通过突发事件:张牙舞爪的恶党刷兽肉并顺带获取好感度超过10次后不再获取请使用满员好感度队伍并为全体队伍角色配置相应的战斗策略", "description": "通过突发事件:张牙舞爪的恶党刷兽肉并顺带获取好感度超过10次后不再获取请使用满员好感度队伍并为全体队伍角色配置相应的战斗策略",
"authors": [ "authors": [
{ {