您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
считаем разные циры для рынка города
// ==UserScript== // @name Market_analitics // @namespace virtonomica // @description считаем разные циры для рынка города // @description v1.3 - адаптация под https // @description v1.2 - Добавлен показ штук товара у каждого продавца // @description v1.1 - Исправлена ошибка в определнии доли местных, если они не на первом месте в списке // @description v1.03 - показ числа едениц товара, проданных игроками // @version 1.3 // @include https://*virtonomic*.*/*/main/globalreport/marketing/by_trade_at_cities/* // @include https://*virtonomic*.*/*/window/globalreport/marketing/by_trade_at_cities/* // @include http://igra.aup.ru/*/main/globalreport/marketing/by_trade_at_cities/*/*/*/* // @include http://igra.aup.ru/*/window/globalreport/marketing/by_trade_at_cities/* // ==/UserScript== var run = function() { var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window); $ = win.$; function numberFormat (number) { number += ''; var parts = number.split('.'); var int = parts[0]; var dec = parts.length > 1 ? '.' + parts[1] : ''; var regexp = /(\d+)(\d{3}(\s|$))/; while (regexp.test(int)) { int = int.replace(regexp, '$1 $2'); } return int + dec; } //alert( 'start'); var val = $("table th:contains('Местные поставщики')").parent().parent(); //alert( val.html() ); // Цена var pr = $("th:contains('Цена')", val).parent(); //alert(pr.html() ); // ищем первый td var local_price = $("td:first", pr); // цена местных var fl_local_price = /([\D]+)*([\d\s]+\.*\d*)/.exec(local_price.text())[2].replace(" ", "").replace(" ", ""); var avg_price = $("td:last", pr); // средняя цена всех магазинов var fl_avg_price = /([\D]+)*([\d\s]+\.*\d*)/.exec(avg_price.text())[2].replace(" ", "").replace(" ", ""); //alert( local_price.text() + " \n" + avg_price.text() ); //alert( fl_local_price ); //alert( 'start'); var val2 = $("td:contains('Местные поставщики')").eq(1).next().next(); //alert( val2.html() ); //var local_value = $("td", val2).eq(4); // Доля местных var local_value = $("td:contains('Местные поставщики')").eq(1).next().next(); //alert( "["+local_value.text() + "]"); // Фикс на отсутстиве местных if (local_value.text() != "") { var fl_local_value = /([\d\s]+\.*\d*)/.exec(local_value.text() )[1]; //alert( fl_local_value ); } else { fl_local_value = 0; } var market_value = $("td:contains('Объем рынка:')").parent(); var out = $("td", market_value).eq(4); var fl_market_value = /([\D]+)*([\d\s]+\.*\d*)/.exec(out.text() )[2].replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", ""); //alert(fl_market_value); $("td", market_value).eq(3).append("<br>").append("Емкость рынка:"); //alert(out.html() ); var str = fl_market_value * fl_local_price; out.append("<br>").append( "<i><b>"+numberFormat (Math.round(str) ) + " </b></i>$"); if ( fl_local_value >= 100) return; // цена игроков var pl_price = (fl_avg_price - fl_local_value*fl_local_price/100 )/(100 - fl_local_value)*100; pl_price = Math.round( pl_price*100)/100; $("td", market_value).eq(5).append("<br>").append("Цена игроков:").append("<br>").append("Емкость игроков:").append("<br><br>").append("Доля:"); var pl_size = Math.round ( fl_market_value* (100 - fl_local_value) * pl_price / 100 ); var pl_count = Math.round ( fl_market_value* (100 - fl_local_value) /100 ); var z = Math.round (100*pl_size / str)/100; $("td", market_value).eq(6).append("<br>").append("<i>" + pl_price + "</i> $").append("<br>").append("<b>" + numberFormat(pl_size) + "</b> $<br> (" +numberFormat(pl_count) +" ед.)").append("<br>").append("<b>" + numberFormat(z) + "</b>"); //alert( pl_price ); // показ штук у игроков var dat = $("table.grid ~ table"); var pl_dat = $("table", dat).eq(0); var table = $("td", pl_dat); var index = 0; table.each( function(){ if (index%6 == 4) { fl_str_value = /([\d\s]+\.*\d*)/.exec( $(this).text() )[1] //alert( $(this).html() ); str_count = Math.round ( fl_market_value * fl_str_value /100); //alert( str_count ); $(this).css("font-weight","bold"); $(this).parent().append("<td> <font color=grey>" + numberFormat(str_count) + "</font>"); } index++; }); //alert( table.length ); } // Хак, что бы получить полноценный доступ к DOM >:] var script = document.createElement("script"); script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script);