Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.77 KB | None | 0 0
  1. var debugData = "";
  2. // Catching error purpose, this var will count every page loaded to prevent loading loop
  3. var incrementalSwitchPage = 0;
  4. var cookieName = "fakeypress";
  5. var version = "1.99";
  6. var updateversion = 1.7;
  7. var keycodes = {
  8. "a": 65,
  9. "b": 66,
  10. "c": 67,
  11. "skip": 74,
  12. "right": 39,
  13. "left": 37,
  14. "master": 90,
  15. "stop": 83
  16. };
  17. var keyedits = {
  18. "a": false,
  19. "b": false,
  20. "c": false,
  21. "skip": false,
  22. "left": false,
  23. "right": false,
  24. "stop": false
  25. };
  26. var key;
  27. var keydown = false;
  28. var cansend = true;
  29. var sitter = "";
  30. if (window.game_data.player.sitter != "0") {
  31. sitter = "t=" + window.game_data.player.id + "&";
  32. }
  33. var link = ["https://" + window.location.host + "/game.php?" + sitter + "village=", "&screen=am_farm"];
  34. var pos = {
  35. s: {
  36. order: 0,
  37. dir: 1,
  38. loadp: 2,
  39. fp: 3,
  40. lp: 4,
  41. remaxes: 5,
  42. remyellow: 6,
  43. remred: 7,
  44. remblue: 8,
  45. remgreen: 9,
  46. remredy: 10,
  47. remredb: 11,
  48. remattsince: 12,
  49. MaxNbAttacks: 13
  50. }
  51. };
  52. var faTable, userkeys, userset, totalrows, countedrows = 0;
  53. var pagesLoad = 0;
  54. // pagesLoaded will be used to detect if a page is loaded or not and prevent error in InnoGames code
  55. var pagesLoaded = true,
  56. pageLoading = false,
  57. start = false;
  58.  
  59.  
  60.  
  61. /****************************1st called function****************************/
  62. function run() {
  63. if (!(window.game_data.screen === 'am_farm')) {
  64. getFA();
  65. } else {
  66. if (checkCookie()) {
  67. if ($.cookie(cookieName)
  68. .indexOf('{') == -1) {
  69. alert("Essayer de changer le nom de la variable cookieName. Si le problème persiste, rendez vous sur le forum.");
  70.  
  71. dodokeys = $.cookie(cookieName)
  72. .split(',');
  73. resetCookie();
  74. userkeys[0] = dodokeys[0];
  75. userkeys[1] = dodokeys[1];
  76. userkeys[2] = dodokeys[2];
  77. userkeys[3] = dodokeys[3];
  78. userkeys[4] = dodokeys[5];
  79. userkeys[5] = dodokeys[4];
  80. userkeys[7] = dodokeys[7];
  81. keycodes.a = parseInt(userkeys[0]);
  82. keycodes.b = parseInt(userkeys[1]);
  83. keycodes.c = parseInt(userkeys[2]);
  84. keycodes.skip = parseInt(userkeys[3]);
  85. keycodes.left = parseInt(userkeys[5]);
  86. keycodes.right = parseInt(userkeys[4]);
  87. keycodes.stop = parseInt(userkeys[7]);
  88. setCookie(cookieName, 180);
  89. } else if (parseFloat($.cookie(cookieName)
  90. .split("{")[1].split("}")[0]) <= updateversion) {
  91. UI.ErrorMessage("A cause d'une mise a jour, les données ont étés perdues. Veuillez recommencer les assignations de touches.", 5000);
  92.  
  93. resetCookie();
  94. } else {
  95. userkeys = $.cookie(cookieName)
  96. .split("[")[1].split("]")[0].split(",");
  97. userset = $.cookie(cookieName)
  98. .split("[")[2].split("]")[0].split(",");
  99. keycodes.a = parseInt(userkeys[0]);
  100. keycodes.b = parseInt(userkeys[1]);
  101. keycodes.c = parseInt(userkeys[2]);
  102. keycodes.skip = parseInt(userkeys[3]);
  103. keycodes.left = parseInt(userkeys[5]);
  104. keycodes.right = parseInt(userkeys[4]);
  105. keycodes.stop = parseInt(userkeys[7]);
  106. }
  107. } else {
  108. UI.SuccessMessage("Bienvenue sur le Fakeypress de Crimsoni", 1000);
  109. resetCookie();
  110. }
  111. faTable = $('#plunder_list');
  112. if (userset[pos.s.loadp] === "1") {
  113. removeFirstPage();
  114. showPages();
  115. } else {
  116. initStuff();
  117. }
  118. }
  119. }
  120.  
  121.  
  122.  
  123. /****************************Script initialisation****************************/
  124. function initStuff() {
  125. $(document)
  126. .off();
  127. removeBadStuff();
  128. addRowRemover();
  129. makeItPretty();
  130. addPressKey();
  131. addTable();
  132. doSettings();
  133. Accountmanager.initTooltips();
  134. }
  135.  
  136.  
  137.  
  138. /****************************Remover of undesired orders****************************/
  139. function removeBadStuff() {
  140. for (var i = 1; i < $(faTable)
  141. .find("tr")
  142. .length; i++)
  143. var row = $(faTable)
  144. .find("tr")
  145. .eq(i);
  146. if (userset[pos.s.remyellow] == 1 && $(row)
  147. .html()
  148. .indexOf('yellow.png') != -1) {
  149. $(row)
  150. .remove();
  151. i--;
  152. } else if (userset[pos.s.remredy] == 1 && $(row)
  153. .html()
  154. .indexOf('red_yellow.png') != -1) {
  155. $(row)
  156. .remove();
  157. i--;
  158. } else if (userset[pos.s.remredb] == 1 && $(row)
  159. .html()
  160. .indexOf('red_blue.png') != -1) {
  161. $(row)
  162. .remove();
  163. i--;
  164. } else if (userset[pos.s.remred] == 1 && $(row)
  165. .html()
  166. .indexOf('red.png') != -1) {
  167. $(row)
  168. .remove();
  169. i--;
  170. } else if (userset[pos.s.remgreen] == 1 && $(row)
  171. .html()
  172. .indexOf('green.png') != -1) {
  173. $(row)
  174. .remove();
  175. i--;
  176. } else if (userset[pos.s.remblue] == 1 && $(row)
  177. .html()
  178. .indexOf('blue.png') != -1) {
  179. $(row)
  180. .remove();
  181. i--;
  182. }
  183. }
  184.  
  185.  
  186.  
  187. /****************************Display number of attacks****************************/
  188. function addRowRemover() {
  189. $('#plunder_list tr:gt(0)')
  190. .each(function(i) {
  191. $(this)
  192. .children("td")
  193. .each(function(j) {
  194. switch (j) {
  195. case 3:
  196. var attackImg = $(this)
  197. .find('img');
  198. var numAttacks = 0;
  199. if (typeof $(attackImg)
  200. .prop('tooltipText') != 'undefined') {
  201. numAttacks = $(attackImg)
  202. .prop('tooltipText')
  203. .replace(/\D/g, '');
  204. } else if (typeof attackImg.attr('title') != 'undefined') {
  205. numAttacks = attackImg.attr('title')
  206. .replace(/\D/g, '');
  207. }
  208.  
  209. if (numAttacks > 0) {
  210. if ($(this).children("span").length === 0) {
  211. attackImg.after("<span style='font-weight:bold;'> (" + numAttacks + ")</span>");
  212. }
  213. if (Number(numAttacks) > Number(userset[pos.s.MaxNbAttacks]) && userset[pos.s.remaxes] == 1) {
  214. $(this).closest("tr").remove();
  215. }
  216. }
  217. break;
  218. case 8:
  219. setOnclick($(this));
  220. break;
  221. case 9:
  222. setOnclick($(this));
  223. break;
  224. case 10:
  225. setOnclick($(this));
  226. break;
  227. }
  228. });
  229. });
  230. }
  231.  
  232.  
  233.  
  234. /****************************Change row CSS****************************/
  235. function makeItPretty() {
  236. $('h3')
  237. .eq(0)
  238. .text("Farm Assistant*");
  239. $('.row_a')
  240. .css("background-color", "rgb(216, 255, 216)");
  241. $('#plunder_list')
  242. .find('tr:gt(0)')
  243. .each(function(index) {
  244. $(this)
  245. .removeClass('row_a');
  246. $(this)
  247. .removeClass('row_b');
  248. if (index % 2 == 0) {
  249. $(this)
  250. .addClass('row_a');
  251. } else {
  252. $(this)
  253. .addClass('row_b');
  254. }
  255. });
  256. hideStuffs();
  257. }
  258.  
  259. function hideStuffs() {
  260. $('#contentContainer')
  261. .find('div[class="vis"]')
  262. .eq(0)
  263. .children()
  264. .eq(0)
  265. .append($(
  266. "<div class='vis' style='float:right;text-align:center;line-height:100%;width:12px;height:12px;margin:0px 0px 0px 0px;position:relative;background-color:tan;opacity:.7'><a href='#' num='0' onclick='uglyHider($(this));return false;'>+</a></div>"
  267. ));
  268. $('#contentContainer')
  269. .find('div[class="vis"]')
  270. .eq(0)
  271. .children()
  272. .eq(1)
  273. .hide();
  274. $('#am_widget_Farm')
  275. .find('h4')
  276. .eq(0)
  277. .append($(
  278. "<div class='vis' style='float:right;text-align:center;line-height:100%;width:12px;height:12px;margin:0px 0px 0px 0px;position:relative;background-color:tan;opacity:.7'><a href='#' num='1' onclick='uglyHider($(this));return false;'>+</a></div>"
  279. ));
  280. $('#plunder_list_filters')
  281. .hide();
  282. }
  283.  
  284. function uglyHider(linker) {
  285. var basd;
  286. if ($('#divFAPress')
  287. .length > 0) {
  288. basd = 1;
  289. } else {
  290. basd = 0;
  291. }
  292. if ($(linker)
  293. .text() === "+") {
  294. $(linker)
  295. .text("-");
  296. } else {
  297. $(linker)
  298. .text("+");
  299. }
  300. if (parseInt($(linker)
  301. .attr('num')) == 0) {
  302. $('#contentContainer')
  303. .find('div[class="vis"]')
  304. .eq(basd)
  305. .children()
  306. .eq(1)
  307. .toggle();
  308. } else if (parseInt($(linker)
  309. .attr('num')) == 1) {
  310. $('#plunder_list_filters')
  311. .toggle();
  312. }
  313. }
  314.  
  315. var nbvivis = 0;
  316. var refreshIntervalIdC;
  317. var nbabc = 0;
  318. nbLCTemplateA = Accountmanager.farm.templates.t_6.light;
  319. nbLCTemplateB = Accountmanager.farm.templates.t_506.light;
  320.  
  321. function abc(letter) {
  322. nbabc++;
  323. if(nbabc <= 1) {
  324. console.log("debut abc");
  325. refreshIntervalIdC = setInterval(function(){
  326. nbvivis = document.getElementById('plunder_list').getElementsByTagName('tr').length - 2;
  327. nbLC = Accountmanager.farm.current_units.light;
  328. nbSPY = Accountmanager.farm.current_units.spy;
  329. console.log(nbvivis);
  330. console.log(nbLC);
  331.  
  332. if(nbvivis <= 0 || ((letter == 'b' || letter == 'c') && nbLC < nbLCTemplateB) || ((letter == 'a') && (nbLC < nbLCTemplateA || nbSPY < 2))) {
  333. console.log("ending");
  334. clearInterval(refreshIntervalIdC);
  335. getNewVillage("n",letter);
  336. } else if (cansend) {
  337. click(letter);
  338. //console.log("send");
  339. doTime(201);
  340. }
  341. }, 210);
  342. }
  343. }
  344.  
  345. function stopabc() {
  346. clearInterval(refreshIntervalIdC);
  347. nbabc = 0;
  348.  
  349. }
  350.  
  351. /****************************Key events binding****************************/
  352. function addPressKey() {
  353. window.onkeypress = function(e) {
  354. checkKeys();
  355. };
  356. window.onkeydown = function(e) {
  357. key = e.keyCode ? e.keyCode : e.which;
  358. keydown = true;
  359. if (key == keycodes.left) {
  360. if (pagesLoaded)
  361. getNewVillage("p","g");
  362. } else if (key == keycodes.right) {
  363. if (pagesLoaded)
  364. getNewVillage("n","g");
  365. }
  366. };
  367. window.onkeyup = function(e) {
  368. checkKeys();
  369. keydown = false;
  370. };
  371.  
  372. function checkKeys() {
  373. //console.log("checking keys");
  374. if (key == keycodes.stop) {
  375. console.log("stop");
  376. stopabc();
  377. }else if (keyedits.a) {
  378. keycodes.a = key;
  379. refresh();
  380. } else if (keyedits.b) {
  381. keycodes.b = key;
  382. refresh();
  383. } else if (keyedits.c) {
  384. keycodes.c = key;
  385. refresh();
  386. } else if (keyedits.skip) {
  387. keycodes.skip = key;
  388. refresh();
  389. } else if (keyedits.left) {
  390. keycodes.left = key;
  391. refresh();
  392. } else if (keyedits.right) {
  393. keycodes.right = key;
  394. refresh();
  395. } else if (keyedits.stop) {
  396. keycodes.stop = key;
  397. refresh();
  398. } else if (key == keycodes.skip) {
  399. $(faTable)
  400. .find("tr")
  401. .eq(1)
  402. .remove();
  403. } else if (cansend) {
  404. if (key == keycodes.c) {
  405. abc('c');
  406. } else if (key == keycodes.a) {
  407. abc('a');
  408. } else if (key == keycodes.b) {
  409. abc('b');
  410. }
  411. }
  412. }
  413. }
  414.  
  415. function click(letter) {
  416. for (h = 1; h < $(faTable)
  417. .find("tr")
  418. .length; h++) {
  419. var row = $(faTable)
  420. .find("tr")
  421. .eq(h);
  422. var button = $('a[class*="farm_icon_' + letter + '"]', row)
  423. .eq(0);
  424. if ($(button)
  425. .html() != null) {
  426. if ($(button)
  427. .attr('class')
  428. .indexOf('farm_icon_disabled') == -1) {
  429. $(button)
  430. .click();
  431. return;
  432. }
  433. }
  434. }
  435. }
  436.  
  437. /****************************Build Script Menu****************************/
  438. function addTable() {
  439. if ($('#divFAPress')) {
  440. $('#divFAPress')
  441. .remove();
  442. $('#divFAPressSettings')
  443. .remove();
  444. }
  445. $("#contentContainer h3")
  446. .eq(0)
  447. .after($(
  448. "<div id='divFAPress' class='vis' style='font-size:12px;width:40%'><table id='faKeyPress' class='vis' style='width:100%' cellspacing='0'><thead><tr><th colspan='10' style='font-size:16px;text-align:center'>FA Keypress v" +
  449. version +
  450. " by<br> Crimsoni & Sytten</tr></thead>" +
  451. "<tbody>" +
  452. "<tr id='buttonRow'>" +
  453. "<th colspan='1' valign='middle'>Boutons: <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/questionmark.png' title='Clique sur un bouton puis une touche du clavier pour modifier' width='13' height='13' alt='' class='tooltip' />" +
  454. "<td colspan='1' align='center'>" +
  455. "<a href='#' onclick='return setEditMode(0)' id='buttona' class='tooltip farm_icon farm_icon_a' title='Bouton A'>" +
  456. "<td colspan='1' align='center'>" +
  457. "<a href='#' onclick='return setEditMode(1)' id='buttonb' class='tooltip farm_icon farm_icon_b' title='Bouton B'>" +
  458. "<td colspan='1' align='center'>" +
  459. "<a href='#' onclick='return setEditMode(2)' id='buttonc' class='tooltip farm_icon farm_icon_c' title='Bouton C'>"+
  460. "<td colspan='1' align='center'>" +
  461. "<input class='btn tooltip' type='button' value='Ignorer' onclick='return setEditMode(3)' style='margin:0px 0px 0px 0px' title='Ignore la ligne de pillage'/>" +
  462. "<td colspan='1' align='center'>" +
  463. "<a href='#' onclick='return setEditMode(4)' id='buttonleft' class='tooltip ' title='<-'><-</a>" +
  464. "<td colspan='1' align='center'>" +
  465. "<a href='#' onclick='return setEditMode(5)' id='buttonright' class='tooltip ' title='->'>-></a>" +
  466. "<td colspan='1' align='center'>" +
  467. "<input onclick='return setEditMode(6)' id='buttonstop' class='btn tooltip ' type='button' value='STOP BOT' style='margin:0px 0px 0px 0px' title='Bouton STOP BOT'/>" +
  468. "</tr>" +
  469. "<tr id='keysRow'>"+
  470. "<th colspan='1'>Touche:<td align='center'>" +
  471. String.fromCharCode(keycodes.a) + "<td align='center'>" + String.fromCharCode(keycodes.b) + "<td align='center'>" + String.fromCharCode(
  472. keycodes.c) + "<td align='center'>" + String.fromCharCode(keycodes.skip) +
  473. "<td>"+ String.fromCharCode(keycodes.left)+ "<td>"+ String.fromCharCode(keycodes.right)+ "<td align='center'>"+ String.fromCharCode(keycodes.stop) +"</tr></tbody></table></div>"));
  474. $('#divFAPress')
  475. .append($(
  476. "<table id='faKeySettings' class='vis' style='width:100%' cellspacing='0'><thead><tr><th colspan='3'><em>Paramètres</em> - <a href'#' id='showSettings' onclick='return doSettings()'>Cacher</a></thead><tbody id='bodySettings'><tr><td colspan='1' align='center'><input type='checkbox' id='chbLoadPages' onclick='return chkBoxClick($(this).is(\":checked\"), " +
  477. pos.s.loadp + ")'> <b>Charger les pages</b><td colspan='4'>De <input type='text' id='txtFirstPage' size='2' maxlength='2' value='" + userset[pos.s.fp] +
  478. "' onchange='onlyNum(this);' disabled> Ã <input type='text' id='txtLastPage' size='2' maxlength='2' value='" + userset[pos.s.lp] +
  479. "' onchange='onlyNum(this);' disabled><tr><td align='center'><b>Cacher</b><td><input type='checkbox' id='chbRemAxes' onclick='return chkBoxClick($(this).is(\":checked\"), " + pos.s
  480. .remaxes +
  481. ")'> <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/attacks.png' title='Attaques en cours (spécifier à partir de combien)' alt='' class='tooltip' /> Attaques en cours <input type='text' id='txtNbAttacks' size='2' maxlength='2' value='" + userset[pos.s.MaxNbAttacks] + "' onchange='onlyNum(this)' disabled><input type='checkbox' id='chbRemBlue' onclick='return chkBoxClick($(this).is(\":checked\"), " +
  482. pos.s.remblue +
  483. ")'> <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/blue.png' title='Espionné' alt='' class='tooltip' /> Espionné <br><input type='checkbox' id='chbRemGreen' onclick='return chkBoxClick($(this).is(\":checked\"), " +
  484. pos.s.remgreen +
  485. ")'> <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/green.png' title='Victoire Totale' alt='' class='tooltip' /> Victoire Totale <br><input type='checkbox' id='chbRemYellow' onclick='return chkBoxClick($(this).is(\":checked\"), " +
  486. pos.s.remyellow +
  487. ")'> <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/yellow.png' title='Pertes' alt='' class='tooltip' /> Pertes <br><input type='checkbox' id='chbRemRedYellow' onclick='return chkBoxClick($(this).is(\":checked\"), " +
  488. pos.s.remredy +
  489. ")'> <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/red_yellow.png' title='Vaincu, mais bâtiment(s) endommagé(s)' alt='' class='tooltip' /> Vaincu, mais endommagés<br><input type='checkbox' id='chbRemRedBlue' onclick='return chkBoxClick($(this).is(\":checked\"), " +
  490. pos.s.remredb +
  491. ")'> <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/red_blue.png' title='Vaincu, mais espionné' alt='' class='tooltip' /> Vaincu, mais espionné<br><input type='checkbox' id='chbRemRed' onclick='return chkBoxClick($(this).is(\":checked\"), " +
  492. pos.s.remred +
  493. ")'> <img src='https://media.innogamescdn.com/com_DS_FR/Scripts/Pillage/red.png' title='Défait' alt='' class='tooltip' /> Défait</tr><tr><td align='right' colspan='2'><input type='button' class='btn' id='btnSettingsReset' value='Reset' onclick='resetCookie(); UI.SuccessMessage(\"Reset effectué\",1000); run(); return false;'><input type='button' class='btn' id='btnSettingsApply' value='Appliquer' onclick='saveSettings(); run(); return false'><input type='button' class='btn' id='btnSettingsSave' value='Sauvegarder' onclick='saveSettings(); return false;'></tr></tbody></table>"
  494. ));
  495.  
  496.  
  497. if (userset[pos.s.remred] === "1") {
  498. $('#chbRemRed')
  499. .prop("checked", true);
  500. }
  501. if (userset[pos.s.remredy] === "1") {
  502. $('#chbRemRedYellow')
  503. .prop("checked", true);
  504. }
  505. if (userset[pos.s.remredb] === "1") {
  506. $('#chbRemRedBlue')
  507. .prop("checked", true);
  508. }
  509. if (userset[pos.s.remgreen] === "1") {
  510. $('#chbRemGreen')
  511. .prop("checked", true);
  512. }
  513. if (userset[pos.s.remblue] === "1") {
  514. $('#chbRemBlue')
  515. .prop("checked", true);
  516. }
  517. if (userset[pos.s.remaxes] === "1") {
  518. $('#chbRemAxes')
  519. .prop("checked", true);
  520. $('#txtNbAttacks')
  521. .prop("disabled", false);
  522. }
  523. if (userset[pos.s.remyellow] === "1") {
  524. $('#chbRemYellow')
  525. .prop("checked", true);
  526. }
  527. if (userset[pos.s.loadp] === "1") {
  528. $('#chbLoadPages')
  529. .prop("checked", true);
  530. $('#txtFirstPage')
  531. .prop("disabled", false);
  532. $('#txtLastPage')
  533. .prop("disabled", false);
  534. }
  535. }
  536.  
  537.  
  538.  
  539. /****************************Hide/Show Script Settings****************************/
  540. function doSettings() {
  541. if ($('#showSettings')
  542. .html()
  543. .indexOf('Cacher') != -1) {
  544. $('#bodySettings')
  545. .hide();
  546. $('#showSettings')
  547. .html('Voir');
  548. } else {
  549. $('#bodySettings')
  550. .show();
  551. $('#showSettings')
  552. .html('Cacher');
  553. }
  554. }
  555.  
  556.  
  557.  
  558. /****************************Settings Related functions****************************/
  559. function chkBoxClick(yolo, index) {
  560. if (yolo) {
  561. userset[index] = "1";
  562. if (index === pos.s.loadp) {
  563. $('#txtFirstPage')
  564. .prop("disabled", false);
  565. $('#txtLastPage')
  566. .prop("disabled", false);
  567. } else if (index === pos.s.remaxes) {
  568. $('#txtNbAttacks')
  569. .prop("disabled", false);
  570. }
  571. } else {
  572. userset[index] = "0";
  573. if (index === pos.s.loadp) {
  574. $('#txtFirstPage')
  575. .prop("disabled", true);
  576. $('#txtLastPage')
  577. .prop("disabled", true);
  578. } else if (index === pos.s.remaxes) {
  579. $('#txtNbAttacks')
  580. .prop("disabled", true);
  581. }
  582. }
  583. setCookie(cookieName, "{" + version + "}[" + userkeys.toString() + "][" + userset.toString() + "]", 180);
  584. }
  585.  
  586. function saveSettings() {
  587. userset[pos.s.fp] = $('#txtFirstPage')
  588. .val();
  589. userset[pos.s.lp] = $('#txtLastPage')
  590. .val();
  591. userset[pos.s.MaxNbAttacks] = $('#txtNbAttacks')
  592. .val();
  593. setCookie(cookieName, "{" + version + "}[" + userkeys.toString() + "][" + userset.toString() + "]", 180);
  594. UI.SuccessMessage("Paramètres sauvés", 1000);
  595. }
  596.  
  597. function setEditMode(let) {
  598. keyedits.a = false;
  599. keyedits.b = false;
  600. keyedits.c = false;
  601. keyedits.skip = false;
  602. keyedits.left = false;
  603. keyedits.right = false;
  604. keyedits.stop = false;
  605. if (let == 0) {
  606. keyedits.a = true;
  607. } else if (let == 1) {
  608. keyedits.b = true;
  609. } else if (let == 2) {
  610. keyedits.c = true;
  611. } else if (let == 3) {
  612. keyedits.skip = true;
  613. } else if (let == 4) {
  614. keyedits.left = true;
  615. } else if (let == 5) {
  616. keyedits.right = true;
  617. } else if (let == 5) {
  618. keyedits.stop = true;
  619. }
  620.  
  621. return true;
  622. }
  623.  
  624.  
  625.  
  626. /****************************Cookies Handling****************************/
  627. function checkCookie() {
  628. if (!($.cookie(cookieName))) {
  629. return false;
  630. } else {
  631. return true;
  632. }
  633. }
  634.  
  635. function setCookie(cname, cvalue, exdays) {
  636. var d = new Date();
  637. d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  638. var expires = "expires=" + d.toGMTString();
  639. document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/";
  640. }
  641.  
  642. function resetCookie() {
  643. $.cookie(cookieName, null);
  644. userkeys = [65, 66, 67, 74, 39, 37, 90, 83];
  645. userset = ["distance", "asc", "0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0"];
  646. setCookie(cookieName, "{" + version + "}[" + userkeys.toString() + "][" + userset.toString() + "]", 180);
  647. }
  648.  
  649.  
  650.  
  651. /****************************Update Function****************************/
  652. function refresh() {
  653. userkeys = [keycodes.a, keycodes.b, keycodes.c, keycodes.skip, keycodes.right, keycodes.left, keycodes.master, keycodes.stop];
  654. setCookie(cookieName, "{" + version + "}[" + userkeys.toString() + "][" + userset.toString() + "]", 180);
  655. setEditMode(10);
  656. $('#divFAPress')
  657. .remove();
  658. addTable();
  659. doSettings();
  660. }
  661.  
  662.  
  663.  
  664. /****************************Unit Sender****************************/
  665. function setOnclick(button) {
  666. var clickFunction = button.find('a')
  667. .attr('onclick');
  668. if (typeof clickFunction != 'undefined') {
  669. var parameters = clickFunction.slice(clickFunction.indexOf("(") + 1, clickFunction.indexOf(")"));
  670. var eachParameter = parameters.split(",");
  671. if (clickFunction.indexOf("FromReport") == -1) {
  672. button.find('a')
  673. .attr('onclick', 'return customSendUnits(' + parameters + ', $(this))');
  674. } else {
  675. button.find('a')
  676. .attr('onclick', 'return customSendUnitsFromReport(' + parameters + '))');
  677. }
  678. }
  679. }
  680.  
  681. function customSendUnits(link, target_village, template_id, button) {
  682. var lastbutton = button;
  683. var row = button.closest("tr");
  684. button.closest("tr")
  685. .remove();
  686. link = $(link);
  687. if (link.hasClass('farm_icon_disabled')) return false;
  688. var data = {
  689. target: target_village,
  690. template_id: template_id,
  691. source: game_data.village.id
  692. };
  693. $.post(Accountmanager.send_units_link, data, function(data) {
  694. if (data.error) {
  695. UI.ErrorMessage(data.error);
  696. $(faTable)
  697. .find("tr")
  698. .eq(h)
  699. .before(row);
  700. } else {
  701. $('.farm_village_' + target_village)
  702. .addClass('farm_icon_disabled');
  703. if (typeof $(button)
  704. .prop('tooltipText') != 'undefined') {
  705. var buttext = $(button)
  706. .prop('tooltipText');
  707. }
  708. var yolo = $('<div></div>')
  709. .append($(buttext));
  710. var bolo = $(yolo)
  711. .find('img[src*="res.png"]')
  712. .eq(0)
  713. .attr('src');
  714. var sep1 = buttext.split("<br />");
  715. sep1.splice(sep1.length - 2, 1);
  716. UI.SuccessMessage(sep1.join(" "), 1000);
  717. button.closest("tr")
  718. .remove();
  719. Accountmanager.farm.updateOwnUnitsAvailable(data.current_units);
  720. }
  721. }, 'json');
  722. return false
  723. }
  724.  
  725. function customSendUnitsFromReport(link, target_village, report_id, button) {
  726. var lastbutton = button;
  727. var row = button.closest("tr");
  728. button.closest("tr")
  729. .remove();
  730. link = $(link);
  731. if (link.hasClass('farm_icon_disabled'))
  732. return false;
  733. var data = {
  734. report_id: report_id
  735. };
  736. $.post(Accountmanager.send_units_link_from_report, data, function(data) {
  737. if (data.error) {
  738. UI.ErrorMessage(data.error);
  739. $(faTable)
  740. .find("tr")
  741. .eq(h)
  742. .before(row);
  743. } else {
  744. if (typeof data.success === 'string') {
  745. if (typeof $(button)
  746. .prop('tooltipText') != 'undefined') {
  747. var buttext = $(button)
  748. .prop('tooltipText');
  749. }
  750. var yolo = $('<div></div>')
  751. .append($(buttext));
  752. var bolo = $(yolo)
  753. .find('img[src*="res.png"]')
  754. .eq(0)
  755. .attr('src');
  756. var sep1 = buttext.split("<br />");
  757. sep1.splice(sep1.length - 2, 1);
  758. UI.SuccessMessage(sep1.join(" "), 1000);
  759. $('.farm_village_' + target_village)
  760. .addClass('farm_icon_disabled');
  761. Accountmanager.farm.updateOwnUnitsAvailable(data.current_units);
  762. };
  763. }
  764. }, 'json');
  765. return false
  766. }
  767.  
  768.  
  769.  
  770. /****************************Pages display****************************/
  771. function removeFirstPage() {
  772. $('#am_widget_Farm')
  773. .hide();
  774. $('#plunder_list tr:gt(0)')
  775. .remove();
  776. $('#plunder_list_nav')
  777. .hide();
  778. }
  779.  
  780. function showPages() {
  781. addLoader();
  782. var pages = $.trim($('#plunder_list_nav')
  783. .find('table')
  784. .eq(0)
  785. .find('a:last')
  786. .html()
  787. .replace(/\D+/g, ''));
  788. if (parseInt(pages) > parseInt(userset[pos.s.lp])) {
  789. pages = parseInt(userset[pos.s.lp]);
  790. } else {
  791. pages = parseInt(pages);
  792. }
  793. getPage(pages);
  794. }
  795.  
  796. function addLoader() {
  797. $("#contentContainer h3")
  798. .eq(0)
  799. .after("<div id='yoloLoader'><img src='graphic/throbber.gif' height='24' width='24'></img> <span id='yoloLoadText'> 0%</span></div>");
  800. }
  801.  
  802. function getPage(pages) {
  803. var i = parseInt(userset[pos.s.fp]) - 1 + pagesLoad;
  804. $.get(link[0] + window.game_data.village.id + "&order=" + userset[pos.s.order] + "&dir" + userset[pos.s.dir] + "&Farm_page=" + i + "&screen=am_farm", function(data) {
  805. var v = $(data);
  806. var subFaTable = $('#plunder_list', v);
  807. var rows = $(subFaTable)
  808. .find('tr');
  809. if (totalrows == null) {
  810. totalrows = (userset[pos.s.lp] - userset[pos.s.fp] + 1) * rows.length;
  811. }
  812. for (var b = 1; b < rows.length; b++) {
  813. $(faTable)
  814. .find('tr:last')
  815. .after($(rows[b]));
  816. countedrows++;
  817. $('#yoloLoadText')
  818. .html(Math.round(countedrows / totalrows * 100) + "%");
  819. }
  820. pagesLoad++;
  821. if (pagesLoad == pages) {
  822. pagesLoad = 0;
  823. countedrows = 0;
  824. totalrows = null;
  825. $('#yoloLoader')
  826. .remove();
  827. $('#am_widget_Farm')
  828. .show();
  829. initStuff();
  830. } else {
  831. getPage(pages);
  832. }
  833. });
  834. }
  835.  
  836.  
  837.  
  838. /****************************Helper Functions****************************/
  839. function doTime(millsec) {
  840. cansend = false;
  841. setTimeout(function() {
  842. cansend = true;
  843. }, millsec);
  844. }
  845.  
  846. function checkPage() {
  847. if (!(window.game_data.screen === 'am_farm')) {
  848. getFA();
  849. }
  850. }
  851.  
  852. function getNewVillage(way,letter) {
  853. try {
  854. console.log("debut new vivi");
  855. currentIncrement = incrementalSwitchPage;
  856. pagesLoaded = false;
  857. Timing.pause();
  858. fadeThanksToCheese();
  859. openLoader();
  860. var vlink = link[0] + way + window.game_data.village.id + link[1];
  861.  
  862. $.ajax({
  863. type: "GET",
  864. url: vlink,
  865. error: function(xhr, statusText) {
  866. alert("Error: " + statusText);
  867. $('#fader')
  868. .remove();
  869. $('#loaders')
  870. .remove();
  871. },
  872. success: function(data) {
  873. /* Here we got the recent way for InnoGames to update game data
  874. Then we parse it and we delete some bonus data that cause error
  875. => Due to new system, switching between a normal village and a bonus village don't work, cause you feed a game_data.village.bonus object
  876. */
  877. debugData = data.split("TribalWars.updateGameData(")[1].split("});")[0] + "}";
  878. debugData = JSON.parse(debugData);
  879. debugData.village.bonus = null;
  880. TribalWars.updateGameData(debugData);
  881. var v = $(data);
  882. var title = data.split('<title>')[1].split('</title>')[0];
  883.  
  884. //On change manuellement le village dans les données car ce n'est pas fait automatiquement
  885. var viviId = debugData.village.id;
  886. game_data.village.id = viviId;
  887.  
  888. $('#header_info')
  889. .html($('#header_info', v)
  890. .html());
  891. $('#topContainer')
  892. .html($('#topContainer', v)
  893. .html());
  894. $('#contentContainer')
  895. .html($('#contentContainer', v)
  896. .html());
  897. $('#quickbar_inner')
  898. .html($('#quickbar_inner', v)
  899. .html());
  900. $('head')
  901. .find('title')
  902. .html(title);
  903. $('#fader')
  904. .remove();
  905. $('#loaders')
  906. .remove();
  907. pagesLoaded = true;
  908. Timing.resetTickHandlers();
  909. Timing.pause();
  910. incrementalSwitchPage++;
  911. run();
  912. if(letter != "g") {
  913. setTimeout(function(){ console.log("recall abc"); nbabc = 0;nbvivis = 0; abc(letter); },Math.floor(Math.random() * Math.floor(1000) + 2000));
  914. }
  915. }
  916. });
  917. } catch (err) {
  918.  
  919. }
  920. }
  921.  
  922. function getFA() {
  923. pagesLoaded = false;
  924. fadeThanksToCheese();
  925. openLoader();
  926. var vlink = link[0] + window.game_data.village.id + link[1];
  927. $.getScript("https://dsfr.innogamescdn.com/assets/" + window.location.host.substring(0,4) + "/b557b6ba364cab734dc830da16cb24de/js/game/Accountmanager.js_", function() {
  928. $.ajax({
  929. type: "GET",
  930. url: vlink,
  931. error: function(xhr, statusText) {
  932. alert("Error: " + statusText);
  933. $('#fader')
  934. .remove();
  935. $('#loaders')
  936. .remove();
  937. },
  938. success: function(data) {
  939. /* Same as getNewVillage but we don't need to change the bonus attribute */
  940. debugData = data.split("TribalWars.updateGameData(")[1].split("});")[0] + "}";
  941. debugData = JSON.parse(debugData);
  942. TribalWars.updateGameData(debugData);
  943. var v = $(data);
  944. var title = data.split('<title>')[1].split('</title>')[0];
  945. $('#header_info')
  946. .html($('#header_info', v)
  947. .html());
  948. $('#topContainer')
  949. .html($('#topContainer', v)
  950. .html());
  951. $('#contentContainer')
  952. .html($('#contentContainer', v)
  953. .html());
  954. $('head')
  955. .find('title')
  956. .html(title);
  957. $('#fader')
  958. .remove();
  959. $('#loaders')
  960. .remove();
  961. pagesLoaded = true;
  962. incrementalSwitchPage++;
  963. run();
  964. }
  965. });
  966. });
  967. }
  968.  
  969. function fadeThanksToCheese() {
  970. var fader = document.createElement('div');
  971. fader.id = 'fader';
  972. fader.style.position = 'fixed';
  973. fader.style.height = '100%';
  974. fader.style.width = '100%';
  975. fader.style.backgroundColor = 'black';
  976. fader.style.top = '0px';
  977. fader.style.left = '0px';
  978. fader.style.opacity = '0.6';
  979. fader.style.zIndex = '12000';
  980. document.body.appendChild(fader);
  981. }
  982.  
  983. function openLoader() {
  984. var currentIncremental = incrementalSwitchPage;
  985. var widget = document.createElement('div');
  986. widget.id = 'loaders';
  987. widget.style.position = 'fixed';
  988. widget.style.width = '24px';
  989. widget.style.height = '24px';
  990. widget.style.top = '50%';
  991. widget.style.left = '50%';
  992. $(widget)
  993. .css("margin-left", "-12px");
  994. $(widget)
  995. .css("margin-top", "-12px");
  996. widget.style.zIndex = 13000;
  997. $(widget)
  998. .append($("<img src='graphic/throbber.gif' height='24' width='24'></img>"));
  999. $('#contentContainer')
  1000. .append($(widget));
  1001.  
  1002. /* This timeout check if the loading is correctly done 4 seconds after his start
  1003. If not, then the event is cancelled, and the last page is loaded from scratch
  1004. */
  1005. setTimeout(function() {
  1006. if (incrementalSwitchPage <= currentIncremental) {
  1007. UI.ErrorMessage('Un problème a été rencontré, la page va se recharger.');
  1008. var currentURL = document.URL.split("village=") + "village=" + game_data.village.id + "&screen=am_farm";
  1009. window.location.href = currentURL;
  1010. console.log("La page a mis trop de temps à se charger.")
  1011. }
  1012. }, 4000);
  1013.  
  1014. }
  1015.  
  1016. // Debug purpose, close all loading event
  1017. function closeLoader() {
  1018. $('#fader').remove();
  1019. $('#loaders').remove();
  1020. }
  1021.  
  1022. function onlyNum(obj) {
  1023. obj.value = obj.value.replace(/\D/g, '');
  1024. if (obj.value == '') {
  1025. obj.value = 0;
  1026. }
  1027. }
  1028.  
  1029. /****************************????????****************************/
  1030. function showKeys() {
  1031. if ($('#showKeys')
  1032. .html()
  1033. .indexOf('>') == -1) {
  1034. $('#showKeys')
  1035. .html('Keys >>>');
  1036. } else {
  1037. $('#showKeys')
  1038. .html('Keys <<<');
  1039. }
  1040. }
  1041.  
  1042.  
  1043.  
  1044. run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement