Advertisement
Zaganu

EASY BH SCANNER

May 15th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.95 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Cheap BHs finder for erepublik
  3. // @include /^https:\/\/www\.erepublik\.com\/[a-z]{2}$/
  4. // @version 0.31
  5. // @description Find cheap BHs in ground divisions
  6. // @grant GM_addStyle
  7. // @namespace https://greasyfork.org/users/2402
  8. // ==/UserScript==
  9.  
  10. var $ = jQuery;
  11. var timeout = 60e3;
  12. var minPoints = 1500;
  13. var minDamage = [0, 1e6, 5e6, 8e6, 30e6];
  14.  
  15. function style(t) {
  16. $("head").append("<style>" + t + "</style>");
  17. }
  18.  
  19. function nFormatter(num, digits = 0) {
  20. var si = [
  21. { value: 1, symbol: "" },
  22. { value: 1E3, symbol: "k" },
  23. { value: 1E6, symbol: "M" },
  24. { value: 1E9, symbol: "G" },
  25. ];
  26. var rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
  27. var i;
  28. for (i = si.length - 1; i > 0; i--) {
  29. if (num >= si[i].value) {
  30. break;
  31. }
  32. }
  33. return (num / si[i].value).toFixed(digits).replace(rx, "$1") + si[i].symbol;
  34. }
  35.  
  36. function getFlagById(id) {
  37. var country = getKeyByValue(img_country, id);
  38. return "<img src='https://www.erepublik.net/images/flags_png/S/" + country + ".png' alt=''>";
  39. }
  40.  
  41. function main() {
  42. $("#epl").html('');
  43. $.getJSON("/en/military/campaigns-new", function (r) {
  44. var a = 0;
  45. var fl = true;
  46. $('#mybattles').html('');
  47. $('#epl').html('');
  48. $.getJSON("/en/military/campaignsJson/citizen", function (j) {
  49. $.each(j.contributions, function (i, e) {
  50. var country = getKeyByValue(img_country, e.side_country_id);
  51. var flag = "<img src='https://www.erepublik.net/images/flags_png/S/" + country + ".png' alt=''>";
  52. $('#mybattles').append("<div><a href='https://erepublik.com/en/military/battlefield/" + e.battle_id + "'>" + flag + " D"+ e.division + ", " + r.battles[e.battle_id].region.name + "</a></div>");
  53. });
  54. });
  55. $('#epl').append("<div id='eps'></div>");
  56. $.each(r.battles, function (i, b) {
  57. if (Object.keys(b.div).length == 1) return; // въздух
  58. var domPts = [0];
  59. $.each(b.div, function (n, d) {
  60. domPts[d.div] = d.dom_pts.inv > d.dom_pts.def ? d.dom_pts.inv : d.dom_pts.def;
  61. });
  62. var sides = [b.inv.id, b.def.id];
  63. var zoneId = b.zone_id;
  64. var zones = [];
  65. $.each(b.div, function(i, z) {
  66. zones[z.div] = z.id;
  67. });
  68. var divs = [1, 2, 3, 4];
  69. if ((domPts[1] > minPoints && domPts[1] < 1800) || (domPts[2] > minPoints && domPts[2] < 1800) || (domPts[3] > minPoints && domPts[3] < 1800) || (domPts[4] > minPoints && domPts[4] < 1800)) {
  70. $.getJSON("/en/military/nbp-stats/" + b.id, function(rb) {
  71. $.each(divs, function(i, div) {
  72. $.each(sides, function(i, side) {
  73. var damage = 0;
  74. if (typeof(rb.stats.current[zoneId][div]) != 'undefined' && typeof(rb.stats.current[zoneId][div][side]) != 'undefined') {
  75. damage = rb.stats.current[zoneId][div][side][zones[div]].top_damage[0].damage;
  76. }
  77. if (minDamage[div] > damage && domPts[div] < 1800) {
  78. $('#eps').append("<div id='epid" + b.id + "'><p>" + getFlagById(side) + "<a href='/en/military/battlefield/" + b.id + "'>" + b.region.name + " - (" + div + ") " + domPts[div] + " <b>" + nFormatter(damage) + "</b></a></p></div>");
  79. }
  80. })
  81. })
  82. })
  83. }
  84. });
  85. });
  86. }
  87. style("#epinf{z-index: 99999; position: absolute; top: 0; left: 0;margin: 7px;padding: 5px;border-radius: 3px;font-size: 11px;background-color:rgba(255,255,255,1);border:1px solid #999;box-shadow: 1px 1px 8px #aaaaaa;};");
  88. style(".bb{font-weight: 700;}");
  89. style(".div, #ne, #mybattles {border-bottom: 1px solid #666; margin-bottom: 4px;}");
  90. style(".pointer {cursor: pointer}");
  91. style("#eps div img, .div img {vertical-align: bottom;}");
  92. style(".div span:first-of-type {font-weight: 700}");
  93. style("#mybattles img{vertical-align: text-bottom;}");
  94.  
  95. $("body").after("<div id='epinf'><div id='epl'></div></div>");
  96. $("#epl").after("<div>My contributions</div><div id='mybattles'></div><div id='maxhit'></div>");
  97.  
  98. function getKeyByValue(object, value) {
  99. return Object.keys(object).find(key => object[key] === value);
  100. }
  101.  
  102. var img_country = {
  103. Romania: 1,
  104. Brazil: 9,
  105. Italy: 10,
  106. France: 11,
  107. Germany: 12,
  108. Hungary: 13,
  109. China: 14,
  110. Spain: 15,
  111. Canada: 23,
  112. USA: 24,
  113. Mexico: 26,
  114. Argentina: 27,
  115. Venezuela: 28,
  116. "United-Kingdom": 29,
  117. Switzerland: 30,
  118. Netherlands: 31,
  119. Belgium: 32,
  120. Austria: 33,
  121. "Czech-Republic": 34,
  122. Poland: 35,
  123. Slovakia: 36,
  124. Norway: 37,
  125. Sweden: 38,
  126. Finland: 39,
  127. Ukraine: 40,
  128. Russia: 41,
  129. Bulgaria: 42,
  130. Turkey: 43,
  131. Greece: 44,
  132. Japan: 45,
  133. "South-Korea": 47,
  134. India: 48,
  135. Indonesia: 49,
  136. Australia: 50,
  137. "South-Africa": 51,
  138. "Republic-of-Moldova": 52,
  139. Portugal: 53,
  140. Ireland: 54,
  141. Denmark: 55,
  142. Iran: 56,
  143. Pakistan: 57,
  144. Israel: 58,
  145. Thailand: 59,
  146. Slovenia: 61,
  147. Croatia: 63,
  148. Chile: 64,
  149. Serbia: 65,
  150. Malaysia: 66,
  151. Philippines: 67,
  152. Singapore: 68,
  153. "Bosnia-Herzegovina": 69,
  154. Estonia: 70,
  155. Latvia: 71,
  156. Lithuania: 72,
  157. "North-Korea": 73,
  158. Uruguay: 74,
  159. Paraguay: 75,
  160. Bolivia: 76,
  161. Peru: 77,
  162. Colombia: 78,
  163. "Republic-of-Macedonia-FYROM": 79,
  164. Montenegro: 80,
  165. "Republic-of-China-Taiwan": 81,
  166. Cyprus: 82,
  167. Belarus: 83,
  168. "New-Zealand": 84,
  169. "Saudi-Arabia": 164,
  170. Egypt: 165,
  171. "United-Arab-Emirates": 166,
  172. Albania: 167,
  173. Georgia: 168,
  174. Armenia: 169,
  175. Nigeria: 170,
  176. Cuba: 171
  177. };
  178.  
  179. main();
  180.  
  181. setInterval(function () {
  182. main();
  183. }, timeout);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement