// ==UserScript== // @name blhxjysx // @namespace https://github.com/Less01 // @version 0.0.1 // @description 碧蓝幻想救援筛选脚本的注入版 // @author Less01 // @match *://game.granbluefantasy.jp/ // @match *://gbf.game.mbga.jp/* // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 设定部分 let opacity = 0.25; let playerCount = 5; let enemyHp = 50; // console.log(`Alpha: ${opacity}, 最大人数: ${playerCount}, 最低血量: ${enemyHp}`); // 监听页面内容变化,当救援列表改变时修改透明度 const targetNode = document.querySelector("#wrapper>.contents"); const config = { childList: true, subtree: true }; const observer = new MutationObserver( (mutationsList) => { for (let mutation of mutationsList) { // 改为mutation.target.id == "prt-search-list"可以只在救援检索启用 if (mutation.target.className == "prt-raid-list") { let raid_list = mutation.target.querySelectorAll(".btn-multi-raid"); // console.log(`raid list length: ${raid_list.length}\n`); for (let raid of raid_list) { let count = raid.querySelector(".prt-flees-in").innerText.replace(/\/\d+/, ""); let hp = raid.querySelector(".prt-raid-gauge-inner").getAttribute("style").slice(7, -2); // console.log(`count: ${count}, hp: ${hp}\n`); if (count >= playerCount || hp <= enemyHp) { raid.style.opacity = opacity; } } } } } ); // 打开网页时、游戏内跳转时启用 function run() { if (/^#quest\/assist(\/multi\/\d+|\/event)?$/.test(location.hash)) { observer.observe(targetNode, config); // console.log("observe\n"); } else { observer.disconnect(); // console.log("disconnect\n"); } } var domain = document.domain; if (domain == "game.granbluefantasy.jp" || domain == "gbf.game.mbga.jp") { // console.log("gbf url match\n"); run(); window.addEventListener('hashchange', run); } })();