您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Выбор существа ГЛ по текстовому вводу, воскресить всех по 1 клику
// ==UserScript== // @name GL_helper // @namespace http://tampermonkey.net/ // @version 1.03 // @description Выбор существа ГЛ по текстовому вводу, воскресить всех по 1 клику // @author Something begins // @license joe mamma // @match https://www.heroeswm.ru/leader_* // @match https://my.lordswm.com/leader_* // @match https://lordswm.com/leader_* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // ==/UserScript== const duration = 500; // Без паузы сервер гвд не обрабатывает все запросы по ресу существ const fetchWithDelay = async (url) => { await new Promise(resolve => setTimeout(resolve, 1000)); return fetch(url).then(response => console.log(response.status)); }; function recruitPage(){ if (location.href.includes("leader_army_exchange")) return; let chosen_creatures = []; let available_creatures = {} let army_pos_i = 1 function add_new_cre(cre_index, cre_count){ let index; if (obj_army.filter(cre => cre.link == 0).length>=1) index = obj_army.filter(cre => cre.link != 0).length+1 else { index = army_pos_i; army_pos_i++; if (army_pos_i>=8) army_pos_i = 1 } obj_army[index].link = cre_index; obj_army[index].count = 1; show_details(cre_index) if (chosen_creatures.length>7){ chosen_creatures = [] } } document.querySelector("#hwm_no_zoom").insertAdjacentHTML("beforebegin", `<div id="cre_select_div" style = " position: absolute; left: 10%; top: 15%; transform: translate(-50%, -50%);"> <label for="cre_select_input">Выбрать существо:</label> <input type="text" name="creature_choice" list="cre_select" id = "cre_select_input"> <datalist name="Выбрать существо" id="cre_select"></datalist> </div>` ) const datalist = document.querySelector("#cre_select") const input = document.querySelector("#cre_select_input") for (const creature of obj){ if (creature) { available_creatures[creature.name] = obj.indexOf(creature) datalist.insertAdjacentHTML(`beforeend`, `<option id = "cre_choice${obj.indexOf(creature)}" value="${creature.name}"></option>`); } } let eventSource = null; input.addEventListener('keydown', (event) => { eventSource = event.key ? 'input' : 'list'; }); function creRecruited(creLink){ const links = []; for (const cre of obj_army){ if (!cre) continue; links.push(parseInt(cre.link)); } return links.includes(parseInt(creLink)) ? true : false; } input.addEventListener('input', (event)=>{ let chosen_creature; let possible_options = [...datalist.children].filter(option => option.value.toLowerCase().includes(input.value.toLowerCase())); if (eventSource === 'list') chosen_creature = available_creatures[event.target.value.trim()] if (possible_options.length === 1) chosen_creature = possible_options[0].id.match(/cre_choice(\d+)/)[1]; if (chosen_creature !== undefined){ if (creRecruited(chosen_creature)) return; add_new_cre(chosen_creature, 1) chosen_creatures.push(chosen_creature) } }); const targetElement = document.querySelector('#reset_div'); console.log(targetElement); const observer = new MutationObserver((mutationsList) => { for (let mutation of mutationsList) { if (mutation.type === 'attributes' && mutation.attributeName === 'style') { targetElement.style.display = "inline"; } } }); observer.observe(targetElement, { attributes: true, attributeFilter: ['style'] }); } function resPage(){ const match = document.body.innerHTML.match(/sign=(.*?)\"/); if (!match) throw new Error("sign not found"); const sign = match[1]; document.querySelector("#set_mobile_max_width > div:nth-child(2)").insertAdjacentHTML("beforeend", ` <div class="home_button2 btn_hover2" style="width: 10em; margin: auto; margin-top: 0.5em; margin-bottom: 1em;"> <a id = "script_res" style="text-decoration: none;"><div style="width: 100%;">Воскресить всех</div></a> </div> `); const resButton = document.querySelector("#script_res"); const tbody = document.querySelector("#set_mobile_max_width > table > tbody"); const urls = []; for (const tr of tbody.children){ const all_a = Array.from(tr.querySelectorAll("a")); const war_a = all_a.filter(a => {return a.href.includes("war")})[0]; const cre_a = all_a.filter(a => {return a.href.includes("army_info")})[0]; if (!war_a || !cre_a) continue; const warid = war_a.href.match(/\d+/)[0]; const creId = cre_a.href.match(/name=(.*)/)[1]; urls.push(`${location.origin}/leader_guild.php?action=res_old&warid=${warid}&sign=${sign}&mon_id=${creId}`); } console.log(urls); resButton.addEventListener("click", event=>{ event.preventDefault(); resButton.parentElement.classList.add("home_disabled"); function fetchAll(i = 0){ if (i >= urls.length) location.reload(); fetch(urls[i]) .then(response => { //console.log(`Response from ${urls[i]}:`, response.status); }) .catch(error => { console.error(`Error fetching ${urls[i]}:`, error); }) .finally(() => { resButton.firstChild.innerHTML = `Рес ${i+1}/${urls.length}`; setTimeout(() => { fetchAll(i + 1); }, duration); }); } fetchAll(); }); } if (location.href.includes("leader_army")) recruitPage(); if (location.href.includes("leader_ressurect_old")) resPage();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址