您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
HWM TransferLog Balance
当前为
// ==UserScript== // @name TransferLog balance // @author Neleus // @namespace Neleus // @description HWM TransferLog Balance // @version 1.1 // @include /^https?:\/\/(www|mirror|my)?\.?(heroeswm|lordswm)\.(ru|com)\/pl_transfers\.php.*/ // @grant none // @run-at document-end // @license GNU GPLv3 // ==/UserScript== (function () { "use strict"; // Helper functions const qSelect = (selector, parent = document) => parent.querySelector(selector); const parsePage = (text, regex) => { const matches = []; let match; while ((match = regex.exec(text)) !== null) { matches.push(match[1]); } return matches; }; const testURL = (regex) => regex.test(window.location.href); // Функция форматирования строки const makeLine = (line, gold, color) => `<span style='background:rgba(${ color == "green" ? "100,255,100,.1" : "255,100,100,.1" })'>${line} <b style='color:${color}'>${gold}</b></span>`; // Основная функция парсера протокола передач const protocolParser = () => { const div = qSelect('[class="global_a_hover"]'); if (!div) return; const DATA = document.body.innerHTML; const lines = parsePage(DATA, /( .+)<br>/g); let sum = 0, gold = 0, newline, com, html = ""; for (let line of lines) { newline = line; // Обмен бриллиантов на золото: // "2 бриллианта обменяно на 10000 золота" if (/обменян/.test(line)) { gold = +/на <b>(\d+)/.exec(line)[1]; newline = makeLine(line, "+" + gold, "green"); sum += gold; } // Передача золота игроку\клану: // "Передано 100000 Золото для bratishkinoff, доп. комиссия 1000: В долг" // "Передано 65000 золота на счет клана #9704" if (/nbsp;[\d- :]+ Передано \d+ (?:Золото|золота)/.test(line)) { com = /комиссия (\d+)/.exec(line); gold = -/(\d+) (?:Золото|золота)/.exec(line)[1] - (com ? com[1] : 0); newline = makeLine(line, gold, "red"); sum += gold; } // Получение предмета\элемента за золото: // "Получен предмет 'Амулет вора' [60/60] от Что_то_с_чем_то за 7 Золото" // "Получен элемент 'цветок ветров' 1 шт. от naTcaHx за 2400 золота" if (/Получен .+?за \d+ (?:Золото|золота)/.test(line)) { gold = -/за (\d+)/.exec(line)[1]; newline = makeLine(line, gold, "red"); sum += gold; } // Передача предмета\элемента за золото: // "Передан предмет 'Великий меч полководца' [81/89] c возвратом до 25-01-20 22:20 на 81 боев для Nexik за 1 Золото, комиссия 1" // "Передан элемент 'абразив' 1 шт. для Algor за 950 золота, комиссия 10" // Продажа лота на рынке: // "Продан предмет "Клевер фортуны" [57/68] за 63999 золота для Astronics - лот #101698940, комиссия: 640" if ( /nbsp;[\d- :]+ (?:Передан .+?\d+ (?:Золото|золота)|Продан)/.test(line) ) { com = /комиссия:* (\d+)/.exec(line); gold = +/за (\d+)/.exec(line)[1] - (com ? com[1] : 0); newline = makeLine(line, "+" + gold, "green"); sum += gold; } // Получение предмета и золота за ремонт: // "Получен предмет 'Клинок феникса' [0/73] на ремонт от Крюгерс. Получено за ремонт: 9212 (101%)" if (/Получен .+?на ремонт/.test(line)) { const g = /ремонт: (\d+)/.exec(line)[1]; const p = /(\d+)%/.exec(line)[1]; gold = Math.ceil(g / p) * (p - 100); // вычисляем фактический доход кузнеца if (gold >= 0) { newline = makeLine(line, "+" + gold, "green"); } else { newline = makeLine(line, gold, "red"); } sum += gold; } // Передача арта кузнецу и плата за ремонт арта: // "Передан предмет 'Меч холода' [0/53] на ремонт для Евфлантовичок. Оплачено за ремонт: 17600 (100%), доп. комиссия: 17" if (/Оплачено за/.test(line)) { gold = -/ремонт: (\d+)/.exec(line)[1] - /комиссия: (\d+)/.exec(line)[1]; newline = makeLine(line, gold, "red"); sum += gold; } // Аренда арта: // "Арендован артефакт 'Кольцо солнца' [52/66] у "Склада" #38 (Клан #1519) на 5 боев до 2020.03.22 11:01. Стоимость: 1060, комиссия: 11" if (/Арендован/.test(line)) { gold = -/Стоимость: (\d+)/.exec(line)[1] - /комиссия: (\d+)/.exec(line)[1]; newline = makeLine(line, gold, "red"); sum += gold; } // Получение золота от игрока или Империи: // "Получено 101000 Золото от bratishkinoff" // "Получено 12755 золота от Империя: Победа в 277-м турнире на выживание среди 7 уровней, Маги! Первый результат. +10 очков ГО." // Взятие денег с клана\дома: // "Взято 75000 золота со счета клана #2304: закупка элементов" // "Взято 150000 золота со счета "Дома" #1448" // Заработок кузнеца с ремонта складского арта: // "Взят в ремонт артефакт 'Кинжал пламени' [0/57] у "Склада" #2 (Клан #276) до 2020.03.07 19:47. Заработано: 208 золота" if (/Получено \d+ (?:Золото|золота)|Взято|Заработано/.test(line)) { gold = +/(\d+) (?:Золото|золота)/.exec(line)[1]; newline = makeLine(line, "+" + gold, "green"); sum += gold; } // Возвращение неиспользованного арта с возвратом денег: // "Вернул 'Лук света' [28/74] на "Склад" #38 (Клан #1519). Неиспользовано боев: 1. Возврат золота: 236" if (/Неиспользовано/.test(line)) { gold = +/золота: (\d+)/.exec(line)[1]; newline = makeLine(line, "+" + gold, "green"); sum += gold; } // Штраф игрока: "Игрок оштрафован на 60000 золота. // от Kentas-" // Оплата комнаты: "Оплачено 700 золота (100/д) за аренду комнаты #1 до 12:38 02-04, дом #101 (владелец: Ка-51к)" // Покупка лота с рынка: "Куплен "лунный камень" за 2530 золота у UR1Y - лот #101770461" // Внесение золота на счёт дома: "Внесено 60000 золота на счет "Дома" #1448" if ( /Игрок оштрафован|Оплачено \d+|nbsp;[\d- :]+ Куплен|Внесено/.test(line) ) { gold = -/(\d+) золота/.exec(line)[1]; newline = makeLine(line, gold, "red"); sum += gold; } html += newline + "<br>"; } div.innerHTML = html; // Баланс золота div.insertAdjacentHTML( "beforeend", `<br><b style='padding:20'>Баланс золота: <span style='color:${ sum < 0 ? "red" : "green" }'>${sum > 0 ? "+" : ""}${sum.toLocaleString("en-US")}</span></b>` ); }; // Проверяем, что мы на странице протокола передач if (testURL(/pl_transfers/)) { // Запускаем парсер после загрузки страницы if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", protocolParser); } else { protocolParser(); } } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址