dmm mission

dmm mission!

Versión del día 08/12/2023. Echa un vistazo a la versión más reciente.

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name         dmm mission
// @namespace    http://tampermonkey.net/
// @version      2023.12.8
// @description  dmm mission!
// @author       cunhan
// @match      *://mission.games.dmm.com/
// @match      *://library.games.dmm.com/
// @match      *://mission.games.dmm.co.jp/
// @match      *://library.games.dmm.co.jp/
// @match      *://sp-play.games.dmm.com/*
// @match      *://sp-play.games.dmm.co.jp/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_openInTab
// ==/UserScript==

/*
1、先手动签到dmm客户端的两个游戏
2、手动开启浏览器手机模式,然后打开https://library.games.dmm.co.jp/
2.1 脚本按顺序执行以下操作,打开https://library.games.dmm.com/
2.2 接着打开https://mission.games.dmm.co.jp/,并重复4次“打开页游,返回mission页面”,完成任务并领取代币。最后在新标签页打开https://mission.games.dmm.co.jp/(PC版)
2.3 接着打开https://mission.games.dmm.com/,同上。最后也是在新标签里打开https://mission.games.dmm.com/(PC版)
2.4 由于没有方法“以手机模式打开某个网页”,所以手机版的签到流程全都在同一个页面里顺序执行。
3、上述2.2和2.3打开的PC版mission页面,会同时在新标签页打开3个页游、library页面以及pachinko页面。等待10s后mission标签页自动刷新,领取代币。
4、上面打开的标签页都可以配置TabAutoClose(30s)来自动关闭

总结,手动签到2个客户端游戏,然后手机模式打开https://library.games.dmm.co.jp/,剩下的事情脚本会全部搞定。
*/

(function() {
    'use strict';
    var a = setTimeout(function() { myFunction(); },3000);//增加等待时间,让sp-play可以加载完成
    function myFunction(){ // 声明一个函数
        console.log("正在运行中...");
        var platform = document.getElementById("i3_vwtp");
        if (platform.value == "pc")
        {
            console.log("pc html");
            //处理PC版:
            //找到daliy challenge,如果有新的期间限定任务,让手机版的脚本去点
            var daily = document.getElementsByClassName("p-captStandard");
            for (i = 0; i < daily.length; i++) {
                console.log(daily[i].innerText)
                if (daily[i].innerText == "毎日チャレンジできる、デイリーミッション")
                {
                    console.log(daily[i].nextSibling.nextSibling)
                    var mission_status = daily[i].nextSibling.nextSibling.getElementsByClassName("listMission_gauge_flame");;
                    if (mission_status.length > 0)
                    {
                        //还没有领取状态的文字,把几个页游点一遍
                        var missionitems_pc = daily[i].nextSibling.nextSibling.getElementsByClassName("listMission_targetGameItem_inner");
                        var i;
                        for (i = 0; i < 3; i++) {
                            console.log(missionitems_pc[i].href);
                            var playstatus = missionitems_pc[i].getElementsByClassName("listMission_targetGameItem_isPlayed");
                            if (playstatus.length == 0)
                            {

                                GM_openInTab(missionitems_pc[i].href);
                            }
                        }
                        GM_openInTab("https://www.dmm.com/netgame/pachinko/-/game/");
                        GM_openInTab("https://library.games.dmm.co.jp/");
                        GM_openInTab("https://library.games.dmm.com/");
                        setTimeout(function() { uselessFunction(); },10000);
                    }
                    else
                    {
                        var adddiv = document.getElementsByClassName("receiveAll_btn");
                        if (adddiv.length > 0)
                        {
                            console.log("PC:找到按钮"+adddiv.length);
                            adddiv[0].click();
                            console.log("PC:已点击接受所有报酬");
                        }
                    }
                }

            }
        }
        //处理手机版
        //手动开启手机模式,按以下顺序依次跳转library.games.dmm.co.jp -> library.games.dmm.com -> mission.games.dmm.com -> mission.games.dmm.co.jp
        if (platform.value == "sp")
        {
            console.log("sp html")
            //从页游跳回mission
            if (document.domain == "sp-play.games.dmm.co.jp")
            {
                window.location.replace("https://mission.games.dmm.co.jp/");
                return;
            }
            if (document.domain == "sp-play.games.dmm.com")
            {
                window.location.replace("https://mission.games.dmm.com/");
                return;
            }

            if (document.domain == "library.games.dmm.co.jp")//#1
            {
                window.location.replace("https://library.games.dmm.com/");
                return;
            }
            if (document.domain == "library.games.dmm.com")//#2
            {
                window.location.replace("https://mission.games.dmm.co.jp/");
                return;
            }
            //未play的逐个点
            var missionitems_mobile = document.getElementsByClassName("target-item-inner");
            var ij;
            for (ij = 0; ij < missionitems_mobile.length; ij++) {
                console.log(missionitems_mobile[ij].href);
                var playstatusm = missionitems_mobile[ij].getElementsByClassName("target-item-text-played");
                if (playstatusm.length == 0)
                {
                    console.log("redirect.")
                    window.location.replace(missionitems_mobile[ij].href);
                    return;
                }
                else
                {
                    console.log(playstatusm[0]);
                }
            }
            //访问mission页面时,先收菜后跳转
            adddiv = document.getElementsByClassName("receive-all-button");
            if (adddiv.length > 0)
            {
                console.log("手机版:找到按钮"+adddiv.length);
                adddiv[0].click();
                console.log("手机版:已点击接受所有报酬");
            }
            //同时在新标签页打开PC版
            if (document.domain == "mission.games.dmm.co.jp")//#3
            {
                console.log("mobile mission.jp -> mobile mission com, new pc mission.jp")
                GM_openInTab("https://mission.games.dmm.co.jp/");
                window.location.replace("https://mission.games.dmm.com/");
                return;
            }
            if (document.domain == "mission.games.dmm.com")//#4 end
            {
                console.log("mobile mission.com -> new pc misson.com")
                GM_openInTab("https://mission.games.dmm.com/");
                return;
            }
        }

    }


    function uselessFunction(){
        console.log("最后刷新页面")
        location.reload();
    }




})();