你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式
(我已經安裝了使用者樣式管理器,讓我安裝!)
// ==UserScript==
// @name Faction Attack Counter
// @namespace http://tampermonkey.net/
// @version 1.7
// @description try to take over the world!
// @author H1k3
// @grant GM_setClipboard
// @include https://www.torn.com/factions.php?step=your*
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
// Your code here...
})();
var api_key = '';//-----------------CHANGE HERE
var members = new Array();var indexsave;var members2 = new Array();
var timer=1000000000;
const now = new Date()
const secondsSinceEpoch = Math.round(now.getTime() / 1000)
var d_to = parseInt(secondsSinceEpoch),d_from=d_to-86400;
var trigger = 0;var number = 0;var count=0;var call = "",call2="";var number2 = 0;var me2=true;
addStuff();
function appendButton(){
var buttonEl = document.createElement("a");
buttonEl.id = "cad";
var buttonTextEl = document.createElement("button");
buttonTextEl.className = "copy_a_d";
buttonTextEl.innerHTML = "Copy Attack Data";
buttonEl.appendChild(buttonTextEl);
document.getElementById("top-page-links-list").appendChild(buttonEl);
}
appendButton();
document.getElementById("cad").addEventListener("click", function(){GM_setClipboard(members2.replace(/},/g,'\n').replace(/{/g,'').replace('[','').replace(']',''));});
$.post("https://api.torn.com/faction/?selections=&key="+api_key, function(data, status){
$.each(data.members, function(index, value) {
members.push({name: value.name, id: index,last_on: value.last_action.relative,loss: 0, success: 0, respect: 0, escape: 0,lastpull: 0});
});
//console.log(members);//Object.keys(data.attacks).length);// alert("Data: " + data + "\nStatus: " + status);
});call="https://api.torn.com/faction/?selections=attacksfull&key="+api_key+"&from="+1000000000;
call_attacks();
function call_attacks(){
setTimeout(function(){
$.post("https://api.torn.com/faction/?selections=attacksfull&key="+api_key+"&from="+timer.toString(), function(data, status){trigger=0;
if(Object.keys(data.attacks).length === 0 && data.attacks.constructor === Object){console.log("utoh");}//console.log(data);
else{$.each(data.attacks, function(index, value) {
if(trigger==0){number2=index;d_to=parseInt(value.timestamp_started);trigger=1;}
if(parseInt(value.timestamp_ended)>parseInt(timer)){timer=value.timestamp_ended;}
members.forEach(function(item,index2){
if(members[index2].id==value.attacker_id&&members[index2].lastpull<index)
{members[index2].lastpull=index;
if(value.result=="Lost"){members[index2].loss++;}
else if(value.result=="Attacked"){members[index2].success++;members[index2].respect =Math.round(members[index2].respect+value.respect_gain);}
else if(value.result=="Mugged"){members[index2].success++;members[index2].respect =Math.round(members[index2].respect+value.respect_gain);}
else if(value.result=="Hospitalized"){members[index2].success++;members[index2].respect =Math.round(members[index2].respect+value.respect_gain);}
else if(value.result=="Special"){members[index2].success++;members[index2].respect =Math.round(members[index2].respect+value.respect_gain);}
else if(value.result=="Stalemate"){members[index2].loss++;}
else if(value.result=="Timeout"){members[index2].loss++;}
else if(value.result=="Interrupted"){members[index2].loss++;}
else if(value.result=="Assist"){members[index2].success++;}
else if(value.result=="Escape"){members[index2].escape++;}
else{console.log(value);}
}
//if(members[index].id==value.attacker_id&&value.respect_gain>0){members[index].respect =members[index].respect+value.respect_gain;members[index].success++;}
//else if(members[index].id==value.attacker_id&&value.result=="Lost"){members[index].loss++;}
//else if(members[index].id==value.attacker_id&&value.respect_gain==0){members[index].loss++;}
else if(members[index2].id==value.defender_id&&members[index2].lastpull<index)
{members[index2].lastpull=index;
if(value.result=="Lost"){members[index2].success++;}
else if(value.result=="Attacked"){members[index2].loss++;}
else if(value.result=="Mugged"){members[index2].loss++;}
else if(value.result=="Hospitalized"){members[index2].loss++;}
else if(value.result=="Escape"){members[index2].escape++;}
else if(value.result=="Assist"){members[index2].loss++;}
else if(value.result=="Stalemate"){members[index2].loss++;}
else if(value.result=="Timeout"){members[index2].loss++;}
else if(value.result=="Interrupted"){members[index2].loss++;}
//else{console.log(value);}
//console.log(value);.members[index2].respect.toFixed(2);
}
});
});call="https://api.torn.com/faction/?selections=attacksfull&key="+api_key+"&start=1000";
//var mess2;
var mess= "";// = JSON.stringify(members.sort());
members2 = JSON.parse(JSON.stringify(members));//members.slice(0);
var table = document.getElementById("hhStats");//console.log(table);
// $("#hhStats").find("tr").click(function(){
// $(this).addClass('selected').siblings().removeClass('selected');
// var value=$(this).find('td:nth-child(2)').html();
//alert(value);
//});
// var table = document.getElementById("mytab1");
//for (var i2 = 0, rows; rows = table.rows[i2]; i2++) {
// for (var j = 0, col; col = rows.cells[j]; j++) {
//iterate through cells
//cells would be accessed using the "cell" variable assigned in the for loop
//console.log(col);
for (var i = 0; i < members2.length; i++) {
if ($('#hhStats td:contains(' + members2[i].name + ')').length) {
$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[0].innerHTML=members2[i].name;
$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[1].innerHTML=members2[i].respect;
$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[2].innerHTML=members2[i].success;
$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[3].innerHTML=members2[i].loss;
$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[4].innerHTML=members2[i].last_on;
$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[5].innerHTML=members2[i].id;
$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[6].innerHTML=members2[i].lastpull;//sortTable();
//var cell8
if(members2[i].success<50){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E1";}
else if(members2[i].success<100){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E2";}
else if(members2[i].success<150){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E3";}
else if(members2[i].success<200){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E4";}
else if(members2[i].success<250){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E5";}
else if(members2[i].success<300){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E6";}
else if(members2[i].success<350){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E7";}
else if(members2[i].success<400){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E8";}
else if(members2[i].success<450){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E9";}
else if(members2[i].success<500){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E9-2";}
else if(members2[i].success<550){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "E9-3";}
else if(members2[i].success<600){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "W1";}
else if(members2[i].success<650){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "W2";}
else if(members2[i].success<700){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "W3";}
else if(members2[i].success<750){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "W4";}
else if(members2[i].success<800){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML= "O1";}
else if(members2[i].success<850){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O2";}
else if(members2[i].success<900){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O3";}
else if(members2[i].success<1000){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O4";}
else if(members2[i].success<1050){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O5";}
else if(members2[i].success<1100){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O6";}
else if(members2[i].success<1150){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O7";}
else if(members2[i].success<1200){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O8";}
else if(members2[i].success<1250){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O9";}
else if(members2[i].success<1300){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O10";}
else if(members2[i].success<1350){$('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode.children[7].innerHTML = "O11";}
// console.log($('#hhStats td:contains(' + members2[i].name + ')')[0].parentNode);
} else {
var row = table.insertRow(1);
var cell1 = row.insertCell(0);cell1.innerHTML = ""+members2[i].name;
var cell2 = row.insertCell(1);cell2.innerHTML = ""+members2[i].respect;
var cell3 = row.insertCell(2);cell3.innerHTML = ""+members2[i].success;
var cell4 = row.insertCell(3);cell4.innerHTML = ""+members2[i].loss;
var cell5 = row.insertCell(4);cell5.innerHTML = ""+members2[i].last_on;
var cell6 = row.insertCell(5);cell6.innerHTML = ""+members2[i].id;
var cell7 = row.insertCell(6);cell7.innerHTML = ""+members2[i].lastpull;//sortTable();
var cell8;
if(members2[i].success<50){cell8 = row.insertCell(7);cell8.innerHTML = "E1";}
else if(members2[i].success<100){cell8 = row.insertCell(7);cell8.innerHTML = "E2";}
else if(members2[i].success<150){cell8 = row.insertCell(7);cell8.innerHTML = "E3";}
else if(members2[i].success<200){cell8 = row.insertCell(7);cell8.innerHTML = "E4";}
else if(members2[i].success<250){cell8 = row.insertCell(7);cell8.innerHTML = "E5";}
else if(members2[i].success<300){cell8 = row.insertCell(7);cell8.innerHTML = "E6";}
else if(members2[i].success<350){cell8 = row.insertCell(7);cell8.innerHTML = "E7";}
else if(members2[i].success<400){cell8 = row.insertCell(7);cell8.innerHTML = "E8";}
else if(members2[i].success<450){cell8 = row.insertCell(7);cell8.innerHTML = "E9";}
else if(members2[i].success<500){cell8 = row.insertCell(7);cell8.innerHTML = "E9-2";}
else if(members2[i].success<550){cell8 = row.insertCell(7);cell8.innerHTML = "E9-3";}
else if(members2[i].success<600){cell8 = row.insertCell(7);cell8.innerHTML = "W1";}
else if(members2[i].success<650){cell8 = row.insertCell(7);cell8.innerHTML = "W2";}
else if(members2[i].success<700){cell8 = row.insertCell(7);cell8.innerHTML = "W3";}
else if(members2[i].success<750){cell8 = row.insertCell(7);cell8.innerHTML = "W4";}
else if(members2[i].success<800){cell8 = row.insertCell(7);cell8.innerHTML = "O1";}
else if(members2[i].success<850){cell8 = row.insertCell(7);cell8.innerHTML = "O2";}
else if(members2[i].success<900){cell8 = row.insertCell(7);cell8.innerHTML = "O3";}
else if(members2[i].success<1000){cell8 = row.insertCell(7);cell8.innerHTML = "O4";}
else if(members2[i].success<1050){cell8 = row.insertCell(7);cell8.innerHTML = "O5";}
else if(members2[i].success<1100){cell8 = row.insertCell(7);cell8.innerHTML = "O6";}
else if(members2[i].success<1150){cell8 = row.insertCell(7);cell8.innerHTML = "O7";}
else if(members2[i].success<1200){cell8 = row.insertCell(7);cell8.innerHTML = "O8";}
else if(members2[i].success<1250){cell8 = row.insertCell(7);cell8.innerHTML = "O9";}
else if(members2[i].success<1300){cell8 = row.insertCell(7);cell8.innerHTML = "O10";}
else if(members2[i].success<1350){cell8 = row.insertCell(7);cell8.innerHTML = "O11";}
//console.log("No");
}
// var html2;
//document.getElementById("hhStats").children[0].children[0].insertAdjacentHTML("beforeend", html2);
delete members2[i].id;delete members2[i].lastpull;
//Do something
}sortTable(); members2 = members2.sort();members2 = JSON.stringify(members2);
//sortTable();
number=number2;count=1;console.log(members);call_attacks();}
});
}, 2000);}
members2.sort(function(a,b) {
return parseInt(a.success) - parseInt(b.success);
});
function addStuff() {
var html = '<table id="hhStats" style="float:right; border: 1px solid black;width:100%;text-align:center;">';
//for (var i = 0; i < 10; i++)
html += '<tr><th>' +"User"+ '</th><th>' +"Respect"+ '</th><th>'+"Success"+'</th><th>'+"Loss"+'</th><th>'+"Last On"+'</th><th>'+"ID"+'</th><th>Last Logged</th><th>Rank</th></tr>';
//html += '<tr><th>' +"User"+ '</th><th>' +"Respect"+ '</th><th>'+"Success"+'</th><th>'+"Loss"+'</th><th>'+"Last On"+'</th><th>'+"ID"+'</th><th>Last Logged</th></tr>';
html += '</table>';
//document.getElementById("faction-news").appendChild(html);
document.getElementById("factions")
.insertAdjacentHTML("beforeend", html);console.log(document.getElementById("hhStats").children[0].children[0]);
}
function sortTable() {
var table, rows, switching, i, x, y, shouldSwitch;
table = document.getElementById("hhStats");
switching = true;
/*Make a loop that will continue until
no switching has been done:*/
while (switching) {
//start by saying: no switching is done:
switching = false;
rows = table.rows;
/*Loop through all table rows (except the
first, which contains table headers):*/
for (i = 1; i < (rows.length - 1); i++) {
//start by saying there should be no switching:
shouldSwitch = false;
/*Get the two elements you want to compare,
one from current row and one from the next:*/
x = rows[i].getElementsByTagName("TD")[2];
y = rows[i + 1].getElementsByTagName("TD")[2];
//check if the two rows should switch place:
if (Number(x.innerHTML) > Number(y.innerHTML)) {
//if so, mark as a switch and break the loop:
shouldSwitch = true;
break;
}
}
if (shouldSwitch) {
/*If a switch has been marked, make the switch
and mark that a switch has been done:*/
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
switching = true;
}
}
}