Advertisement
Guest User

Untitled

a guest
Mar 9th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.45 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Tribal wars
  3. // @version 1.0
  4. // @description Tribal wars bot
  5. // @match https://*.die-staemme.de/*
  6. // @grant none
  7. // @require https://smtpjs.com/v3/smtp.js
  8. // ==/UserScript==
  9. //*************************** SETUP ***************************//
  10. // Choose Minimum and maximum wait time between actions (in milliseconds)
  11. const MIN_WAIT_TIME = 20000;
  12. const MAX_WAIT_TIME = 40000;
  13. //Enter The Start/End of the Night Bonus of your World (0-24). To disable set both values to 0.
  14. const NIGHT_BONUS_START = 22;
  15. const NIGHT_BONUS_END = 8;
  16. const OWN_VILLAGE_ID = 4488;
  17. const MAIL_ADDRESS = "";
  18. const USERNAME = "Legoslav";
  19. const PASSWORD = "k4ntholz";
  20. const WORLD = "de164";
  21. const RECRUIT_TROOPS = false;
  22. const SPEAR_PER_DAY = 5;
  23. const SWORD_PER_DAY = 0;
  24. const AXE_PER_DAY = 0;
  25. const RECRUIT_KAV = false;
  26. const SPY_PER_DAY = 0;
  27. const LIGHT_PER_DAY = 0;
  28. const HEAVY_PER_DAY = 0;
  29. const DO_NOT_FARM = true;
  30. const DO_NOT_BUILD = false;
  31.  
  32. // Farms definieren
  33. const FARM_1 = {
  34. coordinate: "592|657",
  35. spear: 2,
  36. sword: 2,
  37. axe: 0,
  38. spy: 0,
  39. light: 0,
  40. heavy: 0,
  41. ram: 0,
  42. catapult: 0,
  43. snob: 0
  44. }
  45.  
  46. // Array der Farms
  47. const FARMS = [
  48. FARM_1
  49. ];
  50. //******************End of Setup**************************//
  51. ////*************Do not touch this***********************//
  52. if(localStorage.lastView==undefined){
  53. localStorage.lastView = "place";
  54. }
  55. if (localStorage.troops == undefined) {
  56. localStorage.troops = RECRUIT_TROOPS;
  57. localStorage.spear = SPEAR_PER_DAY;
  58. localStorage.sword = SWORD_PER_DAY;
  59. localStorage.axe = AXE_PER_DAY;
  60. }
  61. if (localStorage.kav == undefined) {
  62. localStorage.kav = RECRUIT_KAV;
  63. localStorage.spy = SPY_PER_DAY;
  64. localStorage.light = LIGHT_PER_DAY;
  65. localStorage.heavy = HEAVY_PER_DAY;
  66. }
  67.  
  68. const TIMESTAMP = new Date();
  69. const NOW = TIMESTAMP.getHours();
  70. var counter = 0;
  71. var nightbonus = false;
  72. (function() {
  73. 'use strict';
  74.  
  75. console.log("-- Tribal Wars script enabled --");
  76.  
  77. getCurrentView();
  78.  
  79. })();
  80.  
  81. // aktuelles Browserfenster wird ermittelt.
  82. function getCurrentView() {
  83.  
  84. // Sollte ein Recaptcha entdeckt werden bleibt der Bot stehen
  85. //if(document.getElementsByClassName("g-recaptcha")){
  86. //console.log("Recaptcha detected");
  87. //sendRecaptchaMail();
  88. //}
  89. let currentUrl = window.location.href;
  90. if (currentUrl.endsWith("overview")) {
  91. console.log("CurrentView is overview");
  92. if (localStorage.lastView == "place") {
  93. goToMain();
  94. } else if (localStorage.lastView == "main") {
  95. if (localStorage.troops == "true") {
  96. goToBarracks();
  97. } else {
  98. localStorage.lastView = "barracks";
  99. goToOverview();
  100. }
  101. } else if (localStorage.lastView == "barracks") {
  102. if (localStorage.kav == "true") {
  103. goToStable();
  104. } else {
  105. localStorage.lastView = "stable";
  106. goToOverview();
  107. }
  108. } else {
  109. if (DO_NOT_FARM == false) {
  110. goToPlace();
  111. } else {
  112. localStorage.lastView = "place";
  113. goToOverview();
  114. }
  115.  
  116. }
  117. } else if (currentUrl.endsWith(OWN_VILLAGE_ID)) {
  118. console.log("CurrentView is place after Attack");
  119. nextattack();
  120. } else if (currentUrl.endsWith("place")) {
  121. localStorage.lastView = "place";
  122. console.log("CurrentView is place");
  123. nextattack();
  124. } else if (currentUrl.endsWith("confirm")) {
  125. setTimeout(function() {
  126. console.log("CurrentView is confirm attack");
  127. }, 5000);
  128. document.getElementById("troop_confirm_go").click();
  129. } else if (currentUrl.endsWith("main")) {
  130. localStorage.lastView = "main";
  131. console.log("CurrentView is Mainbuilding");
  132. buildNextBuilding();
  133. } else if (currentUrl.endsWith("barracks")) {
  134. localStorage.lastView = "barracks";
  135. console.log("CurrentView is Barracks");
  136. recruitTroops();
  137. } else if (currentUrl.endsWith("stable")) {
  138. localStorage.lastView = "stable";
  139. console.log("CurrentView is Stable");
  140. recruitKAV();
  141.  
  142. } else if (currentUrl.endsWith("logout-successful")) {
  143. goToMainPage();
  144. } else if (currentUrl.endsWith("/")) {
  145. console.log("CurrentView is login");
  146. login();
  147. } else {
  148. goToOverview();
  149. }
  150. }
  151.  
  152. // alle aktuellen Angriffe werden aufgelistet
  153. function getCurrentlyAttackingCoordinates() {
  154. let currentlyAttackingElements = document.getElementsByClassName("quickedit-label");
  155. let currentlyAttackingCoordinates = [];
  156.  
  157. for (var i = 0, len = currentlyAttackingElements.length; i < len; i++) {
  158. let coordinatesString =
  159. currentlyAttackingElements[i].innerHTML.split(")")[0].split("(")[1];
  160. currentlyAttackingCoordinates.push(coordinatesString);
  161. }
  162.  
  163. return currentlyAttackingCoordinates;
  164. }
  165. // Wenn das Skript nicht weißt wo du bist geht es zurück zur Dorfübersicht
  166. function goToOverview() {
  167. if(document.getElementsByClassName("btn-confirm-yes")[0]!=undefined){
  168. document.getElementsByClassName("btn-confirm-yes")[0].click();
  169. }
  170. setTimeout(function() {
  171. document.getElementById("menu_row").children[1].children[0].click()
  172. }, getDelay());
  173. }
  174. // Klickt auf den Link um zum Versammlungsplatz zu kommen
  175. function goToPlace() {
  176. setTimeout(function() {
  177. if (DO_NOT_FARM == false) {
  178. document.getElementsByClassName("visual-label-place")[0].children[0].click();
  179. } else {
  180. goToOverview();
  181. }
  182. }, getDelay());
  183. }
  184.  
  185.  
  186. // Klickt auf den Link zum Hauptgebäude
  187. function goToMain() {
  188. setTimeout(function() {
  189. if (DO_NOT_BUILD == false) {
  190. document.getElementsByClassName("visual-label-main")[0].children[0].click();
  191. } else {
  192. goToOverview();
  193. }
  194.  
  195. }, getDelay());
  196. }
  197.  
  198. function goToBarracks() {
  199. setTimeout(function() {
  200. document.getElementsByClassName("visual-label-barracks")[0].children[0].click()
  201. }, getDelay());
  202. }
  203.  
  204. function goToStable() {
  205. setTimeout(function() {
  206. document.getElementsByClassName("visual-label-stable")[0].children[0].click()
  207. }, getDelay());
  208. }
  209.  
  210. //Wenn sich der Bot abmeldet wechselt er zurück zur Start Seite
  211. function goToMainPage() {
  212. if (NIGHT_BONUS_START < NOW || NIGHT_BONUS_END > NOW) {
  213. setTimeout(function(){
  214. nightbonus = false;
  215. window.location.href = "https://die-staemme.de"
  216. }, getNightDelay());
  217. } else {
  218. nightbonus = false;
  219. window.location.href = "https://die-staemme.de"
  220. }
  221. }
  222. // Der Bot logt sich ein bzw. wählt die Welt aus
  223. function login() {
  224. if (document.getElementById("login_form")) {
  225. document.getElementById("user").value = USERNAME;
  226. document.getElementById("password").valie = PASSWORD;
  227. if (document.getElementById("remember-me").checked == false) {
  228. document.getElementById("remember-me").checked = true;
  229. }
  230. document.getElementsByClassName("btn-login")[0].click();
  231. } else {
  232. var links = document.getElementsByClassName("world-select");
  233. for (let i = 0; links.length - 1; i++) {
  234. if (links[i].href == "https://www.die-staemme.de/page/play/" + WORLD) {
  235. links[i].click();
  236. }
  237. }
  238. }
  239. }
  240. // Checkt ob genug Truppen im Dorf sind
  241. function checktroops(farm) {
  242. //spear
  243. if (farm.spear > document.getElementById("units_entry_all_spear").innerText.split(")")[0].split("(")[1]) {
  244. return false;
  245. }
  246. //sword
  247. if (farm.sword > document.getElementById("units_entry_all_sword").innerText.split(")")[0].split("(")[1]) {
  248. return false;
  249. }
  250. //axe
  251. if (farm.axe > document.getElementById("units_entry_all_axe").innerText.split(")")[0].split("(")[1]) {
  252. return false;
  253. }
  254. //spy
  255. if (farm.spy > document.getElementById("units_entry_all_spy").innerText.split(")")[0].split("(")[1]) {
  256. return false;
  257. }
  258. //light
  259. if (farm.light > document.getElementById("units_entry_all_light").innerText.split(")")[0].split("(")[1]) {
  260. return false;
  261. }
  262. //heavy
  263. if (farm.heavy > document.getElementById("units_entry_all_heavy").innerText.split(")")[0].split("(")[1]) {
  264. return false;
  265. }
  266. //ram
  267. if (farm.ram > document.getElementById("units_entry_all_ram").innerText.split(")")[0].split("(")[1]) {
  268. return false;
  269. }
  270. //catapult
  271. if (farm.catapult > document.getElementById("units_entry_all_catapult").innerText.split(")")[0].split("(")[1]) {
  272. return false;
  273. }
  274. //snob
  275. if (farm.snob > document.getElementById("units_entry_all_snob").innerText.split(")")[0].split("(")[1]) {
  276. return false;
  277. }
  278. return true;
  279. }
  280.  
  281. // Sendet den Antriff los
  282. function sendattack(farm) {
  283. //spear
  284. document.getElementById("unit_input_spear").value = farm.spear;
  285. //sword
  286. document.getElementById("unit_input_sword").value = farm.sword;
  287. //axe
  288. document.getElementById("unit_input_axe").value = farm.axe;
  289. //spy
  290. document.getElementById("unit_input_spy").value = farm.spy;
  291. //light
  292. document.getElementById("unit_input_light").value = farm.light;
  293. //heavy
  294. document.getElementById("unit_input_heavy").value = farm.heavy;
  295. //ram
  296. document.getElementById("unit_input_ram").value = farm.ram;
  297. //catapult
  298. document.getElementById("unit_input_catapult").value = farm.catapult;
  299. //snob
  300. document.getElementById("unit_input_snob").value = farm.snob;
  301. //coordinate
  302. document.getElementsByClassName("target-input-field")[0].value = farm.coordinate;
  303. //submit form
  304. document.getElementById("target_attack").click();
  305. }
  306. // Verzögerung zwischen den Aktionen
  307. function getDelay() {
  308. return Math.floor(Math.random() * (MAX_WAIT_TIME - MIN_WAIT_TIME) + MIN_WAIT_TIME);
  309. }
  310. // Verzögerung in der Nacht
  311. function getNightDelay() {
  312. return (24-NOW + NIGHT_BONUS_END)*3600000;
  313. }
  314. // aktuelle Seite wird neu geladen
  315. function reloadCurrentView() {
  316. location.reload(true);
  317. }
  318. // Es wird eine Mail versendet.
  319. function sendRecaptchaMail() {
  320. Email.send({
  321. SecureToken: "7b7190ba-7072-415d-987b-e9f342229c62",
  322. To: MAIL_ADDRESS,
  323. From: "ds@allyourstuff.de",
  324. Subject: "Recaptcha detected",
  325. Body: "Bitte melde dich an deinem Bot an, es wurde ein Recaptcha entdeckt."
  326. }).then(
  327. message => console.log(message)
  328. ).then(exit());
  329. }
  330.  
  331. // Der Bot logt sich aus
  332. function logout() {
  333. localStorage.removeItem("troops");
  334. localStorage.removeItem("lastView");
  335. document.getElementsByClassName("footer-link")[5].click();
  336. }
  337.  
  338. // Der nächste Angriff wird losgeschickt sofern alle Prüfungen erfolgreich waren
  339. function nextattack() {
  340. // Ein bisschen Zufall damit es nicht nach Maschine aussieht
  341. let delay = getDelay();
  342. let currentlyAttackingCoordinates = getCurrentlyAttackingCoordinates();
  343.  
  344. //wird überprüft ob der Nachbonus aktiv ist
  345. if (NIGHT_BONUS_START < NOW || NIGHT_BONUS_END > NOW) {
  346. nightbonus = true;
  347. logout();
  348. } else {
  349. setTimeout(function() {
  350. if (counter < FARMS.length) {
  351. let tempfarm = FARMS[counter];
  352. counter++;
  353. console.log("Checking for " + tempfarm.coordinate)
  354. if (!currentlyAttackingCoordinates.includes(tempfarm.coordinate)) {
  355. if (checktroops(tempfarm)) {
  356. console.log("Send troops");
  357. sendattack(tempfarm);
  358. } else {
  359. console.log("not enougth troops");
  360. nextattack();
  361. }
  362. } else {
  363. console.log("Allready under attack");
  364. nextattack();
  365. }
  366. } else {
  367. console.log("End of Farms");
  368. goToOverview();
  369. }
  370. }, delay);
  371. }
  372. }
  373.  
  374.  
  375. function exit(status) {
  376. // http://kevin.vanzonneveld.net
  377. // + original by: Brett Zamir (http://brettz9.blogspot.com)
  378. // + input by: Paul
  379. // + bugfixed by: Hyam Singer (http://www.impact-computing.com/)
  380. // + improved by: Philip Peterson
  381. // + bugfixed by: Brett Zamir (http://brettz9.blogspot.com)
  382. // % note 1: Should be considered expirimental. Please comment on this function.
  383. // * example 1: exit();
  384. // * returns 1: null
  385.  
  386. var i;
  387.  
  388. if (typeof status === 'string') {
  389. alert(status);
  390. }
  391.  
  392. window.addEventListener('error', function(e) {
  393. e.preventDefault();
  394. e.stopPropagation();
  395. }, false);
  396.  
  397. var handlers = [
  398. 'copy', 'cut', 'paste',
  399. 'beforeunload', 'blur', 'change', 'click', 'contextmenu', 'dblclick', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', 'scroll',
  400. 'DOMNodeInserted', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument', 'DOMNodeInsertedIntoDocument', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMElementNameChanged', 'DOMAttributeNameChanged', 'DOMActivate', 'DOMFocusIn', 'DOMFocusOut', 'online', 'offline', 'textInput',
  401. 'abort', 'close', 'dragdrop', 'load', 'paint', 'reset', 'select', 'submit', 'unload'
  402. ];
  403.  
  404. function stopPropagation(e) {
  405. e.stopPropagation();
  406. // e.preventDefault(); // Stop for the form controls, etc., too?
  407. }
  408. for (i = 0; i < handlers.length; i++) {
  409. window.addEventListener(handlers[i], function(e) {
  410. stopPropagation(e);
  411. }, true);
  412. }
  413.  
  414. if (window.stop) {
  415. window.stop();
  416. }
  417.  
  418. throw '';
  419. }
  420.  
  421.  
  422. function buildNextBuilding() {
  423. setTimeout(function() {
  424. let nextBuildingElement = getNextBuildingElement();
  425. if (nextBuildingElement !== undefined) {
  426. nextBuildingElement.click();
  427. console.log("Clicked on " + nextBuildingElement);
  428. }
  429. }, (getDelay() / 3));
  430. setTimeout(goToOverview(), getDelay());
  431. }
  432.  
  433. function getNextBuildingElement() {
  434. let buildableBuildings = document.getElementsByClassName("btn btn-build");
  435. let buildingElementsQueue = getBuildingElementsQueue();
  436. let found;
  437. while (found === undefined && buildingElementsQueue.length > 0) {
  438. var next = buildingElementsQueue.shift();
  439. if (buildableBuildings.hasOwnProperty(next)) {
  440. let nextBuilding = document.getElementById(next);
  441. var isVisible = nextBuilding.offsetWidth > 0 || nextBuilding.offsetHeight > 0;
  442. if (isVisible) {
  443. found = nextBuilding;
  444. }
  445. break;
  446. }
  447. }
  448. return found;
  449. }
  450.  
  451. function getBuildingElementsQueue() {
  452. var queue = [];
  453. // Building Queue due to Quests
  454. queue.push("main_buildlink_wood_1");
  455. queue.push("main_buildlink_stone_1");
  456. queue.push("main_buildlink_iron_1");
  457. queue.push("main_buildlink_wood_2");
  458. queue.push("main_buildlink_stone_2");
  459. queue.push("main_buildlink_main_2");
  460. queue.push("main_buildlink_main_3");
  461. queue.push("main_buildlink_barracks_1");
  462. queue.push("main_buildlink_wood_3");
  463. queue.push("main_buildlink_stone_3");
  464. queue.push("main_buildlink_barracks_2");
  465. queue.push("main_buildlink_storage_2");
  466. queue.push("main_buildlink_iron_2");
  467. queue.push("main_buildlink_storage_3");
  468. queue.push("main_buildlink_barracks_3");
  469. queue.push("main_buildlink_farm_2");
  470. queue.push("main_buildlink_iron_3");
  471. queue.push("main_buildlink_main_4");
  472. queue.push("main_buildlink_main_5");
  473. queue.push("main_buildlink_wood_4");
  474. queue.push("main_buildlink_stone_4");
  475. queue.push("main_buildlink_wall_1");
  476. queue.push("main_buildlink_market_1");
  477. queue.push("main_buildlink_storage_3");
  478. queue.push("main_buildlink_storage_4");
  479. queue.push("main_buildlink_wood_5");
  480. queue.push("main_buildlink_stone_5");
  481. queue.push("main_buildlink_wood_6");
  482. queue.push("main_buildlink_stone_6");
  483. queue.push("main_buildlink_iron_4");
  484. queue.push("main_buildlink_wood_7");
  485. queue.push("main_buildlink_stone_7");
  486. queue.push("main_buildlink_wood_8");
  487. queue.push("main_buildlink_stone_8");
  488. queue.push("main_buildlink_wood_9");
  489. queue.push("main_buildlink_stone_9");
  490. queue.push("main_buildlink_wood_10");
  491. queue.push("main_buildlink_stone_10");
  492. queue.push("main_buildlink_wood_11");
  493. queue.push("main_buildlink_stone_11");
  494. queue.push("main_buildlink_iron_5");
  495. queue.push("main_buildlink_wood_12");
  496. queue.push("main_buildlink_stone_12");
  497. queue.push("main_buildlink_wood_13");
  498. queue.push("main_buildlink_stone_13");
  499. queue.push("main_buildlink_iron_6");
  500. queue.push("main_buildlink_iron_7");
  501. queue.push("main_buildlink_iron_8");
  502. queue.push("main_buildlink_iron_9");
  503. // HQ:5 Bar: 3 Smth: 2 Mark: 3 Wood: 13 Stone 13 Iron 9 Wall:1
  504. queue.push("main_buildlink_farm_3");
  505. queue.push("main_buildlink_farm_4");
  506. queue.push("main_buildlink_stone_14");
  507. queue.push("main_buildlink_wood_14");
  508. queue.push("main_buildlink_iron_10");
  509. queue.push("main_buildlink_farm_5");
  510. queue.push("main_buildlink_wood_15");
  511. queue.push("main_buildlink_stone_15");
  512. queue.push("main_buildlink_storage_5");
  513. queue.push("main_buildlink_farm_6");
  514. queue.push("main_buildlink_iron_11");
  515. queue.push("main_buildlink_iron_12");
  516. queue.push("main_buildlink_iron_13");
  517. queue.push("main_buildlink_storage_6");
  518. queue.push("main_buildlink_storage_7");
  519. queue.push("main_buildlink_farm_7");
  520. queue.push("main_buildlink_market_4");
  521. queue.push("main_buildlink_market_5");
  522. queue.push("main_buildlink_farm_8");
  523. queue.push("main_buildlink_farm_9");
  524. queue.push("main_buildlink_iron_14");
  525. queue.push("main_buildlink_iron_15");
  526. queue.push("main_buildlink_storage_8");
  527. queue.push("main_buildlink_farm_10");
  528. queue.push("main_buildlink_main_11");
  529. queue.push("main_buildlink_main_12");
  530. queue.push("main_buildlink_farm_11");
  531. queue.push("main_buildlink_farm_12");
  532. queue.push("main_buildlink_farm_13");
  533. queue.push("main_buildlink_storage_9");
  534. queue.push("main_buildlink_iron_16");
  535. queue.push("main_buildlink_storage_10");
  536. queue.push("main_buildlink_wall_9");
  537. queue.push("main_buildlink_wall_10");
  538. queue.push("main_buildlink_stable_4");
  539. queue.push("main_buildlink_stable_5");
  540. queue.push("main_buildlink_wood_16");
  541. queue.push("main_buildlink_stone_16");
  542. queue.push("main_buildlink_storage_11");
  543. queue.push("main_buildlink_storage_12");
  544. queue.push("main_buildlink_farm_14");
  545. queue.push("main_buildlink_farm_15");
  546. queue.push("main_buildlink_farm_16");
  547. queue.push("main_buildlink_wood_17");
  548. queue.push("main_buildlink_stone_17");
  549. queue.push("main_buildlink_iron_17");
  550. queue.push("main_buildlink_storage_15");
  551. queue.push("main_buildlink_wood_18");
  552. queue.push("main_buildlink_stone_18");
  553. queue.push("main_buildlink_iron_18");
  554. queue.push("main_buildlink_storage_16");
  555. queue.push("main_buildlink_storage_17");
  556. queue.push("main_buildlink_storage_18");
  557. queue.push("main_buildlink_main_16");
  558. queue.push("main_buildlink_main_17");
  559. queue.push("main_buildlink_main_18");
  560. queue.push("main_buildlink_main_19");
  561. queue.push("main_buildlink_main_20");
  562. queue.push("main_buildlink_wood_19");
  563. queue.push("main_buildlink_wood_20");
  564. queue.push("main_buildlink_stone_19");
  565. queue.push("main_buildlink_stone_20");
  566. queue.push("main_buildlink_iron_19");
  567. queue.push("main_buildlink_iron_20");
  568.  
  569. return queue;
  570. }
  571.  
  572. function recruitTroops() {
  573. let spear = new Number(localStorage.spear);
  574. let sword = new Number(localStorage.sword);
  575. let axe = new Number(localStorage.axe);
  576. if (spear > 0) {
  577. let maxSpear = new Number(document.getElementById("spear_0_a").innerHTML.split(")")[0].split("(")[1]);
  578. if (maxSpear > spear) {
  579. document.getElementById("spear_0").value = localStorage.spear;
  580. localStorage.spear = 0;
  581. } else {
  582. localStorage.spear = localStorage.spear - maxSpear;
  583. document.getElementById("spear_0_a").click();
  584. }
  585. }
  586. if (sword > 0) {
  587. let maxSword = new Number(document.getElementById("sword_0_a").innerHTML.split(")")[0].split("(")[1]);
  588. if (maxSword > sword) {
  589. document.getElementById("sword_0").value = localStorage.sword;
  590. localStorage.sword = 0;
  591. } else {
  592. localStorage.sword = localStorage.sword - maxSword;
  593. document.getElementById("sword_0_a").click();
  594. }
  595. }
  596. if (axe > 0) {
  597. let maxAxe = new Number(document.getElementById("axe_0_a").innerHTML.split(")")[0].split("(")[1]);
  598. if (maxAxe > axe) {
  599. document.getElementById("axe_0").value = localStorage.axe;
  600. localStorage.axe = 0;
  601. } else {
  602. localStorage.axe = localStorage.axe - maxAxe;
  603. document.getElementById("axe_0_a").click();
  604. }
  605. }
  606. if (localStorage.spear <= 0 && localStorage.sword <= 0 && localStorage.axe <= 0) {
  607. localStorage.troops = false;
  608. }
  609. setTimeout(function() {
  610. document.getElementsByClassName("btn-recruit")[0].click();
  611. }, (getDelay() / 3));
  612. setTimeout(goToOverview(), getDelay());
  613. }
  614.  
  615. function recruitKAV() {
  616. let spy = new Number(localStorage.spy);
  617. let light = new Number(localStorage.light);
  618. let heavy = new Number(localStorage.heavy);
  619. if (spy > 0) {
  620. let maxSpy = new Number(document.getElementById("spy_0_a").innerHTML.split(")")[0].split("(")[1]);
  621. if (maxSpy > spy) {
  622. document.getElementById("spy_0").value = localStorage.spy;
  623. localStorage.spy = 0;
  624. } else {
  625. localStorage.spy = localStorage.spy - maxSpy;
  626. document.getElementById("spy_0_a").click();
  627. }
  628. }
  629. if (light > 0) {
  630. let maxLight = new Number(document.getElementById("light_0_a").innerHTML.split(")")[0].split("(")[1]);
  631. if (maxLight > light) {
  632. document.getElementById("light_0").value = localStorage.light;
  633. localStorage.light = 0;
  634. } else {
  635. localStorage.light = localStorage.light - maxLight;
  636. document.getElementById("light_0_a").click();
  637. }
  638. }
  639. if (heavy > 0) {
  640. let maxHeavy = new Number(document.getElementById("heavy_0_a").innerHTML.split(")")[0].split("(")[1]);
  641. if (maxHeavy > heavy) {
  642. document.getElementById("heavy_0").value = localStorage.heavy;
  643. localStorage.heavy = 0;
  644. } else {
  645. localStorage.heavy = localStorage.heavy - maxHeavy;
  646. document.getElementById("heavy_0_a").click();
  647. }
  648. }
  649. if (localStorage.spy <= 0 && localStorage.light <= 0 && localStorage.heavy <= 0) {
  650. localStorage.kav = false;
  651. }
  652. setTimeout(function() {
  653. document.getElementsByClassName("btn-recruit")[0].click();
  654. }, (getDelay() / 3));
  655. setTimeout(goToOverview(), getDelay());
  656. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement