星之子 发表于 2025-6-9 02:47:22

【油猴脚本】一键暴打世界BOSS!

本帖最后由 星之子 于 2025-6-16 20:39 编辑

动机
今年的周年活动是挑战世界BOSS,打赢了可以开勋章系统的格子简直爽欸!毕竟抽奖活动即使抽到绝版,顶天儿无非也就是1.0收益还要占格子,但开格子可是实打实的全属性提升。
碰巧之前的追随神器 一键三连评分按钮也是出自我,于是紧急调教DeepSeek参考之前的写了下面这个新脚本。

功能
脚本会识别形如“/thread-帖子UID-*.html”、“/forum.php?mod=viewthread&tid=帖子UID”的页面,在右下角添加一个显眼的、正在不断浮动的【只看BOSS】红色按钮,点击即可跳转到BOSS的“只看该作者”页面。
在该页面下按钮内容会变成【攻击BOSS!】,点击一下即可打出5 血液 + 1 净化 + 1 堕落的伤害;如果评分不足则能打多少打多少,打光子弹!


代码
@Name@Match@Icon
// ==UserScript==
// @name         狄文卡德我们来了喔!
// @version      2.1
// @description世界BOSS活动专用:只看楼主+最大化评分
// @author       Étoiles
// @match      https://www.gamemale.com/thread-*-*.html
// @match      https://www.gamemale.com/forum.php?mod=viewthread&tid=*
// @grant      GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    // 配置参数
    const config = {
      authorId: '736182', // 要查看的作者ID(BOSS活动发起者)
      targetScores: , // 目标评分 [金币, 血液, 追随]
      reason: '全力攻击BOSS!(╯°□°)╯︵ ┻━┻' // 评分理由
    };

    // 获取当前帖子的TID
    function getThreadId() {
      const threadMatch1 = window.location.href.match(/thread-(\d+)/);
      if (threadMatch1 && threadMatch1) return threadMatch1;

      const threadMatch2 = window.location.href.match(/[?&]tid=(\d+)/);
      if (threadMatch2 && threadMatch2) return threadMatch2;

      return null;
    }

    // 检查是否在"只看楼主"页面
    function isAuthorViewPage() {
      return window.location.href.includes('&authorid=' + config.authorId);
    }

    // 创建活动专用按钮
    function createBossAttackButton() {
      const tid = getThreadId();
      if (!tid) return;

      const button = document.createElement('a');
      button.href = `https://www.gamemale.com/forum.php?mod=viewthread&tid=${tid}&page=1&authorid=${config.authorId}`;
      button.textContent = isAuthorViewPage() ? '攻击BOSS!' : '只看BOSS';
      button.id = 'gm-boss-attack-btn';

      GM_addStyle(`
            #gm-boss-attack-btn {
                position: fixed;
                right: 20px;
                bottom: 20px;
                padding: 12px 18px;
                background-color: #e74c3c;
                color: white;
                border-radius: 5px;
                text-decoration: none;
                font-weight: bold;
                z-index: 9999;
                box-shadow: 0 2px 5px rgba(0,0,0,0.3);
                font-size: 16px;
                text-transform: uppercase;
                animation: pulse 2s infinite;
            }
            #gm-boss-attack-btn:hover {
                background-color: #c0392b;
                animation: none;
            }
            @keyframes pulse {
                0% { transform: scale(1); }
                50% { transform: scale(1.05); }
                100% { transform: scale(1); }
            }
      `);

      // 如果在BOSS页面,点击按钮执行最大化评分
      if (isAuthorViewPage()) {
            button.onclick = function(e) {
                e.preventDefault();
                attackBoss();
                return false;
            };
      }

      document.body.appendChild(button);
    }

    // 攻击BOSS(最大化评分)
    function attackBoss() {
      // 找到第一个评分按钮
      const rateButton = document.querySelector('a');
      if (!rateButton) {
            alert('未找到BOSS攻击点!(找不到评分按钮)');
            return;
      }

      // 模拟点击评分按钮
      rateButton.click();

      // 等待评分窗口加载
      const checkInterval = setInterval(function() {
            const score3 = document.getElementById('score3');
            const score4 = document.getElementById('score4');
            const score8 = document.getElementById('score8');
            const reason = document.getElementById('reason');

            if (score3 && score4 && score8 && reason) {
                clearInterval(checkInterval);

                // 获取可用的最大评分值
                const max3 = parseInt(score3.nextElementSibling.nextElementSibling.innerText) || 0;
                const max4 = parseInt(score4.nextElementSibling.nextElementSibling.innerText) || 0;
                const max8 = parseInt(score8.nextElementSibling.nextElementSibling.innerText) || 0;

                // 计算实际能给的最高分(不超过可用积分)
                const actualScores = [
                  Math.min(config.targetScores, max3),
                  Math.min(config.targetScores, max4),
                  Math.min(config.targetScores, max8)
                ];

                // 填写评分(能多高就多高)
                score3.value = actualScores;
                score4.value = actualScores;
                score8.value = actualScores;
                reason.value = config.reason;

                // 提交评分
                const submitButton = document.querySelector('button');
                if (submitButton) {
                  submitButton.click();
                }
            }
      }, 100);
    }

    // 页面加载完成后执行
    window.addEventListener('load', function() {
      createBossAttackButton();

      // 如果在BOSS页面,可以添加额外功能
      if (isAuthorViewPage()) {
            // 可以在这里添加其他BOSS战相关功能
      }
    });
})();


