Greasy Fork

赛尔号启航Pc

赛尔号启航Pc.

目前为 2023-06-12 提交的版本。查看 最新版本

// ==UserScript==
// @name            赛尔号启航Pc
// @name:en         赛尔号启航Pc
// @namespace       赛尔号启航Pc
// @version         1.3.7
// @description     赛尔号启航Pc.
// @description:en  helpersaiier
// @include         http://s.61.com/*
// @require         https://greasyfork.org/scripts/372672-everything-hook/code/Everything-Hook.js?version=881251
// @author          2942332601QQ
// @match           http://s.61.com/*
// @run-at          document-start
// @grant           none
// @license         GPL-3.0-or-later
// ==/UserScript==

(function () {
    'use strict';
    //去除左侧小贴士
    var targetClass = 'age-tip';
    var targetClass1 = 'years'
    var observer = new MutationObserver(function (mutations) {
        mutations.forEach(function (mutation) {
            mutation.addedNodes.forEach(function (node) {
                if (node.classList && node.classList.contains(targetClass)) {
                    node.style.display = 'none';
                }
                if (node.classList && node.classList.contains(targetClass1)) {
                    node.style.display = 'none';
                }
            });
        });
    });
    // 监听整个文档的变化
    observer.observe(document, { childList: true, subtree: true });

    var bossStatus = false
    var SelfUid = ""
    var skillID = ""   //获取首发精灵skillID
    var myTeam = []  //获取精灵配置信息
    var myTeamDone = 0
    var StartJson = ""  //存储迷航当前进度id
    var rewrite = 0
    var CmdArr = []
    // fixMsg()
    // 创建一个 div
    var topWindow = window.top;
    //判断顶层body
    if (topWindow == window) {
        var div = document.createElement("div");
        div.id = "cardPage";
        div.style.position = "fixed";
        div.style.left = "0";
        div.style.top = "100px";
        div.style.width = "250px";
        div.style.height = "70%";
        div.style.backgroundColor = "lightblue";


        var div1 = document.createElement("div");
        div1.style.position = "fixed";
        div1.style.left = "0";
        div1.style.top = "60px";
        div1.style.width = "250px";
        div1.style.height = "10%";






        // 创建一个按钮
        var tosmall = document.createElement("button");
        tosmall.innerHTML = "缩小菜单";
        tosmall.style.display = "block";
        tosmall.style.margin = "10px auto";
        tosmall.style.width = "100px";
        tosmall.style.height = "30px";
        // 在点击按钮时输出日志到文本框中
        tosmall.onclick = function () {
            if (tosmall.innerHTML == "缩小菜单") {
                tosmall.innerHTML = "展开菜单"
                document.getElementById("cardPage").style.display = "none"
            } else {
                tosmall.innerHTML = "缩小菜单"
                document.getElementById("cardPage").style.display = "block"

            }
        };


        div1.appendChild(tosmall)



        var button0 = document.createElement("h3");
        button0.innerHTML = "启航护肝小助手1.3.7";
        button0.style.display = "block";
        button0.style.margin = "10px auto";
        button0.style.width = "200px";
        button0.style.height = "30px";
        button0.style.fontSize = "16px";
        button0.style.fontWeight = "bold"
        button0.style.textAlign = "center";
        div.appendChild(button0);



        // 创建一个按钮
        var group = document.createElement("button");
        group.innerHTML = "加群";

        group.style.margin = "10px";
        group.style.width = "30px";
        group.style.height = "40px";
        group.style.fontSize = "5px"; //
        group.style.fontWeight = "bold"
        group.style.float = "left";
        // 在点击按钮时输出日志到文本框中
        group.onclick = function () {
            window.open("http://43.143.137.151:8008/wxcode/qun.jpg", "_blank", "resizable,scrollbars,status");
        };
        div.appendChild(group);

        var supportTxt = document.createElement("p");
        supportTxt.innerHTML = "【支持所有(ios,安卓,windows,苹果,ipad)】";
        supportTxt.style.display = "block";
        supportTxt.style.marginLeft = "10px";
        supportTxt.style.width = "100px";
        supportTxt.style.height = "30px";
        supportTxt.style.fontSize = "5px";
        supportTxt.style.fontWeight = "bold"
        supportTxt.style.textAlign = "center";
        supportTxt.style.float = "left";
        div.appendChild(supportTxt);









        // 创建一个按钮
        var payFor = document.createElement("button");
        payFor.innerHTML = "赞助";

        payFor.style.margin = "10px";
        payFor.style.width = "30px";
        payFor.style.height = "40px";
        payFor.style.fontSize = "5px"; //
        payFor.style.fontWeight = "bold"
        payFor.style.marginLeft = "40px"
        // 在点击按钮时输出日志到文本框中
        payFor.onclick = function () {
            window.open("http://43.143.137.151:8008/wxcode/payForUp.png", "_blank", "resizable,scrollbars,status");
        };
        div.appendChild(payFor);



        // 创建一个按钮
        var button1 = document.createElement("button");
        button1.innerHTML = "开启监听";
        button1.style.margin = "10px";
        button1.style.width = "100px";
        button1.style.height = "30px";
        // 在点击按钮时输出日志到文本框中
        button1.onclick = function () {
            if (rewrite == 0) {
                rewrite = 1
                fixMsg()
                logTextArea.value += "顺利开启,您可以进行功能操作了\n";

                button1.innerHTML = "关闭监听";
            } else if (rewrite == 1) {
                rewrite = 0
                backMSg()
                logTextArea.value += "顺利关闭,内存得到部分释放\n";
                button1.innerHTML = "开启监听";
            }

        };
        div.appendChild(button1);



        var button5 = document.createElement("button");
        button5.innerHTML = "星际迷航";
        button5.style.margin = "10px";
        button5.style.width = "100px";
        button5.style.height = "30px";
        // 在点击按钮时输出日志到文本框中
        button5.onclick = async function () {
            await starTrek()
        };
        div.appendChild(button5);











        // 创建一个按钮
        var button = document.createElement("button");
        button.innerHTML = "一键刷资源";
        button.style.margin = "10px";
        button.style.width = "100px";
        button.style.height = "30px";
        // 在点击按钮时输出日志到文本框中
        button.onclick = async function () {
            if (skillID == "") {
                alert("请先开启监听!调换首发精灵技能!")
                return
            }
            logTextArea.value += "开始刷皮皮第一层\n";
            while (true) {
                //查询轮盘
                await sendMsg(1176, { planetId: 1 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["1"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续皮皮星1\n";
                }
                else if (reward["1"] < 10) {
                    logTextArea.value += "第" + reward["1"] + "次奖励,继续皮皮星1\n";
                } else {
                    logTextArea.value += "第" + reward["1"] + "次奖励,已经刷完皮皮星1\n";
                    CmdArr = []
                    break
                }

                await getObjs(20001, 109, 1)
                await wait(200)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷皮皮第二层\n";
            while (true) {
                //查询轮盘
                await sendMsg(1176, { planetId: 1 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["2"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续皮皮星2\n";
                }
                else if (reward["2"] < 10) {
                    logTextArea.value += "第" + reward["2"] + "次奖励,继续皮皮星2\n";
                } else {
                    logTextArea.value += "第" + reward["2"] + "次奖励,已经刷完皮皮星2\n";
                    CmdArr = []
                    break
                }
                await wait(200)

                await getObjs(20002, 87, 2)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷皮皮第三层\n";
            while (true) {
                //查询轮盘
                await sendMsg(1176, { planetId: 1 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })

                if (reward["3"] < 5) {
                    logTextArea.value += "第" + (reward["3"] + reward["4"]) + "次奖励,继续皮皮星3\n";
                    await getObjs(20003, 29, 3)

                } else if (reward["4"] < 5) {
                    logTextArea.value += "第" + (reward["3"] + reward["4"]) + "次奖励,继续皮皮星3\n";
                    await getObjs(20003, 29, 4)
                } else if (reward["3"] == undefined) {
                    await getObjs(20003, 29, 3)
                } else if (reward["4"] == undefined) {
                    await getObjs(20003, 29, 4)
                } else {
                    logTextArea.value += "第" + (reward["3"] + reward["4"]) + "次奖励,已经刷完皮皮星3\n";
                    CmdArr = []
                    await wait(200)
                    break
                }

                CmdArr = []
            }

            await wait(200)
            logTextArea.value += "开始刷水星第一层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 2 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["9"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续水星1\n";
                } else if (reward["9"] < 20) {
                    logTextArea.value += "第" + reward["9"] + "次奖励,继续水星1\n";
                } else {
                    logTextArea.value += "第" + reward["9"] + "次奖励,已经刷完水星1\n";
                    CmdArr = []
                    break
                }
                await wait(200)

                await getObjs(20004, 31, 9)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷水星第二层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 2 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["10"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续水星2\n";
                } else if (reward["10"] < 10) {
                    logTextArea.value += "第" + reward["10"] + "次奖励,继续水星2\n";
                } else {
                    logTextArea.value += "第" + reward["10"] + "次奖励,已经刷完水星2\n";
                    CmdArr = []
                    break
                }
                await wait(200)
                await getObjs(20005, 31, 10)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷水星第三层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 2 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })

                if (reward["11"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续水星3\n";
                }

                else if (reward["11"] < 3) {
                    logTextArea.value += "第" + reward["11"] + "次奖励,继续水星3\n";
                } else {
                    logTextArea.value += "第" + reward["11"] + "次奖励,已经刷完水星3\n";
                    CmdArr = []
                    break
                }

                await getObjs(20006, 31, 11)
                CmdArr = []
                await wait(200)
            }


            await wait(200)
            logTextArea.value += "开始刷火星第一层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 3 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["12"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续火星1\n";
                } else if (reward["12"] < 10) {
                    logTextArea.value += "第" + reward["12"] + "次奖励,继续火星1\n";
                } else {
                    logTextArea.value += "第" + reward["12"] + "次奖励,已经刷完火星1\n";
                    CmdArr = []
                    break
                }
                await wait(200)

                await getObjs(20007, 9, 12)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷火星第二层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 3 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["13"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续火星2\n";
                } else if (reward["13"] < 20) {
                    logTextArea.value += "第" + reward["13"] + "次奖励,继续火星2\n";
                } else {
                    logTextArea.value += "第" + reward["13"] + "次奖励,已经刷完火星2\n";
                    CmdArr = []
                    break
                }
                await wait(200)

                await getObjs(20008, 9, 13)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷火星第三层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 3 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["14"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续火星2\n";
                } else if (reward["14"] < 3) {
                    logTextArea.value += "第" + reward["14"] + "次奖励,继续火星2\n";
                } else {
                    logTextArea.value += "第" + reward["14"] + "次奖励,已经刷完火星2\n";
                    CmdArr = []
                    break
                }
                await wait(200)

                await getObjs(20009, 9, 14)
                CmdArr = []
            }







            await wait(200)
            logTextArea.value += "开始刷云霄星第一层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 5 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["33"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续云霄星1\n";
                } else if (reward["33"] < 20) {
                    logTextArea.value += "第" + reward["33"] + "次奖励,继续云霄星1\n";
                } else {
                    logTextArea.value += "第" + reward["33"] + "次奖励,已经刷完云霄星1\n";
                    CmdArr = []
                    break
                }
                await wait(200)

                await getObjs(20015, 10, 33)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷云霄星第二层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 5 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["34"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续云霄星2\n";
                } else if (reward["34"] < 10) {
                    logTextArea.value += "第" + reward["34"] + "次奖励,继续云霄星2\n";
                } else {
                    logTextArea.value += "第" + reward["34"] + "次奖励,已经刷完云霄星2\n";
                    CmdArr = []
                    break
                }
                await wait(200)
                await getObjs(20016, 9, 34)
                CmdArr = []
            }
            await wait(200)
            logTextArea.value += "开始刷云霄星第三层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 5 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["35"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续云霄星3\n";
                } else if (reward["35"] < 5) {
                    logTextArea.value += "第" + reward["35"] + "次奖励,继续云霄星3\n";
                } else {
                    logTextArea.value += "第" + reward["35"] + "次奖励,已经刷完云霄星3\n";
                    CmdArr = []
                    break
                }
                await wait(200)

                await getObjs(20017, 10, 35)
                CmdArr = []
            }


            await wait(200)
            logTextArea.value += "开始刷喷泉星第一层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 6 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["179"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续喷泉星1\n";
                } else if (reward["179"] < 10) {
                    logTextArea.value += "第" + reward["179"] + "次奖励,继续喷泉星1\n";
                } else {
                    logTextArea.value += "第" + reward["179"] + "次奖励,已经刷完喷泉星1\n";
                    CmdArr = []
                    break
                }

                await getObjs(20018, 9, 179)
                await wait(200)

                CmdArr = []
            }

            await wait(200)
            logTextArea.value += "开始刷喷泉星第二层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 6 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["60"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续喷泉星2\n";
                } else if (reward["60"] < 10) {
                    logTextArea.value += "第" + reward["60"] + "次奖励,继续喷泉星2\n";
                } else {
                    logTextArea.value += "第" + reward["60"] + "次奖励,已经刷完喷泉星2\n";
                    CmdArr = []

                    break
                }
                await getObjs(20020, 9, 60)
                CmdArr = []
                await wait(200)
            }




            await wait(200)
            logTextArea.value += "开始刷暗影星第一层\n";
            while (true) {
                CmdArr = []
                //查询轮盘
                await sendMsg(1176, { planetId: 8 })
                let reward = ""
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 1176) {
                        reward = JSON.parse(item["1176"]).reward
                    }
                })
                if (reward["66"] == undefined) {
                    logTextArea.value += "第" + 1 + "次奖励,继续暗影星1\n";
                } else if (reward["66"] < 20) {
                    logTextArea.value += "第" + reward["66"] + "次奖励,继续暗影星1\n";
                } else {
                    logTextArea.value += "第" + reward["66"] + "次奖励,已经刷完暗影星1\n";
                    CmdArr = []
                    break
                }
                await getObjs(20026, 43, 66)
                await wait(200)

                CmdArr = []
            }


            console.log("一键刷资源")
        };
        div.appendChild(button);


        // 创建一个按钮
        var button2 = document.createElement("button");
        button2.innerHTML = "一键雇佣";
        button2.style.margin = "10px";
        button2.style.width = "100px";
        button2.style.height = "30px";
        // 在点击按钮时输出日志到文本框中
        button2.onclick = async function () {
            SelfUid = prompt("请输入你的大号UID【保证大号小号在同一个战队】");
            console.log(SelfUid)
            let nowSkillId = skillID
            while (1) {
                CmdArr = []
                await sendMsg(10042, {
                    "friendPageNo": 1,
                    "friendPageSize": 1000,
                    "teamPageNo": 1,
                    "teamPageSize": 1000
                })
                let HireArr = []
                CmdArr.forEach(item => {
                    if (parseInt(Object.keys(item)[0]) == 10042) {
                        let teamHireList = JSON.parse(item["10042"]).teamHireList
                        teamHireList.forEach(item0 => {
                            if (item0.userId == parseInt(SelfUid)) {
                                console.log(item0)
                                HireArr.push(item0)
                            }
                        })
                    }
                })

                let doneGet = 0
                for (let index = 0; index < HireArr.length; index++) {
                    if (HireArr[index].petHireTimes < 10) {
                        doneGet = 1
                        logTextArea.value += "开始:" + HireArr[index].roleNick + "的第" + (index + 1) + "只精灵,雇佣次数:" + HireArr[index].petHireTimes + "\n";
                        let newTeamList = []

                        for (let index = 0; index < myTeam.length; index++) {
                            if (myTeam[index].indexOf("_") != -1) {
                                break
                            } else {
                                newTeamList.push(myTeam[index])
                            }
                        }

                        newTeamList.push(SelfUid + "_" + HireArr[index].type + "_" + HireArr[index].pos)



                        CmdArr = []
                        await sendMsg(10043, {
                            "type": HireArr[index].type,
                            "pos": HireArr[index].pos,
                            "targetUid": parseInt(SelfUid)
                        })
                        let goalPet
                        //取出雇佣目标精灵信息
                        CmdArr.forEach(item => {
                            if (parseInt(Object.keys(item)[0]) == 10043) {
                                goalPet = JSON.parse(item["10043"]).pet
                            }
                        })

                        console.log({
                            "levelId": 36,
                            "hirePetList": newTeamList,
                            "attachBattleSkill": [
                                {
                                    "petId": goalPet.petId,
                                    "level": goalPet.level,
                                    "skillList": goalPet.skills,
                                    "getTime": HireArr[index].getTime,
                                    "otherUid": parseInt(SelfUid),
                                    "type": HireArr[index].type
                                }
                            ]
                        })
                        //开始进入冰系关卡
                        await sendMsg(4881, {
                            "levelId": 36,
                            "hirePetList": newTeamList,
                            "attachBattleSkill": [
                                {
                                    "petId": goalPet.petId,
                                    "level": goalPet.level,
                                    "skillList": goalPet.skills,
                                    "getTime": HireArr[index].getTime,
                                    "otherUid": parseInt(SelfUid),
                                    "type": HireArr[index].type
                                }
                            ]
                        })


                        await sendMsg(1042, {
                            "groupId": "",
                            "battleType": 0
                        })


                        await sendMsg(1045, {
                            "data": null,
                            "groupId": "",
                            "opType": 5
                        });
                        CmdArr = []

                        await sendMsg(1057, {
                            "groupId": "",
                        });
                        CmdArr = []


                        await sendMsg(1045, {
                            opType: 1,
                            data: {
                                skillID: nowSkillId,
                            },
                            groupId: "",
                        });
                        CmdArr = []
                        logTextArea.value += "本次雇佣完毕!" + "\n";
                        console.log("打完了!")
                        await wait(100)
                        break
                    }

                }
                if (doneGet == 0) {
                    logTextArea.value += "雇佣完毕!!" + "\n";
                    return
                }
            }




        };
        div.appendChild(button2);



        var button3 = document.createElement("button");
        button3.innerHTML = "一键采集";
        button3.style.margin = "10px";
        button3.style.width = "100px";
        button3.style.height = "30px";
        // 在点击按钮时输出日志到文本框中
        button3.onclick = async function () {
            await getResource()
        };
        div.appendChild(button3);



        var button4 = document.createElement("button");
        button4.innerHTML = "一键轮盘";
        button4.style.margin = "10px";
        button4.style.width = "100px";
        button4.style.height = "30px";
        // 在点击按钮时输出日志到文本框中
        button4.onclick = async function () {
            await goPrize()
        };
        div.appendChild(button4);





        // 创建一个文本框用于输出日志
        var logTextArea = document.createElement("textarea");
        logTextArea.style.display = "block";
        logTextArea.style.width = "90%";
        logTextArea.style.height = "210px";
        logTextArea.style.margin = "10px auto";
        logTextArea.scrollTop = logTextArea.scrollHeight;
        div.appendChild(logTextArea);



        // 将 div 添加到页面中
        let bdTag = document.getElementsByTagName("html")[0]

        bdTag.appendChild(div1);
        bdTag.appendChild(div);






    }

    // 创建 MutationObserver 实例
    const observer1 = new MutationObserver((mutationsList) => {
        // 监听到内容变化时的回调函数
        logTextArea.scrollTop = logTextArea.scrollHeight;
    });

    // 配置 MutationObserver 监听的内容变化类型
    const config = { childList: true, subtree: true };

    // 开始监听 logTextArea 内容的变化
    observer1.observe(logTextArea, config);




    async function getObjs(mapId, viewId, levelId) {
        await sendMsg(279, {})
        CmdArr = []

        await sendMsg(4354, { mapId: mapId, viewId: viewId })
        CmdArr = []


        await sendMsg(1172, {
            "levelId": levelId,
            "battleType": 3
        });
        CmdArr = []


        await sendMsg(1045, {
            "data": "",
            "groupId": "",
            "battleType": 5
        });
        CmdArr = []

        await sendMsg(1057, {
            "groupId": "",
        });
        CmdArr = []


        await sendMsg(1045, {
            opType: 1,
            data: {
                skillID: skillID,
            },
            groupId: "",
        });
        CmdArr = []

        console.log("打完了!")
    }


    function sendMsg(nowCmd, nowBody) {
        return new Promise((resolve) => {
            if (document.querySelector("iframe").contentWindow.GlobalSocket == undefined) {
                GlobalSocket.PROTOCOL_SOCKET.send(
                    nowCmd,
                    nowBody
                );
            } else {
                document.querySelector("iframe").contentWindow.GlobalSocket.PROTOCOL_SOCKET.send(
                    nowCmd,
                    nowBody
                );

            }


            console.log("发送指令:" + nowCmd);

            async function checkCmd() {
                while (true) {
                    await new Promise((resolve) => setTimeout(resolve, 1));

                    let keysArr = []
                    CmdArr.forEach(item => {
                        keysArr.push(parseInt(Object.keys(item)[0]))
                    })
                    if (keysArr.indexOf(nowCmd) != -1) {
                        console.info("接收到了信息!" + nowCmd)

                        resolve();
                        break;
                    }
                }
            }

            checkCmd().then(resolve);
        });
    }





    function fixMsg() {
        // 保存原函数
        var originalCreateMsg;
        try {
            var socketPrototype = document.querySelector("iframe").contentWindow.SocketSeqMsgs.prototype;
            if (socketPrototype.createMsg === undefined) {
                originalCreateMsg = SocketSeqMsgs.prototype.createMsg;
                socketPrototype = SocketSeqMsgs.prototype;
            } else {
                originalCreateMsg = socketPrototype.createMsg;
            }
        } catch (e) {
            originalCreateMsg = SocketSeqMsgs.prototype.createMsg;
            socketPrototype = SocketSeqMsgs.prototype;
        }



        socketPrototype.createMsg = function (t, e) {
            originalCreateMsg.call(this, t, e);
            var s = this._tmpBytesArray[this._tmpBytesArray.length - 1];
            var raw = s.raw;
            var cmd = s.header.cmd;
            CmdArr.push({ [cmd]: raw });
            console.log("=======");
            console.log('接收cmd:', cmd);
            console.log('raw:', raw);
            try {
                if ((raw.indexOf("skills") != -1) && (raw.indexOf("subCmd") != -1) && (raw.indexOf("pet") != -1)) {
                    skillID = JSON.parse(raw).pet.skills[0];
                    logTextArea.value += "技能刷新完毕" + JSON.parse(raw).pet.nick + "==>技能读取完毕!!\n请确保精灵第一技能可以释放一次秒掉野怪\n";
                }
                if (raw.indexOf("defaultTeam") != -1) {
                    myTeam = JSON.parse(raw).value;
                    console.log(myTeam);
                    logTextArea.value += "顺利获取精灵配置信息,可开始雇佣!\n";
                }
                if ((cmd == "1120") && (raw.indexOf("starMedal") != -1)) {
                    StartJson = JSON.parse(raw);
                }
                if (cmd == "1049") {
                    bossStatus = true;
                }
            } catch (e) { }

            console.log("=======");
        };






        // //重写图鉴监听方法
        // var PetView
        // if (document.querySelector("iframe").contentWindow.SocketSeqMsgs == undefined) {
        //     PetView = petIllustrated.PetIllustrated.prototype.updatePetAttrView;
        //     // 重写updatePetAttrView方法
        //     petIllustrated.PetIllustrated.prototype.updatePetAttrView = function (e) {
        //         console.log(e)
        //         // 执行原有的createMsg方法e
        //         PetView.call(this, e);

        //     }
        // } else {
        //     PetView = document.querySelector("iframe").contentWindow.petIllustrated.PetIllustrated.prototype.updatePetAttrView;
        //     // 重写updatePetAttrView方法
        //     document.querySelector("iframe").contentWindow.petIllustrated.PetIllustrated.prototype.updatePetAttrView = function (e) {
        //         console.log(e)
        //         // 执行原有的createMsg方法e
        //         PetView.call(this, e);

        //     }
        // }

    }



    function backMSg() {
        // 保存原函数
        if (document.querySelector("iframe").contentWindow.SocketSeqMsgs == undefined) {
            var originalCreateMsg = SocketSeqMsgs.prototype.createMsg;
            SocketSeqMsgs.prototype.createMsg = function (t, e) {
                // 执行原有的createMsg方法
                originalCreateMsg.call(this, t, e);

            }
        } else {
            var originalCreateMsg = document.querySelector("iframe").contentWindow.SocketSeqMsgs.prototype.createMsg;
            document.querySelector("iframe").contentWindow.SocketSeqMsgs.prototype.createMsg = function (t, e) {
                // 执行原有的createMsg方法
                originalCreateMsg.call(this, t, e);

            }
        }

    }

    function wait(ms) {
        return new Promise(resolve => setTimeout(() => resolve(), ms));
    };

    function getCountByItemId(itemID) {
        let count
        try {
            count = ItemManager.getInstance().getItemNumById(itemID);
        } catch (e) {
            count = document.querySelector("iframe").contentWindow.ItemManager.getInstance().getItemNumById(itemID);
        }
        return count
    }


    //星际迷航
    async function starTrek() {

        while (1) {
            await wait(100)
            await sendMsg(1120, {
                "type": 0
            })
            logTextArea.value += `当前迷航进度: 第${parseInt(StartJson.levelId) + 1}关卡\n`;
            if (parseInt(StartJson.levelId) >= 15) {
                logTextArea.value += `完成星际迷航,进行一键领取\n`;
                await wait(200)
                await sendMsg(1223, {})
                break
            }
            if ((parseInt(StartJson.levelId) + 1) >= 11) {
                let skillList = StartJson.petList[0].useSkills
                for (let index = 0; index < skillList.length; index++) {
                    if (skillList[index].id == 11022) {
                        logTextArea.value += `更换阵容首发为蒙多,继续!\n`;
                        await sendMsg(1122, {
                            "petList": [
                                StartJson.petList[1].getTime,
                                StartJson.petList[0].getTime,
                                0,
                                0,
                                0,
                                0
                            ],
                            "attachBattleSkill": []
                        })
                        await sendMsg(1120, {
                            "type": 0
                        })
                    }

                }
            }

            //前十关卡
            if ((parseInt(StartJson.levelId) + 1) <= 10) {
                let skillList = StartJson.petList[0].useSkills
                for (let index = 0; index < skillList.length; index++) {
                    if (skillList[index].id == 100023) {
                        logTextArea.value += `更换阵容首发为魔焰,继续!\n`;
                        await sendMsg(1122, {
                            "petList": [
                                StartJson.petList[1].getTime,
                                StartJson.petList[0].getTime,
                                0,
                                0,
                                0,
                                0
                            ],
                            "attachBattleSkill": []
                        })
                        await sendMsg(1120, {
                            "type": 0
                        })
                    }
                }
            }

            //2.进入迷航关卡


            await sendMsg(1121, {
                "getTimeList": [
                    StartJson.petList[0].getTime,
                    StartJson.petList[1].getTime,
                    0,
                    0,
                    0,
                    0
                ]
            })
            while (1) {
                if (bossStatus == true) {
                    console.log("顺利加载战斗资源")
                    bossStatus = false
                    break
                } else {
                    await wait(50)
                }
            }


            await sendMsg(1042, {
                "groupId": "",
                "battleType": 0
            })


            await sendMsg(1045, {
                "opType": 5,
                "data": null,
                "groupId": ""
            })
            await sendMsg(1057, {
                "groupId": "",
            });


            if (parseInt(StartJson.levelId) + 1 <= 10) {
                logTextArea.value += `释放绝命火焰\n`;
                await sendMsg(1045, {
                    "opType": 1,
                    "data": {
                        "skillID": 11022
                    },
                    "groupId": ""
                })
            } else {
                logTextArea.value += `释放蒙多光闪击\n`;
                await sendMsg(1045, {
                    "opType": 1,
                    "data": {
                        "skillID": 100023
                    },
                    "groupId": ""
                })
            }
            await wait(100)




            await sendMsg(8201, {})


            await sendMsg(8209, {})
            //逃跑
            await sendMsg(303, {})


            await wait(50)

            //顺利释放一次
            console.log("顺利释放一次")
        }

    }




    //轮盘
    async function goPrize() {

        //皮皮星轮盘     每次消耗5个
        let CountC = 0
        while (1) {
            var count = getCountByItemId(100014)  //获取物品id对应数量   光合能量
            if (count >= 5) {
                CountC++
                logTextArea.value += "皮皮星轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 1,
                    "prizePool": 1
                })
            } else {
                logTextArea.value += "皮皮星轮盘已经清空!!" + "\n";
                break
            }
        }

        CountC = 0
        //海洋星2级轮盘    每次消耗2个  和  1个    1个
        while (1) {
            var count0 = getCountByItemId(100015);    //甲烷
            var count1 = getCountByItemId(100016);;    //青晶石
            var count2 = getCountByItemId(100017);    //黑曜石
            if (count0 >= 2 && count1 >= 1 && count2 >= 1) {
                CountC++
                logTextArea.value += "海洋星2级轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 2,
                    "prizePool": 2
                })
            } else {
                logTextArea.value += "海洋星2级轮盘已经清空!!" + "\n";
                break
            }
        }


        CountC = 0
        //海洋星1级轮盘    每次消耗2个  和  1个
        while (1) {
            var count0 = getCountByItemId(100015);    //甲烷
            var count1 = getCountByItemId(100016);    //青晶石
            if (count0 >= 2 && count1 >= 1) {
                CountC++
                logTextArea.value += "海洋星1级轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 2,
                    "prizePool": 1
                })
            } else {
                logTextArea.value += "海洋星1级轮盘已经清空!!" + "\n";
                break
            }
        }


        CountC = 0
        //火山星1轮盘    每次消耗1个  和  2个
        while (1) {
            var count0 = getCountByItemId(100029);    //甲烷
            var count1 = getCountByItemId(100030);    //青晶石
            if (count0 >= 1 && count1 >= 2) {
                CountC++
                logTextArea.value += "火山星1级轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 3,
                    "prizePool": 1
                })
            } else {
                logTextArea.value += "火山星1级轮盘已经清空!!" + "\n";
                break
            }
        }


        CountC = 0
        //火山星2轮盘     每次消耗 1个
        while (1) {
            var count = getCountByItemId(100031);
            if (count >= 1) {
                CountC++
                logTextArea.value += "火山星2级轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 3,
                    "prizePool": 2
                })
            } else {
                logTextArea.value += "火山星2级轮盘已经清空!!" + "\n";
                break
            }
        }


        CountC = 0
        //云霄1轮盘     每次消耗2个
        while (1) {
            var count = getCountByItemId(100076);     //空气结晶
            if (count >= 2) {
                CountC++
                logTextArea.value += "云霄星1级轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 5,
                    "prizePool": 1
                })
            } else {
                logTextArea.value += "云霄星1级轮盘已经清空!!" + "\n";
                break
            }
        }


        CountC = 0
        //云霄2轮盘     每次消耗2个 1个
        while (1) {
            var count0 = getCountByItemId(100077);    //不息云壤
            var count1 = getCountByItemId(100078);   //幻影之羽
            if (count0 >= 2 && count1 >= 1) {
                CountC++
                logTextArea.value += "云霄星2级轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 5,
                    "prizePool": 2
                })
            } else {
                logTextArea.value += "云霄星2级轮盘已经清空!!" + "\n";
                break
            }
        }


        CountC = 0
        //双子阿尔法星     每次消耗1个 1个
        while (1) {
            var count0 = getCountByItemId(100191);
            var count1 = getCountByItemId(100193);
            if (count0 >= 1 && count1 >= 1) {
                CountC++
                logTextArea.value += "双子阿尔法星轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 6,
                    "prizePool": 1
                })
            } else {
                logTextArea.value += "双子阿尔法星轮盘已经清空!!" + "\n";
                break
            }
        }


        CountC = 0
        //暗影星轮盘     每次消耗 2个
        while (1) {
            var count = getCountByItemId(100313);
            if (count >= 2) {
                CountC++
                logTextArea.value += "暗影星轮盘第" + CountC + "次" + "\n";
                await wait(200)
                await sendMsg(8997, {
                    "levelId": 8,
                    "prizePool": 1
                })
            } else {
                logTextArea.value += "暗影星轮盘已经清空!!" + "\n";
                break
            }
        }








    }


    async function getResource() {

        for (let index = 0; index < 4; index++) {
            await wait(200)
            //皮皮星第一层
            await sendMsg(9147, { id: 1 })  //矿石
        }
        logTextArea.value += "皮皮星第一层采集完成!!" + "\n";

        for (let index = 0; index < 4; index++) {
            await wait(200)
            //海星第一层
            await sendMsg(9147, { id: 5 })    //甲烷
        }
        logTextArea.value += "海星第一层甲烷采集完成!!" + "\n";

        for (let index = 0; index < 4; index++) {
            await wait(200)
            //海星第一层
            await sendMsg(9147, { id: 34 }) //金石
        }
        logTextArea.value += "海星第一层金石采集完成!!" + "\n";


        for (let index = 0; index < 4; index++) {
            await wait(200)
            //海星第二层
            await sendMsg(9147, { id: 3 })
        }
        logTextArea.value += "海星第一层矿石采集完成!!" + "\n";


        for (let index = 0; index < 4; index++) {
            await wait(200)
            //火星第一层
            await sendMsg(9147, { id: 2 })
        }
        logTextArea.value += "火星第一层矿石采集完成!!" + "\n";

        for (let index = 0; index < 4; index++) {
            await wait(200)
            //火星第二层
            await sendMsg(9147, { id: 6 })
        }
        logTextArea.value += "火星第一层甲烷采集完成!!" + "\n";


        for (let index = 0; index < 4; index++) {
            await wait(200)
            //喷泉星第二层
            await sendMsg(9147, { id: 7 })
        }
        logTextArea.value += "喷泉星第二层采集完成!!" + "\n";


        for (let index = 0; index < 4; index++) {
            await wait(200)
            //喷泉星第二层
            await sendMsg(9147, { id: 8 })
        }
        logTextArea.value += "喷泉星第二层采集完成!!!!" + "\n";


        for (let index = 0; index < 4; index++) {
            await wait(200)
            //机械星
            await sendMsg(9147, { id: 10 })
        }
        logTextArea.value += "机械星采集完成!!!!" + "\n";










    }



    // Your code here...
})();