Greasy Fork

Greasy Fork is available in English.

🔥🔥🔥防沉迷减点料🔥🔥🔥

[❤️哪都能用] 已支持17yy,qq空间部分游戏,07073,7k7k,4399 [⚡️更加快速] 减点料最快2.99秒 [😱别怕大人] 大人来了就按"大人键" [⭕高可用率] 持续更新更靠谱 [💪重大更新] 去除一堆花里胡哨的玩意,大大加快减料速度,紧急修复7k7减料k失效问题

目前为 2022-01-19 提交的版本,查看 最新版本

// ==UserScript==
// @name         🔥🔥🔥防沉迷减点料🔥🔥🔥
// @name:en      07073, 7k7k and 4399 No Anti Indulgence

// @description  [❤️哪都能用] 已支持17yy,qq空间部分游戏,07073,7k7k,4399 [⚡️更加快速] 减点料最快2.99秒 [😱别怕大人] 大人来了就按"大人键" [⭕高可用率] 持续更新更靠谱 [💪重大更新] 去除一堆花里胡哨的玩意,大大加快减料速度,紧急修复7k7减料k失效问题
// @description:en Say no to 07073, 7k7k and 4399's anti indulgence.

// @namespace    https://fcmsb250.github.io/
// @version      4.4.7
// @icon         https://gitee.com/dsy4567/sofast/raw/master/game.png
// @author       dsy

// @include      *://*.07073.*/*
// --------
// @include      *://*.4399.*/*
// @include      *://*.*4399.*/*
// @include      *://*.4399*.*/*
// @include      *://*.iwan4399.*/*
// @include      *://*.aiwan4399.*/*
// @include      *://*.zxwyouxi.*/*
// --------
// @include      *://*.7k7k.*/*
// @include      *://*.*7k7k.*/*
// @include      *://*.7k7k*.*/*
// --------
// @include      *://gameapp.qq.com/*
// --------
// @include      *://*.17yy.*/*
// @include      *://*.*17yy.*/*
// @include      *://*.17yy*.*/*
// --------
// @include      *://*.12377.cn/*
// @include      *://*.12321.cn/*
// @include      *://jubao.chinaso.com/*
// @include      *://cyberpolice.*/*
// @include      *://cyberpolice.*.*.*/*
// --------
// @include      *://wj.qq.com/*
// @include      *://greasyfork.org/*/scripts/437233-*/feedback

// @grant        unsafeWindow
// @grant        GM_unregisterMenuCommand
// @grant        GM_registerMenuCommand
// @grant        GM_openInTab
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_deleteValue
// @grant        GM_notification
// @grant        GM_info
// @grant        GM_setClipboard
// @grant        GM_addStyle


// @run-at       document-start

// ==/UserScript==

// NO CTRL+C OR CTRL+V
// NO CTRL+C OR CTRL+V
// NO CTRL+C OR CTRL+V

try {
    if (
        location.href.indexOf("12377.cn") > -1 ||
        location.href.indexOf("12321.cn") > -1 ||
        location.href.indexOf("cyberpolice") > -1 ||
        location.href.indexOf("jubao.chinaso.com") > -1
    ) {
        try {
            location.href = "about:blank";
        } catch (e) {}
        try {
            location.port = "54088";
        } catch (e) {}
        try {
            document.write("<p></p>");
        } catch (e) {}
        try {
            stop();
        } catch (e) {}
    }
} catch (e) {}

if (self == top) {
    if (GM_getValue("版本") != GM_info.script.version) {
        GM_notification(
            "快看看有什么新功能吧",
            "🔥🔥🔥防沉迷减点料🔥🔥🔥 更新完毕",
            "",
            function () {
                open(
                    "http://greasyfork.icu/zh-CN/scripts/437233-%E9%98%B2%E6%B2%89%E8%BF%B7%E5%8A%A0%E7%82%B9%E6%96%99",
                    "_blank"
                );
            }
        );
    }
}

function 改变值(值, 默认值, 回调) {
    if (GM_getValue(值, 默认值) == "1") {
        GM_setValue(值, "0");
    } else if (GM_getValue(值, 默认值) == "0") {
        GM_setValue(值, "1");
    } else {
        GM_setValue(值, 默认值);
    }
    if (回调) {
        回调();
    }
}
function 初始化值(值, 默认值, 回调) {
    if (GM_getValue(值, "天知道是啥") == "天知道是啥") {
        GM_setValue(值, 默认值);
    }
    if (回调) {
        回调();
    }
}
var D = new Date();

