let x = 504;
let y = 499;
let spearAmnt = 1;
let swordAmnt = 0;
let axeAmnt = 0;
let archerAmnt = 0;
let spyAmnt = 0;
let lightAmnt = 0;
let marcherAmnt = 0;
let heavyAmnt = 0;
let ramAmnt = 0;
let catapultAmnt = 0;
let knightAmnt = 0;
let snobAmnt = 0;
let catAttack = "main";
let iterator = 0;
let key;
let value;
/**
* Get the weird obfuscated key and value which is stored in the rally point
*/
function getKey() {
$.get("game.php?village=" + game_data.village.id + "&screen=place", function(response) {
const parser = new DOMParser();
const dom = parser.parseFromString(response, "text/html");
key = dom.querySelector("#command-data-form > input:nth-child(1)").getAttribute("name");
value = dom.querySelector("#command-data-form > input:nth-child(1)").value;
});
}
let data = {
key: value,
"template_id": "",
"source_village": game_data.village.id,
"spear": spearAmnt,
"sword": swordAmnt,
"axe": axeAmnt,
"archer": archerAmnt,
"spy": spyAmnt,
"light": lightAmnt,
"marcher": marcherAmnt,
"heavy": heavyAmnt,
"ram": ramAmnt,
"catapult": catapultAmnt,
"knight": knightAmnt,
"snob": snobAmnt,
"x": x,
"y": y,
"target_type": "coord",
"input": "",
"attack": "Attack",
};
function random(superior, inferior) {
var numPosib = superior - inferior;
var aleat = Math.random() * numPosib;
return Math.round(parseInt(inferior) + aleat);
}
setInterval(attack, random(2330, 3550));
/**
* Send post request to attack dialog
*/
function attack() {
let xvalsint = getCoordsX();
let yvalsint = getCoordsY();
x = parseInt(xvalsint[iterator]);
y = parseInt(yvalsint[iterator]);
data.x = x;
data.y = y;
let url = "game.php?village=" + game_data.village.id + "&screen=place&try=confirm";
$.post(url, data).done(function(response) {
const parser = new DOMParser();
const dom = parser.parseFromString(response, "text/html");
if (dom.querySelector(".error_box")) {
console.error("Error: " + dom.querySelector(".error_box").innerText.trim());
} else {
const ch = dom.getElementsByName("ch")[0].getAttribute("value");
const timeout = Math.floor(Math.random() * 1000 + 500);
setTimeout(function() {
sendAttack(ch);
}, timeout);
console.log("Wait " + timeout + "ms");
}
});
}
function getCoordsX() {
var x, y, vill, arr;
var fin = [];
var xvals = [];
var yvals = [];
for (x = 0; x < TWMap.size[1]; x++) {
for (y = 0; y < TWMap.size[1]; y++) {
if (vill = TWMap.map.coordByPixel(TWMap.map.pos[0] + TWMap.tileSize[0] * y, TWMap.map.pos[1] + TWMap.tileSize[1] * x)) {
if ((arr = TWMap.villages[vill.join("")]) && arr.owner === "0") {
fin.push(vill.join("|"));
xvals.push(vill[0]);
yvals.push(vill[1]);
}
}
}
}
return xvals;
}
function getCoordsY() {
var x, y, vill, arr;
var fin = [];
var xvals = [];
var yvals = [];
for (x = 0; x < TWMap.size[1]; x++) {
for (y = 0; y < TWMap.size[1]; y++) {
if (vill = TWMap.map.coordByPixel(TWMap.map.pos[0] + TWMap.tileSize[0] * y, TWMap.map.pos[1] + TWMap.tileSize[1] * x)) {
if ((arr = TWMap.villages[vill.join("")]) && arr.owner === "0") {
fin.push(vill.join("|"));
xvals.push(vill[0]);
yvals.push(vill[1]);
}
}
}
}
return yvals;
}
function sendAttack(ch) {
let xvalsint = getCoordsX();
let yvalsint = getCoordsY();
x = parseInt(xvalsint[iterator]);
y = parseInt(yvalsint[iterator]);
console.log(x);
console.log(y);
getKey();
data = {
"attack": true,
"ch": ch,
"x": x,
"y": y,
"source_village": game_data.village.id,
"village": game_data.village.id,
"attack_name": "",
"spear": spearAmnt,
"sword": swordAmnt,
"axe": axeAmnt,
"archer": archerAmnt,
"spy": spyAmnt,
"light": lightAmnt,
"marcher": marcherAmnt,
"heavy": heavyAmnt,
"ram": ramAmnt,
"catapult": catapultAmnt,
"knight": knightAmnt,
"snob": snobAmnt,
"building": catAttack
};
iterator++;
url = "game.php?village=" + game_data.village.id + "&screen=place&ajaxaction=popup_command&h=" + game_data.csrf + "&client_time" + Math.floor(Timing.getCurrentServerTime() / 1000);
$.post(url, data).done(function(response) {
if (response.includes("redirect")) {
console.log("Attack successfully sent!");
} else {
console.log(response);
}
});
}
Comments
0 B
|👍
/👎