您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
shows price for 1 battle from shop, market and map
// ==UserScript== // @name hwm_price_for_one_battle // @namespace http://tampermonkey.net/ // @version 1.1 // @author Лосось // @description shows price for 1 battle from shop, market and map // @match /^https{0,1}:\/\/((www|qrator|my)\.(heroeswm|lordswm)\.(ru|com)|178\.248\.235\.15)\/(art_info).php*/ // @include /^https{0,1}:\/\/((www|qrator|my)\.(heroeswm|lordswm)\.(ru|com)|178\.248\.235\.15)\/(art_info).php*/ // @license MIT // @grant none // ==/UserScript== (function () { 'use strict'; let query = '&sort=204&type=0&' const createElement = (el, style, innerText) => { let element = document.createElement(el); if (style) element.style = style; if (innerText) element.innerText = innerText; return element; } let tables = [...document.getElementsByTagName('table')]; let amount = tables[tables.length - 1].innerText; let shopStrength = Number(document.getElementsByClassName('s_art_inside')[0].innerText.match(/прочность: \d+/gi)[0].match(/\d+/gi).join('')); amount = Number(amount.replace(',',''))*1.05; let infoBlockHtml = document.getElementById('set_mobile_max_width'); let myInfoBlock = createElement('div'); let amountInfoSpan = createElement('div', '', `Цена за бой в магазине ${Math.round(amount / shopStrength)}`); myInfoBlock.appendChild(amountInfoSpan); infoBlockHtml.insertBefore(myInfoBlock, infoBlockHtml.lastElementChild); let links = document.querySelectorAll('.art_info_left_block')[0].lastElementChild; links = [...links.getElementsByTagName('a')]; let linkToMarket; let linkToMap; links.forEach(el => { if (el.innerText.trim() === 'На рынке') { linkToMarket = el.href; } else if (el.innerText.trim() === 'На карте') { linkToMap = el.href; } }) linkToMarket = linkToMarket.split('&'); linkToMarket.splice(1, 0, query); linkToMarket = linkToMarket.join(''); const getMarket = (doc) => { let priceBlock = doc.getElementsByClassName('wbwhite')[0]; let price = Number(priceBlock.getElementsByTagName('table')[3].getElementsByTagName('td')[1].innerText.replace(',', '')); let strength = Number(priceBlock.getElementsByTagName('table')[1].getElementsByTagName('td')[1].innerText.match(/Прочность: .+/gi)[0].match(/\d+/gi)[0]); let priceForOneBattle = createElement('div', '', `Цена за бой на рынке ${Math.round(price / strength)}`); myInfoBlock.appendChild(priceForOneBattle); } const getMap = (doc) => { let table = doc.getElementById('global_table_div'); let amount = Number(table.getElementsByTagName('tbody')[0].firstChild.lastChild.innerText.trim().replace(',', '')); let priceForOneBattle = createElement('div', '', `Цена за бой на предприятии ${Math.round(amount / shopStrength)}`); myInfoBlock.appendChild(priceForOneBattle); } const fetchXml = (link, callback) => { if (!link) return; const xhr = new XMLHttpRequest(); xhr.open('get', link); xhr.setRequestHeader('Content-type', 'text/html; charset=windows-1251'); if (xhr.overrideMimeType) { xhr.overrideMimeType('text/html; charset=windows-1251'); } xhr.addEventListener('load', () => { let parser = new DOMParser(); let doc = parser.parseFromString(xhr.responseText, "text/html"); callback(doc); }) xhr.send(); } fetchXml(linkToMarket, getMarket); fetchXml(linkToMap, getMap) })();