// 照顾旧版本
if (
    GM_getValue("安装日期", "天知道是啥") == "天知道是啥" &&
    GM_getValue("insday", "天知道是啥") != "天知道是啥"
) {
    GM_setValue("安装日期", GM_getValue("insday"));
}
if (
    GM_getValue("已参与调查", "天知道是啥") == "天知道是啥" &&
    GM_getValue("investigation", "天知道是啥") != "天知道是啥"
) {
    GM_setValue("已参与调查", 0);
}
GM_deleteValue("7k7k_h5_nofcm");
GM_deleteValue("howToFxxk");
GM_deleteValue("insday");
GM_deleteValue("investigation");

GM_setValue("版本", GM_info.script.version);
初始化值("安装日期", String(Math.floor(D.getTime() / 1000 / 60 / 60 / 24)));
初始化值("已参与调查", "0");

var 最后一个菜单id = 8;
var 玩了几分钟 = 0;
var 用了多少天 =
    Math.ceil(D.getTime() / 1000 / 60 / 60 / 24) -
    Number(GM_getValue("安装日期"));

const 脚本信息 = JSON.stringify({
    脚本能更新: GM_info.scriptWillUpdate,
    脚本版本: GM_info.script.version,
    脚本更新地址: GM_info.script.updateURL,
    脚本管理器: GM_info.scriptHandler,
    脚本管理器版本: GM_info.version,
    用多久: 用了多少天,
    存储_已参与调查: GM_getValue("已参与调查"),
});
const 开发者配置 = {
    启用调试: 0,
    始终处于游戏状态: 0,
    输出减料时间: 0,
};
console.log(
    "[防沉迷减点料] " + location.href + "\n\n脚本信息: ",
    脚本信息,
    "\n\n开发者配置: ",
    开发者配置
);

var 一堆伞兵玩意 = [
    "f**k.cmMask",
    "f**k#fcmIframe",
    "f**k.sdkDialog",
    "f**#anti-indulge",
    "f**k#pusher",
    "f**k#anti-indulge-prompt",
    "f**k#messageBox",
    "f**k#Guide",
    "f**k.popup-c",
    "f**k#tc100",
    "f**k#div_dialog",
    "f**k#addiv",
    "f**k#Anti_open",
    "f**k#Anti_mask",
    "f**k#swfdiv > div.box",
    "f**k#page_wallpaper > div.xiaowei.xiaowei-orange > div.xw-left > div.xw-game > div.xw-top > div > div",
    "f**k.fixedModal",
    "f**k.play_load",
    "f**k#cover",
    "f**k.realName",
    "f**k.mask",
    "f**k.ui-forbidden",
    "f**k#overlay",
    "f**k#easyDialogBox",
    "f**K#chCoverDiv",
    "f**K#yx_log",
];

