您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Сортирует юниты ГЛ по лидерству и показывает очки лидерства. Так же есть сортировка по инициативе.
// ==UserScript== // @name Cортировка юнитов ГЛ по лидерству или инициативе // @version 1.0.3 // @description Сортирует юниты ГЛ по лидерству и показывает очки лидерства. Так же есть сортировка по инициативе. // @author isnt // @include /^https:\/\/((www|qrator|my)(\.heroeswm\.ru|\.lordswm\.com))\/leader_army\.php.*/ // @grant GM_setValue // @grant GM_getValue // @grant GM.xmlHttpRequest // @namespace isnt // ==/UserScript== (function() { 'use strict'; let sorting_key = 1; let race = 12; const showCount = () => { let nf = new Intl.NumberFormat('en-US'); let arrDOM = [...document.querySelectorAll("#cre_top > div")]; let bookmark = document.querySelectorAll(".leader_bookmarks > div"); for (let i = 1; i < bookmark.length; i++) { if (bookmark[2].className == 'selected_bookmark') race = 12; else if (bookmark[13].className == 'selected_bookmark') race = 0; else if (bookmark[i].className == 'selected_bookmark') race = i - 2; } if (race == 12) { for (let i = 1; i < obj.length; i++) { if (obj[i] == undefined) continue; arrDOM[i - 1].sumCount = obj[i].cost * obj[i].count; arrDOM[i - 1].innerHTML += `<p style="display: none;position: absolute; z-index: 10; top: -8px; left: 6px; font-weight: 600; font-size: 11px; color: #140e06;background-color: #f5c140;padding: 1px 5px;border-radius: 4px;">${nf.format(arrDOM[i-1].sumCount)}</p>` } } else { let arr = []; for (let i = 1; i < obj.length - 1; i++) { if (obj[i].race !== race) continue; arr.push(obj[i].cost * obj[i].count); // arrDOM[i-1].sumCount = obj[i].cost * obj[i].count; // arrDOM[i-1].innerHTML += `<p style="display: none;position: absolute; z-index: 10; top: -8px; left: 6px; font-weight: 600; font-size: 11px; color: #140e06;background-color: #f5c140;padding: 1px 5px;border-radius: 4px;">${nf.format(arrDOM[i-1].sumCount)}</p>` } for (let i = 0; i < arr.length; i++) { arrDOM[i].sumCount = arr[i]; arrDOM[i].innerHTML += `<p style="display: none;position: absolute; z-index: 10; top: -8px; left: 6px; font-weight: 600; font-size: 11px; color: #140e06;background-color: #f5c140;padding: 1px 5px;border-radius: 4px;">${nf.format(arrDOM[i].sumCount)}</p>` } } document.querySelectorAll("#cre_top > div").forEach(function(el) { el.addEventListener('mouseenter', function(e) { // this.children[3].style.display = 'block'; }); el.addEventListener('mouseleave', function(e) { // this.children[3].style.display = 'none'; }); }); } const sumLeaders = () => { // let arrDOM = [...document.querySelectorAll("#cre_top > div")]; let i = document.createElement("div"); i.setAttribute('class', 'bookmark'); i.title = 'Cортировка по очкам лидерства'; // i.setAttribute('style', 'position: absolute; top: 12px; left: 24px;'); i.innerHTML = `<img src="https://i.imgur.com/Af5HMCT.png" style="width: 24px;">`; i.addEventListener("click", function(e) { sortLeaders(); }); document.querySelector("#army_info_div > div.leader_bookmarks").prepend(i); showCount(); // for(let i = 1; i < obj.length; i++) { // if(obj[i] == undefined) continue; // arrDOM[i-1].sumCount = obj[i].cost * obj[i].count; // arrDOM[i-1].innerHTML += `<p style="display: none;position: absolute; z-index: 10; top: -8px; left: 6px; font-weight: 600; font-size: 11px; color: #140e06;background-color: #f5c140;padding: 1px 5px;border-radius: 4px;">${nf.format(arrDOM[i-1].sumCount)}</p>` // } } const initBtn = () => { let i = document.createElement("div"); i.setAttribute('class', 'bookmark'); i.title = 'Cортировка по инициативе'; i.innerHTML = `<img src="https://dcdn.heroeswm.ru/i/icons/attr_initiative2.png" style="width: 24px;">`; i.addEventListener("click", function(e) { sortInit(); }); document.querySelector("#army_info_div > div.leader_bookmarks").prepend(i); } window.onload = function() { initBtn(); sumLeaders(); let bookmark = document.querySelectorAll(".leader_bookmarks > div"); bookmark.forEach(function(el) { if (el.title !== 'Cортировка по очкам лидерства') { el.addEventListener('click', function(e) { // showCount(); }); } }); } const sortLeaders = () => { if (sorting_key == 1) { // arr.sort((a, b) => Number(b.sumCount) - Number(a.sumCount)).forEach((a, i) => { // a.parentElement.appendChild(a); // }) obj.sort((a, b) => b.cost * b.count - a.cost * a.count) if (obj[0] !== 0) obj.unshift(0); show_army(); showCount(); sorting_key = 0; } else { // arr.sort((a, b) => Number(a.sumCount) - Number(b.sumCount)).forEach((a, i) => { // a.parentElement.appendChild(a); // }) obj.sort((a, b) => a.cost * a.count - b.cost * b.count) if (obj[0] !== 0) obj.unshift(0); show_army(); showCount(); sorting_key = 1; } } const reInit = (init) => { let re1 = /(.*)<font/gm; let re2 = /\+([\s\S]+?)%/gm; let x = ''; if (/font/i.test(init)) { let plus = re2.exec(init); x = re1.exec(init); x = Number(x[1]) + Number(plus[1]); } else x = init; return x; } const sortInit = () => { if (sorting_key == 1) { obj.sort((a, b) => reInit(b.maxinit) - reInit(a.maxinit)) if (obj[0] !== 0) obj.unshift(0); show_army(); showCount(); sorting_key = 0; } else { obj.sort((a, b) => reInit(a.maxinit) - reInit(b.maxinit)) if (obj[0] !== 0) obj.unshift(0); show_army(); showCount(); sorting_key = 1; } } })();