您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
赛尔号启航Pc.
当前为
// ==UserScript== // @name 赛尔号启航Pc // @name:en 赛尔号启航Pc // @namespace 赛尔号启航Pc // @version 1.0.2 // @description 赛尔号启航Pc. // @description:en helpersaiier // @include http://s.61.com/home // @require https://greasyfork.org/scripts/372672-everything-hook/code/Everything-Hook.js?version=881251 // @author 2942332601QQ // @match http://s.61.com/home // @run-at document-start // @grant none // @license GPL-3.0-or-later // ==/UserScript== (function () { 'use strict'; var SelfUid = "" var skillID = "" //获取首发精灵skillID var myTeam = [] //获取精灵配置信息 var myTeamDone = 0 var rewrite = 0 var CmdArr = [] // fixMsg() // 创建一个 div var topWindow = window.top; //判断顶层body if (topWindow == window) { var div = document.createElement("div"); div.style.position = "fixed"; div.style.left = "0"; div.style.top = "100px"; div.style.width = "250px"; div.style.height = "50%"; div.style.backgroundColor = "lightblue"; // 创建一个按钮 var button1 = document.createElement("button"); button1.innerHTML = "开启监听"; button1.style.display = "block"; button1.style.margin = "10px auto"; 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 button = document.createElement("button"); button.innerHTML = "一键刷资源"; button.style.display = "block"; button.style.margin = "10px auto"; 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.display = "block"; button2.style.margin = "10px auto"; button2.style.width = "100px"; button2.style.height = "30px"; // 在点击按钮时输出日志到文本框中 button2.onclick = async function () { if (myTeam.length == 0 || skillID == "") { alert("请先开启监听!读取完精灵配置再来!并激活首发精灵的技能") return } 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": 1, "getTimeList": newTeamList, "attachBattleSkill": [ { "petId": goalPet.petId, "level": goalPet.level, "skillList": goalPet.skills, "getTime": HireArr[index].getTime, "otherUid": parseInt(SelfUid), "type": HireArr[index].type } ] }) await sendMsg(1026, { "levelId": 1, "getTimeList": 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 logTextArea = document.createElement("textarea"); logTextArea.style.display = "block"; logTextArea.style.width = "90%"; logTextArea.style.height = "210px"; logTextArea.style.margin = "10px auto"; div.appendChild(logTextArea); // 将 div 添加到页面中 let bdTag = document.getElementsByTagName("html")[0] bdTag.appendChild(div); } 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) => { 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 = document.querySelector("iframe").contentWindow.SocketSeqMsgs.prototype.createMsg; // 重写createMsg方法 document.querySelector("iframe").contentWindow.SocketSeqMsgs.prototype.createMsg = function (t, e) { // 执行原有的createMsg方法 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"; } } catch (e) { } console.log("=======") } } function backMSg() { // 保存原函数 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)); }; // Your code here... })();