星象占卜

娱乐法师火布偶 发表于 2025-6-9 02:53:29

可以适配评分不足的情况就更好用了,周年的各种评分数量都太紧张

诺鸦cc 发表于 2025-6-9 02:56:49

大佬做脚本真的好迅速)这次的世界boss也太有趣的ww

要有礼帽 发表于 2025-6-9 03:00:04

大佬的脚本永远都是懒人福利啊!

柏芸 发表于 2025-6-9 03:04:31

之前就用过星佬的评分脚本,只能说真的很方便,这下BOSS你能接住我攒了这么久的量吗:lol

白鸟探 发表于 2025-6-9 03:10:42

好快的脚本,技术力真的可以,一把子支持了

水水水冘 发表于 2025-6-9 03:20:03

这个活动刚来就有脚本了!大佬太快了

千城丶 发表于 2025-6-9 03:32:23

楼主速度是真快啊 这么快插件就出来惹
这有就能轻轻松松打BOSS惹 感谢惹

ilovepizza 发表于 2025-6-9 03:32:52

感謝分享?
算是科技改善生活了,這樣就能更快打B 0 S s了

Floopa 发表于 2025-6-9 03:39:26

謝謝分享腳本
晚點就能試試看究竟有沒有用了

金苹果 发表于 2025-6-9 03:39:59

感谢大佬制作惹,打boss更加方便噜

824560140 发表于 2025-6-9 03:55:26

都已经半夜了,大佬这个产能也忒牛了吧,

狄文卡德 发表于 2025-6-9 04:00:07

“你手中那点光明,不过是腐朽前的挣扎罢了。”

korjus 发表于 2025-6-9 04:23:50

大佬光速赶脚本slay成这样;P这次活动蛮有意思的

qropeoeriy 发表于 2025-6-9 05:05:39

感谢大佬分享,这下就方便多了

parting 发表于 2025-6-9 05:18:25

好厉害得,不过可惜打boss导致了自己得追随,恶堕还有血液都没了{:4_100:}
欸,真的好恼人{:4_89:}

深暗幽狼 发表于 2025-6-9 05:35:10

救命,齐心协力一起打boss,三项一天的评分全被boss榨去了,它甚至还抢村民的钱了。

sanweny 发表于 2025-6-9 05:49:46

大佬的速度好快,这样子打BOSS省事又省力

cdcai 发表于 2025-6-9 06:04:33

哈哈很需要这个,自己点还是有点累

DaiDoong 发表于 2025-6-9 07:04:52

好方便的功能,三个小时就发出来了,大佬的速度恐怖如斯{:6_165:}
页: [1] 2 3
查看完整版本: 【油猴脚本】一键暴打世界BOSS!