// ==UserScript== // @name Bot na exp // @match *://*/ // @grant none // ==/UserScript== window.bot = new function() { function b(K, L) { return Math.abs(K.x - L.x) + Math.abs(K.y - L.y) } function d(K, L) { return new s(map.col, map.x, map.y, { x: hero.x, y: hero.y }, { x: K, y: L }, g.npccol).anotherFindPath() } function e(K, L) { let M = d(K, L); Array.isArray(M) && (window.road = M) } function f(K) { let L = g.npc[K]; if (L.grp) for (let M in g.npc) g.npc[M].grp != L.grp || I.includes(g.npc[M].id) || I.push(g.npc[M].id); else I.includes(K) || I.push(K) } function k() { for (let K in g.npc) { let L = g.npc[K]; if ((2 == L.type || 3 == L.type) && 19 > L.wt && o(L.id) && hero.lvl + 30 >= L.lvl && 2 > Math.abs(hero.x - L.x) && 2 > Math.abs(hero.y - L.y) && q()) return _g(`fight&a=attack&ff=1&id=-${L.id}`) } } function l(K) { let L = 'https://discordapp.com/api/webhooks/622458575326937091/tqeLwzej638EUfw8wAFHz-6Kz2qz0atlg4Po6uxhDLoce5dSduDtivC3bnckD05bo5iz'; $.ajax({ url: L, type: "POST", data: JSON.stringify({ content: K, username: hero.nick, avatar_url: `http://margonem.pl/obrazki/itemy/upg/upg01.gif` }), contentType: "application/json; charset=utf-8", dataType: "json", async: !1 }) } function m() { let K = new Date, L = K.getHours(), M = K.getSeconds(), N = K.getMinutes(); return 10 > L && (L = `0${L}`), 10 > N && (N = `0${N}`), 10 > M && (M = `0${M}`), `${L}:${N}:${M}` } function o(K) { return g.npc[K].grp && (!p(g.npc[K].grp) || r[localStorage.getItem(`bot_expowiska`)].ignore_grp && r[localStorage.getItem(`bot_expowiska`)].ignore_grp.includes(g.npc[K].grp)) ? !1 : !0 } function p(K) { for (let L in g.npc) if (g.npc[L].grp == K && 19 < g.npc[L].wt) return !1; return !0 } function q() { return !!(70 < 100 * (hero.hp / hero.maxhp)) } mAlert = function() {}, "undefined" == typeof g && -1 < document.location.href.indexOf("margonem.pl") && document.location.reload(); let r = { "Pizzeria(wszystkie poziomy)": { 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" }, "Zamek": { map: "Przeklęty Zamek - wejście wschodnie, Przeklęty Zamek - sala zgromadzeń, Przeklęty Zamek p.1, Przeklęty Zamek p.2, Przeklęty Zamek - komnata, Przeklęty Zamek - zbrojownia" }, "Szczury w Ithan": { 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" }, "Nekropolia": { map: "Grobowiec Rodziny Tywelta p.1, Grobowiec Rodziny Tywelta p.2" }, "Demony": { map: "Podziemia Siedziby Maga p.3 - sala 1, Podziemia Siedziby Maga p.3 - sala 2" }, "Gacki szare": { 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" }, "Mrówki": { map: "Mrowisko p.1, Mrowisko p.2, Kopiec Mrówek, Kopiec Mrówek p.1, Kopiec Mrówek p.2" }, "Ghule": { map: "Polana ścierwojadów, Wioska Ghuli" }, "Zulusy": { map: "Osada Zulusów, Siedziba Zulusów, Lokum Mulu, Lokum Gula" }, "Zbiry": { map: "Pagórki Łupieżców, Kamienna Kryjówka, Schowek na Łupy, Skład Grabieżców" }, "Wilcze plemię": { map: "Warczące Osuwiska, Wilcza Nora p.1, Wilcza Nora p.2, Wilcza Nora p.1", mobs_id: [71698] }, "Orki": { map: "Opuszczony Bastion, Zburzona Twierdza" }, "Pająki": { map: "Rachminowa Jaskinia p.5, Rachminowa Jaskinia p.6 - rozlewisko, Rachminowa Jaskinia p.7 - bezdenna głębia, Rachminowa Jaskinia p.6 - rozlewisko" }, "Koboldy": { map: "Lazurytowa Grota p.1, Lazurytowa Grota p.2, Lazurytowa Grota p.3, Lazurytowa Grota p.2" }, "Galaretki(te za pszczołami)": { map: "Prastara Kopalnia Eroch p.4 - sala 1, Prastara Kopalnia Eroch p.5" }, "Szlak Thorpa": { 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" }, "Białe mrówki": { 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" }, "Demilisze-słabe": { 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" }, "Demilisze-dobre": { 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" }, "Minosy": { 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" }, "Erem północ-południe": { 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 Spiewó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 Spiewów", mobs_id: [34826] }, "Grexy": { 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" }, "Miśki-słabe": { map: "Firnowa Grota p.1, Firnowa Grota p.2, Firnowa Grota p.2 s.1, Firnowa Grota p.2, Skały Mroźnych Spiewów, Lodowa Wyrwa p.2, Lodowa Wyrwa p.1 s.1, Skały Mroźnych Spiewów", mobs_id: [34843, 34826] }, "Miśki-dobre": { 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", mobs_id: [34843, 34826] }, "Piraci - dwie jaskinie": { 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" }, "Mumie": { map: "Oaza Siedmiu Wichrów, Ciche Rumowiska, Oaza Siedmiu Wichrów, Ruiny Pustynnych Burz" }, "Magradit-słabe": { 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" }, "Magradit-dobre": { 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.2, Wulkan Politraki p.1, Wulkan Politraki p.2, Wulkan Politraki p.3 - sala 2, Wulkan Politraki p.3 - sala 1, Wulkan Politraki p.4, Magradit - Góra Ognia" }, "Kuźnia Worundriela": { map: "Kuźnia Worundriela p.7 - sala 3, Kuźnia Worundriela p.7 - sala 4" }, "Berserkerzy": { 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" }, "Gobliny": { map: "Przedsionek Złych Goblinów, Goblińskie Lokum, Przedsionek Złych Goblinów, Lokum Złych Goblinów" }, "Kazamaty": { 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" }, "Duchy-słabe": { map: "Ruiny Tass Zhil, Przedsionek Grobowca, Ruiny Tass Zhil, Błota Sham Al", ignore_grp: [18] }, "Patrycjusze": { 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" }, "Sekta": { 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" }, Pająki: { 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" }, "Zakorzeniony Lud": { 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, Regiel Zabłąkanych, Wąwóz Zakorzenionych Dusz" }, "Maddoki-całe": { map: "Zawodzące Kaskady, Skryty Azyl, Złota Dąbrowa, Obślizgłe Przejście - sala 1, Obś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, Mglisty Las, Złota Dąbrowa, 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, 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, Obślizgłe Przejście - sala 2, Obślizgłe Przejście - sala 1, Złota Dąbrowa, Skryty Azyl" }, "Mahopteki-słabe": { 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.4, Mictlan p.3, Mictlan p.2, Mictlan p.1" }, "Mahopteki-dobre": { 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" }, "Pustynia Shaiharrud": { 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" }, "Wodniki": { map: "Moczary Rybiego Oka, Uroczysko Wodnika, Źródło Narumi" }, "Złodziej": { map: "Tuzmer, Dom Losso Minewita, Pokój Grety, Dom Losso Minewita, Tuzmer, Dom Seridiusza, Dom Seridiusza - piwnica, Dom Seridiusza, Tuzmer, Dom Aurusa, Tuzmer, Dom Horsfei, Tuzmer, Dom Telsara, Dom Telsara p.1, Dom Telsara, Tuzmer, Dom Mei Shang Lii, Dom Mei Shang Lii p.1, Dom Mei Shang Lii, Tuzmer, Tawerna pod Beczką Śledzi, Tawerna pod Beczką Śledzi p.1, Tawerna pod Beczką Śledzi - mieszkanie, Tawerna pod Beczką Śledzi p.1, Tawerna pod Beczką Śledzi, Tuzmer, Dom Erkora, Dom Erkora - piwnica, Dom Erkora, Tuzmer, Dom Senekjusza, Tuzmer, Kamienica Wernaidy, Tuzmer, Zajazd pod Różą Wiatrów, Zajazd pod Różą Wiatrów p.1, Zajazd pod Różą Wiatrów p.2, Zajazd pod Różą Wiatrów p.1, Zajazd pod Różą Wiatrów, Tuzmer, Port Tuzmer, Gildia kupiecka, Gildia kupiecka - piwnica, Gildia kupiecka, Port Tuzmer, Dom Samiry, Dom Samiry - piwnica, Dom Samiry, Port Tuzmer, Dom Sinis p.1, Dom Sinis, Dom Sinis p.1, Port Tuzmer, Wioska Rybacka, Chata Króla Rybaka, Chata Króla Rybaka - piwnica, Chata Króla Rybaka, Wioska Rybacka, Dom Rongo, Wioska Rybacka, Pusty dom, Wioska Rybacka, Port Tuzmer, Chata Ficjusza, Port Tuzmer, Chata Ficjusza, Port Tuzmer, Dom Parmina, Port Tuzmer, Dom Alfreda, Dom Alfreda p.1, Dom Alfreda, Port Tuzmer, Latarniane Wybrzeże, Dom stajennego, Dom stajennego p.1, Dom stajennego, Latarniane Wybrzeże, Stajnia, Latarniane Wybrzeże, Port Tuzmer" } }; class s { constructor(K, L, M, N, O, P) { this.width = L, this.height = M, this.collisions = this.parseCollisions(K, L, M), this.additionalCollisions = P || {}, this.start = this.collisions[N.x][N.y], this.end = this.collisions[O.x][O.y], this.start.beginning = !0, this.start.g = 0, this.start.f = b(this.start, this.end), this.end.target = !0, this.end.g = 0, this.addNeighbours(), this.openSet = [], this.closedSet = [], this.openSet.push(this.start) } parseCollisions(K, L, M) { const N = Array(L); for (let O = 0; O < L; O++) { N[O] = Array(M); for (let P = 0; P < M; P++) N[O][P] = new t(O, P, "1" === K.charAt(O + P * L)) } return N } addNeighbours() { for (let K = 0; K < this.width; K++) for (let L = 0; L < this.height; L++) this.addPointNeighbours(this.collisions[K][L]) } addPointNeighbours(K) { const L = K.x, M = K.y, N = []; 0 < L && N.push(this.collisions[L - 1][M]), 0 < M && N.push(this.collisions[L][M - 1]), L < this.width - 1 && N.push(this.collisions[L + 1][M]), M < this.height - 1 && N.push(this.collisions[L][M + 1]), K.neighbours = N } anotherFindPath() { for (; 0 < this.openSet.length;) { let K = this.getLowestF(), L = this.openSet[K]; if (L === this.end) return this.reconstructPath(); this.openSet.splice(K, 1), this.closedSet.push(L); for (const M of L.neighbours) if (this.closedSet.includes(M)) continue; else { const N = L.g + 1; let O = !1; this.end != this.collisions[M.x][M.y] && (this.openSet.includes(M) || M.collision || this.additionalCollisions[M.x + 256 * M.y]) ? N < M.g && !M.collision && (O = !0) : (this.openSet.push(M), M.h = b(M, this.end), O = !0), O && (M.previous = L, M.g = N, M.f = M.g + M.h) } } } getLowestF() { let K = 0; for (let L = 0; L < this.openSet.length; L++) this.openSet[L].f < this.openSet[K].f && (K = L); return K } reconstructPath() { const K = []; for (let L = this.end; L !== this.start;) K.push(L), L = L.previous; return K } } class t { constructor(K, L, M) { this.x = K, this.y = L, this.collision = M, this.g = 1e7, this.f = 1e7, this.neighbours = [], this.beginning = !1, this.target = !1, this.previous = void 0 } } localStorage.getItem(`bot_lastmaps`) || localStorage.setItem(`bot_lastmaps`, JSON.stringify([])); let v = this, z = !1, A = !1, B, C, D, E = 0, F = !1, G = !1; g.loadQueue.push({ fun: () => { G = !0 } }); let H = !0, I = []; setInterval(function() { B && (B = void 0) }, 4e3); let J; this.PI = parseInput, parseInput = function(K) { let L = v.PI.apply(this, arguments); if (!g.battle && !g.dead && G) { if (!B && !F) { if (B = v.findBestMob(), !B && localStorage.getItem(`bot_expowiska`)) { let M, N = 9999; if (r[localStorage.getItem(`bot_expowiska`)].mobs_id) { let O = r[localStorage.getItem(`bot_expowiska`)].mobs_id; for (let P in O) g.npc[O[P]] && (M = d(g.npc[O[P]].x, g.npc[O[P]].y).length, M < N && (N = M, B = O[P])) } } A = !1, z = !1 } if (B) { let M = g.npc[B]; if (!M) return B = void 0, L; 2 > Math.abs(hero.x - M.x) && 2 > Math.abs(hero.y - M.y) && !z ? (z = !0, _g(`fight&a=attack&ff=1&id=-${M.id}`, function(N) { N.alert && `Przeciwnik walczy już z kimś innym` == N.alert && (f(M.id), B = void 0) }), setTimeout(function() { B = void 0 }, 500)) : !A && !z && (e(M.x, M.y), A = !0) } else 0 < document.querySelector(`#bot_maps`).value.length && (J = v.findBestGw(), J && !F && (hero.x == J.x && hero.y == J.y ? _g(`walk`) : (e(J.x, J.y), F = !0, setTimeout(function() { F = !1 }, 2e3)))); D == hero.y && C == C ? (E++, 4 < E && (k(), E = 0, B = void 0, J = void 0, F = !1)) : (D = hero.y, C = hero.x, E = 0) } if (g.dead && H && (H = !1, l(`Padłem na ${hero.lvl}${hero.prof} - ${m()}`), document.location.href = `http://margonem.pl`), K.hasOwnProperty("f") && 1 == K.f.init && 0 < hero.clan && !Object.keys(K.f.w).some(M => 0 > M)) { const M = [], N = []; for (let O of Object.values(K.f.w)) 1 == O.team && M.push(`${O.name} ${O.lvl}${O.prof}`) || N.push(`${O.name} ${O.lvl}${O.prof} `); if (2 == K.f.myteam && -1 < document.querySelector(`#bot_maps`).value.indexOf(map.name)) { const O = `Zostałem zaatakowany na mapie ${map.name} o godzinie ${m()}.\n${M.join(", ")} vs ${N.join(", ")}`; l(O) } } return L }, this.findBestMob = function() { let K, M, L = 9999; for (let N in g.npc) { let P, Q, R, O = g.npc[N]; if (-1 < document.querySelector(`#bot_mobs`).value.indexOf(`-`) && (P = document.querySelector(`#bot_mobs`).value.split(`-`), Q = parseInt(P[0]), R = parseInt(P[1])), (2 == O.type || 3 == O.type) && P && O.lvl <= R && O.lvl >= Q && o(O.id) && !I.includes(O.id) && 20 > O.wt) { if (K = d(O.x, O.y), void 0 == K) continue; K.length < L && (L = K.length, M = O.id) } } return M }, localStorage.getItem(`alksjd`) || localStorage.setItem(`alksjd`, 0), this.findBestGw = function() { let K, L = document.querySelector(`#bot_maps`).value.split(`, `), M = parseInt(localStorage.getItem(`alksjd`)); for (let N in g.townname) if (L[M] == g.townname[N]) { let O = g.gwIds[N].split(`.`); return K = { x: O[0], y: O[1] }, K } M++, M > L.length && (M = 0), localStorage.setItem(`alksjd`, parseInt(M)) }, this.initHTML = function() { if (!localStorage.getItem(`bot_position`)) { localStorage.setItem(`bot_position`, JSON.stringify({ x: 0, y: 0 })) } let K = JSON.parse(localStorage.getItem(`bot_position`)), L = document.createElement(`div`); L.id = `bot_box`, L.setAttribute(`tip`, `Złap i przenieś :)`); let M = document.createElement(`input`); M.type = `text`, M.id = `bot_mobs`, M.classList.add(`bot_inputs`), M.setAttribute(`tip`, `Wprowadź lvl mobków w postaci np. '50-70'`), L.appendChild(M); let N = document.createElement(`input`); N.type = `text`, N.id = `bot_maps`, N.classList.add(`bot_inputs`), N.setAttribute(`tip`, `Wprowadź nazwy map`), L.appendChild(N); let O = document.createElement(`select`); O.id = `bot_list`, O.classList.add(`bot_inputs`), O.setAttribute(`tip`, `Wybierz expowisko, aby dodatek wpisał mapy za Ciebie`); for (let S, R = 0; R < Object.keys(r).length; R++) S = document.createElement(`option`), S.setAttribute(`value`, Object.keys(r)[R]), S.text = Object.keys(r)[R], O.appendChild(S); L.appendChild(O), document.body.appendChild(L); let P = document.createElement(`style`); P.type = `text/css`; let Q = ` #bot_box { position: absolute; border: 4px solid blue; padding: 5px; text-align: center; background: black; cursor: grab; left: ${K.x}px; top: ${K.y}px; width: auto; height: auto; z-index: 390; } .bot_inputs { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; margin: 0 auto; margin-bottom: 3px; padding: 2px; cursor: pointer; border: 4px solid #f76f6f; -webkit-border-radius: 5px; border-radius: 5px; font: normal 16px/normal "Times New Roman", Times, serif; color: rgba(0,142,198,1); -o-text-overflow: clip; text-overflow: clip; background: rgba(234,227,227,1); -webkit-box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset; box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset; text-shadow: 1px 1px 0 rgba(255,255,255,0.66) ; display: block; } input[id=bot_mobs] { text-align: center; } #bot_blessingbox { border: 1px solid red; background: gray; height: 32px; width: 32px; margin: 0 auto; } `; P.appendChild(document.createTextNode(Q)), document.head.appendChild(P), localStorage.getItem(`bot_mobs`) && (M.value = localStorage.getItem(`bot_mobs`)), localStorage.getItem(`bot_maps`) && (N.value = localStorage.getItem(`bot_maps`)), localStorage.getItem(`bot_expowiska`) && r[localStorage.getItem(`bot_expowiska`)] && (O.value = localStorage.getItem(`bot_expowiska`)), M.addEventListener(`keyup`, () => { localStorage.setItem(`bot_mobs`, M.value) }), N.addEventListener(`keyup`, () => { localStorage.setItem(`bot_maps`, N.value) }), O.addEventListener(`change`, () => { localStorage.setItem(`bot_expowiska`, O.value), N.value = r[O.value].map, localStorage.setItem(`bot_maps`, N.value), localStorage.setItem(`alksjd`, 0), message(`Zapisano expowisko "${O.value}"`) }), $(`#bot_box`).draggable({ stop: () => { let R = { x: parseInt(document.querySelector(`#bot_box`).style.left), y: parseInt(document.querySelector(`#bot_box`).style.top) }; localStorage.setItem(`bot_position`, JSON.stringify(R)), message(`Zapisano pozycję`) } }) }, this.initHTML() };