GN_ResourcesCost

Подсчет стоимости ресурсов в золоте

目前為 2016-01-14 提交的版本,檢視 最新版本

// ==UserScript==
// @name        GN_ResourcesCost
// @namespace   Gradient
// @description Подсчет стоимости ресурсов в золоте
// @include     /^https{0,1}:\/\/((www|qrator)\.heroeswm\.ru|178\.248\.235\.15)\/.+/
// @exclude     /^https{0,1}:\/\/((www|qrator)\.heroeswm\.ru|178\.248\.235\.15)\/(login|war|cgame|frames|chat|chatonline|ch_box|chat_line|ticker|chatpost)\.php.*/
// @version     1.0.0
// ==/UserScript==

"use strict";

//----------------------------------------------------------------------------//

(function(){ // wrapper start
  
//----------------------------------------------------------------------------//
// UnifiedLibrary 1.5.0 start
//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
// SysUtils
//----------------------------------------------------------------------------//

var GN_SysUtils = new SysUtils();
var SU = GN_SysUtils;

//----------------------------------------------------------------------------//

function SysUtils(){  // wrapper start

//----------------------------------------------------------------------------//
  
this.show_error = function(error_string){
  throw new Error(error_string);
};
  
//----------------------------------------------------------------------------//  

this.load_value = function(value, def){
  var div = document.getElementById('GN_GM_Handler');
  div.setAttribute('desc',      value);
  div.setAttribute('operation', 'load');
  
  div.click();
  
  if(div.getAttribute('state') != 'complete')
    this.show_error('Ошибка при загрузке значения');

  return (div.getAttribute('is_null') == 'true' ? def : div.getAttribute('value'));
};

//----------------------------------------------------------------------------//

var current_id = null;

//----------------------------------------------------------------------------//

this.check_login = function(){
  var re = /.*?pl_id=(\d+)[^\d]*?/gmi;
  var matches = re.exec(document.cookie.toString());

  if(!matches)
    this.show_error('Пользователь не авторизован');

  current_id = +matches[1];
};

//----------------------------------------------------------------------------//

this.check_login();

//----------------------------------------------------------------------------//  
  
} // wrapper end

//----------------------------------------------------------------------------//
// CommonValues
//----------------------------------------------------------------------------//

var GN_CommonValues = new CommonValues();

//----------------------------------------------------------------------------//

function CommonValues(){  // wrapper start

//----------------------------------------------------------------------------//
// Basic resources
//----------------------------------------------------------------------------//

this.basic_resources = JSON.parse(SU.load_value('GN_CommonValues_BasicResources', '[]'));
  
//----------------------------------------------------------------------------//
  
} // wrapper end

//----------------------------------------------------------------------------//
// UnifiedLibrary end
//----------------------------------------------------------------------------//
 
var CV = GN_CommonValues;

start_work();
  
//----------------------------------------------------------------------------//
  
function start_work(){
  var gold_img    = 'http://dcdn3.heroeswm.ru/i/gold.gif';
  var market_link = '/auction.php?cat=res&sort=0&type=';
  
  var gold_tds = document.querySelectorAll('td > img[width="24"][height="24"][src="' + gold_img + '"]');
  
  var trs = [];
  for(var i = 0; i < gold_tds.length; ++i){
    var count    = gold_tds[i].parentNode.parentNode.childElementCount;
    var td_count = gold_tds[i].parentNode.parentNode.querySelectorAll('tr > td').length;

    if(count > 2 && count % 2 == 0 && count == td_count)
      trs.push(gold_tds[i].parentNode.parentNode);
  }
  
  trs.forEach(function(current){
    var amount = 0;
    var tds = current.querySelectorAll('tr > td');
    
    for(var i = 0; i < tds.length; i += 2){
      var res_td   = tds[i];
      var count_td = tds[i + 1];

      var img = res_td.querySelector('img');
      var resource = resource_by_name(img.title);
      
      if(resource){
        amount += resource.min_price * +count_td.textContent.replace(/,/g, '');
        
        if(resource.market_type)
          res_td.innerHTML = '<a href="' + market_link + resource.market_type + '">' + res_td.innerHTML + '</a>'; // NB inner
      }
    }
    
    var td = tds[1].cloneNode(true);
    td.textContent = ' = ';
    current.appendChild(td);
    
    td = tds[0].cloneNode(true);
    current.appendChild(td);
    
    td = tds[1].cloneNode(true);
    td.textContent = amount;
    current.appendChild(td);
  });
}
  
//----------------------------------------------------------------------------//
  
function resource_by_name(name){
  var resources = CV.basic_resources;
  
  for(var i = 0; i < resources.length; ++i)
    if(resources[i].name == name)
      return resources[i];

  return null;
}  

//----------------------------------------------------------------------------//
  
}());  // wrapper end

//----------------------------------------------------------------------------//

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址