您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Помощь
// ==UserScript== // @name DailyHelper // @author omne // @namespace omne // @connect daily.heroeswm.ru // @description Помощь // @version 0.1 // @include /^https{0,1}:\/\/((www|qrator|)\.(heroeswm|lordswm)\.(ru|com)|178\.248\.235\.15)\/(leader_guild|war).php/ // @grant GM_xmlhttpRequest // @license GNU GPLv3 // ==/UserScript== (function() { var host = location.host; var imgHost = host.includes("my.") ? "//cfcdn.lordswm.com" : "//dcdn.heroeswm.ru"; var dailyHost = host.includes("my.") ? "//daily.lordswm.com" : "//daily.heroeswm.ru"; if (/leader_guild/.test(location.href)) { if (document.documentElement.innerHTML.indexOf("Опасная цель устранена!") != -1) { let cent = document.createElement('center'); cent.innerHTML = "Вы молодцы! Приходите завтра." document.querySelector('.wbwhite').append(cent); } else { var lg; if (document.documentElement.innerHTML.indexOf("Ваша армия слишком слаба") == -1) { lg = Math.ceil((Number(document.documentElement.innerHTML.match("attr_leadership.+?<b>([^<]+)")[1].replace(",", "")) - 10001)/1000); } else { lg = Math.ceil((Number(document.documentElement.innerHTML.match("на ([0-9,]+) или больше очков")[1].replace(",", "")) - 9999)/1000); } var creatures = {}; getCol(); } } function getCol() { GM_xmlhttpRequest({ method: "GET", url: "/leader_army.php", onload: function(res) { let data = res.responseText; let monsters = []; monsters[0] = data.match(/obj\[[0-9]+\]\[\'monster_id\'\] = \'[^\']+\'/g); monsters[1] = data.match(/obj\[[0-9]+\]\[\'count\'\] = [0-9]+/g); for (let i = 0; i < monsters[0].length; i++) { let id = monsters[0][i].match(/obj\[[0-9]+\]\[\'monster_id\'\] = \'([^\']+)\'/)[1]; let count = monsters[1][i].match(/obj\[[0-9]+\]\[\'count\'\] = ([0-9]+)/)[1]; creatures[id] = Number(count); } getLgd(dailyHost + "/api.php?t=lgd&lg=" + lg); } }); } function getCre(id, img, rarity, count, flag) { return '<div class="cre_creature" style="width: 45px"><div class="cre_mon_parent" style="height:37px">' + '<img src="' + imgHost + '/i/army_html/fon_lvl' + rarity + '.png?v=1" width="45" height="37" class="cre_mon_image2">' + '<img src="' + imgHost + '/i/portraits/' + img + 'anip33.png" width="45" height="37" class="cre_mon_image1">' + '<img src="' + imgHost + '/i/army_html/frame_lvl' + rarity + '.png?v=1" width="45" height="37" class="cre_mon_image2" title="" border="0">' + '</div>' + '<div class="cre_amount" style="font-size:100%">' + count + '</div>' + '<div class="' + (flag ? "y":"n") + '"></div></div>'; } var post_army = Array(); function army_try_to_submit(num) { let body = post_army[num]; let ReqSend = new XMLHttpRequest(); ReqSend.open('POST', '/leader_army_apply.php', true); ReqSend.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ReqSend.addEventListener("load", function() {location.reload()}); ReqSend.send(body); } function getLgd(url) { GM_xmlhttpRequest({ method: "GET", url: url, onload: function(res) { console.log(creatures); let cent = document.createElement('center'); cent.innerHTML += '<style>.y {background-color: green;}.n {background-color: red;}.y, .n {position: absolute;left: 2px;top: 2px;width: 10px;height: 10px;border-radius: 5px;}.examples{width:450px;border-bottom: 1px solid #cad3dc;border-left: 1px solid #cad3dc;}.cont{border-right: 1px solid #cad3dc;border-top: 1px solid #cad3dc;}.info{padding:10px;flex:1}.battle{flex:7;text-align: left;}.examples>div{padding:5px}.cont{display:flex;align-items: center;}.info, .info *{font-size:12px}</style>'; cent.innerHTML += '<b>Доступные прохождения:</b>'; let battleExamples = document.createElement('div'); battleExamples.className = "examples"; let closedBattleExamples = document.createElement('div'); closedBattleExamples.className = "examples"; let data = JSON.parse(res.responseText); console.log(data); for(let i in data) { let cont = document.createElement('div'); cont.className = "cont"; let info = document.createElement('div'); info.className = "info"; info.innerHTML += data[i].proc + "%<BR><a href = '/war.php?lt=-1&warid=" + data[i].warid + "&show_for_all="+ data[i].key +"'>Бой</a>"; cont.append(info); let battle = document.createElement('div'); battle.className = "battle"; post_army[i] = "idx=0"; let battleColsed = false; for (let j in data[i].army) { let flag = false; if ((data[i].army[j].id in creatures)&&(creatures[data[i].army[j].id] > data[i].army[j].count)) { post_army[i] += "&countv" + (Number(j) + 1) + "=" + data[i].army[j].count + "&mon_id" + (Number(j) + 1) + "=" + data[i].army[j].id; flag = true; } else { battleColsed = true; } battle.innerHTML += getCre(data[i].army[j].id, data[i].army[j].img, data[i].army[j].rarity, data[i].army[j].count, flag); } battle.innerHTML += '<img title = "Набрать эту армию" id = "b'+ i +'" style = "cursor:pointer;float:right" width = "35px" src="' + imgHost + '/i/combat/btn_recruit.png">'; cont.append(battle); if (battleColsed) { closedBattleExamples.append(cont); } else { battleExamples.append(cont); } } cent.append(battleExamples); cent.innerHTML += '<b>Недоступные прохождения:</b>'; cent.append(closedBattleExamples); document.querySelector('.wbwhite').append(cent); for (let i in data) { document.getElementById("b"+ i).onclick = function() {army_try_to_submit(i)}; } } }); } })();