Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 58.24 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Bot na exp
  3. // @version 1.88
  4. // @description Bot z przechodzeniem przez mapki
  5. // @author
  6. // @match *://*/
  7. // @match *://www.margonem.pl/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11.  
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. function antyLag(){
  17. if($('#battletimer')[0].innerText == "Walka zakończona." && $('#battle')[0].style["display"] == "block"){
  18. _g('fight&a=quit');
  19. console.log("Zamknięto okno.");
  20. }
  21. }
  22. setInterval(function(){ antyLag(); }, 150);
  23. })();
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. function createElement(type, callback) {
  34. var element = document.createElement(type);
  35.  
  36. callback(element);
  37.  
  38. return element;
  39. }
  40. function freezeGif(img) {
  41. var width = img.width,
  42. height = img.height,
  43. canvas = createElement('canvas', function(clone) {
  44. clone.width = width;
  45. clone.height = height;
  46. }),
  47. attr,
  48. i = 0;
  49.  
  50. var freeze = function() {
  51. canvas.getContext('2d').drawImage(img, 0, 0, width, height);
  52.  
  53. for (i = 0; i < img.attributes.length; i++) {
  54. attr = img.attributes[i];
  55.  
  56. if (attr.name !== '"') { // test for invalid attributes
  57. canvas.setAttribute(attr.name, attr.value);
  58. }
  59. }
  60.  
  61. canvas.style.position = 'absolute';
  62.  
  63. img.parentNode.insertBefore(canvas, img);
  64. img.style.opacity = 0;
  65. };
  66.  
  67. if (img.complete) {
  68. freeze();
  69. } else {
  70. img.addEventListener('load', freeze, true);
  71. }
  72. }
  73. function freezeAllGifs() {
  74. return new Array().slice.apply(document.images).map(freezeGif);
  75. }
  76. function disablegifs(){
  77. var kr = setInterval(function(){
  78. if(hero.rx != -1)
  79. {
  80. freezeAllGifs();
  81. clearInterval(kr);
  82. }
  83. },700);
  84. }
  85. g.loadQueue.push({fun:disablegifs,data:''});
  86.  
  87. g.loadQueue.push({fun:function(){
  88. $("<style>.buff{display:none}</style>").appendTo("head");
  89. }});
  90.  
  91.  
  92. //ŻÓŁTY KOMUNIKAT Z EXPEM
  93. function pexp(ile){
  94. return Math.decimal(Math.decimal((hero.exp+ile-Math.pow(hero.lvl-1, 4))/(Math.pow(hero.lvl, 4)-Math.pow(hero.lvl-1, 4))*100, 5)-Math.decimal((hero.exp-Math.pow(hero.lvl-1, 4))/(Math.pow(hero.lvl, 4)-Math.pow(hero.lvl-1, 4))*100, 5),2);
  95. };
  96. Math.decimal = function(a,b)
  97. {
  98. var c = Math.pow(10,b);
  99. var d = Math.round(a*c)/c;
  100. return d;
  101. };
  102.  
  103. var tmpBattleMsgUhoa = battleMsg;
  104. battleMsg = function(c,t){
  105. var ret = tmpBattleMsgUhoa(c,t);
  106. if(c.search(/\+exp=/) >= 0){
  107. var ile = c.slice(c.search("exp=")+4);
  108.  
  109. message("+" + ile + "("+pexp(parseInt(ile))+"%)");
  110.  
  111.  
  112. }
  113. return ret;
  114. }
  115.  
  116.  
  117.  
  118.  
  119.  
  120. //============================================================
  121. //KOMUNIKATY WYĹťEJ O 250px
  122. fafmess = message;
  123. message = function (c) { fafmess(c) ; log(c); $("#msg").css({top:parseInt($("#msg").css("top"))-250}) }
  124.  
  125. faffadeMgs = fadeMsg;
  126. function fadeMsg() {
  127. for (var a in g.msg) {
  128. if (typeof (g.msg[a]) == "function") {
  129. continue
  130. }
  131. g.msg[a].t--;
  132. var c = g.msg[a].t;
  133. if (c > 0) {
  134. if (c < 25 && !$.fx.off) {
  135. g.msg[a].e.css("opacity", c / 25)
  136. }
  137. } else {
  138. g.msg[a].e.remove();
  139. delete g.msg[a];
  140. $("#msg").absCenter();
  141. $("#msg").css({top:parseInt($("#msg").css("top"))-250})
  142. for (var b in g.msg) {
  143. g.msg[b].s = false
  144. }
  145. }
  146. }
  147. }
  148.  
  149.  
  150. if(!localStorage.getItem('aGold')) localStorage.setItem('aGold','0');
  151.  
  152. $('<img>').attr('src','https://margonem.pl/obrazki/itemy/zlo/zloto01.gif').css({
  153. 'width': '20px',
  154. 'height': '20px',
  155. 'position':'absolute',
  156. 'left': '23%',
  157. 'top': '14.2%',
  158. 'z-index':'9999999'
  159. }).appendTo('#panel').attr('tip',`Dodatek zarobił:<br><font style="color:gold">${localStorage.getItem('aGold')}</font> złota`);
  160.  
  161. let array = [],val_s = 0;
  162.  
  163. function ref(){
  164. array=[];
  165. val_s=0;
  166.  
  167. for(let i in g.item){
  168. const {tip,stat,loc,id} = g.item[i];
  169. if(loc=='g'&& stat.indexOf('gold')!=-1){
  170. let x = stat.split('=');
  171. x.shift(x[0]);
  172. val_s+=parseInt(x[0]);
  173. array.push(id);
  174. }
  175. }
  176.  
  177. setTimeout(ref,3000);
  178. if(array.length!=0) _g(`moveitem&id=${array}&st=1&`);
  179. let goldzik = parseInt(localStorage.getItem('aGold'));
  180. localStorage.setItem('aGold',goldzik+val_s);
  181.  
  182. }
  183.  
  184. g.loadQueue.push({
  185. fun : ref,
  186. });
  187.  
  188.  
  189. $("#warn").remove();
  190.  
  191. function tuniaPays() {
  192. var bag_1 = [],
  193. bag_2 = [],
  194. bag_3 = [],
  195. bag_1_price = 0,
  196. bag_2_price = 0,
  197. bag_3_price = 0,
  198. filters = {
  199. };
  200.  
  201. for (var i in g.item) {
  202. var item = g.item[i];
  203. if (item.loc == 'g' && item.st == 0) {
  204. if (item.y <= 5) bag_1.push(item);
  205. else if (item.y > 5 && item.y <= 11) bag_2.push(item);
  206. else if (item.y > 11 && item.y <= 17) bag_3.push(item);
  207. }
  208. }
  209.  
  210. for (var i in bag_1) {
  211. var price = Math.floor(bag_1[i].pr * 0.7);
  212. if (price > 250000) price = 250000;
  213. bag_1_price += price;
  214. }
  215. for (var i in bag_2) {
  216. var price = Math.floor(bag_2[i].pr * 0.7);
  217. if (price > 250000) price = 250000;
  218. bag_2_price += price;
  219. }
  220. for (var i in bag_3) {
  221. var price = Math.floor(bag_3[i].pr * 0.7);
  222. if (price > 250000) price = 250000;
  223. bag_3_price += price;
  224. }
  225.  
  226. var bag_1_id = $('#bs0').length > 0 ? parseInt($('#bs0').parent().attr('id').replace('item', '')) : 0,
  227. bag_2_id = $('#bs1').length > 0 ? parseInt($('#bs1').parent().attr('id').replace('item', '')) : 0,
  228. bag_3_id = $('#bs2').length > 0 ? parseInt($('#bs2').parent().attr('id').replace('item', '')) : 0;
  229.  
  230. if (bag_1_id) $('#bs0').parent().attr('tip', g.item[bag_1_id].tip + '<b>Tunia za zawartość da: ' + round(bag_1_price, 2) + '</b>');
  231. if (bag_2_id) $('#bs1').parent().attr('tip', g.item[bag_2_id].tip + '<b>Tunia za zawartość da: ' + round(bag_2_price, 2) + '</b>');
  232. if (bag_3_id) $('#bs2').parent().attr('tip', g.item[bag_3_id].tip + '<b>Tunia za zawartość da: ' + round(bag_3_price, 2) + '</b>');
  233.  
  234. }
  235.  
  236. var tuniaPays_nItem = newItem;
  237. newItem = function (i) {
  238. var ret = tuniaPays_nItem(i);
  239. tuniaPays();
  240. return ret;
  241. }
  242.  
  243. var clasick_plf={engine:()=>{g.loadQueue.push({fun:()=>{clasick_plf.config.load()}}),$("<style>div.clasick_plf {z-index: 400; overflow: hidden; background: rgba(15,15,15, 0.85); border-radius: 2px; border: 3px double rgba(60, 60, 60, 0.1); text-align: center; font-size: 12px; width: 165px; height: 40px; padding: 5px;} div.clasick_plf span.toggle {font: 18px Georgia, Tahoma; color: #c3c3c3;} div.clasick_plf input {vertical-align: middle; margin: 0; padding: 0;} div.clasick_plf input[type=\"text\"] {-moz-appearance: none; appearance: none; width: 62px; height: 12px; outline: none; background: rgba(0,0,0,0.1); border: none; border-bottom: 1px dotted aqua; color: aqua; padding: 2px; text-shadow: 0 0 3px; font-size: 12px; transition: 0.3s ease;} div.clasick_plf input[type=\"text\"]:focus {color: yellow; background: rgba(0,0,0,0.6);} div.clasick_plf table {margin: 0px auto;} div.clasick_plf table td {margin: 0; padding: 0; width: 33%; height: 22px;} div.clasick_plf hr {border: 1px solid rgba(60,60,60,0.5);}</style>").appendTo("head");var a=!1,b=lootItem;lootItem=function(c){b(c);let d=parseItemStat(c.stat),e=parseInt(clasick_plf.vars.config[0]);(isNaN(e)||c.pr>=e)&&"true"==clasick_plf.vars.config[1]||0<=c.stat.search(/legendary/)&&"true"==clasick_plf.vars.config[2]||0<=c.stat.search(/heroic/)&&"true"==clasick_plf.vars.config[3]||0<=c.stat.search(/unique/)&&"true"==clasick_plf.vars.config[4]||(0<=c.stat.search(/fullheal/)||0<=c.stat.search(/leczy/)||0<=c.stat.search(/perheal/))&&"true"==clasick_plf.vars.config[5]||0<=c.stat.search(/ammo/)&&"true"==clasick_plf.vars.config[6]||0<=c.stat.search(/gold/)&&"true"==clasick_plf.vars.config[8]||0<=c.stat.search(/teleport/)&&"true"==clasick_plf.vars.config[7]||0<=c.stat.search(/runes/)&&"true"==clasick_plf.vars.config[9]||0<=c.stat.search(/Jeden ze składników legendarnej zbroi wykuwanej przez krasnoludy/)&&"true"==clasick_plf.vars.config[10]||0<=c.stat.search(/ttl/)&&"true"==clasick_plf.vars.config[11]||0<=c.stat.search(/bag/)&&"true"==clasick_plf.vars.config[12]?g.party&&!(isset(d.reqp)&&-1==d.reqp.indexOf(hero.prof))&&(clasick_plf.fn.setLoots(c.id,"must"),setStateOnOneLootItem(c.id,2)):(clasick_plf.fn.setLoots(c.id,"not"),setStateOnOneLootItem(c.id,0)),a||(a=!0,setTimeout(function(){"true"==clasick_plf.vars.config[13]?sendLoots(1,!1):sendLoots(0,!1),a=!1},300))}},fn:{setLoots:function(a,i){for(var h,j={want:[],not:[],must:[]},f=g.loots.want,k=g.loots.not,c=g.loots.must,d=0;d<f.length;d++)(h=f[d],!$("#loot"+h).hasClass("yours"))&&(!1!=a&&h==a?j[i].push(a):j.want.push(h));for(var h,d=0;d<k.length;d++)(h=k[d],!$("#loot"+h).hasClass("yours"))&&(!1!=a&&h==a?j[i].push(a):j.not.push(h));for(var h,d=0;d<c.length;d++)(h=c[d],!$("#loot"+h).hasClass("yours"))&&(!1!=a&&h==a?j[i].push(a):j.must.push(h));g.loots.want=j.want,g.loots.not=j.not,g.loots.must=j.must}},config:{load:()=>{console.log("[CLASICK -> Loot Filter] addon loaded.");let a=localStorage.plf_pos?localStorage.plf_pos.split("|"):["15","15"];$("<div class=\"clasick_plf\" style=\"position: absolute; left: "+a[0]+"px; top: "+a[1]+"px;\"><div><span class=\"toggle\" tip=\"Rozwi\u0144\">&#x2699; Loot Filter</span></div><div style=\"text-align: left; text-indent: 10px;\"><label><input type=\"checkbox\" name=\"t_value\" /> Powy\u017Cej</label> <input type=\"text\" onchange=\"this.value=clasick_plf.format(this.value);\" /><img src=\"https://www.margonem.pl/obrazki/itemy/zlo/patr_coin01.gif\" style=\"vertical-align: middle; position: absolute; right: -3px;\" /><br /><hr /><table><tr><td><label tip=\"\u0141ap: przedmioty legendarne"+("object"==typeof ln?"":"<br />polecany dodatek: <b>Legendary Notificator</b>")+"\" style=\"color: #D4433B; text-shadow: 0 0 1px #D4433B, 0 0 4px #D4433B;\"><input type=\"checkbox\" name=\"t_lega\" /> *L*</label></td><td><label tip=\"\u0141ap: przedmioty heroiczne\" style=\"color: #1C55FB; text-shadow: 0 0 1px #1C55FB, 0 0 4px #1C55FB;\"><input type=\"checkbox\" name=\"t_hero\" /> *H*</label></td><td><label tip=\"\u0141ap: przedmioty unikatowe\" style=\"color: #1CB217; text-shadow: 0 0 1px #1CB217, 0 0 4px #1CB217;\"><input type=\"checkbox\" name=\"t_uni\" /> *U*</label></td></tr><tr><td><label tip=\"\u0141ap: mikstury lecz\u0105ce\"><input type=\"checkbox\" name=\"t_mix\" /><img src=\"http://www.margonem.pl/obrazki/itemy/pot/pra_m4.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td><td><label tip=\"\u0141ap: strza\u0142y\"><input type=\"checkbox\" name=\"t_strzaly\" /><img src=\"http://www.margonem.pl/obrazki/itemy/arr/strzala13.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td><td><label tip=\"\u0141ap: teleporty\"><input type=\"checkbox\" name=\"t_tp\" /><img src=\"http://www.margonem.pl/obrazki/itemy/pap/pap265.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td></tr><tr><td><label tip=\"\u0141ap: z\u0142oto\"><input type=\"checkbox\" name=\"t_gold\" /><img src=\"http://www.margonem.pl/obrazki/itemy/zlo/denar01.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td><td><label tip=\"\u0141ap: Smocze Runy\"><input type=\"checkbox\" name=\"t_runy\" /><img src=\"https://www.margonem.pl/obrazki/itemy/sur/smocza_runa3.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td><td><label tip=\"\u0141ap: kamienie runiczne\"><input type=\"checkbox\" name=\"t_kamien\" /><img src=\"https://www.margonem.pl/obrazki/itemy/neu/kam9viv.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td></tr><tr><td><label tip=\"\u0141ap: b\u0142ogos\u0142awie\u0144stwa\"><input type=\"checkbox\" name=\"t_blogo\" /><img src=\"http://helios.margonem.pl/obrazki/itemy/ble/blo73.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td><td><label tip=\"\u0141ap: torby\"><input type=\"checkbox\" name=\"t_bags\" /><img src=\"https://www.margonem.pl/obrazki/itemy/bag/toolsbag.gif\" style=\"vertical-align: middle; height: 20px; width: 20px;\" /></label></td><td><label tip=\"Akceptuj \u0142up automatycznie\"><input type=\"checkbox\" name=\"autoaccept\" /> &#10003;</label></td></tr><tr><td><span style=\"font-size: 130%; color: yellow; text-shadow: 0 0 1px orange; cursor: pointer; display: none;\" tip=\"Ustawienia\" onclick=\"message('Ustawienia b\u0119d\u0105 dost\u0119pne w przysz\u0142ej aktualizacji');\">&#9733;</span></td><td colspan=\"2\"><span style=\"font-size: 80%; position: relative; right:-25px; bottom:0;\">v"+clasick_plf.vars.version+" by c<span style=\"color:aqua;text-shadow:0 0 1px black, 0 0 3px aqua, 0 0 5px aqua;\">LA</span>sick</span></td></tr></table></div></div>").draggable({start:function(){g.lock.add("plf_moving"),$(this).css("cursor","move")},stop:function(){g.lock.remove("plf_moving"),$(this).css("cursor","default"),localStorage.plf_pos=$(this).position().left+"|"+$(this).position().top}}).appendTo("body"),$("div.clasick_plf span.toggle").click(function(){var a=60>=$("div.clasick_plf").innerHeight()?"160px":"40px";$(this).attr("tip","40px"==a?"Rozwi\u0144":"Zwi\u0144"),$("div.clasick_plf").animate({height:a})}),$("div.clasick_plf").find("input[type=\"text\"]").val(clasick_plf.format(clasick_plf.vars.config[0])),$("div.clasick_plf").find("input[type=\"checkbox\"]").each(function(a){this.checked=!("true"!=clasick_plf.vars.config[a+1])}),$("div.clasick_plf input").change(function(){$(this).blur(),clasick_plf.config.save.filters()})},save:{filters:function(){var a=[];a.push($("div.clasick_plf input[type=\"text\"]").val()?parseInt($("div.clasick_plf input[type=\"text\"]").eq(0).val().replace(/ /g,"")):"0"),$("div.clasick_plf input[type=\"checkbox\"]").each(function(){a.push(this.checked)}),localStorage.plf_config=a,clasick_plf.vars.config=a,clasick_plf.vars.refresh()}},reset:()=>{delete localStorage.plf_config,delete localStorage.plf_pos,message(goldTxt("# "+clasick_plf.vars.name+" #")),message("Ustawienia dodatku zosta\u0142y zresetowane, zalecane <u onclick=\"window.location.reload(true);\">od\u015Bwie\u017Cenie</u> gry.")}},format:a=>/^[0-9]+$/.test(a)?a.toString().replace(/\B(?=(\d{3})+(?!\d))/g," "):a.replace(/[^0-9]/g,"").toString().replace(/\B(?=(\d{3})+(?!\d))/g," "),vars:{version:"1.0.0",name:"Loot Filter",world:location.host.split(".")[0],config:localStorage.plf_config?localStorage.plf_config.split(","):[0],refresh:function(){clasick_plf.vars.config=localStorage.plf_config?localStorage.plf_config.split(","):[0]}}};clasick_plf.engine();
  244.  
  245. g.loadQueue.push({
  246. fun : function () {
  247.  
  248. function waitforitem(){
  249. if(g.item.length==0){
  250. setTimeout(waitforitem,300);
  251. console.log('[AutoHeal]Wait for g.item...');
  252. }else{
  253. console.log('[AutoHeal]Find g.item.');
  254. let main = {
  255. potion_name : localStorage.getItem(hero.nick),
  256. allnames : [],
  257. };
  258.  
  259. if (!localStorage.getItem(`apos`)) {
  260. let tmpobj = {
  261. x: 0,
  262. y: 0
  263. }
  264. localStorage.setItem(`apos`, JSON.stringify(tmpobj));
  265. }
  266.  
  267.  
  268.  
  269.  
  270. if(!localStorage.getItem('Aktualizacja1999')){
  271. localStorage.setItem('Aktualizacja1999','true');
  272. mAlert('Naprawiłem leczenie ze wszystkich potek +opcję minimalizowania dziękuje Animen za zgloszenie :)<br>[NowyAutoHeal] Życzę miłego dnia,przepraszam za blędy.')
  273. }
  274.  
  275.  
  276. const kordy = JSON.parse(localStorage.getItem(`apos`));
  277. if(!localStorage.getItem('aProcent')) localStorage.setItem('aProcent','85');
  278. const select = document.createElement('select');
  279. select.id='aPotion';
  280. select.classList='select-style';
  281.  
  282. for(let i in g.item){
  283. const {id,name,stat,loc} = g.item[i];
  284. if(stat.indexOf('leczy')!=-1 && loc=='g' && main.allnames.includes(name)==false || stat.indexOf('fullheal')!=-1 || stat.indexOf('perheal')!=-1){
  285. let x = document.createElement('option');
  286. x.innerHTML = name;
  287. x.id = id;
  288. select.appendChild(x);
  289. main.allnames.push(name);
  290. };
  291. }
  292. select.value = main.potion_name;
  293.  
  294. const divek = document.createElement('div');
  295. divek.style.position='absolute';
  296. divek.style.display='block';
  297. divek.style.zIndex='999999';
  298. divek.style.backgroundColor='black';
  299. divek.id='a_Div';
  300. divek.style.border='2px solid green';
  301. divek.style.height='60px';
  302. divek.style.width='340px';
  303. divek.style.left=`${kordy.x}px`;
  304. divek.style.top=`${kordy.y}px`;
  305. divek.tip='[AutoHeal] Kliknij prawym aby schować menu!';
  306. if(localStorage.getItem('aMini')=='true') divek.style.display='none';
  307. else divek.style.display='block';
  308. divek.appendChild(select);
  309. document.body.appendChild(divek);
  310.  
  311.  
  312. const divek_mini = document.createElement('img');
  313. divek_mini.style.position='absolute';
  314. divek_mini.src='https://i.imgur.com/L8FI0tO.gif';
  315. document.body.appendChild(divek_mini);
  316. divek_mini.style.top=`${kordy.y}px`;
  317. divek_mini.style.left=`${kordy.x}px`;
  318. divek_mini.style.display='block';
  319. divek_mini.style.zIndex='999999';
  320. if(localStorage.getItem('aMini')=='false') divek_mini.style.display='none';
  321. else divek_mini.style.display='block';
  322. divek_mini.tip='[AutoHeal] Kliknij prawym aby pokazać menu!';
  323. document.body.appendChild(divek_mini);
  324.  
  325.  
  326.  
  327. const lek_value = document.createElement('input');
  328. lek_value.style.maxWidth='38px'
  329. lek_value.value = parseInt(localStorage.getItem('aProcent'));
  330. lek_value.type='number';
  331. lek_value.tip='Od ilu % leczyć'
  332. divek.appendChild(lek_value);
  333.  
  334. const txt = document.createElement('span');
  335. txt.innerHTML='%';
  336. divek.appendChild(txt);
  337.  
  338. const check = document.createElement('input');
  339. if(localStorage.getItem('aStatusx') == 'on'){
  340. check.checked=true;
  341. }else{
  342. check.checked=false;
  343. };
  344. check.type='checkbox';
  345. divek.appendChild(check);
  346.  
  347. const span = document.createElement('span');
  348. span.innerHTML='On/Off<br><span style="font-size : 9px">UĹźywaj wszystkich potek:</span> ';
  349. divek.appendChild(span);
  350.  
  351.  
  352. const other_potion = document.createElement('input');
  353. if(localStorage.getItem('aother_potion') == 'on'){
  354. other_potion.checked=true;
  355. }else{
  356. other_potion.checked=false;
  357. };
  358. other_potion.type='checkbox';
  359. divek.appendChild(other_potion);
  360.  
  361.  
  362. const span2 = document.createElement('span');
  363. span2.innerHTML='<br><span style="font-size : 9px">Aktualizacja : 28.05.2019r. [Nowy AutoHeal] </span>';
  364. divek.appendChild(span2);
  365.  
  366. document.body.appendChild(divek);
  367.  
  368. $(divek).draggable({
  369. stop: () => {
  370. let tmpobj = {
  371. x: parseInt(divek.style.left),
  372. y: parseInt(divek.style.top)
  373. }
  374. localStorage.setItem(`apos`, JSON.stringify(tmpobj));
  375. message(`Zapisano pozycję`);
  376. }
  377. });
  378.  
  379. $(divek_mini).draggable({
  380. stop: () => {
  381. let tmpobj = {
  382. x: parseInt(divek_mini.style.left),
  383. y: parseInt(divek_mini.style.top)
  384. }
  385. localStorage.setItem(`apos`, JSON.stringify(tmpobj));
  386. message(`Zapisano pozycję`);
  387. }
  388. });
  389.  
  390.  
  391. const css = `
  392. .select-style {
  393. border: 1px solid #ccc;
  394. width: 200px;
  395. border-radius: 3px;
  396. overflow: hidden;
  397. background: #fafafa url("img/icon-select.png") no-repeat 90% 50%;
  398. }
  399.  
  400. .select-style select {
  401. padding: 5px 8px;
  402. width: 130%;
  403. border: none;
  404. box-shadow: none;
  405. background: transparent;
  406. background-image: none;
  407. -webkit-appearance: none;
  408. }
  409.  
  410. .select-style select:focus {
  411. outline: none;
  412. }
  413. `;
  414.  
  415. const style = document.createElement('style');
  416. style.innerHTML = css;
  417. document.head.appendChild(style);
  418.  
  419. select.addEventListener('change',()=>{
  420. message(`Zapisano <span style="color : green">${select.value}</span>!`);
  421. localStorage.setItem(hero.nick,select.value);
  422. });
  423.  
  424.  
  425.  
  426. if(localStorage.getItem('aother_potion')=='on') select.disabled=true; //ustawia bloka
  427.  
  428. check.addEventListener('change',()=>{
  429. if(check.checked==true){
  430. message('AutoHeal On!')
  431. localStorage.setItem('aStatusx','on');
  432. }else{
  433. message('AutoHeal Off!')
  434. localStorage.setItem('aStatusx','off');
  435. }
  436. });
  437.  
  438.  
  439. divek.addEventListener('contextmenu',(e)=>{
  440. e.preventDefault();
  441. if(!localStorage.getItem('aMini')) localStorage.setItem('aMini','false');
  442. if(localStorage.getItem('aMini')=='false'){
  443. divek_mini.style.display='block';
  444. divek.style.display='none';
  445. localStorage.setItem('aMini','true');
  446. }
  447. });
  448.  
  449. divek_mini.addEventListener('contextmenu',(e)=>{
  450. e.preventDefault();
  451. if(!localStorage.getItem('aMini')) localStorage.setItem('aMini','false');
  452. if(localStorage.getItem('aMini')=='true'){
  453. divek_mini.style.display='none';
  454. divek.style.display='block';
  455. localStorage.setItem('aMini','false');
  456. }
  457. });
  458.  
  459.  
  460. other_potion.addEventListener('change',()=>{
  461. if(other_potion.checked==true){
  462. message('UĹźywanie wszystkich potek <font style="color:green">ON!')
  463. select.disabled=true;
  464. localStorage.setItem('aother_potion','on');
  465. }else{
  466. message('UĹźywanie wszystkich potek <font style="color:red">OFF!')
  467. select.disabled=false;
  468. localStorage.setItem('aother_potion','off');
  469. }
  470. });
  471.  
  472. lek_value.addEventListener('change',()=>{
  473. if(lek_value.value==100){
  474. localStorage.setItem('aProcent','99');
  475. message(`Zapisano <span style="color:red">${lek_value.value}% </span>!`);
  476. }else if(lek_value.value>100){
  477. message(`Błąd <span style="color:red">${lek_value.value}% </span> pomyśl dlaczego..!`);
  478. }else if(lek_value.value<0){
  479. message(`Błąd <span style="color:red">${lek_value.value}%</span> pomyśl dlaczego..!`);
  480. }else{
  481. message(`Zapisano <span style="color:red">${lek_value.value}% </span>!`);
  482. localStorage.setItem('aProcent',lek_value.value);
  483. }
  484.  
  485. });
  486.  
  487.  
  488. let timer;
  489.  
  490. let heal = () =>{
  491. var hp = Math.floor(hero.hp / hero.maxhp * 100);
  492. var item = localStorage.getItem(hero.nick);
  493. let statusx = localStorage.getItem('aStatusx');
  494. let tryb= localStorage.getItem('aother_potion');
  495. if(tryb=='on'){
  496. if(hp <= parseInt(localStorage.getItem('aProcent'))&& g.dead == false && g.battle == 0 && statusx=='on' && g.talk.id==0){
  497. for(let i in g.item){
  498. const {name,id,loc,stat} = g.item[i];
  499. if( loc == 'g' && stat.indexOf('leczy=-')==-1 && stat.indexOf('leczy')!=-1 || stat.indexOf('fullheal')!=-1 || stat.indexOf('perheal')!=-1){
  500. _g(`moveitem&id=${i}&st=1`,(res)=>{if(res.alert=='Nie spełniasz wymagań koniecznych do używania tego przedmiotu!') clearInterval(timer)});
  501. break;
  502. }
  503. }
  504. };
  505. }else{
  506. for (let i in g.item) {
  507. const {name,id,loc} = g.item[i];
  508. if (name == item && hp <= parseInt(localStorage.getItem('aProcent')) && loc == 'g'&& g.talk.id==0 && g.dead == false && g.battle == 0 && statusx=='on') {
  509. _g(`moveitem&id=${i}&st=1`,(res)=>{
  510. if(res.alert=='Nie spełniasz wymagań koniecznych do używania tego przedmiotu!') clearInterval(timer);
  511. });
  512. break;
  513. };
  514. };
  515. };
  516.  
  517. timer=setTimeout(heal, 300);
  518. }
  519.  
  520.  
  521. heal();
  522. }
  523. } waitforitem();
  524. }});
  525.  
  526.  
  527.  
  528.  
  529.  
  530. !function(_p) {
  531. let idleTime = 0;
  532. let firstTime = true;
  533. let isDead = false;
  534. parseInput = (a, b, c) => {
  535. _p(a, b, c);
  536. if (firstTime) {
  537. setInterval(function() {
  538. idleTime++;
  539. if (idleTime > 5) {
  540. idleTime = 0;
  541. document.location.reload();
  542. }
  543. }, 1000);
  544. firstTime = false;
  545. }
  546. idleTime = 0;
  547. if(g.dead && !isDead && map.id == "2330"){
  548. document.location.href = "http://margonem.pl";
  549. isDead = true;
  550. }
  551. }
  552. }(parseInput)
  553.  
  554. window.adiwilkTestBot = new function () {
  555.  
  556. const newNpcOldCopyAf = preNewNpc;
  557. preNewNpc = function (npcs) {
  558. for (var npc in npcs) {
  559. if (
  560. npcs[npc].del &&
  561. g.npc[npc] &&
  562. Math.abs(hero.x - g.npc[npc].x) + Math.abs(hero.y - g.npc[npc].y) > 13
  563. ) {
  564. delete npcs[npc];
  565. }
  566. }
  567. newNpcOldCopyAf(npcs);
  568. };
  569.  
  570. //wyłączenie alertów i blokad, chwilowe rozwiązanie
  571. mAlert = function () {};
  572. if (
  573. typeof g == "undefined" &&
  574. document.location.href.indexOf("jaruna.margonem.pl") > -1
  575. ) {
  576. document.location.reload();
  577. }
  578. //obiekt z nazwami expowisk
  579. let expowiska = {
  580. "Pizzeria(wszystkie levele)": {
  581. map: "Podziemia - p.1, Podziemia - p.2, Odnoga kanału, Podziemia - p.1, Podziemia - p.3, Podziemia - p.1, Odnoga kanału, Podziemia - p.2"
  582. },
  583. "Szczury w Ithan": {
  584. map: "Archiwa, Zaplecze, Składy, Przejście północno-wschodnie, Wschodnie skrzydło murów, Przejście południowo-wschodnie, Wschodnie skrzydło murów, Przejście północno-wschodnie, Składy, Zaplecze"
  585. },
  586. "Nekropolia": {
  587. map: "Grobowiec Rodziny Tywelta p.1, Grobowiec Rodziny Tywelta p.2"
  588. },
  589. "Demony": {
  590. map: "Podziemia Siedziby Maga p.3 - sala 1, Podziemia Siedziby Maga p.3 - sala 2"
  591. },
  592. "Gacki szare": {
  593. map: "Siedlisko Nietoperzy p.5, Siedlisko Nietoperzy p.4, Siedlisko Nietoperzy p.3, Siedlisko Nietoperzy p.2, Siedlisko Nietoperzy p.1, Siedlisko Nietoperzy p.2, Siedlisko Nietoperzy p.3, Siedlisko Nietoperzy p.4"
  594. },
  595. "Mrówki": {
  596. map: "Kopiec Mrówek, Kopiec Mrówek p.1, Kopiec Mrówek p.2, Mrowisko p.2, Mrowisko p.1, Mrowisko, Mrowisko p.1, Mrowisko p.2, Kopiec Mrówek p.2, Kopiec Mrówek p.1"
  597. },
  598. "Mulusy": {
  599. map: "Osada Mulusów, Pradawne Wzgórze Przodków"
  600. },
  601. "Orki": {
  602. map: "Opuszczony Bastion, Podziemne Przejście p.1, Podziemne Przejście p.2, Zrujnowana Wieża, Opuszczony Bastion, Zrujnowana Wieża, Podziemne Przejście p.2, Podziemne Przejście p.1"
  603. },
  604. "Ghule": {
  605. map: "Polana Ścierwojadów, Wioska Ghuli"
  606. },
  607. "Wilcze plemię": {
  608. map: "Warczące Osuwiska, Wilcza Nora p.1, Wilcza Nora p.2, Wilcza Nora p.1",
  609. mobs_id: [71698]
  610. },
  611. "Pająki": {
  612. map: "Rachminowa Jaskinia p.5, Rachminowa Jaskinia p.6 - rozlewisko, Rachminowa Jaskinia p.7 - bezdenna głębia, Rachminowa Jaskinia p.6 - rozlewisko"
  613. },
  614. "Koboldy": {
  615. map: "Lazurytowa Grota p.1, Lazurytowa Grota p.2, Lazurytowa Grota p.3, Lazurytowa Grota p.2"
  616. },
  617. "Galaretki(te za pszczółkami)": {
  618. map: "Prastara Kopalnia Eroch p.4 - sala 1, Prastara Kopalnia Eroch p.5"
  619. },
  620. "Szlak Thorpa": {
  621. map: "Szlak Thorpa p.1, Szlak Thorpa p.2, Szlak Thorpa p.3, Szlak Thorpa p.4, Szlak Thorpa p.5, Szlak Thorpa p.6, Szlak Thorpa p.5, Szlak Thorpa p.4, Szlak Thorpa p.3, Szlak Thorpa p.2"
  622. },
  623. "Białe mrówki": {
  624. map: "Szumiąca Gęstwina, Grota Białych Kości p.1 - sala 2, Grota Białych Kości p.2 - sala 2, Grota Białych Kości p.3 - sala 2, Grota Białych Kości p.4, Grota Białych Kości p.3 - sala 1, Grota Białych Kości p.4, Grota Białych Kości p.3 - sala 2, Grota Białych Kości p.2 - sala 2, Grota Białych Kości p.1 - sala 2"
  625. },
  626. "Moje demilsze": {
  627. map: "Kopalnia Thudul-ultok p.4 - sala 2, Kopalnia Thudul-ultok p.4 - sala 1, Kopalnia Thudul-ultok p.4 - sala 2, Chodniki Erebeth p.4 - sala 2, Chodniki Erebeth p.4 - sala 1, Chodniki Erebeth p.4 - sala 2"
  628. },
  629. "Demilisze-low": {
  630. map: "Rachminowa Jaskinia p.3, Rachminowa Jaskinia p.4, Rachminowa Jaskinia p.4 - przepaście, Wąski chodnik p.4, Chodniki Erebeth p.4 - sala 1, Chodniki Erebeth p.4 - sala 2, Chodniki Erebeth p.4 - sala 1, Wąski chodnik p.4, Rachminowa Jaskinia p.4 - przepaście, Rachminowa Jaskinia p.4"
  631. },
  632. "Demilisze-high": {
  633. map: "Rachminowa Jaskinia p.4 - przepaście, Wąski chodnik p.4, Chodniki Erebeth p.4 - sala 1, Chodniki Erebeth p.4 - sala 2, Kopalnia Thudul-ultok p.4 - sala 2, Kopalnia Thudul-ultok p.4 - sala 1, Kopalnia Thudul-ultok p.4 - sala 2, Chodniki Erebeth p.4 - sala 1, Wąski chodnik p.4"
  634. },
  635. "Alghule kolo tuzmer": {
  636. map: "Skalne Cmentarzysko p.1, Skalne Cmentarzysko p.2, Skalne Cmentarzysko p.3, Skalne Cmentarzysko p.2"
  637. },
  638. "Szkielety kolo tuzmer": {
  639. map: "Dolina Pustynnych Kręgów, Sucha Dolina, Dolina Pustynnych Kręgów, Płaskowyż Arpan, Dolina Pustynnych Kręgów"
  640. },
  641. "Minosy": {
  642. map: "Labirynt Wyklętych p.2 - sala 1, Labirynt Wyklętych p.1, Labirynt Wyklętych p.2 - sala 2, Labirynt Wyklętych p.1",
  643. ignore_grp: [23]
  644. },
  645. "Erem północ-południe": {
  646. map: "Erem Czarnego Słońca - sala wejściowa, Erem Czarnego Słońca p.1 s.1, Erem Czarnego Słońca - sala wejściowa, Erem Czarnego Słońca p.2 s.1, Erem Czarnego Słońca p.2 s.2, Erem Czarnego Słońca - sala wejściowa, Erem Czarnego Słońca p.1 s.2, Erem Czarnego Słońca - sala wejściowa, Skały Mroźnych Śpiewów, Erem Czarnego Słońca - południe, Erem Czarnego Słońca - lochy, Erem Czarnego Słońca - północ, Skały Mroźnych Śpiewów",
  647. mobs_id: [34826]
  648. },
  649. "Grexy": {
  650. map: "Grota Samotnych Dusz p.1, Grota Samotnych Dusz p.2, Grota Samotnych Dusz p.3, Grota Samotnych Dusz p.4, Grota Samotnych Dusz p.5, Grota Samotnych Dusz p.4, Grota Samotnych Dusz p.3, Grota Samotnych Dusz p.2"
  651. },
  652. "Miśki-low": {
  653. map: "Firnowa Grota p.1, Firnowa Grota p.2, Firnowa Grota p.2 s.1, Firnowa Grota p.2, Skały Mroźnych Śpiewów, Lodowa Wyrwa p.2, Lodowa Wyrwa p.1 s.1, Skały Mroźnych Śpiewów",
  654. mobs_id: [34843, 34826]
  655. },
  656. "Miśki-high": {
  657. map: "Firnowa Grota p.1, Firnowa Grota p.2, Firnowa Grota p.2 s.1, Firnowa Grota p.2, Skały Mroźnych Śpiewów, Lodowa Wyrwa p.2, Lodowa Wyrwa p.1 s.1, Lodowa Wyrwa p.1 s.2, Sala Lodowych Iglic, Lodowa Wyrwa p.1 s.2, Lodowa Wyrwa p.1 s.1, Skały Mroźnych Śpiewów",
  658. mobs_id: [34843, 34826]
  659. },
  660. "Piraci - dwie jaskinie": {
  661. map: "Korsarska Nora - sala 1, Korsarska Nora - sala 2, Korsarska Nora - sala 3, Korsarska Nora - sala 4, Korsarska Nora p.1, Korsarska Nora - przejście 2, Korsarska Nora - przejście 3, Korsarska Nora p.2, Korsarska Nora - przejście 3, Korsarska Nora - przejście 2, Korsarska Nora - przejście 1, Korsarska Nora p.2, Korsarska Nora - przejście 1, Korsarska Nora - przejście 2, Korsarska Nora p.2, Korsarska Nora - przejście 2, Korsarska Nora p.1, Korsarska Nora - sala 4, Korsarska Nora - sala 3, Korsarska Nora - sala 2, Korsarska Nora - sala 1, Latarniane Wybrzeże, Ukryta Grota Morskich Diabłów, Ukryta Grota Morskich Diabłów - arsenał, Ukryta Grota Morskich Diabłów, Ukryta Grota Morskich Diabłów - siedziba, Ukryta Grota Morskich Diabłów, Ukryta Grota Morskich Diabłów - magazyn, Ukryta Grota Morskich Diabłów, Ukryta Grota Morskich Diabłów - skarbiec, Ukryta Grota Morskich Diabłów, Latarniane Wybrzeże"
  662. },
  663. "Mumie": {
  664. map: "Oaza Siedmiu Wichrów, Ciche Rumowiska, Dolina suchych łez, Ciche rumowiska, Oaza Siedmiu Wichrów, Ruiny Pustynnych Burz"
  665. },
  666. "Magradit-low": {
  667. map: "Magradit, Magradit - Góra Ognia, Wulkan Politraki p.4, Wulkan Politraki p.3 - sala 1, Wulkan Politraki p.3 - sala 2, Wulkan Politraki p.3 - sala 1, Wulkan Politraki p.4, Magradit - Góra Ognia"
  668. },
  669. "Magradit-high": {
  670. map: "Magradit, Magradit - Góra Ognia, Wulkan Politraki p.4, Skalna Wyrwa, Wulkan Politraki p.4, Wulkan Politraki p.3 - sala 1, Wulkan Politraki p.3 - sala 2, Wulkan Politraki p.3 - sala 1, Wulkan Politraki p.4, Skalna wyrwa, Magradit - Góra Ognia",
  671. ignore_grp: [4]
  672. },
  673. "Czerwone Orki": {
  674. map: "Orcza Wyżyna, Osada Czerwonych Orków, Siedziba Rady Orków"
  675. },
  676. "Kuźnia Woundriela": {
  677. map: "Kuźnia Worundriela p.7 - sala 3, Kuźnia Worundriela p.7 - sala 4"
  678. },
  679. "Berserkerzy": {
  680. map: "Grobowiec Przodków, Cenotaf Berserkerów p.1, Grobowiec Przodków, Czarcie Oparzeliska, Pustelnia Wojownika p.2, Pustelnia Wojownika p.1, Czarcie Oparzeliska, Szuwarowe Trzęsawisko, Opuszczona Twierdza, Szuwarowe Trzęsawisko, Czarcie Oparzeliska, Pustelnia Wojownika p.1, Pustelnia Wojownika p.2, Czarcie Oparzeliska, Grobowiec Przodków, Cenotaf Berserkerów p.1"
  681. },
  682. "Wiedzmy dla cipek": {
  683. map: "Upiorna Droga, Wiedźmie Kotłowisko, Sabatowe Góry, Wiedźmie Kotłowisko, Upiorna Droga"
  684. },
  685. "Gobliny": {
  686. map: "Przedsionek Złych Goblinów, Goblińskie Lokum, Przedsionek Złych Goblinów, Lokum Złych Goblinów"
  687. },
  688. "Kazamaty": {
  689. map: "Nawiedzone Kazamaty p.1, Nawiedzone Kazamaty p.2, Nawiedzone Kazamaty p.3, Nawiedzone Kazamaty p.4, Nawiedzone Kazamaty p.5, Nawiedzone Kazamaty p.6, Nawiedzone Kazamaty p.5, Nawiedzone Kazamaty p.4, Nawiedzone Kazamaty p.3, Nawiedzone Kazamaty p.2"
  690. },
  691. "Duchy - dla leszczy": {
  692. map: "Ruiny Tass Zhil, Przedsionek Grobowca, Ruiny Tass Zhil, Błota Sham Al",
  693. ignore_grp: [18]
  694. },
  695. "Duchy - dla koxów": {
  696. map: "Ruiny Tass Zhil, Przedsionek Grobowca, Tajemne Przejście, Przeklęty Grobowiec, Ruiny Tass Zhil, Błota Sham Al"
  697. },
  698. "Ingotia": {
  699. map: "Wyspa Ingotia - południe, Jaskinia Rogogłowych - aula, Sala Nici Ocalenia p.6, Sala Białego Byka p.5, Sala Nici Ocalenia p.6, Komnata Przeklętego Daru p.5, Jaskinia Rogogłowych - aula, Sala Żądzy p.5, Hala Odszczepieńców p.4, Sala Żądzy p.5, Komora Opuszczonych p.3, Jaskinia Rogogłowych - aula, Komnata Wygnańców p.3, Komora Budowniczego p.5, Komnata Wygnańców p.3, Jaskinia Rogogłowych p.2, Jaskinia Rogogłowych - aula, Jaskinia Rogogłowych p.1 - wyjście, Wyspa Ingotia - północ, Jaskinia Rogogłowych p.1 - wyjście, Jaskinia Rogogłowych - aula, Jaskinia Rogogłowych p.2, Komnata Wygnańców p.3, Komora Budowniczego p.5, Komnata Wygnańców p.3, Jaskinia Rogogłowych - aula, Komora Opuszczonych p.3, Sala Żądzy p.5, Hala Odszczepieńców p.4, Sala Żądzy p.5, Jaskinia Rogogłowych - aula, Komnata Przeklętego Daru p.5, Sala Nici Ocalenia p.6, Sala Białego Byka p.5, Sala Nici Ocalenia p.6, Jaskinia Rogogłowych - aula"
  700. },
  701. "Furby": {
  702. map: "Zapomniany Las, Rozległa Równina, Wzgórza Obłędu, Rozległa Równina, Dolina Gniewu, Terytorium Furii, Zapadlisko Zniewolonych, Terytorium Furii, Dolina Gniewu, Zalana Grota p.1, Dolina Gniewu, Rozległa Równina",
  703. ignore_grp: []
  704. },
  705. "SK dla leszczy": {
  706. map: "Nawiedzone Komnaty p.1, Nawiedzone Komnaty p.2, Sala Królewska, Nawiedzone Komnaty p.2"
  707. },
  708. "SK dla koxów": {
  709. map: "Nawiedzone Komnaty p.1, Nawiedzone Komnaty p.2, Sala Królewska, Komnata Czarnej Perły, Sala Królewska, Nawiedzone Komnaty p.2",
  710. ignore_grp: []
  711. },
  712. "Furbole bez 8GRP xD": {
  713. map: "Dolina Gniewu, Zalana Grota p.1, Zalana Grota p.2, Zalana Grota p.1, Dolina Gniewu, Terytorium Furii, Zapadlisko Zniewolonych, Terytorium Furii, Dolina Gniewu",
  714. ignore_grp: []
  715. },
  716. "Patrycjusze": {
  717. map: "Krypty Bezsennych p .1, Krypty Bezsennych p .2, Krypty Bezsennych p .2 - przejście - sala 1, Krypty Bezsennych p .2 - przejście - sala 2, Krypty Bezsennych p .2, Krypty Bezsennych p .3, Krypty Bezsennych p .2, Krypty Bezsennych p .2 - przejście - sala 2, Krypty Bezsennych p .2 - przejście - sala 1, Krypty Bezsennych p .2"
  718. },
  719. "Sekta": {
  720. map: "Przedsionek Kultu, Tajemnicza Siedziba, Mroczne Komnaty, Przerażające Sypialnie, Mroczne Komnaty, Tajemnicza Siedziba, Sala Tysiąca Świec, Tajemnicza Siedziba, Lochy Kultu, Sale Rozdzierania, Lochy Kultu, Tajemnicza Siedziba"
  721. },
  722. "Tak o, kacper kozak": {
  723. map: "Ganter ma malego",
  724. ignore_grp: [9]
  725. },
  726. "Pająki": {
  727. map: "Dolina Pajęczych Korytarzy, Arachnitopia p.1, Arachnitopia p.2, Arachnitopia p.3, Arachnitopia p.4, Arachnitopia p.5, Arachnitopia p.4, Arachnitopia p.3, Arachnitopia p.2, Arachnitopia p.1"
  728. },
  729. "Drzewce przy maho": {
  730. map: "Urwisko Zdrewniałych, Wąwóz Zakorzenionych Dusz, Krzaczasta Grota p.2 - sala 2, Krzaczasta Grota p.2 - sala 3, Krzaczasta Grota p.2 - sala 1, Krzaczasta Grota p.2 - sala 3, Krzaczasta Grota p.1 - sala 3, Krzaczasta Grota p.1 - sala 2, Krzaczasta Grota p.1 - sala 1, Wąwóz Zakorzenionych Dusz, Regiel Zabłąkanych, Źródło Zakorzenionego Ludu, Piaskowa Gęstwina, Źródło Zakorzenionego Ludu, Jaskinia Korzennego Czaru p.2 - sala 1, Jaskinia Korzennego Czaru p.3, Jaskinia Korzennego Czaru p.2 - sala 1, Jaskinia Korzennego Czaru p.1 - sala 1, Jaskinia Korzennego Czaru p.1 - sala 3, Jaskinia Korzennego Czaru p.1 - sala 4, Jaskinia Korzennego Czaru p.1 - sala 3, Jaskinia Korzennego Czaru p.1 - sala 1, Jaskinia Korzennego Czaru p.2 - sala 1, Źródło Zakorzenionego Ludu, Regiel Zabłąkanych, Wąwóz Zakorzenionych Dusz"
  731. },
  732. "Maddoki": {
  733. map: "Zawodzące Kaskady, Skryty Azyl, Złota Dąbrowa, Oślizgłe Przejście - sala 1, Oślizgłe Przejście - sala 2, Złota Dąbrowa, Mglisty Las, Grota porośniętych Stalagmitów - sala wyjściowa, Grota porośniętych Stalagmitów - przejście, Grota porośniętych Stalagmitów - sala boczna, Grota porośniętych, Stalagmitów - przejście, Grota porośniętych Stalagmitów - sala główna, Grota porośniętych Stalagmitów - przejście, Grota porośniętych Stalagmitów - sala wyjściowa, Złota Dąbrowa, Mglisty Las, Grota porośniętych Stalagmitów - sala wyjściowa, Grota porośniętych Stalagmitów - przejście, Grota porośniętych Stalagmitów - sala główna, Grota porośniętych Stalagmitów - przejście, Grota porośniętych Stalagmitów - sala boczna, Grota porośniętych Stalagmitów - przejście, Grota porośniętych Stalagmitów - sala wyjściowa, Mglisty Las, Złota Dąbrowa, Oślizgłe Przejście - sala 2, Oślizgłe Przejście - sala 1, Złota Dąbrowa, Skryty Azyl"
  734. },
  735. "Anuraki": {
  736. map: "Dolina Pełznącego Krzyku, Grzęzawisko Rozpaczy, Zatrute Torfowiska, Gnijące Topielisko, Bagna Umarłych, Gnijące Topielisko, Zatrute Torfowiska, Grzęzawisko Rozpaczy, Dolina Pełznącego Krzyku"
  737. },
  738. "Maho bez PIRAMIDY": {
  739. map: "Altepetl Mahoptekan, Niecka Xiuh Atl, Dolina Chmur, Niecka Xiuh Atl, Altepetl Mahoptekan, Dolina Chmur, Złota Góra p.1, Złota Góra p.2, Złota Góra p.3, Złota Góra p.2, Złota Góra p.1, Dolina Chmur, Altepetl Mahoptekan, Mictlan p.1, Altepetl Mahoptekan"
  740. },
  741. "Maho z PIRAMIDA": {
  742. map: "Altepetl Mahoptekan, Niecka Xiuh Atl, Dolina Chmur, Niecka Xiuh Atl, Altepetl Mahoptekan, Dolina Chmur, Złota Góra p.1, Złota Góra p.2, Złota Góra p.3, Złota Góra p.2, Złota Góra p.1, Dolina Chmur, Altepetl Mahoptekan, Mictlan p.1, Mictlan p.2, Mictlan p.3, Mictlan p.4, Mictlan p.5, Mictlan p.6, Mictlan p.7, Mictlan p.8, Mictlan p.7, Mictlan p.6, Mictlan p.5, Mictlan p.4, Mictlan p.3, Mictlan p.2, Mictlan p.1"
  743. },
  744. "Wiedzmy te WIEKSZE": {
  745. map: "Potępione Zamczysko, Potępione Zamczysko - korytarz wejściowy, Potępione Zamczysko - lochy zachodnie, Potępione Zamczysko - korytarz wejściowy, Potępione Zamczysko - korytarz wejściowy, Potępione Zamczysko - korytarz wschodni, Wieża Szlochów p.1, Potępione Zamczysko - korytarz wschodni, Potępione Zamczysko - korytarz wejściowy, Potępione Zamczysko, Plugawe Pustkowie, Jęczywąwóz, Pogranicze Wisielców, Jęczywąwóz, Plugawe Pustkowie, Potępione Zamczysko"
  746. },
  747. "Katakumby poleglych": {
  748. map: "Katakumby Gwałtownej Śmierci, Korytarz Porzuconych Marzeń, Katakumby Opętanych Dusz, Katakumby Odnalezionych Skrytobójców, Korytarz Porzuconych Nadziei, Katakumby Opętanych Dusz, Zachodni Tunel Jaźni, Katakumby Krwawych Wypraw, Wschodni Tunel Jaźni"
  749. },
  750. "Pustynia Shaiharroud": {
  751. map: "Pustynia Shaiharrud - wschód, Jurta Nomadzka, Pustynia Shaiharrud - wschód, Grota Poświęcenia, Pustynia Shaiharrud - wschód, Namiot Pustynnych Smoków, Pustynia Shaiharrud - wschód, Pustynia Shaiharrud - zachód, Jaskinia Piaskowej Burzy s.1, Jaskinia Piaskowej Burzy s.2, Namiot Naznaczonych, Pustynia Shaiharrud - zachód, Namiot Piechoty Piłowej, Pustynia Shaiharrud - zachód, Jaskinia Szczęk, Jurta Czcicieli, Pustynia Shaiharrud - zachód, Namiot Gwardii Smokoszczękich, Pustynia Shaiharrud - zachód, Sępiarnia, Pustynia Shaiharrud - zachód, Jaskinia Smoczej Paszczy p.1, Jaskinia Smoczej Paszczy p.2, Jaskinia Smoczej Paszczy p.1, Jurta Chaegda, Pustynia Shaiharrud - zachód, Smocze Skalisko, Jaskinia Odwagi, Smocze Skalisko, Urwisko Vapora, Smocze Skalisko, Pustynia Shaiharrud - zachód"
  752. }
  753. };
  754.  
  755. //algorytm A*
  756. class AStar {
  757. constructor(
  758. collisionsString,
  759. width,
  760. height,
  761. start,
  762. end,
  763. additionalCollisions
  764. ) {
  765. this.width = width;
  766. this.height = height;
  767. this.collisions = this.parseCollisions(collisionsString, width, height);
  768. this.additionalCollisions = additionalCollisions || {};
  769. this.start = this.collisions[start.x][start.y];
  770. this.end = this.collisions[end.x][end.y];
  771. this.start.beginning = true;
  772. this.start.g = 0;
  773. this.start.f = heuristic(this.start, this.end);
  774. this.end.target = true;
  775. this.end.g = 0;
  776. this.addNeighbours();
  777. this.openSet = [];
  778. this.closedSet = [];
  779. this.openSet.push(this.start);
  780. }
  781.  
  782. parseCollisions(collisionsString, width, height) {
  783. const collisions = new Array(width);
  784. for (let w = 0; w < width; w++) {
  785. collisions[w] = new Array(height);
  786. for (let h = 0; h < height; h++) {
  787. collisions[w][h] = new Point(
  788. w,
  789. h,
  790. collisionsString.charAt(w + h * width) === "1"
  791. );
  792. }
  793. }
  794. return collisions;
  795. }
  796.  
  797. addNeighbours() {
  798. for (let i = 0; i < this.width; i++) {
  799. for (let j = 0; j < this.height; j++) {
  800. this.addPointNeighbours(this.collisions[i][j]);
  801. }
  802. }
  803. }
  804.  
  805. addPointNeighbours(point) {
  806. const x = point.x,
  807. y = point.y;
  808. const neighbours = [];
  809. if (x > 0) neighbours.push(this.collisions[x - 1][y]);
  810. if (y > 0) neighbours.push(this.collisions[x][y - 1]);
  811. if (x < this.width - 1) neighbours.push(this.collisions[x + 1][y]);
  812. if (y < this.height - 1) neighbours.push(this.collisions[x][y + 1]);
  813. point.neighbours = neighbours;
  814. }
  815.  
  816. anotherFindPath() {
  817. while (this.openSet.length > 0) {
  818. let currentIndex = this.getLowestF();
  819. let current = this.openSet[currentIndex];
  820. if (current === this.end) return this.reconstructPath();
  821. else {
  822. this.openSet.splice(currentIndex, 1);
  823. this.closedSet.push(current);
  824. for (const neighbour of current.neighbours) {
  825. if (this.closedSet.includes(neighbour)) continue;
  826. else {
  827. const tentative_score = current.g + 1;
  828. let isBetter = false;
  829. if (
  830. this.end == this.collisions[neighbour.x][neighbour.y] ||
  831. (!this.openSet.includes(neighbour) &&
  832. !neighbour.collision &&
  833. !this.additionalCollisions[neighbour.x + 256 * neighbour.y])
  834. ) {
  835. this.openSet.push(neighbour);
  836. neighbour.h = heuristic(neighbour, this.end);
  837. isBetter = true;
  838. } else if (
  839. tentative_score < neighbour.g &&
  840. !neighbour.collision
  841. ) {
  842. isBetter = true;
  843. }
  844. if (isBetter) {
  845. neighbour.previous = current;
  846. neighbour.g = tentative_score;
  847. neighbour.f = neighbour.g + neighbour.h;
  848. }
  849. }
  850. }
  851. }
  852. }
  853. }
  854.  
  855. getLowestF() {
  856. let lowestFIndex = 0;
  857. for (let i = 0; i < this.openSet.length; i++) {
  858. if (this.openSet[i].f < this.openSet[lowestFIndex].f) lowestFIndex = i;
  859. }
  860. return lowestFIndex;
  861. }
  862.  
  863. reconstructPath() {
  864. const path = [];
  865. let currentNode = this.end;
  866. while (currentNode !== this.start) {
  867. path.push(currentNode);
  868. currentNode = currentNode.previous;
  869. }
  870. return path;
  871. }
  872. }
  873.  
  874. class Point {
  875. constructor(x, y, collision) {
  876. this.x = x;
  877. this.y = y;
  878. this.collision = collision;
  879. this.g = 10000000;
  880. this.f = 10000000;
  881. this.neighbours = [];
  882. this.beginning = false;
  883. this.target = false;
  884. this.previous = undefined;
  885. }
  886. }
  887.  
  888. function heuristic(p1, p2) {
  889. return Math.abs(p1.x - p2.x) + Math.abs(p1.y - p2.y);
  890. }
  891.  
  892. function a_getWay(x, y) {
  893. return new AStar(
  894. map.col,
  895. map.x,
  896. map.y, {
  897. x: hero.x,
  898. y: hero.y
  899. }, {
  900. x: x,
  901. y: y
  902. },
  903. g.npccol
  904. ).anotherFindPath();
  905. }
  906.  
  907. function a_goTo(x, y) {
  908. let _road_ = a_getWay(x, y);
  909. if (!Array.isArray(_road_)) return;
  910. window.road = _road_;
  911. }
  912.  
  913. //localStorage dla ostatnich mapek
  914. if (!localStorage.getItem(`adi-bot_lastmaps`)) {
  915. localStorage.setItem(`adi-bot_lastmaps`, JSON.stringify(new Array()));
  916. }
  917.  
  918. let self = this;
  919. let blokada = false;
  920. let blokada2 = false;
  921. let $m_id;
  922. let herolx,
  923. heroly,
  924. increment = 0;
  925.  
  926. let bolcka = false;
  927. let start = false;
  928.  
  929. g.loadQueue.push({
  930. fun: () => {
  931. start = true;
  932. }
  933. });
  934.  
  935. let deade = true;
  936. let globalArray = new Array();
  937.  
  938. function addToGlobal(id) {
  939. let npc = g.npc[id];
  940. if (npc.grp) {
  941. for (let i in g.npc) {
  942. if (g.npc[i].grp == npc.grp && !globalArray.includes(g.npc[i].id)) {
  943. globalArray.push(g.npc[i].id);
  944. }
  945. }
  946. } else if (!globalArray.includes(id)) {
  947. globalArray.push(id);
  948. }
  949. }
  950.  
  951. function chceckBlockade() {
  952. for (let i in g.npc) {
  953. let n = g.npc[i];
  954. if (
  955. (n.type == 2 || n.type == 3) &&
  956. n.wt < 19 &&
  957. checkGrp(n.id) &&
  958. hero.lvl + 30 >= n.lvl &&
  959. Math.abs(hero.x - n.x) < 2 &&
  960. Math.abs(hero.y - n.y) < 2 &&
  961. checkHeroHp()
  962. ) {
  963. return _g(`fight&a=attack&ff=1&id=-${n.id}`);
  964. }
  965. }
  966. }
  967.  
  968. function getTime() {
  969. let czas = new Date(),
  970. godzina = czas.getHours(),
  971. sekunda = czas.getSeconds(),
  972. minuta = czas.getMinutes();
  973. if (godzina < 10) godzina = `0${godzina}`;
  974. if (minuta < 10) minuta = `0${minuta}`;
  975. if (sekunda < 10) sekunda = `0${sekunda}`;
  976. return `${godzina}:${minuta}:${sekunda}`;
  977. }
  978.  
  979. //testowa opcja
  980. setInterval(function () {
  981. if ($m_id) {
  982. $m_id = undefined;
  983. }
  984. }, 4000);
  985. let $map_cords = undefined;
  986. this.PI = parseInput;
  987. parseInput = function (a) {
  988. let ret = self.PI.apply(this, arguments); //tutaj dodałem chwilowo poki nie daje rady xd
  989. if (!g.battle && !g.dead && start) {
  990. if (!$m_id && !bolcka) {
  991. $m_id = self.findBestMob();
  992. if (!$m_id && localStorage.getItem(`adi-bot_expowiska`)) {
  993. let tmp_naj1,
  994. tmp_naj2 = 9999;
  995. if (expowiska[localStorage.getItem(`adi-bot_expowiska`)].mobs_id) {
  996. let exP_mobs =
  997. expowiska[localStorage.getItem(`adi-bot_expowiska`)].mobs_id;
  998. for (let i in exP_mobs) {
  999. if (g.npc[exP_mobs[i]]) {
  1000. tmp_naj1 = a_getWay(g.npc[exP_mobs[i]].x, g.npc[exP_mobs[i]].y)
  1001. .length;
  1002. if (tmp_naj1 < tmp_naj2) {
  1003. tmp_naj2 = tmp_naj1;
  1004. $m_id = exP_mobs[i];
  1005. }
  1006. }
  1007. }
  1008. }
  1009. }
  1010. blokada2 = false;
  1011. blokada = false;
  1012. }
  1013. if ($m_id) {
  1014. let mob = g.npc[$m_id];
  1015. if (!mob) {
  1016. $m_id = undefined;
  1017. return ret;
  1018. }
  1019. if (
  1020. Math.abs(hero.x - mob.x) < 2 &&
  1021. Math.abs(hero.y - mob.y) < 2 &&
  1022. !blokada
  1023. ) {
  1024. blokada = true;
  1025. if (checkGrp(mob.id)) {
  1026. _g(`fight&a=attack&ff=1&id=-${mob.id}`, function (res) {
  1027. //sprawdzenie czy walczy z innym
  1028. if (
  1029. res.alert &&
  1030. res.alert == `Przeciwnik walczy już z kimś innym`
  1031. ) {
  1032. addToGlobal(mob.id);
  1033. $m_id = undefined;
  1034. }
  1035. });
  1036. }
  1037. setTimeout(function () {
  1038. $m_id = undefined;
  1039. }, 500);
  1040. } else if (!blokada2 && !blokada) {
  1041. a_goTo(mob.x, mob.y);
  1042. blokada2 = true;
  1043. }
  1044. } else if (document.querySelector(`#adi-bot_maps`).value.length > 0) {
  1045. //g.gwIds - obiekt id mapy i kordy -> 1: `1.13`
  1046. //g.townname - obiekt id mapy i nazwa -> 1: `Ithan`
  1047. $map_cords = self.findBestGw();
  1048. if ($map_cords && !bolcka) {
  1049. if (hero.x == $map_cords.x && hero.y == $map_cords.y) {
  1050. _g(`walk`);
  1051. } else {
  1052. a_goTo($map_cords.x, $map_cords.y);
  1053. bolcka = true;
  1054. setTimeout(function () {
  1055. bolcka = false;
  1056. }, 2000);
  1057. }
  1058. }
  1059. }
  1060.  
  1061. if (heroly == hero.y && herolx == herolx) {
  1062. increment++;
  1063. if (increment > 4) {
  1064. chceckBlockade();
  1065. increment = 0;
  1066. $m_id = undefined;
  1067. $map_cords = undefined;
  1068. bolcka = false;
  1069. }
  1070. } else {
  1071. heroly = hero.y;
  1072. herolx = hero.x;
  1073. increment = 0;
  1074. }
  1075. }
  1076.  
  1077. //wylogowanie po dedzie na główną
  1078. if (g.dead && deade) {
  1079. deade = false;
  1080. document.location.href = `http://margonem.pl`;
  1081. }
  1082.  
  1083. //rozpoczecie walki
  1084. if (a.hasOwnProperty("f") && a.f.init == 1 && hero.clan > 0) {
  1085. if (!Object.keys(a.f.w).some(id => id < 0)) {
  1086. const team1 = [],
  1087. team2 = [];
  1088. for (let x of Object.values(a.f.w))
  1089. (x.team == 1 && team1.push(`${x.name} ${x.lvl}${x.prof}`)) ||
  1090. team2.push(`${x.name} ${x.lvl}${x.prof} `);
  1091. if (
  1092. a.f.myteam == 2 &&
  1093. document.querySelector(`#adi-bot_maps`).value.indexOf(map.name) > -1
  1094. ) {
  1095. const msg = `Zostałem zaatakowany na mapie ${
  1096. map.name
  1097. } o godzinie ${getTime()}.\n${team1.join(", ")} vs. ${team2.join(
  1098. ", "
  1099. )}`;
  1100. }
  1101. }
  1102. }
  1103. return ret;
  1104. };
  1105.  
  1106. function checkGrp(id) {
  1107. if (g.npc[id].grp) {
  1108. //tutaj
  1109. if (
  1110. !checke2(g.npc[id].grp) ||
  1111. (expowiska[localStorage.getItem(`adi-bot_expowiska`)].ignore_grp &&
  1112. expowiska[
  1113. localStorage.getItem(`adi-bot_expowiska`)
  1114. ].ignore_grp.includes(g.npc[id].grp))
  1115. ) {
  1116. return false;
  1117. }
  1118. }
  1119. return true;
  1120. }
  1121.  
  1122. function checke2(grpid) {
  1123. for (let i in g.npc) {
  1124. if (g.npc[i].grp == grpid && g.npc[i].wt > 19) {
  1125. return false;
  1126. }
  1127. }
  1128. return true;
  1129. }
  1130.  
  1131. function checkHeroHp() {
  1132. if ((hero.hp / hero.maxhp) * 100 > 70) {
  1133. return true;
  1134. }
  1135. return false;
  1136. }
  1137.  
  1138. this.findBestMob = function () {
  1139. let b1,
  1140. b2 = 9999,
  1141. id;
  1142. for (let i in g.npc) {
  1143. let n = g.npc[i];
  1144. let xxx;
  1145. let min;
  1146. let max;
  1147. if (document.querySelector(`#adi-bot_mobs`).value.indexOf(`-`) > -1) {
  1148. xxx = document.querySelector(`#adi-bot_mobs`).value.split(`-`);
  1149. min = parseInt(xxx[0]);
  1150. max = parseInt(xxx[1]);
  1151. }
  1152.  
  1153. if (
  1154. (n.type == 2 || n.type == 3) &&
  1155. xxx &&
  1156. n.lvl <= max &&
  1157. n.lvl >= min &&
  1158. checkGrp(n.id) &&
  1159. !globalArray.includes(n.id) &&
  1160. n.wt < 20
  1161. ) {
  1162. b1 = a_getWay(n.x, n.y);
  1163. if (b1 == undefined) continue;
  1164. if (b1.length < b2) {
  1165. b2 = b1.length;
  1166. id = n.id;
  1167. }
  1168. }
  1169. }
  1170. return id;
  1171. };
  1172.  
  1173. if (!localStorage.getItem(`alksjd`)) {
  1174. localStorage.setItem(`alksjd`, 0);
  1175. }
  1176.  
  1177. this.findBestGw = function () {
  1178. let obj,
  1179. txt = document.querySelector(`#adi-bot_maps`).value.split(`, `),
  1180. inc = parseInt(localStorage.getItem(`alksjd`));
  1181.  
  1182. for (let i in g.townname) {
  1183. //bo admini daja podwojna spacje w nazwach mapy??????
  1184. if (txt[inc] == g.townname[i].replace(/ +(?= )/g, "")) {
  1185. let c = g.gwIds[i].split(`.`);
  1186. if (a_getWay(c[0], c[1]) == undefined) continue;
  1187. obj = {
  1188. x: c[0],
  1189. y: c[1]
  1190. };
  1191. }
  1192. if (obj) {
  1193. return obj;
  1194. }
  1195. }
  1196. inc++;
  1197. if (inc > txt.length) {
  1198. inc = 0;
  1199. }
  1200. localStorage.setItem(`alksjd`, parseInt(inc));
  1201. };
  1202.  
  1203. this.initHTML = function () {
  1204. //localStorage pozycji
  1205. if (!localStorage.getItem(`adi-bot_position`)) {
  1206. let tmpobj = {
  1207. x: 0,
  1208. y: 0
  1209. };
  1210. localStorage.setItem(`adi-bot_position`, JSON.stringify(tmpobj));
  1211. }
  1212. let position = JSON.parse(localStorage.getItem(`adi-bot_position`));
  1213.  
  1214. //boxy
  1215. let box = document.createElement(`div`);
  1216. box.id = `adi-bot_box`;
  1217. box.setAttribute(`tip`, `Złap i przenieś :)`);
  1218.  
  1219. let input1 = document.createElement(`input`);
  1220. input1.type = `text`;
  1221. input1.id = `adi-bot_mobs`;
  1222. input1.classList.add(`adi-bot_inputs`);
  1223. input1.setAttribute(`tip`, `Wprowadź lvl mobków w postaci np. '50-70'`);
  1224. box.appendChild(input1);
  1225.  
  1226. let input2 = document.createElement(`input`);
  1227. input2.type = `text`;
  1228. input2.id = `adi-bot_maps`;
  1229. input2.classList.add(`adi-bot_inputs`);
  1230. input2.setAttribute(`tip`, `Wprowadź nazwy map`);
  1231. box.appendChild(input2);
  1232.  
  1233. let select = document.createElement(`select`);
  1234. select.id = `adi-bot_list`;
  1235. select.classList.add(`adi-bot_inputs`);
  1236. select.setAttribute(
  1237. `tip`,
  1238. `Wybierz expowisko, aby dodatek wpisał mapy za Ciebie`
  1239. );
  1240. for (let i = 0; i < Object.keys(expowiska).length; i++) {
  1241. let option = document.createElement(`option`);
  1242. option.setAttribute(`value`, Object.keys(expowiska)[i]);
  1243. option.text = Object.keys(expowiska)[i];
  1244. select.appendChild(option);
  1245. }
  1246. box.appendChild(select);
  1247.  
  1248. document.body.appendChild(box);
  1249.  
  1250. let style = document.createElement(`style`);
  1251. style.type = `text/css`;
  1252. let css = `
  1253. #adi-bot_box {
  1254. position: absolute;
  1255. border: 3px solid lime;
  1256. padding: 5px;
  1257. text-align: center;
  1258. background: url(http://i.imgur.com/iQISZHL.png);
  1259. cursor: grab;
  1260. left: ${position.x}px;
  1261. top: ${position.y}px;
  1262. width: auto;
  1263. height: auto;
  1264. z-index: 390;
  1265. }
  1266. .adi-bot_inputs {
  1267. -webkit-box-sizing: content-box;
  1268. -moz-box-sizing: content-box;
  1269. box-sizing: content-box;
  1270. margin: 0 auto;
  1271. margin-bottom: 3px;
  1272. padding: 2px;
  1273. cursor: pointer;
  1274. border: 2px solid lime;
  1275. -webkit-border-radius: 5px;
  1276. border-radius: 5px;
  1277. font: normal 16px/normal "Comic Sans MS", Times, serif;
  1278. color: #000;
  1279. -o-text-overflow: clip;
  1280. text-overflow: clip;
  1281. background: rgba(234,227,227,1);
  1282. -webkit-box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset;
  1283. box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset;
  1284. text-shadow: 1px 1px 0 rgba(255,255,255,0.66) ;
  1285. display: block;
  1286. }
  1287. input[id=adi-bot_mobs] {
  1288. text-align: center;
  1289. }
  1290. #adi-bot_blessingbox {
  1291. border: 1px solid red;
  1292. background: gray;
  1293. height: 32px;
  1294. width: 32px;
  1295. margin: 0 auto;
  1296. }
  1297. `;
  1298. style.appendChild(document.createTextNode(css));
  1299. document.head.appendChild(style);
  1300.  
  1301. bB = () => {};
  1302.  
  1303. var oldBattleMsgAFC = battleMsg;
  1304. battleMsg = function (c, t) {
  1305. var ret = oldBattleMsgAFC(c, t);
  1306. if (c.search(/winner=/) >= 0) {
  1307. $("#battleclose").click();
  1308. }
  1309. return ret;
  1310. };
  1311.  
  1312. var oldFight = fight;
  1313. fight = f => {
  1314. oldFight(f);
  1315. if (f.init) _g("fight&a=f");
  1316. };
  1317.  
  1318. document.addEventListener("keyup", async function (e) {
  1319. if (
  1320. e.target.tagName != "INPUT" &&
  1321. e.target.tagName != "TEXTAREA" &&
  1322. e.which == 90 &&
  1323. !g.battle
  1324. ) {
  1325. if (!g.engineStopped && parseInput !== window.adiwilkTestBot.PI) {
  1326. window.adiwilkTestBot.copyPI = parseInput;
  1327. parseInput = window.adiwilkTestBot.PI;
  1328. a_goTo(hero.x, hero.y);
  1329. message("Bot zatrzymany");
  1330. } else {
  1331. parseInput = window.adiwilkTestBot.copyPI;
  1332. message("Bot uruchomiony");
  1333. }
  1334. }
  1335. });
  1336.  
  1337. //localStorage dla mobów i mapek
  1338. if (localStorage.getItem(`adi-bot_mobs`)) {
  1339. input1.value = localStorage.getItem(`adi-bot_mobs`);
  1340. }
  1341. if (localStorage.getItem(`adi-bot_maps`)) {
  1342. input2.value = localStorage.getItem(`adi-bot_maps`);
  1343. }
  1344. if (localStorage.getItem(`adi-bot_expowiska`)) {
  1345. if (expowiska[localStorage.getItem(`adi-bot_expowiska`)]) {
  1346. select.value = localStorage.getItem(`adi-bot_expowiska`);
  1347. }
  1348. }
  1349. //listenery
  1350. input1.addEventListener(`keyup`, () => {
  1351. localStorage.setItem(`adi-bot_mobs`, input1.value);
  1352. });
  1353. input2.addEventListener(`keyup`, () => {
  1354. localStorage.setItem(`adi-bot_maps`, input2.value);
  1355. });
  1356. select.addEventListener(`change`, () => {
  1357. localStorage.setItem(`adi-bot_expowiska`, select.value);
  1358. input2.value = expowiska[select.value].map;
  1359. localStorage.setItem(`adi-bot_maps`, input2.value);
  1360. localStorage.setItem(`alksjd`, 0);
  1361. message(`Zapisano expowisko "${select.value}"`);
  1362. });
  1363.  
  1364. $(`#adi-bot_box`).draggable({
  1365. stop: () => {
  1366. let tmpobj = {
  1367. x: parseInt(document.querySelector(`#adi-bot_box`).style.left),
  1368. y: parseInt(document.querySelector(`#adi-bot_box`).style.top)
  1369. };
  1370. localStorage.setItem(`adi-bot_position`, JSON.stringify(tmpobj));
  1371. message(`Zapisano pozycję`);
  1372. }
  1373. });
  1374. };
  1375. this.initHTML();
  1376. }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement