我正在玩一个浏览器游戏,我遇到了这个脚本,但它不是我想要的用途。
通常,这个脚本只运行一次,而不是在篡改猴子上运行。脚本本身正在按预期工作,但每秒钟运行一次。
我试图让它连续运行两次,然后等待变量refreshTime定义的x分钟数的增加。
这是最初的脚本。
// ==UserScript==
// @name Shinko BT Renamer
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://*/game.php*mode=incomings*
// @icon https://www.google.com/s2/favicons?sz=64&domain=devilicious.dev
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
var FORMAT = "#unit# from #coords# -> BT: #backtime#";
let refreshTime = 5; // time to refresh the page in minutes
function main()
{
if(window.location.href.indexOf("subtype=attacks")==-1)
{
window.location.href = window.location.pathname+ "?screen=overview_villages&mode=incomings&mode=incomings&subtype=attacks";
return;
}
if (typeof FORMAT === 'undefined')
FORMAT = "#unit# from #coords# - #player# Backtime: #backtime#";
FORMAT = FORMAT.replace(/#/g, "%");
if(FORMAT.match(/%backtime%/g)!=null)
FORMAT = ("`" + FORMAT + "`").replace(/%backtime%/, "%return%:${('00' + ((arrivalSeconds+parseInt('%duration%'.split(':')[2]))%60).toString()).slice(-2)}");
console.log(FORMAT);
$('input[name=label_format]').val(FORMAT);
let tagRows =$("#incomings_table > tbody > tr").not(':first').not(':last');
tagRows = $.grep(tagRows, (obj)=> $(".quickedit-label", obj)[0].innerText.match(/`.*`/g)!=null);
if(tagRows.length >0)
$.map(tagRows, (obj, key)=>setTimeout(()=>{
evalTag(obj);
/*if(key == tagRows.length -1)
tagCommands();*/
}, 250* key));
else
tagCommands();
}
function renameCommand(command, name)
{
$('.rename-icon', command).click();
$('.quickedit-edit input[type="text"]', command).val(name);
$('.quickedit-edit input[type="button"]', command).click();
}
function evalTag(row)
{
let command = $("td:nth-child(1)", row)[0];
let arrivalTime = $("td:nth-child(6)", row)[0].innerText;
let arrivalSeconds = parseInt(arrivalTime.split(":")[2]);
let evalCommandTag;
try
{
evalCommandTag = eval(command.innerText);
}
catch(err)
{
evalCommandTag = command.innerText;
}
renameCommand(command, evalCommandTag);
}
function tagCommands()
{
if($("#incomings_form").length > 0)
{
selectAll($("#incomings_form")[0], true);
$("[name='label']")[0].click();
}
}
main();
I tried to do this but with no luck.
for (i ; i < 2; i++){
if(i<2){
main();
console.log(i);
}else{
setTimeout(function(){ location.reload(); },refreshTime * 60 * 1000);
console.log(i);
}
}
exec();我最初想的是。所以,我想运行它两次,然后一个If语句就可以了,我成功了,运行了一个圆珠笔,但是当页面重新加载时,篡改猴子失去了"i“的踪迹。
所以我在googled上搜索了一下,我发现把I的值存储在篡改猴子变量中,但是我没能让它正常工作。任何投入都非常感谢。
谢谢!
var i = GM_getValue('i', 0);
GM_setValue('i', i+1);发布于 2022-07-02 14:31:41
查看localStorage以保存页面刷新之间的数据--快速和简单的解决方案。
示例:
在您的脚本顶部:
let shinkoCnt = 0;
if (localStorage.getItem("shinkoCnt") !== undefined){
shinkoCnt = localStorage.getItem("shinkoCnt");
}将计数例程更改为:
for (shinkoCnt; shinkoCnt<2; shinkoCnt++){
if(shinkoCnt<2){
main();
console.log(shinkoCnt);
}else{
setTimeout(function(){ location.reload(); },refreshTime * 60 * 1000);
console.log(shinkoCnt);
}
localStorage.setItem("shinkoCnt", shinkoCnt);
}参考资料:
https://www.w3schools.com/jsref/met_storage_getitem.asp https://www.w3schools.com/jsref/met_storage_setitem.asp https://www.w3schools.com/jsref/api_storage.asp
https://stackoverflow.com/questions/72789972
复制相似问题