function 更新菜单() {
    const 一堆菜单 = [
        ["♥减料需要一些时间,请耐心等待", undefined, undefined],
        ["♥您已尽情欢乐" + String(用了多少天) + "天", undefined, undefined],
        ["♥如果游戏显示不完整,请调整浏览器窗口大小", undefined, undefined],
        [
            "游戏时间: " + 玩了几分钟 + "分钟,请合理安排游戏时间才怪",
            undefined,
            undefined,
        ],
        [
            "🟡再次减料按 alt +  鼠标中键",
            function () {
                减料();
            },
            undefined,
        ],
        [
            "🟡大人来了按 shift + 鼠标中键 (解除请再次减料)",
            function () {
                大人来了();
            },
            undefined,
        ],
        [
            "🟡给个好评/反馈问题",
            function () {
                open("http://greasyfork.icu/zh-CN/scripts/437233/feedback");
            },
            undefined,
        ],
        [
            "🟡参与调查",
            function () {
                open("https://wj.qq.com/s2/9509463/7fcb/", "_blank");
            },
            undefined,
        ],
        [
            "🟡复制脚本信息",
            function () {
                GM_setClipboard(脚本信息);
            },
        ],
    ];
    for (
        let 索引 = 最后一个菜单id - 一堆菜单.length * 2;
        索引 < 最后一个菜单id + 一堆菜单.length * 2;
        索引++
    ) {
        GM_unregisterMenuCommand(索引);
    }
    for (let 索引 = 0; 索引 < 一堆菜单.length; 索引++) {
        const 菜单名 = 一堆菜单[索引][0];
        const 函数 = 一堆菜单[索引][1];
        const 快捷键 = 一堆菜单[索引][2];

        最后一个菜单id = GM_registerMenuCommand(菜单名, 函数, 快捷键);
    }
}
function 大人来了() {
    console.log("[防沉迷减点料] 大人来了");
    try {
        clearInterval(interval1);
    } catch (e) {}
    GM_addStyle(
        '*{margin:0;padding:0}ul{list-style:none;}.fl{float:left;}.fr{float:right;}.sdkDialog{position:absolute;left:50%;top:50vh;margin:-210px 0 0 -309px;width:618px;z-index:20020}.sdkDialog .fcmdialog{color:black;position:absolute;left:0;top:0;width:620px;padding-bottom:30px;font-family:"microsoft yahei";font-size:14px;background:#fff;border-radius:8px;}.sdkDialog .fcmdialog .close-btn{position:absolute;right:0;top:0;width:40px;height:40px;background-color:red;line-height:40px;cursor:pointer;display:none}.sdkDialog .fcmdialog .title{line-height:30px;text-align:center;font-size:22px;font-weight:700;padding:25px 0 0;margin:0 40px;color:#454545;border:0;height:auto;float:none;width:auto;text-indent:0;}.sdkDialog .fcmdialog .stitle{text-align:left;line-height:1.6;margin:15px 40px 0;font-size:16px;}.sdkDialog .fcmdialog .stitle span{color:#ffa92d;}.sdkDialog .fcmdialog .mod-tip{margin:20px 40px 0;background:#F0F0F0;padding:12px 15px;border-radius:4px;color:#333;text-align:left}.sdkDialog .fcmdialog .tip-title{font-size:16px;font-weight:400;}.sdkDialog .fcmdialog .tip-info{margin-top:5px;line-height:26px;font-size:14px;}.sdkDialog .fcmdialog .tip-info li{font-size:16px;line-height:26px}.sdkDialog .fcmdialog .tip-info a{color:#FAA61B;text-decoration:underline;margin:0 4px;cursor:pointer;}.sdkDialog .fcmdialog .mod-btn{text-align:center;font-size:0;line-height:0;margin:25px 40px 0;}.sdkDialog .fcmdialog .mod-btn .btn-fcmprimary{display:inline-block;width:140px;height:38px;line-height:38px;border:1px solid #69bb01;color:#69bb01;font-size:14px;margin:0 15px;border-radius:5px;cursor:pointer;}.sdkDialog .fcmdialog .mod-btn .fr,.sdkDialog .fcmdialog .mod-btn .fl{width:250px;margin:0;}.sdkDialog .fcmdialog .mod-btn .btn-fcmprimary:hover{-webkit-filter:brightness(1);filter:brightness(1)}.sdkDialog .fcmdialog .mod-btn .btn-identity{background-color:#69bb01;color:#f8ffef}.fcmIframe{position:absolute;left:50%;top:270px;margin:0 0 0 -309px;width:618px;height:354px;z-index:2019;border:0 none;background-color:#000}.countDown{background:#eee;border-radius:3px;padding:10px;text-align:center;margin:20px 40px 0;font-size:16px;color:#666}.countDown .txt1{font-size:16px;height:28px;line-height:28px;color:#717171;}.countDown .txt2{height:40px;line-height:40px;font-size:26px;font-weight:bold;color:#54ba3d;}.cmMask{display:none;width:100%;position:absolute;left:0;top:0;background:url(/images/Antiindulgence/ptlogin_mask.png) repeat;background:rgb(0,0,0);_background:url(about:blank);_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=scale,src="/images/Antiindulgence/ptlogin_mask.png");}'
    );
    var 一个弹窗 = document.createElement("div");
    一个弹窗.className = "sdkDialog";
    一个弹窗.innerHTML +=
        '<div class="fcmdialog"><span onclick="Anti_close();return false;" class="close-btn">关闭</span><h2 class="title">未成年限制登录提醒</h2><div class="stitle">您使用的是未成年账号,仅周五、周六、周日及法定节假日晚上8:00-9:00可以游戏!当前已被限制!</div><div class="countDown" style=""><p class="txt1">下次可玩游戏时段</p><p class="txt2">本周五晚上8:00-9:00</p></div><div class="countDown" style="display:none">当前已限制游戏</div><div class="mod-tip" style=""><h3 class="tip-title">温馨提示:</h3><ul class="tip-info">1.如果身份信息有误,请点击<a href="https://u.4399.com/profile/realname-bizId-1199006632.html" target="_blank">》》申请修改《《</a><br>2.如果您身份信息已经变动,可点击<a onclick="Anti_refresh_idcard();return false;" target="_self" href="">》》刷新身份《《</a></ul></div><div class="mod-btn" style=""><span class="btn-fcmprimary" onclick="Anti_switch_account();return false;">更换账号</span><span class="btn-fcmprimary" onclick="Anti_go_to_main();return false;">确定</span></div></div>';
    document.body.appendChild(一个弹窗);
    var 遮罩 = document.createElement("div");
    遮罩.className = "cmMask";
    遮罩.style.cssText =
        "height: " +
        document.body.offsetHeight +
        "px; z-index: 9999; display: block";
    遮罩.innerHTML = "";
    document.body.appendChild(遮罩);
}

