Greasy Fork

Greasy Fork is available in English.

素素站鸡排辅助

素素站-坐骑和宠物标记

当前为 2019-08-22 提交的版本,查看 最新版本

// ==UserScript==
// @name 素素站鸡排辅助
// @namespace zzsoft.susutool
// @version	  0.0.1
// @description 素素站-坐骑和宠物标记
// @author zzsoft
// @match https://tools.ffxiv.cn/lajipai/
// @grant none
// ==/UserScript==
// 
window.__copy_text_to_clipboard__ = true;
var key="_zz_own";
var owns={};
var pageno=0;
var namecache="";


//加载数据
loadData();
//初始化
checkPage();

function checkPage()
{  
  //
  if ($("a.btn").length==0)
    {
      setTimeout(checkPage,500);   
    }
  $(document).on("contextmenu","a.btn",function(){        
     toggleOwn(this);        
     return false;
  });
  checkPageNo();  
}

function checkPageNo()
{
  //当前页号
  var pagenow=$("a.on").text();
  if(pagenow!=pageno)
    {
      pageno=pagenow;
      showOwn();      
    }
  setTimeout(checkPageNo,500);
}

function checkGameCmd()
{
  //文本控件已存在 或 容器不存在
  if ($("#_zz_gmcmd").length>0 || $("#page_item_right").length==0)
  {        
    setTimeout(checkGameCmd,500);
    return;
  }
  
  //目标名称是否就是当前的
  var tname=$("#page_item_right p:first").text();
  if (tname==namecache)
  {    
    setTimeout(checkGameCmd,500);
    return;
  }
  else
  {
    namecache=tname;
  }
  
  //插入文本框
  var cmd="/"+ $("#page_itemtop li p").text()+" ";
  $("<input type='text' id='_zz_gmcmd' style='height:20px;color:#333;background:#333'>")
    .val(cmd+tname)
    .appendTo("#page_item_right");
  
 
  //注册复制事件
  $("#page_item_right p:first")
    .css("cursor","pointer")
    .on("click",function()
        {
           $("#_zz_gmcmd")[0].select();
          document.execCommand('copy');
          $("#_zz_gmcmd")[0].blur();
        });
  
  
  setTimeout(checkGameCmd,500);
}

function showOwn()
{
  $("a.btn").each(function(i,o){
      var id=getId($(o));
      if(owns[id]==1)
        {
          $(o).css("opacity",0.2);
        }
  });
  checkGameCmd();
}

function loadData()
{
  var jstr=localStorage[key];
  if (jstr==undefined || jstr==""){return;}
  owns=JSON.parse(jstr);
}

function saveData()
{
  var jstr=JSON.stringify(owns);
  localStorage[key]=jstr;
}

function getId(o)
{
  var u=o.find("img").attr("src");
  var aaa=u.indexOf(".");
  var bbb=u.lastIndexOf("/")
  return u.substr(bbb+1,aaa-bbb-1);
}

function toggleOwn(o)
{
  o=$(o);
  
  var opa=o.css("opacity");
  var id=getId(o);
  
  if (opa=""||opa>=1)
    {
      o.css("opacity",0.2);
      owns[id]=1;
    }
  else
    {
      o.css("opacity","");
      delete owns[id];
    }
  saveData();
}