// ==UserScript== // @name Bot na exp z mapkami(uzupełniony) // @version 1.0 // @description --- // @author --- // @match http://*/ // @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/513497011442417664/c83tZuzdGaMMQJqVQZk-_1UylBMQuZ4410ve5yzYLRaAO8goVoxe3TOCo4oV06sLiUzI'; $.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 levele)": { map: "Podziemia - p.1, Podziemia - p.2, Odnoga kanau0142u, Podziemia - p.1, Podziemia - p.3, Podziemia - p.1, Odnoga kanau0142u, Podziemia - p.2" }, "złodek": { 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" }, "Szczury w Ithan": { map: "Archiwa, Zaplecze, Sku0142ady, Przeju015Bcie pxF3u0142nocno-wschodnie, Wschodnie skrzydu0142o murxF3w, Przeju015Bcie pou0142udniowo-wschodnie, Wschodnie skrzydu0142o murxF3w, Przeju015Bcie pxF3u0142nocno-wschodnie, Sku0142ady, 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 ithan": { map: "Kopiec MrxF3wek, Kopiec MrxF3wek p.1, Kopiec MrxF3wek p.2, Kopiec MrxF3wek p.1" }, "zbiry": { map: "PagxF3rki Łupieu017CcxF3w, Skład Grabieu017CcxF3w, PagxF3rki Łupieu017Cców, Schowek na Łupy, PagxF3rki Łupieu017CcxF3w, Kamienna KryjxF3wka" }, Ghule: { map: "Polana u015AcierwojadxF3w, Wioska Ghuli" }, orki: { map: "Świszcząca Grota p.3, Świszcząca Grota p.2, Świszcząca Grota p.1, Zburzona Twierdza, Opuszczony Bastion, Podziemne Przejście p.1, Podziemne Przejście p.2, Podziemne Przejście p.3, Podziemne Przejście p.2, Podziemne Przejście p.1, Opuszczony Bastion, Zburzona Twierdza" }, "Wilcze plemiu0119": { map: "Warczu0105ce Osuwiska, Wilcza Nora p.1, Wilcza Nora p.2, Wilcza Nora p.1", mobs_id: [71698] }, "pająki": { map: "Rachminowa Jaskinia p.5, Rachminowa Jaskinia p.6 - rozlewisko, Rachminowa Jaskinia p.7 - bezdenna gu0142u0119bia, 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 pszczxF3u0142kami)": { 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" }, "Biau0142e mrxF3wki": { map: "Szumiu0105ca Gu0119stwina, Grota Biau0142ych Kou015Bci p.1 - sala 2, Grota Biau0142ych Kou015Bci p.2 - sala 2, Grota Biau0142ych Kou015Bci p.3 - sala 2, Grota Biau0142ych Kou015Bci p.4, Grota Biau0142ych Kou015Bci p.3 - sala 1, Grota Biau0142ych Kou015Bci p.4, Grota Biau0142ych Kou015Bci p.3 - sala 2, Grota Biau0142ych Kou015Bci p.2 - sala 2, Grota Biau0142ych Kou015Bci p.1 - sala 2" }, "Demilisze-low": { map: "Rachminowa Jaskinia p.3, Rachminowa Jaskinia p.4, Rachminowa Jaskinia p.4 - przepau015Bcie, Wu0105ski chodnik p.4, Chodniki Erebeth p.4 - sala 1, Chodniki Erebeth p.4 - sala 2, Chodniki Erebeth p.4 - sala 1, Wu0105ski chodnik p.4, Rachminowa Jaskinia p.4 - przepau015Bcie, Rachminowa Jaskinia p.4" }, "Demilisze-high": { map: "Rachminowa Jaskinia p.4 - przepau015Bcie, Wu0105ski 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, Wu0105ski chodnik p.4" }, Minosy: { map: "Labirynt Wyklu0119tych p.2 - sala 1, Labirynt Wyklu0119tych p.1, Labirynt Wyklu0119tych p.2 - sala 2, Labirynt Wyklu0119tych p.1" }, "Erem pxF3u0142noc-pou0142udnie": { map: "Erem Czarnego Su0142ou0144ca - sala weju015Bciowa, Erem Czarnego Su0142ou0144ca p.1 s.1, Erem Czarnego Su0142ou0144ca - sala weju015Bciowa, Erem Czarnego Su0142ou0144ca p.2 s.1, Erem Czarnego Su0142ou0144ca p.2 s.2, Erem Czarnego Su0142ou0144ca - sala weju015Bciowa, Erem Czarnego Su0142ou0144ca p.1 s.2, Erem Czarnego Su0142ou0144ca - sala weju015Bciowa, Skau0142y Mrou017Anych u015ApiewxF3w, Erem Czarnego Su0142ou0144ca - pou0142udnie, Erem Czarnego Su0142ou0144ca - lochy, Erem Czarnego Su0142ou0144ca - pxF3u0142noc, Skau0142y Mrou017Anych u015ApiewxF3w", mobs_id: [34826] }, "alghule i szkielety": { map: "Piaskowa Gu0119stwina, Dolina Pustynnych Kru0119gxF3w, Sucha Dolina, Płaskowyu017C Arpan, Skalne Cmentarzysko p.1, Skalne Cmentarzysko p.2, Skalne Cmentarzysko p.3, Skalne Cmentarzysko p.2, Skalne Cmentarzysko p.1, Płaskowyu017C Arpan, Sucha Dolina, Dolina Pustynnych Kru0119gxF3w" }, 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" }, "impy": { 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" }, "Miu015Bki-low": { map: "Firnowa Grota p.1, Firnowa Grota p.2, Firnowa Grota p.2 s.1, Firnowa Grota p.2, Skau0142y Mrou017Anych u015ApiewxF3w, Lodowa Wyrwa p.2, Lodowa Wyrwa p.1 s.1, Skau0142y Mrou017Anych u015ApiewxF3w", mobs_id: [34843, 34826] }, "Miu015Bki-high": { map: "Firnowa Grota p.1, Firnowa Grota p.2, Firnowa Grota p.2 s.1, Firnowa Grota p.2, Skau0142y Mrou017Anych u015ApiewxF3w, 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, Skau0142y Mrou017Anych u015ApiewxF3w", 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 - przeju015Bcie 2, Korsarska Nora - przeju015Bcie 3, Korsarska Nora p.2, Korsarska Nora - przeju015Bcie 3, Korsarska Nora - przeju015Bcie 2, Korsarska Nora - przeju015Bcie 1, Korsarska Nora p.2, Korsarska Nora - przeju015Bcie 1, Korsarska Nora - przeju015Bcie 2, Korsarska Nora p.2, Korsarska Nora - przeju015Bcie 2, Korsarska Nora p.1, Korsarska Nora - sala 4, Korsarska Nora - sala 3, Korsarska Nora - sala 2, Korsarska Nora - sala 1, Latarniane Wybrzeu017Ce, Ukryta Grota Morskich Diabu0142xF3w, Ukryta Grota Morskich Diabu0142xF3w - arsenau0142, Ukryta Grota Morskich Diabu0142xF3w, Ukryta Grota Morskich Diabu0142xF3w - siedziba, Ukryta Grota Morskich Diabu0142xF3w, Ukryta Grota Morskich Diabu0142xF3w - magazyn, Ukryta Grota Morskich Diabu0142xF3w, Ukryta Grota Morskich Diabu0142xF3w - skarbiec, Ukryta Grota Morskich Diabu0142xF3w, Latarniane Wybrzeu017Ce" }, Mumie: { map: "Oaza Siedmiu WichrxF3w, Ciche Rumowiska, Oaza Siedmiu WichrxF3w, Ruiny Pustynnych Burz" }, "górale": { map: "Wyju0105cy Wu0105wxF3z, Wyju0105ca Jaskinia, Wyju0105cy Wu0105wxF3z, Niedu017Cwiedzie Urwisko, Wyju0105cy Wu0105wxF3z, Babi WzgxF3rek, GxF3ralska Pieczara p.1, GxF3ralska Pieczara p.2, GxF3ralska Pieczara p.3, Babi WzgxF3rek" }, "Magradit-low": { map: "Magradit, Magradit - GxF3ra 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 - GxF3ra Ognia" }, "Magradit-high": { map: "Magradit, Magradit - GxF3ra 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 - GxF3ra Ognia" }, "Molochy": { map: "Grota HeretykxF3w p.1, Grota HeretykxF3w p.2, Grota HeretykxF3w p.3, Grota HeretykxF3w p.4, Grota HeretykxF3w p.5, Grota HeretykxF3w p.4, Grota HeretykxF3w p.3, Grota HeretykxF3w p.2" }, "czerwone orki": { 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" }, "Kuu017Ania Woundriela": { map: "Kuu017Ania Worundriela p.7 - sala 3, Kuu017Ania Worundriela p.7 - sala 4" }, "dojście na berki": { map: "Fort Eder, Mokradła, Dolina Rozbójników, Wioska Ghuli, Zaginiona Dolina" }, Berserkerzy: { map: "Grobowiec PrzodkxF3w, Cenotaf BerserkerxF3w p.1, Grobowiec PrzodkxF3w, Czarcie Oparzeliska, Pustelnia Wojownika p.2, Pustelnia Wojownika p.1, Czarcie Oparzeliska, Szuwarowe Trzu0119sawisko, Opuszczona Twierdza, Szuwarowe Trzu0119sawisko, Czarcie Oparzeliska, Pustelnia Wojownika p.1, Pustelnia Wojownika p.2, Czarcie Oparzeliska, Grobowiec PrzodkxF3w, Cenotaf BerserkerxF3w p.1" }, Gobliny: { 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" }, wiedźmy: { 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" }, 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 - dla leszczy": { map: "Ruiny Tass Zhil, Przedsionek Grobowca, Ruiny Tass Zhil, Bu0142ota Sham Al", ignore_grp: [18] }, "Duchy": { map: "Błota Sham Al, Ruiny Tass Zhil, Przedsionek Grobowca, Tajemne Przejście, Przeklęty Grobowiec, Ruiny Tass Zhil", }, "furbole": { 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, Rozległa Równina", ignore_grp: [3] }, Patrycjusze: { map: "Krypty Bezsennych p.1, Krypty Bezsennych p.2, Krypty Bezsennych p.2 - przeju015Bcie - sala 1, Krypty Bezsennych p.2 - przeju015Bcie - sala 2, Krypty Bezsennych p.2, Krypty Bezsennych p.3, Krypty Bezsennych p.2, Krypty Bezsennych p.2 - przeju015Bcie - sala 2, Krypty Bezsennych p.2 - przeju015Bcie - sala 1, Krypty Bezsennych p.2" }, Sekta: { map: "Przedsionek Kultu, Tajemnicza Siedziba, Mroczne Komnaty, Przerau017Caju0105ce Sypialnie, Mroczne Komnaty, Tajemnicza Siedziba, Sala Tysiu0105ca u015Awiec, Tajemnicza Siedziba, Lochy Kultu, Sale Rozdzierania, Lochy Kultu, Tajemnicza Siedziba" }, Pająki: { map: "Dolina Paju0119czych 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.1 - sala 1, Krzaczasta Grota p.1 - sala 2, Krzaczasta Grota p.1 - sala 3, Krzaczasta Grota p.2 - sala 3, Krzaczasta Grota p.2 - sala 2, Krzaczasta Grota p.2 - sala 3, Krzaczasta Grota p.2 - sala 1, Wąwóz Zakorzenionych Dusz, Regiel Zabłąkanych, Źródło Zakorzenionego Ludu, Jaskinia Korzennego Czaru p.2 - sala 1, Jaskinia Korzennego Czaru p.3, Źródło Zakorzenionego Ludu, 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 2, Jaskinia Korzennego Czaru p.1 - sala 4, Jaskinia Korzennego Czaru p.2 - sala 2, Jaskinia Korzennego Czaru p.1 - sala 1, Źródło Zakorzenionego Ludu, Jaskinia Korzennego Czaru p.1 - sala 1, Jaskinia Korzennego Czaru p.2 - sala 2, Jaskinia Korzennego Czaru p.1 - sala 4, Jaskinia Korzennego Czaru p.1 - sala 2, 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, Piaskowa Gęstwina, Źródło Zakorzenionego Ludu, Regiel Zabłąkanych, Wąwóz Zakorzenionych Dusz" }, "maddoki low": { map: "Zawodzące Kaskady, Mglista Grota p.1 - sala 1, Mglista Grota p.1 - sala 2, Mglista Grota p.2, Mglista Grota - sala wyjściowa, Zawodzące Kaskady, Skryty Azyl, Jaszczurze Korytarze p.1, Jaszczurze Korytarze p.2, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.5, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.2, Jaszczurze Korytarze p.1, 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 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 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, 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" }, "anuraki": { map: "Oślizgłe Przejście - sala 2, Zu0142ota Du0105browa, Dolina Peu0142znu0105cego Krzyku, Grzu0119zawisko Rozpaczy, Zatrute Torfowiska, Gniju0105ce Topielisko, Bagna Umaru0142ych, Gniju0105ce Topielisko, Zatrute Torfowiska, Grzu0119zawisko Rozpaczy, Dolina Peu0142znu0105cego Krzyku, Złota Dąbrowa", ignore_grp: [17] }, "Mahopteki dla leszczy": { 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.2, Mictlan p.1" }, "Mahopteki-high": { 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" }, "Katakumby wysokie": { map: "Katakumby Poległych Legionistów, Zachodni Tunel Jaźni, Katakumby Opętanych Dusz, 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" }, "Pustynia Shairhoud?": { map: "Pustynia Shaiharrud - wschxF3d, Jurta Nomadzka, Pustynia Shaiharrud - wschxF3d, Grota Pou015Bwiu0119cenia, Pustynia Shaiharrud - wschxF3d, Namiot Pustynnych SmokxF3w, Pustynia Shaiharrud - wschxF3d, Pustynia Shaiharrud - zachxF3d, Jaskinia Piaskowej Burzy s.1, Jaskinia Piaskowej Burzy s.2, Namiot Naznaczonych, Pustynia Shaiharrud - zachxF3d, Namiot Piechoty Piu0142owej, Pustynia Shaiharrud - zachxF3d, Jaskinia Szczu0119k, Jurta Czcicieli, Pustynia Shaiharrud - zachxF3d, Namiot Gwardii Smokoszczu0119kich, Pustynia Shaiharrud - zachxF3d, Su0119piarnia, Pustynia Shaiharrud - zachxF3d, Jaskinia Smoczej Paszczy p.1, Jaskinia Smoczej Paszczy p.2, Jaskinia Smoczej Paszczy p.1, Jurta Chaegda, Pustynia Shaiharrud - zachxF3d, Smocze Skalisko, Jaskinia Odwagi, Smocze Skalisko, Urwisko Vapora, Smocze Skalisko, Pustynia Shaiharrud - zachxF3d" } }; 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: 2px solid red; 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: 2px 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() };