SHARE
TWEET

Untitled

a guest Feb 24th, 2020 78 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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();
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top