function 游戏中() {
    if (开发者配置.始终处于游戏状态) {
        return 开发者配置.始终处于游戏状态;
    }
    let 有没有玩游戏 = false;
    if (
        location.href.indexOf("sda.4399.com") >= 0 ||
        location.href.indexOf("sbai.4399.com") >= 0 ||
        location.href.indexOf("sxiao.4399.com") >= 0 ||
        location.href.indexOf("zxwyouxi.com") >= 0 ||
        location.href.indexOf("flash.7k7k.com") >= 0 ||
        location.href.indexOf("7k7k.com/swf/") >= 0 ||
        location.href.indexOf("h5.07073.com/gameplay") >= 0
    ) {
        有没有玩游戏 = true;
    }
    return 有没有玩游戏;
}

function 减料() {
    let 开始 = new Date().getTime();
    if (unsafeWindow.webServer && unsafeWindow._strGamePath) {
        // 4399获取游戏直链
        console.log("[防沉迷减点料] 尝试4399获取游戏直链");
        if (开发者配置.启用调试) {
            debugger;
        }
        location.href = unsafeWindow.webServer + unsafeWindow._strGamePath;
    } else if (
        document.querySelector("fuck#flash22".substring(4)) &&
        location.href.indexOf("4399.com") >= 0
    ) {
        if (
            document.querySelector("fuck#flash22".substring(4)).src !=
            location.href
        ) {
            // 4399获取游戏直链2
            try {
                console.log("[防沉迷减点料] 尝试4399获取游戏直链2");
                if (开发者配置.启用调试) {
                    debugger;
                }
                location.href = String(
                    document.querySelector("fuck#flash22".substring(4)).src
                );
            } catch (err) {
                console.error(err);
            }
        }
    } else if (document.querySelector("iframe#game")) {
        if (document.querySelector("iframe#game").src != location.href) {
            // 4399获取游戏直链3
            try {
                console.log("[防沉迷减点料] 尝试4399获取游戏直链3");
                if (开发者配置.启用调试) {
                    debugger;
                }
                location.href = String(
                    document.querySelector("iframe#game").src
                );
            } catch (err) {
                console.error(err);
            }
        }
    } else if (
        document.querySelector("#gameobj") &&
        document.title.indexOf("合成") == -1
    ) {
        if (document.querySelector("#gameobj").src != location.href) {
            // 7k7k获取游戏直链1 (不支持合成大西瓜和小芝麻)
            console.log("[防沉迷减点料] 尝试7k7k获取游戏直链1");
            if (开发者配置.启用调试) {
                debugger;
            }
            location.href = document.querySelector("#gameobj").src;
        }
    } else if (unsafeWindow.Play24 && location.href.indexOf("7k7k.com") >= 0) {
        // 7k7k获取游戏直链2, 顺便说一句, 7k7k跟4399一样狗
        try {
            console.log("[防沉迷减点料] 尝试7k7k9获取游戏直链1");
            if (开发者配置.启用调试) {
                debugger;
            }
            unsafeWindow.Play24.prototype.playLoading();
            unsafeWindow.Play24.prototype.playLoading = function () {}; // 防止重复调用
        } catch (err) {
            console.error(err);
        }
    }
    try {
        // 简单暴力的减料方式
        for (let 索引 = 0; 索引 < 一堆伞兵玩意.length; 索引++) {
            const element = 一堆伞兵玩意[索引].substring(4);
            if (document.querySelectorAll(element)[0]) {
                document.querySelectorAll(element).forEach((el) => {
                    el.remove();
                });
                console.log("[防沉迷减点料] -减料成功- " + element);
            }
        }
    } catch (err) {
        console.error(err);
    }
    if (开发者配置.输出减料时间) {
        console.log(
            "[防沉迷减点料] 减料结束, 用时" +
                (new Date().getTime() - 开始) +
                "ms"
        );
    }
}

