Dead Frontier – Browser Implants + True CSS Hover (v5.19 Fancy Right Move)

Browser Implants panel with CSS hover; MarketHover, AutoBank & QuickBuy icons appear instantly; panel shifted right smoothly inside left-margin cell; QuickBuy tooltip updated.

目前为 2025-04-28 提交的版本。查看 最新版本

// ==UserScript==
// @name         Dead Frontier – Browser Implants + True CSS Hover (v5.19 Fancy Right Move)
// @namespace    Zega
// @version      5.25
// @description  Browser Implants panel with CSS hover; MarketHover, AutoBank & QuickBuy icons appear instantly; panel shifted right smoothly inside left-margin cell; QuickBuy tooltip updated.
// @match        https://fairview.deadfrontier.com/onlinezombiemmo/index.php*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
  'use strict';

  // — AUTO-BANK QUEUEING —
  let _autoBankQueued = false, _autoBankDone = false;
  function _onAutoBank() {
    if (_autoBankDone) return;
    _autoBankQueued = true;
    if (typeof fillAutoBankSlot === 'function') fillAutoBankSlot();
  }
  Object.defineProperty(window, 'BrowserImplant_AutoBank', {
    configurable: true,
    enumerable:   true,
    set(val) {
      if (val) _onAutoBank();
      Object.defineProperty(window, 'BrowserImplant_AutoBank', {
        value:        val,
        writable:     true,
        configurable: true,
        enumerable:   true
      });
    },
    get() { return false; }
  });

  // — QUICKBUY QUEUEING —
  let _qbQueued = false, _qbDone = false;
  function _onQuickBuy() {
    if (_qbDone) return;
    _qbQueued = true;
    if (typeof fillQuickBuySlot === 'function') fillQuickBuySlot();
  }
  Object.defineProperty(window, 'BrowserImplant_QuickBuy', {
    configurable: true,
    enumerable:   true,
    set(val) {
      if (val) _onQuickBuy();
      Object.defineProperty(window, 'BrowserImplant_QuickBuy', {
        value:        val,
        writable:     true,
        configurable: true,
        enumerable:   true
      });
    },
    get() { return false; }
  });

  window.addEventListener('DOMContentLoaded', init);

  function init() {
    const marginTd = document.querySelector("td.design2010[style*='left_margin.jpg']");
    if (!marginTd) return console.warn('Left-margin TD not found');
    marginTd.style.position = 'relative';

    const panel = document.createElement('div');
    panel.id = 'browser-implant-panel';
    panel.innerHTML = `
      <strong style="color:#ffd700;display:block;margin-bottom:4px;text-align:center;">
        Browser Implants
      </strong>
      <div class="implant-grid">
        ${Array(8).fill(0).map((_,i)=>`
          <div class="slot" data-slot="${i}">
            <img class="implant-icon" style="display:none;" />
            <div class="hover-popup">
              <img class="hover-img" src="" />
              <div class="hover-name"></div>
              <div class="hover-stat"></div>
            </div>
          </div>
        `).join('')}
      </div>
    `;
    marginTd.appendChild(panel);

    const slots = panel.querySelectorAll('.slot');
    let next = 0;

    function fill(slot, url, name, stat) {
      const img = slot.querySelector('img.implant-icon');
      const pop = slot.querySelector('.hover-popup');
      img.src = url;
      img.style.display = 'block';
      img.style.width = '100%';
      img.style.height = '100%';
      img.style.objectFit = 'contain';
      pop.querySelector('.hover-img').src = url;
      pop.querySelector('.hover-name').textContent = name;
      pop.querySelector('.hover-stat').textContent = stat;
    }

    // slot 0: Browser Implant
    fill(
      slots[next++],
      'https://files.catbox.moe/y2n5ij.png',
      'Browser Implant',
      'Gain Efficiency In Outpost +20%'
    );

    // slot 1: Market Hover
    if (window.BrowserImplant_MarketHover) {
      fill(
        slots[next++],
        'https://files.catbox.moe/kqee23.png',
        'Market Hover Implant',
        'Quick Access to Trade Values +15%'
      );
    }

    // slot 2: Auto Bank
    window.fillAutoBankSlot = () => {
      if (_autoBankDone || next >= slots.length) return;
      fill(
        slots[next++],
        'https://files.catbox.moe/ry7yd2.png',
        'Auto Bank Implant',
        'Instant bank link—deposits & withdrawals +60% speed!'
      );
      _autoBankDone = true;
    };
    if (_autoBankQueued) window.fillAutoBankSlot();

    // slot 3: QuickBuy
    window.fillQuickBuySlot = () => {
      if (_qbDone || next >= slots.length) return;
      fill(
        slots[next++],
        'https://files.catbox.moe/urko7b.png',
        'QuickBuy Implant',
        'Quickly buy your survival items. 70% Barter Speed!'
      );
      _qbDone = true;
    };
    if (_qbQueued) window.fillQuickBuySlot();

    // disable clicks on slots
    slots.forEach(s => s.addEventListener('click', e => e.stopPropagation()));
  }

  // — STYLES —
  const css = `
    #browser-implant-panel {
      position:absolute;
      top:120px;
      left:225px;
      transform:translateX(50px);
      background:rgba(0,0,0,0.5);
      padding:8px 12px;
      border-radius:6px;
      text-align:center;
      z-index:999;
      transition:transform 0.4s ease; /* (optional) smooth entry effect */
    }
    #browser-implant-panel .implant-grid {
      display:grid;
      grid-template-columns:repeat(4,36px);
      grid-template-rows:repeat(2,36px);
      gap:4px;
      justify-content:center;
    }
    #browser-implant-panel .slot {
      width:36px;
      height:36px;
      background:rgba(255,255,255,0.05);
      border:1px solid #888;
      border-radius:4px;
      position:relative;
    }
    #browser-implant-panel .slot img.implant-icon {
      position:absolute;
      top:0; left:0;
      width:100%; height:100%;
      object-fit:contain;
      cursor:default;
      display:none;
    }
    #browser-implant-panel .hover-popup {
      display:none;
      position:absolute;
      bottom:-18px;
      left:50%;
      transform:translateX(-50%);
      background:rgba(0,0,0,0.85);
      padding:6px;
      border:1px solid #555;
      border-radius:6px;
      flex-direction:column;
      align-items:center;
      z-index:1000;
      opacity:0;
      transition:opacity .2s;
      width:130px;
    }
    #browser-implant-panel .hover-popup .hover-img {
      width:50px;
      height:50px;
      margin-bottom:4px;
      object-fit:contain;
    }
    #browser-implant-panel .hover-name,
    #browser-implant-panel .hover-stat {
      color:gold;
      font-size:12px;
      margin:1px 0;
      line-height:1.1;
      text-align:center;
    }
    #browser-implant-panel .slot:hover .hover-popup {
      display:flex;
      opacity:1;
    }
    #browser-implant-panel .slot:not(:has(img.implant-icon[style*="display: block"]))
      .hover-popup {
      display:none!important;
      opacity:0!important;
    }
  `;
  const style = document.createElement('style');
  style.textContent = css;
  document.head.appendChild(style);

})();

QingJ © 2025

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