The West - Market best bids

Market utility for highlighting the best bids!

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name The West - Market best bids
// @namespace TomRobert
// @author Esperiano (updated by Tom Robert)
// @description Market utility for highlighting the best bids!
// @include https://*.the-west.*/game.php*
// @version 0.4.8
// @grant none
// ==/UserScript==
TWMBB_inject = function () {
  var twmbbjs = document.createElement('script');
  twmbbjs.setAttribute('type', 'text/javascript');
  twmbbjs.setAttribute('language', 'javascript');
  twmbbjs.innerHTML = '(' + (function () {
      MBB = {
        version: '0.4.8',
        name: 'Market best bids',
        author: 'Esperiano (updated by Tom Robert)',
        minGame: '2.05',
        maxGame: Game.version.toString(),
        website: 'https://greasyfork.org/scripts/7391',
        items: {},
        lang: localStorage.getItem('scriptsLang') || Game.locale.substr(0, 2),
      };
      var fmfb = function (l) {
        return 'https://forum.the-west.' + l + '/index.php?conversations/add&to=Tom Robert';
      },
      twmbbApi = TheWestApi.register('MBB', MBB.name, MBB.minGame, MBB.maxGame, MBB.author, MBB.website);
      twmbbApi.setGui('<br>Market utility for highlighting the best bids.<br><br><span style="color:green;">Green</span> – Bid is lower than the purchase price.<br>Black -  Bid is equal to the purchase price.<br><span style="color:blue;">Blue</span> – Bid is between 100% and 200% of the purchase price.<br><span style="color:red;">Red</span> – Bid is more than 200% of the purchase price.<br><br>The sold item will always have the color of the lowest bid!<br><br><i>' + MBB.name + ' v' + MBB.version +
        '</i><br><br><br><b>Contact:</b><ul style="margin-left:15px;"><li>Send a message to <a target=\'_blanck\' href="http://om.the-west.de/west/de/player/?ref=west_invite_linkrl&player_id=647936&world_id=13&hash=7dda">Tom Robert on German world Arizona</a></li>' +
        '<li>Contact me on <a target=\'_blanck\' href="https://greasyfork.org/forum/messages/add/Tom Robert">Greasy Fork</a></li>' +
        '<li>Message me on one of these The West Forum:<br>/ <a target=\'_blanck\' href="' + fmfb('de') + '">deutsches Forum</a> / ' +
        '<a target=\'_blanck\' href="' + fmfb('net') + '">English forum</a> / <a target=\'_blanck\' href="' + fmfb('pl') + '">forum polski</a> / ' +
        '<a target=\'_blanck\' href="' + fmfb('es') + '">foro español</a> /<br>/ <a target=\'_blanck\' href="' + fmfb('ru') + '">Русский форум</a> / ' +
        '<a target=\'_blanck\' href="' + fmfb('fr') + '">forum français</a> / <a target=\'_blanck\' href="' + fmfb('it') + '">forum italiano</a> / ' +
        '<a target=\'_blanck\' href="https://forum.beta.the-west.net//index.php?conversations/add&to=Tom Robert">beta forum</a> /<br>I will get an e-mail when you sent me the message <img src="../images/chat/emoticons/smile.png"></li></ul>');
      if (localStorage.getItem('mbb_items') || localStorage.getItem('mbb_0')) {
        for (var k in localStorage)
          if (typeof k === 'string' && k.indexOf('mbb_') === 0)
            localStorage.removeItem(k);
      }
      var allItems = ItemManager.getAll();
      for (var i in allItems) {
        var item = allItems[i];
        if (!item.auctionable)
          continue;
        var name = item.name;
        if (item.type == 'recipe') {
          name = name.split(':');
          if (name.length == 2)
            name = name[1];
        }
        MBB.items[name] = item.price;
      }
      MarketWindow.open_mbb = MarketWindow.open;
      MarketWindow.open = function () {
        MarketWindow.open_mbb.apply(this, arguments);
        $('div.tw2gui_win2.marketplace').on('DOMNodeInserted', function (e) {
          var el = $(e.target);
          if (el.is('div[class*="marketOffersData_"]') || el.is('div[class*="marketWatchData_"]') || el.is('div[class*="marketSellsData_"]') || el.is('div[class*="marketWhatIsHotData_"]')) {
            var child = el.children(),
            name_original = child[1],
            qty = child[2].textContent,
            purchase_original = child[3],
            bid_original = child[4],
            price_original = MBB.items[name_original.textContent];
            if (purchase_original.textContent) {
              var purchase = purchase_original.textContent.replace(/\$|\.|\,/g, '');
              var price_purchase = purchase / qty;
              if (price_purchase < price_original) {
                purchase_original.style.color = 'green';
                if (!bid_original.textContent) {
                  name_original.style.color = 'green';
                }
              }
              if ((price_purchase > price_original) && (price_purchase <= price_original * 2)) {
                purchase_original.style.color = 'blue';
                if (!bid_original.textContent) {
                  name_original.style.color = 'blue';
                }
              }
              if (price_purchase > price_original * 2) {
                purchase_original.style.color = 'red';
                if (!bid_original.textContent) {
                  name_original.style.color = 'red';
                }
              }
            }
            if (bid_original.textContent) {
              var bid = bid_original.textContent.replace(/\$|\.|\,/g, '');
              var price_bid = bid / qty;
              if (price_bid < price_original) {
                bid_original.style.color = 'green';
                name_original.style.color = 'green';
              }
              if ((price_bid > price_original) && (price_bid <= price_original * 2)) {
                bid_original.style.color = 'blue';
                name_original.style.color = 'blue';
              }
              if (price_bid > price_original * 2) {
                name_original.style.color = 'red';
                bid_original.style.color = 'red';
              }
            }
          }
        });
      };
    }).toString() + ')();';
  document.body.appendChild(twmbbjs);
};
if (location.href.indexOf('.the-west.') !=  - 1 && location.href.indexOf('game.php') !=  - 1)
  setTimeout(TWMBB_inject, 2500, false);