// ==UserScript==
// @name 素素站鸡排辅助
// @namespace zzsoft.susutool
// @version 0.0.3
// @description 素素站-坐骑和宠物标记
// @author zzsoft
// @match https://tools.ffxiv.cn/lajipai/
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/389286/%E7%B4%A0%E7%B4%A0%E7%AB%99%E9%B8%A1%E6%8E%92%E8%BE%85%E5%8A%A9.user.js
// @updateURL https://update.greasyfork.icu/scripts/389286/%E7%B4%A0%E7%B4%A0%E7%AB%99%E9%B8%A1%E6%8E%92%E8%BE%85%E5%8A%A9.meta.js
// ==/UserScript==
//
window.__copy_text_to_clipboard__ = true;
var key="_zz_own";
var owns={};
var pageno=0;
var namecache="";
//加载数据
loadData();
//初始化
init();
//检查是否坐骑或宠物页面
checkPage();
function init()
{
//导出按钮
$('导出')
.appendTo('#top')
.on('click',function(){
copyToClip($('#_zz_local')[0]);
alert("已复制到剪贴板~");
});
//导入按钮
$('导入')
.appendTo('#top')
.on('click',function(){
var o=$("#_zz_local");
if (o.attr("size")==1)
{
o.attr("size",100).css({background:"#fff"});
$(this).html("粘贴后点这里");
}
else
{
localStorage[key]=o.val();
location.replace("/");
}
});
//导出导入用文本框
$('')
.appendTo('#top')
.val(JSON.stringify(owns));
}
function copyToClip(o)
{
o.select();
document.execCommand('copy');
o.blur();
}
function checkPage()
{
//
if ($("a.btn").length==0)
{
setTimeout(checkPage,300);
return;
}
$(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,300);
}
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()+" ";
$("")
.val(cmd+tname)
.appendTo("#page_item_right");
//注册复制事件
$("#page_item_right p:first")
.css("cursor","pointer")
.on("click",function()
{
copyToClip($("#_zz_gmcmd")[0]);
});
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);
$("#_zz_local").val(jstr);
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);
console.log("toggleOwn-start");
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();
console.log("toggleOwn-end");
}