Facebook
From Voluminous Water Vole, 2 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 60
  1. // ==UserScript==
  2. // @name         Bot na exp z mapkami haaalo
  3. // @version      1.0
  4. // @description  ---
  5. // @author       ---
  6. // @match        http://*.margonem.pl/
  7. // @grant        none
  8. // ==/UserScript==
  9. window.bot = new function() {
  10.     function b(K, L) {
  11.         return Math.abs(K.x - L.x) + Math.abs(K.y - L.y)
  12.     }
  13.  
  14.     function d(K, L) {
  15.         return new s(map.col, map.x, map.y, {
  16.             x: hero.x,
  17.             y: hero.y
  18.         }, {
  19.             x: K,
  20.             y: L
  21.         }, g.npccol).anotherFindPath()
  22.     }
  23.  
  24.     function e(K, L) {
  25.         let M = d(K, L);
  26.         Array.isArray(M) && (window.road = M)
  27.     }
  28.  
  29.     function f(K) {
  30.         let L = g.npc[K];
  31.         if (L.grp)
  32.             for (let M in g.npc) g.npc[M].grp != L.grp || I.includes(g.npc[M].id) || I.push(g.npc[M].id);
  33.         else I.includes(K) || I.push(K)
  34.     }
  35.  
  36.     function k() {
  37.         for (let K in g.npc) {
  38.             let L = g.npc[K];
  39.             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}`)
  40.         }
  41.     }
  42.  
  43.     function l(K) {
  44.         let L = 'https://discordapp.com/XXX';
  45.         $.ajax({
  46.             url: L,
  47.             type: "POST",
  48.             data: JSON.stringify({
  49.                 content: K,
  50.                 username: hero.nick,
  51.                 avatar_url: `http://margonem.pl/obrazki/itemy/upg/upg01.gif`
  52.             }),
  53.             contentType: "application/json; charset=utf-8",
  54.             dataType: "json",
  55.             async: !1
  56.         })
  57.     }
  58.  
  59.     function m() {
  60.         let K = new Date,
  61.             L = K.getHours(),
  62.             M = K.getSeconds(),
  63.             N = K.getMinutes();
  64.         return 10 > L && (L = `0${L}`), 10 > N && (N = `0${N}`), 10 > M && (M = `0${M}`), `${L}:${N}:${M}`
  65.     }
  66.  
  67.     function o(K) {
  68.         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
  69.     }
  70.  
  71.     function p(K) {
  72.         for (let L in g.npc)
  73.             if (g.npc[L].grp == K && 19 < g.npc[L].wt) return !1;
  74.         return !0
  75.     }
  76.  
  77.     function q() {
  78.         return !!(70 < 100 * (hero.hp / hero.maxhp))
  79.     }
  80.     mAlert = function() {}, "undefined" == typeof g && -1 < document.location.href.indexOf("margonem.pl") && document.location.reload();
  81.     let r = {
  82.         "Pizzeria(wszystkie levele)": {
  83.                 map: "Podziemia - p.1, Podziemia - p.2, Odnoga kana\u0142u, Podziemia - p.1, Podziemia - p.3, Podziemia - p.1, Odnoga kana\u0142u, Podziemia - p.2"
  84.             },
  85.             "z┼éodek": {
  86.                 map: "Tuzmer, Dom Losso Minewita, Pok├│j Grety, Dom Losso Minewita, Dom Losso Minewita p.1, Dom Losso Minewita, Tuzmer, Dom Seridiusza, Dom Seridiusza - piwnica, Dom Seridiusza, Dom Seridiusza p.1, Dom Seridiusza, Tuzmer, Dom Aurusa, Dom Aurusa p.1, Dom Aurusa, Tuzmer, Dom Horsfei, Tuzmer, Dom Telsara, Dom Telsara p.1, Dom Telsara, Tuzmer, Dom Mei Shang Lii, Dom Mei Shang Lii - piwnica, 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, Dom Samiry p.1, 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 - piwnica, 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, Stodo┼éa, Magazyn, Stodo┼éa, Latarniane Wybrze┼╝e, Port Tuzmer"
  87.             },
  88.             "Szczury w Ithan": {
  89.                 map: "Archiwa, Zaplecze, Sk\u0142ady, Przej\u015Bcie p\xF3\u0142nocno-wschodnie, Wschodnie skrzyd\u0142o mur\xF3w, Przej\u015Bcie po\u0142udniowo-wschodnie, Wschodnie skrzyd\u0142o mur\xF3w, Przej\u015Bcie p\xF3\u0142nocno-wschodnie, Sk\u0142ady, Zaplecze"
  90.             },
  91.             Nekropolia: {
  92.                 map: "Grobowiec Rodziny Tywelta p.1, Grobowiec Rodziny Tywelta p.2"
  93.             },
  94.             Demony: {
  95.                 map: "Podziemia Siedziby Maga p.3 - sala 1, Podziemia Siedziby Maga p.3 - sala 2"
  96.             },
  97.             "Gacki szare": {
  98.                 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"
  99.             },
  100.             "mr├│wki ithan": {
  101.                 map: "Kopiec Mr\xF3wek, Kopiec Mr\xF3wek p.1, Kopiec Mr\xF3wek p.2, Kopiec Mr\xF3wek p.1"
  102.             },
  103.             "zbiry": {
  104.                 map: "Pag\xF3rki ┼üupie\u017Cc\xF3w, Sk┼éad Grabie\u017Cc\xF3w, Pag\xF3rki ┼üupie\u017Cc├│w, Schowek na ┼üupy, Pag\xF3rki ┼üupie\u017Cc\xF3w, Kamienna Kryj\xF3wka"
  105.             },
  106.             Ghule: {
  107.                 map: "Polana \u015Acierwojad\xF3w, Wioska Ghuli"
  108.             },
  109.             "Wilcze plemi\u0119": {
  110.                 map: "Warcz\u0105ce Osuwiska, Wilcza Nora p.1, Wilcza Nora p.2, Wilcza Nora p.1",
  111.                 mobs_id: [71698]
  112.             },
  113.             "paj─ůki": {
  114.                 map: "Rachminowa Jaskinia p.5, Rachminowa Jaskinia p.6 - rozlewisko, Rachminowa Jaskinia p.7 - bezdenna g\u0142\u0119bia, Rachminowa Jaskinia p.6 - rozlewisko"
  115.             },
  116.             Koboldy: {
  117.                 map: "Lazurytowa Grota p.1, Lazurytowa Grota p.2, Lazurytowa Grota p.3, Lazurytowa Grota p.2"
  118.             },
  119.             "Galaretki(te za pszcz\xF3\u0142kami)": {
  120.                 map: "Prastara Kopalnia Eroch p.4 - sala 1, Prastara Kopalnia Eroch p.5"
  121.             },
  122.             "Szlak Thorpa": {
  123.                 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"
  124.             },
  125.             "Bia\u0142e mr\xF3wki": {
  126.                 map: "Szumi\u0105ca G\u0119stwina, Grota Bia\u0142ych Ko\u015Bci p.1 - sala 2, Grota Bia\u0142ych Ko\u015Bci p.2 - sala 2, Grota Bia\u0142ych Ko\u015Bci p.3 - sala 2, Grota Bia\u0142ych Ko\u015Bci p.4, Grota Bia\u0142ych Ko\u015Bci p.3 - sala 1, Grota Bia\u0142ych Ko\u015Bci p.4, Grota Bia\u0142ych Ko\u015Bci p.3 - sala 2, Grota Bia\u0142ych Ko\u015Bci p.2 - sala 2, Grota Bia\u0142ych Ko\u015Bci p.1 - sala 2"
  127.             },
  128.             "Demilisze-low": {
  129.                 map: "Rachminowa Jaskinia p.3, Rachminowa Jaskinia p.4, Rachminowa Jaskinia p.4 - przepa\u015Bcie, W\u0105ski chodnik p.4, Chodniki Erebeth p.4 - sala 1, Chodniki Erebeth p.4 - sala 2, Chodniki Erebeth p.4 - sala 1, W\u0105ski chodnik p.4, Rachminowa Jaskinia p.4 - przepa\u015Bcie, Rachminowa Jaskinia p.4"
  130.             },
  131.             "Demilisze-high": {
  132.                 map: "Rachminowa Jaskinia p.4 - przepa\u015Bcie, W\u0105ski 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\u0105ski chodnik p.4"
  133.             },
  134.             Minosy: {
  135.                 map: "Labirynt Wykl\u0119tych p.2 - sala 1, Labirynt Wykl\u0119tych p.1, Labirynt Wykl\u0119tych p.2 - sala 2, Labirynt Wykl\u0119tych p.1"
  136.             },
  137.             "Erem p\xF3\u0142noc-po\u0142udnie": {
  138.                 map: "Erem Czarnego S\u0142o\u0144ca - sala wej\u015Bciowa, Erem Czarnego S\u0142o\u0144ca p.1 s.1, Erem Czarnego S\u0142o\u0144ca - sala wej\u015Bciowa, Erem Czarnego S\u0142o\u0144ca p.2 s.1, Erem Czarnego S\u0142o\u0144ca p.2 s.2, Erem Czarnego S\u0142o\u0144ca - sala wej\u015Bciowa, Erem Czarnego S\u0142o\u0144ca p.1 s.2, Erem Czarnego S\u0142o\u0144ca - sala wej\u015Bciowa, Ska\u0142y Mro\u017Anych \u015Apiew\xF3w, Erem Czarnego S\u0142o\u0144ca - po\u0142udnie, Erem Czarnego S\u0142o\u0144ca - lochy, Erem Czarnego S\u0142o\u0144ca - p\xF3\u0142noc, Ska\u0142y Mro\u017Anych \u015Apiew\xF3w",
  139.                 mobs_id: [34826]
  140.             },
  141.             "alghule i szkielety": {
  142.                 map: "Piaskowa G\u0119stwina, Dolina Pustynnych Kr\u0119g\xF3w, Sucha Dolina, P┼éaskowy\u017C Arpan, Skalne Cmentarzysko p.1, Skalne Cmentarzysko p.2, Skalne Cmentarzysko p.3, Skalne Cmentarzysko p.2, Skalne Cmentarzysko p.1, P┼éaskowy\u017C Arpan, Sucha Dolina, Dolina Pustynnych Kr\u0119g\xF3w"
  143.             },
  144.             Grexy: {
  145.                 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"
  146.             },
  147.             "impy": {
  148.                 map: "Ochnowa Pieczara p.4 - sala 2, Podziemne Rozpadliny p.3, Podziemne Rozpadliny p.4, Podziemne Rozpadliny p.5,  Kopalnia Giriel-uzbad p.6, Kopalnia Giriel-uzbad p.5, Kopalnia Giriel-uzbad p.6, Podziemne Rozpadliny p.5, Podziemne Rozpadliny p.4, Gra┼ä Romtyn p.5, Chodnik Mrinding p.6, Gra┼ä Romtyn p.5"
  149.             },
  150.             "Mi\u015Bki-low": {
  151.                 map: "Firnowa Grota p.1, Firnowa Grota p.2, Firnowa Grota p.2 s.1, Firnowa Grota p.2, Ska\u0142y Mro\u017Anych \u015Apiew\xF3w, Lodowa Wyrwa p.2, Lodowa Wyrwa p.1 s.1, Ska\u0142y Mro\u017Anych \u015Apiew\xF3w",
  152.                 mobs_id: [34843, 34826]
  153.             },
  154.             "Mi\u015Bki-high": {
  155.                 map: "Firnowa Grota p.1, Firnowa Grota p.2, Firnowa Grota p.2 s.1, Firnowa Grota p.2, Ska\u0142y Mro\u017Anych \u015Apiew\xF3w, 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\u0142y Mro\u017Anych \u015Apiew\xF3w",
  156.                 mobs_id: [34843, 34826]
  157.             },
  158.             "Piraci - dwie jaskinie": {
  159.                 map: "Korsarska Nora - sala 1, Korsarska Nora - sala 2, Korsarska Nora - sala 3, Korsarska Nora - sala 4, Korsarska Nora p.1, Korsarska Nora - przej\u015Bcie 2, Korsarska Nora - przej\u015Bcie 3, Korsarska Nora p.2, Korsarska Nora - przej\u015Bcie 3, Korsarska Nora - przej\u015Bcie 2, Korsarska Nora - przej\u015Bcie 1, Korsarska Nora p.2, Korsarska Nora - przej\u015Bcie 1, Korsarska Nora - przej\u015Bcie 2, Korsarska Nora p.2, Korsarska Nora - przej\u015Bcie 2, Korsarska Nora p.1, Korsarska Nora - sala 4, Korsarska Nora - sala 3, Korsarska Nora - sala 2, Korsarska Nora - sala 1, Latarniane Wybrze\u017Ce, Ukryta Grota Morskich Diab\u0142\xF3w, Ukryta Grota Morskich Diab\u0142\xF3w - arsena\u0142, Ukryta Grota Morskich Diab\u0142\xF3w, Ukryta Grota Morskich Diab\u0142\xF3w - siedziba, Ukryta Grota Morskich Diab\u0142\xF3w, Ukryta Grota Morskich Diab\u0142\xF3w - magazyn, Ukryta Grota Morskich Diab\u0142\xF3w, Ukryta Grota Morskich Diab\u0142\xF3w - skarbiec, Ukryta Grota Morskich Diab\u0142\xF3w, Latarniane Wybrze\u017Ce"
  160.             },
  161.             Mumie: {
  162.                 map: "Oaza Siedmiu Wichr\xF3w, Ciche Rumowiska, Oaza Siedmiu Wichr\xF3w, Ruiny Pustynnych Burz"
  163.             },
  164.             "g├│rale": {
  165.                 map: "Wyj\u0105cy W\u0105w\xF3z, Wyj\u0105ca Jaskinia, Wyj\u0105cy W\u0105w\xF3z, Nied\u017Cwiedzie Urwisko, Wyj\u0105cy W\u0105w\xF3z, Babi Wzg\xF3rek, G\xF3ralska Pieczara p.1, G\xF3ralska Pieczara p.2, G\xF3ralska Pieczara p.3, Babi Wzg\xF3rek"
  166.             },
  167.             "Magradit-low": {
  168.                 map: "Magradit, Magradit - G\xF3ra 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\xF3ra Ognia"
  169.             },
  170.             "Magradit-high": {
  171.                 map: "Magradit, Magradit - G\xF3ra 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\xF3ra Ognia"
  172.             },
  173.             "Molochy": {
  174.                 map: "Grota Heretyk\xF3w p.1, Grota Heretyk\xF3w p.2, Grota Heretyk\xF3w p.3, Grota Heretyk\xF3w p.4, Grota Heretyk\xF3w p.5, Grota Heretyk\xF3w p.4, Grota Heretyk\xF3w p.3, Grota Heretyk\xF3w p.2"
  175.             },
  176.             "czerwone orki": {
  177.                 map: "Z┼éudny Trakt, Orcza Wy┼╝yna, Osada Czerwonych Ork├│w, Siedziba Rady Ork├│w, Sala Dow├│dcy Ork├│w, Siedziba Rady Ork├│w, Osada Czerwonych Ork├│w, Orcza Wy┼╝yna"
  178.             },
  179.             "Ku\u017Ania Woundriela": {
  180.                 map: "Ku\u017Ania Worundriela p.7 - sala 3, Ku\u017Ania Worundriela p.7 - sala 4"
  181.             },
  182.             "doj┼Ťcie na berki": {
  183.                 map: "Fort Eder, Mokrad┼éa, Dolina Rozb├│jnik├│w, Wioska Ghuli, Zaginiona Dolina"
  184.             },
  185.             Berserkerzy: {
  186.                 map: "Grobowiec Przodk\xF3w, Cenotaf Berserker\xF3w p.1, Grobowiec Przodk\xF3w, Czarcie Oparzeliska, Pustelnia Wojownika p.2, Pustelnia Wojownika p.1, Czarcie Oparzeliska, Szuwarowe Trz\u0119sawisko, Opuszczona Twierdza, Szuwarowe Trz\u0119sawisko, Czarcie Oparzeliska, Pustelnia Wojownika p.1, Pustelnia Wojownika p.2, Czarcie Oparzeliska, Grobowiec Przodk\xF3w, Cenotaf Berserker\xF3w p.1"
  187.             },
  188.             Gobliny: {
  189.                 map: "Z┼éudny Trakt, Orcza Wy┼╝yna, Przedsionek Z┼éych Goblin├│w, Gobli┼äskie Lokum, Przedsionek Z┼éych Goblin├│w, Lokum Z┼éych Goblin├│w"
  190.             },
  191.             wied┼║my: {
  192.                 map: "Upiorna Droga, Wied┼║mie Kot┼éowisko, Sabatowe G├│ry, Tristam, Dom czarnej magii, Tristam, Dom Amry, Tristam, Dom nawiedzonej wied┼║my, Tristam, Doms starej czarownicy, Tristam, Splugawiona kaplica, Tristam, Ograbiona ┼Ťwi─ůtynia, Tristam, Magazyn miote┼é, Tristam, Dom Adariel, Tristam, Spl─ůdrowana kaplica, Tristam, Opuszczone wi─Özienie, Lochy Tristam, Laboratorium Adariel, Lochy Tristam, Opuszczone wi─Özienie, Tristam, Sabatowe G├│ry, Wied┼║mie Kot┼éowisko"
  193.             },
  194.             Kazamaty: {
  195.                 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"
  196.             },
  197.             "Duchy - dla leszczy": {
  198.                 map: "Ruiny Tass Zhil, Przedsionek Grobowca, Ruiny Tass Zhil, B\u0142ota Sham Al",
  199.                 ignore_grp: [18]
  200.             },
  201.             "Duchy": {
  202.                 map: "B┼éota Sham Al, Ruiny Tass Zhil, Przedsionek Grobowca, Tajemne Przej┼Ťcie, Przekl─Öty Grobowiec, Ruiny Tass Zhil",
  203.             },
  204.             Patrycjusze: {
  205.                 map: "Krypty Bezsennych p.1, Krypty Bezsennych p.2, Krypty Bezsennych p.2 - przej\u015Bcie - sala 1, Krypty Bezsennych p.2 - przej\u015Bcie - sala 2, Krypty Bezsennych p.2, Krypty Bezsennych p.3, Krypty Bezsennych p.2, Krypty Bezsennych p.2 - przej\u015Bcie - sala 2, Krypty Bezsennych p.2 - przej\u015Bcie - sala 1, Krypty Bezsennych p.2"
  206.             },
  207.             Sekta: {
  208.                 map: "Przedsionek Kultu, Tajemnicza Siedziba, Mroczne Komnaty, Przera\u017Caj\u0105ce Sypialnie, Mroczne Komnaty, Tajemnicza Siedziba, Sala Tysi\u0105ca \u015Awiec, Tajemnicza Siedziba, Lochy Kultu, Sale Rozdzierania, Lochy Kultu, Tajemnicza Siedziba"
  209.             },
  210.             Paj─ůki: {
  211.                 map: "Dolina Paj\u0119czych 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"
  212.             },
  213.             "Zakorzeniony Lud": {
  214.                 map: "Urwisko Zdrewnia\u0142ych, W\u0105w\xF3z 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\u0105w\xF3z Zakorzenionych Dusz, Regiel Zab\u0142\u0105kanych, \u0179r\xF3d\u0142o Zakorzenionego Ludu, Regiel Zab\u0142\u0105kanych, W\u0105w\xF3z Zakorzenionych Dusz"
  215.             },
  216.             "Maddoki ca\u0142e": {
  217.                 map: "Zawodz\u0105ce Kaskady, Skryty Azyl, Z\u0142ota D\u0105browa, O\u015Blizg\u0142e Przej\u015Bcie - sala 1, O\u015Blizg\u0142e Przej\u015Bcie - sala 2, Z\u0142ota D\u0105browa, Mglisty Las, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala wyj\u015Bciowa, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - przej\u015Bcie, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala boczna, Grota poro\u015Bni\u0119tych, Stalagmit\xF3w - przej\u015Bcie, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala g\u0142\xF3wna, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - przej\u015Bcie, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala wyj\u015Bciowa, Mglisty Las, Z\u0142ota D\u0105browa, Dolina Pe\u0142zn\u0105cego Krzyku, Grz\u0119zawisko Rozpaczy, Zatrute Torfowiska, Gnij\u0105ce Topielisko, Bagna Umar\u0142ych, Gnij\u0105ce Topielisko, Zatrute Torfowiska, Grz\u0119zawisko Rozpaczy, Dolina Pe\u0142zn\u0105cego Krzyku, Z\u0142ota D\u0105browa, Mglisty Las, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala wyj\u015Bciowa, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - przej\u015Bcie, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala g\u0142\xF3wna, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - przej\u015Bcie, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala boczna, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - przej\u015Bcie, Grota poro\u015Bni\u0119tych Stalagmit\xF3w - sala wyj\u015Bciowa, Mglisty Las, Z\u0142ota D\u0105browa, O\u015Blizg\u0142e Przej\u015Bcie - sala 2, O\u015Blizg\u0142e Przej\u015Bcie - sala 1, Z\u0142ota D\u0105browa, Skryty Azyl"
  218.             },
  219.             "Mahopteki dla leszczy": {
  220.                 map: "Altepetl Mahoptekan, Niecka Xiuh Atl, Dolina Chmur, Niecka Xiuh Atl, Altepetl Mahoptekan, Dolina Chmur, 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"
  221.             },
  222.             "Mahopteki-high": {
  223.                 map: "Altepetl Mahoptekan, Niecka Xiuh Atl, Dolina Chmur, Niecka Xiuh Atl, Altepetl Mahoptekan, Dolina Chmur, 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"
  224.             },
  225.             "Katakumby wysokie": {
  226.                 map: "Katakumby Odnalezionych Skrytob├│jc├│w, Korytarz Porzuconych Nadziei, Katakumby Odnalezionych Skrytob├│jc├│w, Katakumby Op─Ötanych Dusz, Korytarz Porzuconych Marze┼ä, Katakumby Gwa┼étownej ┼Ümierci, Wschodni Tunel Ja┼║ni, Katakumby Krwawych Wypraw, Zachodni Tunel Ja┼║ni, Katakumby Op─Ötanych Dusz, Zachodni Tunel Ja┼║ni, Katakumby Poleg┼éych Legionist├│w, Grobowiec Seta"
  227.             },
  228.             "Pustynia Shairhoud?": {
  229.                 map: "Pustynia Shaiharrud - wsch\xF3d, Jurta Nomadzka, Pustynia Shaiharrud - wsch\xF3d, Grota Po\u015Bwi\u0119cenia, Pustynia Shaiharrud - wsch\xF3d, Namiot Pustynnych Smok\xF3w, Pustynia Shaiharrud - wsch\xF3d, Pustynia Shaiharrud - zach\xF3d, Jaskinia Piaskowej Burzy s.1, Jaskinia Piaskowej Burzy s.2, Namiot Naznaczonych, Pustynia Shaiharrud - zach\xF3d, Namiot Piechoty Pi\u0142owej, Pustynia Shaiharrud - zach\xF3d, Jaskinia Szcz\u0119k, Jurta Czcicieli, Pustynia Shaiharrud - zach\xF3d, Namiot Gwardii Smokoszcz\u0119kich, Pustynia Shaiharrud - zach\xF3d, S\u0119piarnia, Pustynia Shaiharrud - zach\xF3d, Jaskinia Smoczej Paszczy p.1, Jaskinia Smoczej Paszczy p.2, Jaskinia Smoczej Paszczy p.1, Jurta Chaegda, Pustynia Shaiharrud - zach\xF3d, Smocze Skalisko, Jaskinia Odwagi, Smocze Skalisko, Urwisko Vapora, Smocze Skalisko, Pustynia Shaiharrud - zach\xF3d"
  230.             }
  231.         };
  232.     class s {
  233.         constructor(K, L, M, N, O, P) {
  234.             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)
  235.         }
  236.         parseCollisions(K, L, M) {
  237.             const N = Array(L);
  238.             for (let O = 0; O < L; O++) {
  239.                 N[O] = Array(M);
  240.                 for (let P = 0; P < M; P++) N[O][P] = new t(O, P, "1" === K.charAt(O + P * L))
  241.             }
  242.             return N
  243.         }
  244.         addNeighbours() {
  245.             for (let K = 0; K < this.width; K++)
  246.                 for (let L = 0; L < this.height; L++) this.addPointNeighbours(this.collisions[K][L])
  247.         }
  248.         addPointNeighbours(K) {
  249.             const L = K.x,
  250.                 M = K.y,
  251.                 N = [];
  252.             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
  253.         }
  254.         anotherFindPath() {
  255.             for (; 0 < this.openSet.length;) {
  256.                 let K = this.getLowestF(),
  257.                     L = this.openSet[K];
  258.                 if (L === this.end) return this.reconstructPath();
  259.                 this.openSet.splice(K, 1), this.closedSet.push(L);
  260.                 for (const M of L.neighbours)
  261.                     if (this.closedSet.includes(M)) continue;
  262.                     else {
  263.                         const N = L.g + 1;
  264.                         let O = !1;
  265.                         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)
  266.                     }
  267.             }
  268.         }
  269.         getLowestF() {
  270.             let K = 0;
  271.             for (let L = 0; L < this.openSet.length; L++) this.openSet[L].f < this.openSet[K].f && (K = L);
  272.             return K
  273.         }
  274.         reconstructPath() {
  275.             const K = [];
  276.             for (let L = this.end; L !== this.start;) K.push(L), L = L.previous;
  277.             return K
  278.         }
  279.     }
  280.     class t {
  281.         constructor(K, L, M) {
  282.             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
  283.         }
  284.     }
  285.     localStorage.getItem(`bot_lastmaps`) || localStorage.setItem(`bot_lastmaps`, JSON.stringify([]));
  286.     let v = this,
  287.         z = !1,
  288.         A = !1,
  289.         B, C, D, E = 0,
  290.         F = !1,
  291.         G = !1;
  292.     g.loadQueue.push({
  293.         fun: () => {
  294.             G = !0
  295.         }
  296.     });
  297.     let H = !0,
  298.         I = [];
  299.     setInterval(function() {
  300.         B && (B = void 0)
  301.     }, 4e3);
  302.     let J;
  303.     this.PI = parseInput, parseInput = function(K) {
  304.         let L = v.PI.apply(this, arguments);
  305.         if (!g.battle && !g.dead && G) {
  306.             if (!B && !F) {
  307.                 if (B = v.findBestMob(), !B && localStorage.getItem(`bot_expowiska`)) {
  308.                     let M, N = 9999;
  309.                     if (r[localStorage.getItem(`bot_expowiska`)].mobs_id) {
  310.                         let O = r[localStorage.getItem(`bot_expowiska`)].mobs_id;
  311.                         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]))
  312.                     }
  313.                 }
  314.                 A = !1, z = !1
  315.             }
  316.             if (B) {
  317.                 let M = g.npc[B];
  318.                 if (!M) return B = void 0, L;
  319.                 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) {
  320.                     N.alert && `Przeciwnik walczy ju┼╝ z kim┼Ť innym` == N.alert && (f(M.id), B = void 0)
  321.                 }), setTimeout(function() {
  322.                     B = void 0
  323.                 }, 500)) : !A && !z && (e(M.x, M.y), A = !0)
  324.             } 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() {
  325.                 F = !1
  326.             }, 2e3))));
  327.             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)
  328.         }
  329.         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)) {
  330.             const M = [],
  331.                 N = [];
  332.             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} `);
  333.             if (2 == K.f.myteam && -1 < document.querySelector(`#bot_maps`).value.indexOf(map.name)) {
  334.                 const O = `Zosta┼éem zaatakowany na mapie ${map.name} o godzinie ${m()}.\n${M.join(", ")} vs ${N.join(", ")}`;
  335.                 l(O)
  336.             }
  337.         }
  338.         return L
  339.     }, this.findBestMob = function() {
  340.         let K, M, L = 9999;
  341.         for (let N in g.npc) {
  342.             let P, Q, R, O = g.npc[N];
  343.             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) {
  344.                 if (K = d(O.x, O.y), void 0 == K) continue;
  345.                 K.length < L && (L = K.length, M = O.id)
  346.             }
  347.         }
  348.         return M
  349.     }, localStorage.getItem(`alksjd`) || localStorage.setItem(`alksjd`, 0), this.findBestGw = function() {
  350.         let K, L = document.querySelector(`#bot_maps`).value.split(`, `),
  351.             M = parseInt(localStorage.getItem(`alksjd`));
  352.         for (let N in g.townname)
  353.             if (L[M] == g.townname[N]) {
  354.                 let O = g.gwIds[N].split(`.`);
  355.                 return K = {
  356.                     x: O[0],
  357.                     y: O[1]
  358.                 }, K
  359.             } M++, M > L.length && (M = 0), localStorage.setItem(`alksjd`, parseInt(M))
  360.     }, this.initHTML = function() {
  361.         if (!localStorage.getItem(`bot_position`)) {
  362.             localStorage.setItem(`bot_position`, JSON.stringify({
  363.                 x: 0,
  364.                 y: 0
  365.             }))
  366.         }
  367.         let K = JSON.parse(localStorage.getItem(`bot_position`)),
  368.             L = document.createElement(`div`);
  369.         L.id = `bot_box`, L.setAttribute(`tip`, `Z┼éap i przenie┼Ť :)`);
  370.         let M = document.createElement(`input`);
  371.         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);
  372.         let N = document.createElement(`input`);
  373.         N.type = `text`, N.id = `bot_maps`, N.classList.add(`bot_inputs`), N.setAttribute(`tip`, `Wprowad┼║ nazwy map`), L.appendChild(N);
  374.         let O = document.createElement(`select`);
  375.         O.id = `bot_list`, O.classList.add(`bot_inputs`), O.setAttribute(`tip`, `Wybierz expowisko, aby dodatek wpisa┼é mapy za Ciebie`);
  376.         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);
  377.         L.appendChild(O), document.body.appendChild(L);
  378.         let P = document.createElement(`style`);
  379.         P.type = `text/css`;
  380.         let Q = `
  381.             #bot_box {
  382.                position: absolute;
  383.                border: 2px solid red;
  384.               padding: 5px;
  385.               text-align: center;
  386.                background: black;
  387.                cursor: grab;
  388.                left: ${K.x}px;
  389.                top: ${K.y}px;
  390.               width: auto;
  391.                height: auto;
  392.                z-index: 390;
  393.              }
  394.             .bot_inputs {
  395.                 -webkit-box-sizing: content-box;
  396.                 -moz-box-sizing: content-box;
  397.                 box-sizing: content-box;
  398.                 margin: 0 auto;
  399.                 margin-bottom: 3px;
  400.                 padding: 2px;
  401.                 cursor: pointer;
  402.                 border: 2px solid #f76f6f;
  403.                 -webkit-border-radius: 5px;
  404.                 border-radius: 5px;
  405.                 font: normal 16px/normal "Times New Roman", Times, serif;
  406.                 color: rgba(0,142,198,1);
  407.                 -o-text-overflow: clip;
  408.                 text-overflow: clip;
  409.                 background: rgba(234,227,227,1);
  410.                 -webkit-box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset;
  411.                 box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset;
  412.                 text-shadow: 1px 1px 0 rgba(255,255,255,0.66) ;
  413.                 display: block;
  414.               }
  415.               input[id=bot_mobs] {
  416.                   text-align: center;
  417.               }
  418.               #bot_blessingbox {
  419.                   border: 1px solid red;
  420.                   background: gray;
  421.                   height: 32px;
  422.                   width: 32px;
  423.                   margin: 0 auto;
  424.               }
  425.         `;
  426.         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`, () => {
  427.             localStorage.setItem(`bot_mobs`, M.value)
  428.         }), N.addEventListener(`keyup`, () => {
  429.             localStorage.setItem(`bot_maps`, N.value)
  430.         }), O.addEventListener(`change`, () => {
  431.             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}"`)
  432.         }), $(`#bot_box`).draggable({
  433.             stop: () => {
  434.                 let R = {
  435.                     x: parseInt(document.querySelector(`#bot_box`).style.left),
  436.                     y: parseInt(document.querySelector(`#bot_box`).style.top)
  437.                 };
  438.                 localStorage.setItem(`bot_position`, JSON.stringify(R)), message(`Zapisano pozycj─Ö`)
  439.             }
  440.         })
  441.     }, this.initHTML()
  442. };