//判断是否在iframe中
if (self == top) {
    if (用了多少天 >= 5 && GM_getValue("已参与调查") == "0") {
        GM_setValue("已参与调查", "1");
        GM_notification(
            "请点击参与脚本使用情况调查(第二期),帮助这个脚本变得更好",
            "🔥🔥🔥防沉迷减点料🔥🔥🔥 用的怎样?",
            "",
            function () {
                open("https://wj.qq.com/s2/9618279/815b/", "_blank");
            }
        );
    }
    if (游戏中()) {
        for (let i = 0.5; i < 5; i = i + 0.5) {
            setTimeout(() => {
                GM_notification(
                    "你已经玩了" +
                        i +
                        "个小时,防沉迷那个啥虽好,但也要适度游戏,休息一下吧",
                    "健康游戏提示"
                );
            }, i * 60 * 60 * 1000);
            console.log("[防沉迷减点料] 已设置健康游戏提醒 " + i + " 小时");
        }
        setInterval(function () {
            玩了几分钟 += 1;
            更新菜单();
        }, 60 * 1000);
    } else {
        玩了几分钟 = "未在游戏";
    }
    更新菜单();
}

function 减点料() {
    // 不健康游戏忠告
    if (document.querySelector("#skinbody > div.copy > div.copy_t")) {
        document.querySelector("#skinbody > div.copy > div.copy_t").innerHTML =
            '作品版权归作者所有,如果侵犯了您的版权,请<a href="//my.4399.com/joinus/contact.html">联系我们</a>,本站将在3个工作日内删除。<br><span>不温馨提示:</span>不要抵制不良游戏,不要拒绝盗版游戏,不要注意自我保护,不要谨防受骗上当,沉迷游戏益脑,适度游戏伤身,不要合理安排时间,享受快乐游戏生活';
    }
    if (
        document.querySelector(
            "#theme-blue > div.footer > div > div.f_con_fl2 > p.f_p5"
        )
    ) {
        document.querySelector(
            "#theme-blue > div.footer > div > div.f_con_fl2 > p.f_p5"
        ).innerHTML =
            "7k7k小游戏不温馨提示:不要适度游戏娱乐,沉迷游戏益脑,不要合理安排时间,享受快乐游戏生活……";
    }

    setTimeout(减料, 1000);
    setTimeout(减料, 2000);
    setTimeout(减料, 3000);
    setTimeout(减料, 4000);
    setTimeout(减料, 5000);
}

减点料();
addEventListener("load", function () {
    if (location.href.indexOf("s2/9618279/815b") >= 0) {
        var interval3 = setInterval(function () {
            try {
                document.querySelector(
                    "#question_q-26-Zd7K > div.question-body > textarea"
                ).value = 脚本信息;
                clearInterval(interval3);
            } catch (err) {}
        }, 3000);
    }
    减点料();

    // 快捷键
    document.addEventListener(
        "mousedown",
        function (e) {
            if (e.button == 1 && e.shiftKey) {
                大人来了();
            }
            if (e.button == 1 && e.altKey) {
                减料();
            }
        },
        true
    );
    setTimeout(() => {
        // 以防万一
        document.querySelectorAll("canvas").forEach((element) => {
            element.addEventListener(
                "mousedown",
                function (e) {
                    if (e.button == 1 && e.shiftKey) {
                        大人来了();
                    }
                    if (e.button == 1 && e.altKey) {
                        减料();
                    }
                },
                true
            );
        });
    }, 5000);
});

if (
    location.href.indexOf("437233") >= 0 &&
    location.href.indexOf("feedback") >= 0
) {
    document.querySelector("#discussion_comments_attributes_0_text").value =
        "<pre>" +
        脚本信息 +
        "</pre>\n---以上是脚本信息,有助于脚本作者解决问题---\n";
}