135 lines
4.7 KiB
JavaScript
135 lines
4.7 KiB
JavaScript
(async function () {
|
||
|
||
const defaultExitDelay = 12;
|
||
const defaultLoadingDelay = 15;
|
||
|
||
function validateAndSetDefaults(exitDelay, loadingDelay) {
|
||
if (isNaN(exitDelay) || exitDelay <= 0) {
|
||
log.warn("你没有设置退出延迟,将使用默认值:12秒");
|
||
exitDelay = defaultExitDelay;
|
||
}
|
||
if (isNaN(loadingDelay) || loadingDelay <= 0) {
|
||
log.warn("你没有设置加载延迟,将使用默认值:15秒");
|
||
loadingDelay = defaultLoadingDelay;
|
||
}
|
||
return { exitDelay, loadingDelay };
|
||
}
|
||
|
||
async function ReopenTheGate() {
|
||
await sleep(1000);
|
||
keyPress("ESCAPE");
|
||
await sleep(1000);
|
||
click(50, 1030);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(validatedExitDelay * 1000);
|
||
click(1000, 550);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
await sleep(validatedLoadingDelay * 1000);
|
||
click(1000, 750);
|
||
await sleep(1000);
|
||
}
|
||
|
||
async function AutoPath(locationName) {
|
||
try {
|
||
let filePath = `assets/AutoPath/${locationName}.json`;
|
||
await pathingScript.runFile(filePath);
|
||
} catch (error) {
|
||
log.error(`执行 ${locationName} 路径时发生错误`);
|
||
log.error(error.message);
|
||
}
|
||
await sleep(2000);
|
||
}
|
||
|
||
async function AutoFriendship(times) {
|
||
|
||
log.info(`导航至好感-张牙舞爪的恶党-触发位置`);
|
||
await AutoPath('好感-张牙舞爪的恶党-触发位置');
|
||
|
||
log.info(`自动好感开始...`);
|
||
|
||
await ReopenTheGate();
|
||
for (let i = 0; i < times; i++) {
|
||
log.info(`自动好感当前次数:${i + 1}/${times}`);
|
||
await AutoPath('好感-张牙舞爪的恶党-循环');
|
||
await ReopenTheGate();
|
||
logTimeTaken(startTime);
|
||
}
|
||
log.info('自动好感已完成');
|
||
}
|
||
|
||
function logTimeTaken(startTime) {
|
||
const currentTime = Date.now();
|
||
const totalTimeInSeconds = (currentTime - startTime) / 1000;
|
||
const minutes = Math.floor(totalTimeInSeconds / 60);
|
||
const seconds = totalTimeInSeconds % 60;
|
||
const formattedTime = `${minutes}分${seconds.toFixed(0).padStart(2, '0')}秒`;
|
||
log.info(`当前运行总时长:${formattedTime}`);
|
||
}
|
||
|
||
// 启用自动拾取的实时任务
|
||
const startTime = Date.now();
|
||
dispatcher.addTimer(new RealtimeTimer("AutoPick"));
|
||
|
||
setGameMetrics(1920, 1080, 1); // 设置游戏窗口大小和DPI
|
||
let exitdelay = Number(settings.exitdelay);
|
||
let loadingdelay = Number(settings.loadingdelay);
|
||
let UL = settings.UL? settings.UL : false;
|
||
let inputValue = settings.inputValue? settings.inputValue : 9999;
|
||
let times = UL ? (isNaN(inputValue) ? 1667 : Math.ceil(inputValue / 6)) : 10;
|
||
log.info(`计算后的运行次数为: ${times}`);
|
||
|
||
const { exitDelay: validatedExitDelay, loadingDelay: validatedLoadingDelay } = validateAndSetDefaults(exitdelay, loadingdelay);
|
||
const messages = [
|
||
'请确保队伍满员,并为队伍配置相应的战斗策略',
|
||
];
|
||
for (let message of messages) {
|
||
log.info(message);
|
||
await sleep(1000);
|
||
}
|
||
log.info('自动好感开始...');
|
||
log.info(`退出延迟: ${validatedExitDelay}秒, 加载延迟: ${validatedLoadingDelay}秒`);
|
||
|
||
//默认10次自动好感
|
||
await AutoFriendship(times);
|
||
|
||
// 计算并输出总时长
|
||
const endTime = Date.now();
|
||
const totalTimeInSeconds = (endTime - startTime) / 1000;
|
||
const minutes = Math.floor(totalTimeInSeconds / 60);
|
||
const seconds = totalTimeInSeconds % 60;
|
||
const formattedTime = `${minutes}分${seconds.toFixed(0).padStart(2, '0')}秒`;
|
||
log.info(`自动好感运行总时长:${formattedTime}`);
|
||
})();
|