您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
lootlink.me 自动领取日常奖励,自动抽奖
- // ==UserScript==
- // @name Auto Loot
- // @namespace https://blog.chrxw.com
- // @version 1.2
- // @description lootlink.me 自动领取日常奖励,自动抽奖
- // @author Chr_
- // @include https://www.lootlink.me/*
- // @license AGPL-3.0
- // @icon https://blog.chrxw.com/favicon.ico
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- showLabel();
- dailyClaim();
- add10xBtn();
- })();
- // 显示标签
- function showLabel() {
- let uname = document.querySelector('#profileMenuInvoker>span');
- let tag1 = document.createElement('span');
- tag1.textContent = ' (反馈 ';
- tag1.addEventListener('click', () => {
- window.open('https://keylol.com/t676764-1-1');
- });
- let tag2 = document.createElement('span');
- tag2.textContent = '| By Chr_) ';
- tag2.addEventListener('click', () => {
- window.open('https://blog.chrxw.com');
- });
- uname.appendChild(tag1);
- uname.appendChild(tag2);
- }
- // 每日签到&自动开箱
- function dailyClaim() {
- const MAX = 20;
- let tries = 0;
- clickDaily();
- function clickDaily() {
- let coin = document.querySelector('#wallet2 a[data-modal-target="#crate-modal"]');
- if (coin) {
- coin.click();
- tries = 0;
- retry(claimCoin, 1000);
- } else {
- let coin = document.querySelector('#wallet2 div:not([style*="display:none"])>[src="/images/art/crate.png"]:not(.grayscale)');
- if (coin) {
- coin.parentElement.click();
- tries = 0;
- retry(claimCoin, 1000);
- }
- }
- }
- function claimCoin() {
- let claimbtn = document.querySelector("#cratetab > a");
- if (claimbtn) {
- claimbtn.click();
- tries = 0;
- retry(closePanel, 1000);
- } else {
- retry(claimCoin, 500);
- }
- }
- function closePanel() {
- let title = document.querySelector("#cratetab > h4");
- if (title.textContent.search('Opened') != -1 || title.textContent.search('Received') != -1) {
- let closebtn = document.querySelector("#crate-modal > button");
- closebtn.click();
- window.location.reload();
- } else {
- retry(closePanel, 500);
- }
- }
- function retry(foo, t) {
- console.log(foo.name);
- if (tries++ <= MAX) {
- setTimeout(() => {
- try {
- foo();
- }
- catch (e) {
- console.log(e);
- throw e;
- }
- }, t);
- } else {
- console.log('操作超时');
- }
- }
- }
- // 添加x连按钮
- function add10xBtn() {
- function genBtn(txt, time, index) {
- let btn = document.createElement('button');
- console.log('loot' + time.toString() + 'x' + (index).toString())
- btn.id = 'loot' + time.toString() + 'x' + (index).toString();
- btn.onclick = loot10x;
- btn.className = 'float-right btn btn-lg u-btn-cyan g-color-white u-btn-hover-v2-1';
- btn.textContent = txt;
- return btn;
- }
- let lootBtns = document.querySelectorAll('button[data-modal-target="#loot-modal"]');
- let i = 0;
- for (let lootBtn of lootBtns) {
- let bar = lootBtn.parentElement.parentElement.children[0];
- let box = document.createElement('div');
- let btn5x = genBtn('五连', 5, i);
- let btn10x = genBtn('十连', 10, i);
- let btn100x = genBtn('梭哈', 100, i);
- box.appendChild(btn5x);
- box.appendChild(btn10x);
- box.appendChild(btn100x);
- bar.insertBefore(box, bar.children[0]);
- i++;
- }
- }
- // x连
- function loot10x(e) {
- const MAX = 50;
- let LOOT = 0;
- let tries = 0;
- let count = 0;
- clickLoot();
- function clickLoot() {
- let id = e.target.getAttribute('id');
- let t = id.match(/^loot(\d+)x(\d+)$/);
- t = t ? [t[1], t[2]] : [0, 0];
- let lootBtns = document.querySelectorAll('button[data-modal-target="#loot-modal"]');
- if (lootBtns == null) {
- alert('未找到Loot按钮');
- return;
- }
- LOOT = Number(t[0]);
- lootBtns[Number(t[1])].click();
- tries = 0;
- retry(claimLoot, 1000);
- }
- function claimLoot() {
- let lootbtn = document.querySelector('#rollit');
- if (lootbtn) {
- document.getElementById('rollmessage').textContent = '第' + (count + 1).toString() + '/' + LOOT.toString() + '抽';
- lootbtn.click();
- tries = 0;
- retry(waitLoot, 1000);
- } else {
- retry(claimLoot, 1000);
- }
- }
- function waitLoot() {
- let lootbtn = document.querySelector("#rollit");
- if (lootbtn.textContent.search('Try') != -1) {
- if (++count >= LOOT) {
- document.getElementById('rollmessage').textContent = '抽完啦';
- console.log('done');
- return;
- }
- tries = 0;
- retry(claimLoot, 1000);
- } else {
- retry(waitLoot, 1000);
- }
- }
- function retry(foo, t) {
- console.log(foo.name);
- if (tries++ <= MAX) {
- setTimeout(() => {
- try {
- if (document.getElementById('rolltab') == null) {
- console.log('cancel');
- return;
- }
- foo();
- }
- catch (e) {
- console.log(e);
- throw e;
- }
- }, t);
- } else {
- console.log('操作超时');
- }
- }
- }