Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 53.71 KB | None | 0 0
  1. // ==UserScript==
  2. // @name *** EXPIONKO ***
  3. // @version 1.22
  4. // @description automatyczne truchtanie z przechodzeniem przez mapki
  5. // @author Ajdi Wilk
  6. // @match *://*/
  7. // @grant none
  8. // ==/UserScript==
  9. window.adiwilkTestBot = new(function() {
  10. //wyłączenie alertów i blokad, chwilowe rozwiązanie
  11. mAlert = function() {};
  12. if (typeof g == "undefined" && document.location.href.indexOf("jaruna.margonem.pl") > -1) {
  13. document.location.reload();
  14. }
  15. //obiekt z nazwami expowisk
  16. let expowiska = {
  17. "Burek": {
  18. map: "Złudny Trakt, Orcza Wyżyna, Osada Czerwonych Orków, Siedziba Rady Orków, Sala Dowódcy Orków",
  19. mobs_id: [16472, 110334]
  20. },
  21. "Jert": {
  22. map: "Winnica Meflakasti, Baszta Wilczych Kłów, Grota Heretyków p.2, Grota Heretyków p.3, Grota Heretyków p.4, Grota Heretyków p.5"
  23. },
  24. "Jert kwiaty": {
  25. map: "Lazurowe Wzgórze, Słoneczna Wyżyna, Zasłonięte Jezioro, Spokojne Przejście, Eder, Gościniec Bardów, Nizina Wieśniaków, Podgrodzie Nithal, Nithal, Winnica Meflakasti, Baszta Wilczych Kłów, Grota Heretyków p.2, Grota Heretyków p.3, Grota Heretyków p.4, Grota Heretyków p.5"
  26. },
  27. "Fodug": {
  28. map: "Fort Eder, Mokradła, Dolina Rozbójników, Wioska Ghuli, Zaginiona Dolina, Grobowiec Przodków, Opuszczona Twierdza, Mała Twierdza - sala wejściowa",
  29. mobs_id: []
  30. },
  31. "Baca": {
  32. map: "Głuchy Las, Skarpa Trzech Słów, Zapomniana Ścieżyna, Góralskie Przejście, Grota Halnego Wiatru p.2, Grota Halnego Wiatru p.1",
  33. mobs_id: [82675]
  34. },
  35. "Tolypeutes 245": {
  36. map: "Urwisko Zdrewniałych, Dolina Chmur, Ciasny Przełaz p.1 - sala 1, Ciasny Przełaz p.1 - sala 2, Dolina Chmur, Niecka Xiuh Atl, Oztotl Tzacua p.1, Oztotl Tzacua p.2 - sala 1, Oztotl Tzacua p.3 - sala 1, Oztotl Tzacua p.3 - sala 2, Niecka Xiuh Atl",
  37. mobs_id: [128553, 53070, 53105, 52720, 52750, 52782]
  38. },
  39. "Yaotl 258": {
  40. map: "Urwisko Zdrewniałych, Dolina Chmur, Ciasny Przełaz p.1 - sala 1, Ciasny Przełaz p.1 - sala 2, Dolina Chmur, Niecka Xiuh Atl",
  41. mobs_id: [128553, 53070, 53105, 52720, 52750, 52782]
  42. },
  43. "Arcymag 131": {
  44. map: "Księżycowe Wzniesienie, Sosnowe Odludzie, Podziemne Rozpadliny p.2, Podziemne Rozpadliny p.3, Podziemne Rozpadliny p.4, Grań Romtyn p.5, Chodnik Mrinding p.6, Kuźnia Worundriela p.7 - sala 2, Piekielne Czeluście",
  45. mobs_id: [31641, 31534, 31562, 106634, 31575, 31591, 31607, 31202, 150339, 150341, 150329, 150331, 150333, 150336, 106631, 31324, 31334, 31336, 31350, 31679, 31773, 150854, 28406, 31013, 28494, 28502, 28463, 28444, 28456]
  46. },
  47. "Łowka 177": {
  48. map: "Zapomniany Las, Rozległa Równina, Dolina Gniewu, Zalana Grota p.1, Zalana Grota p.2, Zalana Kryjówka"
  49. },
  50. "Kolos 144": {
  51. map: "Zniszczone Opactwo, Uroczysko, Niedźwiedzi Uskok, Wioska Pszczelarzy, Dom Jofusa, Piwnica Jofusa, Zakurzone przejście, Radosna Polana, Zarośnięty Korytarz p.1, Zarośnięty Korytarz p.2, Zarośnięty Korytarz p.3, Dziki Zagajnik, Przepaść Aguti, Las Pamięci Nikantosa, Przełęcz Krwistego Posłańca, Czeluść Chimerycznej Natury - przedsionek",
  52. mobs_id: [126442]
  53. },
  54. "Kolos 171": {
  55. map: "Winnica Meflakasti, Jezioro Ważek, Grota Drążących Kropli p.1, Grota Drążących Kropli p.2, Pachnący Gąszcz, Jezioro Ważek, Las Zadumy, Przepaść Zadumy - przedsionek"
  56. },
  57. "Kolos 225": {
  58. map: "Zapomniany Las, Terytorium Furii, Zapadlisko Zniewolonych, Pajęczy Las, Grota Przebiegłego Tkacza - przedsionek"
  59. },
  60. "Obło - prototyp": {
  61. map: "Złudny Trakt, Orcza Wyżyna, Grota Orczych Szamanów, Orcza Wyżyna, Osada Czerwonych Orków, Siedziba Rady Orków, Nawiedzone Kazamaty p.1, Nawiedzone Kazamaty p.2, Nawiedzone Kazamaty p.3, Nawiedzone Kazamaty p.4, Nawiedzone Kazamaty p.5, Nawiedzone Kazamaty p.6",
  62. mobs_id: [23584, 171983, 172001, 171996, 171543, 23579, 16332, 16289, 16292, 16298, 50510, 23913, 23760, 23910, 111271, 16509, 111245, 23920, 16483, 16493, 16490, 16454, 41372, 16455, 16460, 16472, 16531, 16725, 16733, 111277, 16739, 17125, 17116, 17110, 172566, 17121, 17140, 17132, 172564, 17142, 17144, 17161, 17158]
  63. },
  64. "Biegam po berkach": {
  65. map: "Zaginiona Dolina, 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, Grobowiec Przodków, Czarcie Oparzeliska, Pustelnia Wojownika p.2, Pustelnia Wojownika p.1, Czarcie Oparzeliska, Szuwarowe Trzęsawisko, Opuszczona Twierdza",
  66. mobs_id: [18742, 46639, 46611, 46855, 46638, 46712]
  67. },
  68. "Pizzeria(wszystkie levele)": {
  69. 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"
  70. },
  71. "Szczury w Ithan": {
  72. 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"
  73. },
  74. "start": {
  75. map: "Osada Śmiałków, Samotna Nizina"
  76. },
  77. "Nekropolia": {
  78. map: "Grobowiec Rodziny Tywelta p.1, Grobowiec Rodziny Tywelta p.2"
  79. },
  80. "Demony": {
  81. map: "Podziemia Siedziby Maga p.1 - sala 1, Podziemia Siedziby Maga p.2, Podziemia Siedziby Maga p.3 - sala 1, Podziemia Siedziby Maga p.3 - sala 2"
  82. },
  83. "Gacki szare": {
  84. 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"
  85. },
  86. "Mrówki": {
  87. 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"
  88. },
  89. "Zbiry": {
  90. map: "Pagórki Łupieżców, Kamienna Kryjówka, Schowek na Łupy, Skład Grabieżców"
  91. },
  92. "Mulusy": {
  93. map: "Osada Mulusów, Pradawne Wzgórze Przodków"
  94. },
  95. "Orki": {
  96. 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"
  97. },
  98. "Ghule": {
  99. map: "Polana Ścierwojadów, Wioska Ghuli"
  100. },
  101. "Wilcze plemię": {
  102. map: "Warczące Osuwiska, Wilcza Nora p.1, Wilcza Nora p.2, Wilcza Nora p.1",
  103. mobs_id: [71698]
  104. },
  105. "Pająki": {
  106. map: "Rachminowa Jaskinia p.5, Rachminowa Jaskinia p.6 - rozlewisko, Rachminowa Jaskinia p.7 - bezdenna głębia, Rachminowa Jaskinia p.6 - rozlewisko"
  107. },
  108. "Koboldy": {
  109. map: "Lazurytowa Grota p.1, Lazurytowa Grota p.2, Lazurytowa Grota p.3, Lazurytowa Grota p.2"
  110. },
  111. "Galaretki(te za pszczółkami)": {
  112. map: "Prastara Kopalnia Eroch p.4 - sala 1, Prastara Kopalnia Eroch p.5"
  113. },
  114. "Szlak Thorpa": {
  115. 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"
  116. },
  117. "Białe mrówki": {
  118. 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"
  119. },
  120. "Moje demilsze": {
  121. 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"
  122. },
  123. "Demilisze-low": {
  124. 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"
  125. },
  126. "Demilisze-high": {
  127. 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"
  128. },
  129. "Wodniki": {
  130. map: "Fort Eder, Stary Kupiecki Trakt, Moczary Rybiego Oka, Uroczysko Wodnika, Źródło Narumi, Uroczysko Wodnika"
  131. },
  132. "Południce": {
  133. map: "Księżycowe Wzniesienie, Mglista Polana Vesy, Wzgórze Płaczek, Trupia Przełęcz"
  134. },
  135. "Minosy": {
  136. 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",
  137. ignore_grp: [23]
  138. },
  139. "Erem północ-południe": {
  140. 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",
  141. mobs_id: [175813, 34826, 46316]
  142. },
  143. "Grexy": {
  144. 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"
  145. },
  146. "Miśki-low": {
  147. 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",
  148. mobs_id: [34843, 34826]
  149. },
  150. "Miśki-high": {
  151. 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",
  152. mobs_id: [34843, 34826]
  153. },
  154. "Piraci - dwie jaskinie": {
  155. 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"
  156. },
  157. "Mumie": {
  158. map: "Oaza Siedmiu Wichrów, Ciche Rumowiska, Oaza Siedmiu Wichrów, Ruiny Pustynnych Burz"
  159. },
  160. "Piaski": {
  161. map: "Port Tuzmer, Latarniane Wybrzeże, Ruchome Piaski, Piachy Zniewolonych, Piaskowa Gęstwina, Dolina Pustynnych Kręgów, Piachy Zniewolonych, Ruchome Piaski"
  162. },
  163. "Magradit-low": {
  164. 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"
  165. },
  166. "Magradit-high": {
  167. 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",
  168. ignore_grp: [4]
  169. },
  170. "Moloszki": {
  171. map: "Grota Heretyków p.1, Grota Heretyków p.2, Grota Heretyków p.3, Grota Heretyków p.4, Grota Heretyków p.5, Grota Heretyków p.4, Grota Heretyków p.3, Grota Heretyków p.2"
  172. },
  173. "Kuźnia Woundriela": {
  174. map: "Kuźnia Worundriela p.7 - sala 3, Kuźnia Worundriela p.7 - sala 4"
  175. },
  176. "Berserkerzy - dojście": {
  177. map: "Lazurowe Wzgórze, Słoneczna Wyżyna, Zasłonięte Jezioro, Spokojne Przejście, Eder, Fort Eder, Mokradła, Dolina Rozbójników, Wioska Ghuli, Zaginiona Dolina, 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"
  178. },
  179. "Berserkerzy": {
  180. 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"
  181. },
  182. "Gobliny": {
  183. 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"
  184. },
  185. "Kazamaty": {
  186. 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"
  187. },
  188. "Wiedźmy": {
  189. map: "Tristam, Dom Amry, Tristam, Dom czarnej magii, Tristam, Dom Atalii, Tristam, Opuszczone więzienie, Lochy Tristam, Opuszczone więzienie, Tristam, Splądrowana kaplica, Tristam, Dom nawiedzonej wiedźmy, Tristam, Dom starej czarownicy, Tristam, Splugawiona kaplica, Tristam, Ograbiona świątynia, Tristam, Dom Adariel, Tristam, Magazyn mioteł, Tristam, Sabatowe Góry, Wiedźmie Kotłowisko, Upiorna Droga, Wiedźmie Kotłowisko, Sabatowe Góry, Tristam"
  190. },
  191. "Ważki": {
  192. map: "Jezioro Ważek, Grota Drążących Kropli p.1, Grota Drążących Kropli p.2, Pachnący Gąszcz, Jezioro Ważek, Las Zadumy, Agia Triada, Las Zadumy, Jezioro Ważek, Pachnący Gąszcz, Grota Drążących Kropli p.2, Grota Drążących Kropli p.1"
  193. },
  194. "Duchy - dla leszczy": {
  195. map: "Ruiny Tass Zhil, Przedsionek Grobowca, Ruiny Tass Zhil, Błota Sham Al",
  196. ignore_grp: [18]
  197. },
  198. "Duchy - dla koxów": {
  199. map: "Ruiny Tass Zhil, Przedsionek Grobowca, Tajemne Przejście, Przeklęty Grobowiec, Ruiny Tass Zhil, Błota Sham Al"
  200. },
  201. "Ingotia": {
  202. 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"
  203. },
  204. "SK - dojscie": {
  205. map: "Złudny Trakt, Orcza Wyżyna, Osada Czerwonych Orków, Siedziba Rady Orków, 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 Komnaty p.1",
  206. mobs_id: [16472]
  207. },
  208. "SK dla leszczy": {
  209. map: "Nawiedzone Komnaty p.1, Nawiedzone Komnaty p.2, Sala Królewska, Nawiedzone Komnaty p.2"
  210. },
  211. "SK dla koxów": {
  212. map: "Nawiedzone Komnaty p.1, Nawiedzone Komnaty p.2, Sala Królewska, Komnata Czarnej Perły, Sala Królewska, Nawiedzone Komnaty p.2",
  213. ignore_grp: [14]
  214. },
  215. "Furbole": {
  216. map: "Zapomniany Las, Terytorium Furii, Zapadlisko Zniewolonych, Terytorium Furii, Dolina Gniewu, Zalana Grota p.1, Zalana Grota p.2, Zalana Grota p.1, Dolina Gniewu, Rozległa Równina, Wzgórza Obłędu, Rozległa Równina, Zapomniany Las, Terytorium Furii"
  217. },
  218. "Patrycjusze": {
  219. map: "Kwieciste Przejście, Lazurowe Wzgórze, Grań Gawronich Piór, Krypty Bezsennych - kaplica, 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"
  220. },
  221. "Draki": {
  222. map: "Żołnierski Korytarz, Szczerba Samobójców, Przysiółek Valmirów, Śnieżycowy Las, Śnieżna Granica, Śnieżycowy Las, Przysiółek Valmirów",
  223. mobs_id: []
  224. },
  225. "Draki + Patry": {
  226. map: "Żołnierski Korytarz, Szczerba Samobójców, Przysiółek Valmirów, Śnieżycowy Las, Śnieżna Granica, Śnieżycowy Las, Przysiółek Valmirów, Szczerba Samobójców, Żołnierski Korytarz, Thuzal, Grań Gawronich Piór, Krypty Bezsennych - kaplica, 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, Krypty Bezsennych p.1, Krypty Bezsennych - kaplica, Grań Gawronich Piór, Thuzal",
  227. mobs_id: []
  228. },
  229. "Sekta": {
  230. map: "Izba chorych płd., Izba chorych płd. - piwnica p.1, Izba chorych - piwniczne przejście, Kanały Nithal, Szlamowe Kanały, 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",
  231. mobs_id: [20763, 21855, 21856, 20864]
  232. },
  233. "sadolka+niżej": {
  234. map: "Mroczne Komnaty, Przerażające Sypialnie",
  235. ignore_grp: [9]
  236. },
  237. "Pająki All": {
  238. map: "Zapomniany Las, Terytorium Furii, Zapadlisko Zniewolonych, Pajęczy Las, Otchłań Pajęczych Sieci, 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, Dolina Pajęczych Korytarzy, Otchłań Pajęczych Sieci, Pajęczy Las, Zapadlisko Zniewolonych, Pajęczy Las",
  239. },
  240. "Pająki High": {
  241. 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",
  242. },
  243. "Zakorzeniony Lud": {
  244. 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"
  245. },
  246. "Krzaki": {
  247. 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 - sala boczna, Krzaczasta Grota - korytarz, Krzaczasta Grota - sala boczna, 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.1 - sala 2, Jaskinia Korzennego Czaru p.1 - sala 4, Jaskinia Korzennego Czaru p.2 - sala 2, 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.2 - sala 1, Źródło Zakorzenionego Ludu, Regiel Zabłąkanych, Wąwóz Zakorzenionych Dusz, Urwisko Zdrewniałych"
  248. },
  249. "Krzaki - dojście": {
  250. map: "Brama Północy, Góry Zrębowe, Zachodnie Rozdroża, Cienisty Bór, Las Dziwów, Złowrogie Bagna, Mythar, 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 - sala boczna, Krzaczasta Grota - korytarz, Krzaczasta Grota - sala boczna, 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.1 - sala 2, Jaskinia Korzennego Czaru p.1 - sala 4, Jaskinia Korzennego Czaru p.2 - sala 2, 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.2 - sala 1, Źródło Zakorzenionego Ludu, Regiel Zabłąkanych, Wąwóz Zakorzenionych Dusz, Urwisko Zdrewniałych"
  251. },
  252. "Maddoki całe": {
  253. map: "Grań Gawronich Piór, Lazurowe Wzgórze, Kwieciste Przejście, Głuchy Las, 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, Grota Jaszczurzej Łuski, Jaszczurze Korytarze p.2, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.3 - sala 1, Skryty Azyl, Jaszczurze Korytarze p.3 - sala 1, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.3 - sala 3, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.5, Skryty Azyl, Jaszczurze Korytarze p.5, Jaszczurze Korytarze p.4 - sala 1, Skryty Azyl, Jaszczurze Korytarze p.4 - sala 1, Skryty Azyl, Błotna Grota p.2, Błotna Grota p.1, Skryty Azyl, Błotna Grota p.1, Błotna Grota p.2, 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, 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, Oślizgłe Przejście - sala 2, Oślizgłe Przejście - sala 1, Złota Dąbrowa, Skryty Azyl, Błotna Grota p.2, Błotna Grota p.1, Skryty Azyl, Błotna Grota p.1, Błotna Grota p.2, Skryty Azyl, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.5, Skryty Azyl, Jaszczurze Korytarze p.5, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.3 - sala 3, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.3 - sala 1, Skryty Azyl, Jaszczurze Korytarze p.3 - sala 1, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.2, Grota Jaszczurzej Łuski, Jaszczurze Korytarze p.2, Jaszczurze Korytarze p.1, Skryty Azyl, Zawodzące Kaskady, Mglista Grota - sala wyjściowa, Mglista Grota p.2, Mglista Grota p.1 - sala 2, Mglista Grota p.1 - sala 1, Zawodzące Kaskady, Głuchy Las"
  254. },
  255. "Maddoki CAŁE": {
  256. map: "Thuzal, Grań Gawronich Piór, Lazurowe Wzgórze, Kwieciste Przejście, Głuchy Las, 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, Grota Jaszczurzej Łuski, Jaszczurze Korytarze p.2, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.3 - sala 1, Skryty Azyl, Jaszczurze Korytarze p.3 - sala 1, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.3 - sala 3, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.5, Skryty Azyl, Jaszczurze Korytarze p.5, Jaszczurze Korytarze p.4 - sala 1, Skryty Azyl, Jaszczurze Korytarze p.4 - sala 1, Skryty Azyl, Błotna Grota p.2, Błotna Grota p.1, Skryty Azyl, Błotna Grota p.1, Błotna Grota p.2, 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, 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, Oślizgłe Przejście - sala 2, Oślizgłe Przejście - sala 1, Złota Dąbrowa, Skryty Azyl, Błotna Grota p.2, Błotna Grota p.1, Skryty Azyl, Błotna Grota p.1, Błotna Grota p.2, Skryty Azyl, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.5, Skryty Azyl, Jaszczurze Korytarze p.5, Jaszczurze Korytarze p.4 - sala 1, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.3 - sala 3, Jaszczurze Korytarze p.4 - sala 3, Jaszczurze Korytarze p.4 - sala 2, Jaszczurze Korytarze p.3 - sala 1, Skryty Azyl, Jaszczurze Korytarze p.3 - sala 1, Jaszczurze Korytarze p.3 - sala 2, Jaszczurze Korytarze p.2, Grota Jaszczurzej Łuski, Jaszczurze Korytarze p.2, Jaszczurze Korytarze p.1, Skryty Azyl, Zawodzące Kaskady, Mglista Grota - sala wyjściowa, Mglista Grota p.2, Mglista Grota p.1 - sala 2, Mglista Grota p.1 - sala 1, Zawodzące Kaskady, Głuchy Las"
  257. },
  258. "Maddoki High": {
  259. map: "Głuchy Las, 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, 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"
  260. },
  261. "Mahopteki dla leszczy": {
  262. map: "Urwisko Zdrewniałych, Dolina Chmur, Ciasny Przełaz p.1 - sala 1, Ciasny Przełaz p.1 - sala 2, Dolina Chmur, Niecka Xiuh Atl, Oztotl Tzacua p.1, Oztotl Tzacua p.2 - sala 1, Oztotl Tzacua p.3 - sala 1, Oztotl Tzacua p.3 - sala 2, Oztotl Tzacua p.3 - sala 1, Oztotl Tzacua p.2 - sala 1, Oztotl Tzacua p.1, Niecka Xiuh Atl, Altepetl Mahoptekan, Mictlan Zrośniętych Gór p.1, Mictlan Zrośniętych Gór p.2, Mictlan Zrośniętych Gór p.3, Mictlan Zrośniętych Gór p.4, Mictlan Zrośniętych Gór p.3, Mictlan Zrośniętych Gór p.2, Mictlan Zrośniętych Gór p.1, Altepetl Mahoptekan, Mictlan Rwącej Rzeki p.1, Mictlan Rwącej Rzeki p.2, Mictlan Rwącej Rzeki p.3, Mictlan Rwącej Rzeki p.4, Mictlan Rwącej Rzeki p.3, Mictlan Rwącej Rzeki p.2, Mictlan Rwącej Rzeki p.1, 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, Niecka Xiuh Atl"
  263. },
  264. "Mahopteki High": {
  265. map: "Urwisko Zdrewniałych, Dolina Chmur, Ciasny Przełaz p.1 - sala 1, Ciasny Przełaz p.1 - sala 2, Dolina Chmur, Niecka Xiuh Atl, Oztotl Tzacua p.1, Oztotl Tzacua p.2 - sala 1, Oztotl Tzacua p.3 - sala 1, Oztotl Tzacua p.3 - sala 2, Oztotl Tzacua p.3 - sala 1, Oztotl Tzacua p.2 - sala 1, Oztotl Tzacua p.1, Niecka Xiuh Atl, Altepetl Mahoptekan, Mictlan Zrośniętych Gór p.1, Mictlan Zrośniętych Gór p.2, Mictlan Zrośniętych Gór p.3, Mictlan Zrośniętych Gór p.4, Mictlan Zrośniętych Gór p.5, Mictlan Zrośniętych Gór p.6, Mictlan Zrośniętych Gór p.7, Mictlan Zrośniętych Gór p.6, Mictlan Zrośniętych Gór p.5, Mictlan Zrośniętych Gór p.4, Mictlan Zrośniętych Gór p.3, Mictlan Zrośniętych Gór p.2, Mictlan Zrośniętych Gór p.1, Altepetl Mahoptekan, Mictlan Rwącej Rzeki p.1, Mictlan Rwącej Rzeki p.2, Mictlan Rwącej Rzeki p.3, Mictlan Rwącej Rzeki p.4, Mictlan Rwącej Rzeki p.5, Mictlan Rwącej Rzeki p.6, Mictlan Rwącej Rzeki p.7, Mictlan Rwącej Rzeki p.6, Mictlan Rwącej Rzeki p.5, Mictlan Rwącej Rzeki p.4, Mictlan Rwącej Rzeki p.3, Mictlan Rwącej Rzeki p.2, Mictlan Rwącej Rzeki p.1, 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, Niecka Xiuh Atl"
  266. },
  267. "Wiedźmy High": {
  268. map: "Zachodnie Zbocze, Plugawe Pustkowie, Potępione Zamczysko, Plugawe Pustkowie, Jęczywąwóz, Pogranicze Wisielców, Jęczywąwóz, Plugawe Pustkowie",
  269. mobs_id: [154363]
  270. },
  271. "Katy zarobek": {
  272. map: "Stare Sioło, Sucha Dolina, Płaskowyż Arpan, Oaza Siedmiu Wichrów, Ruiny Pustynnych Burz, Pustynne Katakumby, Pustynne Katakumby - sala 1, Komnaty Bezdusznych - sala 1, Komnaty Bezdusznych - sala 2, 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 Poległych Legionistów, Zachodni Tunel Jaźni, Katakumby Opętanych Dusz, Korytarz Porzuconych Nadziei, Katakumby Odnalezionych Skrytobójców, Komnaty Bezdusznych - sala 2, Komnaty Bezdusznych - sala 1, Pustynne Katakumby - sala 2, Pustynne Katakumby, Ruiny Pustynnych Burz, Pustynne Katakumby"
  273. },
  274. "Pustynia Shairhoud?": {
  275. 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"
  276. }
  277. };
  278.  
  279. //algorytm A*
  280. class AStar {
  281. constructor(collisionsString, width, height, start, end, additionalCollisions) {
  282. this.width = width;
  283. this.height = height;
  284. this.collisions = this.parseCollisions(collisionsString, width, height);
  285. this.additionalCollisions = additionalCollisions || {};
  286. this.start = this.collisions[start.x][start.y];
  287. this.end = this.collisions[end.x][end.y];
  288. this.start.beginning = true;
  289. this.start.g = 0;
  290. this.start.f = heuristic(this.start, this.end);
  291. this.end.target = true;
  292. this.end.g = 0;
  293. this.addNeighbours();
  294. this.openSet = [];
  295. this.closedSet = [];
  296. this.openSet.push(this.start);
  297. }
  298.  
  299. parseCollisions(collisionsString, width, height) {
  300. const collisions = new Array(width);
  301. for (let w = 0; w < width; w++) {
  302. collisions[w] = new Array(height);
  303. for (let h = 0; h < height; h++) {
  304. collisions[w][h] = new Point(w, h, collisionsString.charAt(w + h * width) === '1');
  305. }
  306. }
  307. return collisions;
  308. }
  309.  
  310. addNeighbours() {
  311. for (let i = 0; i < this.width; i++) {
  312. for (let j = 0; j < this.height; j++) {
  313. this.addPointNeighbours(this.collisions[i][j])
  314. }
  315. }
  316. }
  317.  
  318. addPointNeighbours(point) {
  319. const x = point.x,
  320. y = point.y;
  321. const neighbours = [];
  322. if (x > 0) neighbours.push(this.collisions[x - 1][y]);
  323. if (y > 0) neighbours.push(this.collisions[x][y - 1]);
  324. if (x < this.width - 1) neighbours.push(this.collisions[x + 1][y]);
  325. if (y < this.height - 1) neighbours.push(this.collisions[x][y + 1]);
  326. point.neighbours = neighbours;
  327. }
  328.  
  329. anotherFindPath() {
  330. while (this.openSet.length > 0) {
  331. let currentIndex = this.getLowestF();
  332. let current = this.openSet[currentIndex];
  333. if (current === this.end) return this.reconstructPath();
  334. else {
  335. this.openSet.splice(currentIndex, 1);
  336. this.closedSet.push(current);
  337. for (const neighbour of current.neighbours) {
  338. if (this.closedSet.includes(neighbour)) continue;
  339. else {
  340. const tentative_score = current.g + 1;
  341. let isBetter = false;
  342. if (this.end == this.collisions[neighbour.x][neighbour.y] || (!this.openSet.includes(neighbour) && !neighbour.collision && !this.additionalCollisions[neighbour.x + 256 * neighbour.y])) {
  343. this.openSet.push(neighbour);
  344. neighbour.h = heuristic(neighbour, this.end);
  345. isBetter = true;
  346. } else if (tentative_score < neighbour.g && !neighbour.collision) {
  347. isBetter = true;
  348. }
  349. if (isBetter) {
  350. neighbour.previous = current;
  351. neighbour.g = tentative_score;
  352. neighbour.f = neighbour.g + neighbour.h;
  353. }
  354. }
  355. }
  356. }
  357. }
  358. }
  359.  
  360. getLowestF() {
  361. let lowestFIndex = 0;
  362. for (let i = 0; i < this.openSet.length; i++) {
  363. if (this.openSet[i].f < this.openSet[lowestFIndex].f) lowestFIndex = i;
  364. }
  365. return lowestFIndex;
  366. }
  367.  
  368. reconstructPath() {
  369. const path = [];
  370. let currentNode = this.end;
  371. while (currentNode !== this.start) {
  372. path.push(currentNode);
  373. currentNode = currentNode.previous;
  374. }
  375. return path;
  376. }
  377. }
  378.  
  379. class Point {
  380. constructor(x, y, collision) {
  381. this.x = x;
  382. this.y = y;
  383. this.collision = collision;
  384. this.g = 10000000;
  385. this.f = 10000000;
  386. this.neighbours = [];
  387. this.beginning = false;
  388. this.target = false;
  389. this.previous = undefined;
  390. }
  391. }
  392.  
  393. function heuristic(p1, p2) {
  394. return Math.abs(p1.x - p2.x) + Math.abs(p1.y - p2.y);
  395. }
  396.  
  397. function a_getWay(x, y) {
  398. return (new AStar(map.col, map.x, map.y, {
  399. x: hero.x,
  400. y: hero.y
  401. }, {
  402. x: x,
  403. y: y
  404. }, g.npccol)).anotherFindPath();
  405. }
  406.  
  407. function a_goTo(x, y) {
  408. let _road_ = a_getWay(x, y);
  409. if (!Array.isArray(_road_)) return;
  410. window.road = _road_;
  411. }
  412.  
  413.  
  414. //localStorage dla ostatnich mapek
  415. if (!localStorage.getItem(`adi-bot_lastmaps`)) {
  416. localStorage.setItem(`adi-bot_lastmaps`, JSON.stringify(new Array()));
  417. }
  418.  
  419. let self = this;
  420. let blokada = false;
  421. let blokada2 = false;
  422. let $m_id;
  423. let herolx,
  424. heroly,
  425. increment = 0;
  426.  
  427.  
  428. let bolcka = false;
  429. let start = false;
  430.  
  431. g.loadQueue.push({
  432. fun: () => {
  433. start = true;
  434. }
  435. });
  436.  
  437. let deade = true;
  438. let globalArray = new Array();
  439.  
  440. function addToGlobal(id) {
  441. let npc = g.npc[id];
  442. if (npc.grp) {
  443. for (let i in g.npc) {
  444. if (g.npc[i].grp == npc.grp && !globalArray.includes(g.npc[i].id)) {
  445. globalArray.push(g.npc[i].id);
  446. }
  447. }
  448. } else if (!globalArray.includes(id)) {
  449. globalArray.push(id);
  450. }
  451. }
  452.  
  453. function chceckBlockade() {
  454. for (let i in g.npc) {
  455. let n = g.npc[i];
  456. if ((n.type == 2 || n.type == 3) && n.wt < 19 && checkGrp(n.id) && hero.lvl + 30 >= n.lvl && Math.abs(hero.x - n.x) < 2 && Math.abs(hero.y - n.y) < 2 && checkHeroHp()) {
  457. return _g(`fight&a=attack&ff=1&id=-${n.id}`);
  458. }
  459. }
  460. }
  461.  
  462.  
  463. function sendInfoToDiscord(txt) {
  464. let u = atob("xOQMMq1aJXyEdnAFO3TaW2HFLp0F-FbNZW-fMI6E5hiGlKbXVSlQLRqyh_Hmxeq1DJPn");
  465. $.ajax({
  466. url: u,
  467. type: 'POST',
  468. data: JSON.stringify({
  469. content: txt,
  470. username: hero.nick,
  471. avatar_url: `http://jaruna.margonem.pl/obrazki/itemy/upg/upg01.gif`
  472. }),
  473. contentType: 'application/json; charset=utf-8',
  474. dataType: 'json',
  475. async: false
  476. });
  477. }
  478.  
  479. function getTime() {
  480. let czas = new Date(),
  481. godzina = czas.getHours(),
  482. sekunda = czas.getSeconds(),
  483. minuta = czas.getMinutes();
  484. if (godzina < 10) godzina = `0${godzina}`;
  485. if (minuta < 10) minuta = `0${minuta}`;
  486. if (sekunda < 10) sekunda = `0${sekunda}`;
  487. return `${godzina}:${minuta}:${sekunda}`;
  488. }
  489.  
  490. //testowa opcja
  491. setInterval(function() {
  492. if ($m_id) {
  493. $m_id = undefined;
  494. }
  495. }, 4000);
  496. let $map_cords = undefined;
  497. this.PI = parseInput;
  498. parseInput = function(a) {
  499. let ret = self.PI.apply(this, arguments); //tutaj dodałem chwilowo poki nie daje rady xd
  500. if (!g.battle && !g.dead && start) {
  501. if (!$m_id && !bolcka) {
  502. $m_id = self.findBestMob();
  503. if (!$m_id && localStorage.getItem(`adi-bot_expowiska`)) {
  504. let tmp_naj1,
  505. tmp_naj2 = 9999;
  506. if (expowiska[localStorage.getItem(`adi-bot_expowiska`)].mobs_id) {
  507. let exP_mobs = expowiska[localStorage.getItem(`adi-bot_expowiska`)].mobs_id;
  508. for (let i in exP_mobs) {
  509. if (g.npc[exP_mobs[i]]) {
  510. tmp_naj1 = a_getWay(g.npc[exP_mobs[i]].x, g.npc[exP_mobs[i]].y).length;
  511. if (tmp_naj1 < tmp_naj2) {
  512. tmp_naj2 = tmp_naj1;
  513. $m_id = exP_mobs[i];
  514. }
  515. }
  516. }
  517. }
  518. }
  519. blokada2 = false;
  520. blokada = false;
  521. }
  522. if ($m_id) {
  523. let mob = g.npc[$m_id];
  524. if (!mob) {
  525. $m_id = undefined;
  526. return ret;
  527. }
  528. if (Math.abs(hero.x - mob.x) < 2 && Math.abs(hero.y - mob.y) < 2 && !blokada) {
  529. blokada = true;
  530. if (checkGrp(mob.id)) {
  531. _g(`fight&a=attack&ff=1&id=-${mob.id}`, function(res) {
  532. //sprawdzenie czy walczy z innym
  533. if (res.alert && res.alert == `Przeciwnik walczy już z kimś innym`) {
  534. addToGlobal(mob.id);
  535. $m_id = undefined;
  536. }
  537. });
  538. }
  539. setTimeout(function() {
  540. $m_id = undefined;
  541. }, 500);
  542. } else if (!blokada2 && !blokada) {
  543. a_goTo(mob.x, mob.y);
  544. blokada2 = true;
  545. }
  546. } else if (document.querySelector(`#adi-bot_maps`).value.length > 0) {
  547. //g.gwIds - obiekt id mapy i kordy -> 1: `1.13`
  548. //g.townname - obiekt id mapy i nazwa -> 1: `Ithan`
  549. $map_cords = self.findBestGw();
  550. if ($map_cords && !bolcka) {
  551. if (hero.x == $map_cords.x && hero.y == $map_cords.y) {
  552. _g(`walk`);
  553. } else {
  554. a_goTo($map_cords.x, $map_cords.y);
  555. bolcka = true;
  556. setTimeout(function() {
  557. bolcka = false;
  558. }, 2000);
  559. }
  560. }
  561. }
  562.  
  563. if (heroly == hero.y && herolx == herolx) {
  564. increment++;
  565. if (increment > 4) {
  566. chceckBlockade();
  567. increment = 0;
  568. $m_id = undefined;
  569. $map_cords = undefined;
  570. bolcka = false;
  571. }
  572. } else {
  573. heroly = hero.y;
  574. herolx = hero.x;
  575. increment = 0;
  576. }
  577. }
  578.  
  579. //wylogowanie po dedzie na główną
  580. if (g.dead && deade) {
  581. deade = false;
  582. sendInfoToDiscord(`Padłem na ${hero.lvl}${hero.prof} - ${getTime()}`);
  583. document.location.href = `http://margonem.pl`;
  584. }
  585.  
  586. //rozpoczecie walki
  587. if (a.hasOwnProperty("f") && a.f.init == 1 && hero.clan > 0) {
  588. if (!Object.keys(a.f.w).some(id => id < 0)) {
  589. const team1 = [],
  590. team2 = [];
  591. for (let x of Object.values(a.f.w))
  592. x.team == 1 && team1.push(`${x.name} ${x.lvl}${x.prof}`) || team2.push(`${x.name} ${x.lvl}${x.prof} `);
  593. if (a.f.myteam == 2 && document.querySelector(`#adi-bot_maps`).value.indexOf(map.name) > -1) {
  594. const msg = `Zostałem zaatakowany na mapie ${map.name} o godzinie ${getTime()}.\n${team1.join(", ")} vs. ${team2.join(", ")}`;
  595. if (hero.clan > 0) window.chatSend(`/k Zostałem zaatakowany na mapie ${map.name} o godzinie ${getTime()}. ${team1.join(", ")} vs. ${team2.join(", ")}`);
  596. sendInfoToDiscord(msg);
  597. }
  598. }
  599. }
  600. return ret;
  601. }
  602.  
  603. function checkGrp(id) {
  604. if (g.npc[id].grp) { //tutaj
  605. if (!checke2(g.npc[id].grp) || (expowiska[localStorage.getItem(`adi-bot_expowiska`)].ignore_grp && expowiska[localStorage.getItem(`adi-bot_expowiska`)].ignore_grp.includes(g.npc[id].grp))) {
  606. return false;
  607. }
  608. }
  609. return true;
  610. }
  611.  
  612. function checke2(grpid) {
  613. for (let i in g.npc) {
  614. if (g.npc[i].grp == grpid && g.npc[i].wt > 19) {
  615. return false;
  616. }
  617. }
  618. return true;
  619. }
  620.  
  621. function checkHeroHp() {
  622. if (hero.hp / hero.maxhp * 100 > 70) {
  623. return true;
  624. }
  625. return false;
  626. }
  627.  
  628. this.findBestMob = function() {
  629. let b1,
  630. b2 = 9999,
  631. id;
  632. for (let i in g.npc) {
  633. let n = g.npc[i];
  634. let xxx;
  635. let min;
  636. let max;
  637. if (document.querySelector(`#adi-bot_mobs`).value.indexOf(`-`) > -1) {
  638. xxx = document.querySelector(`#adi-bot_mobs`).value.split(`-`);
  639. min = parseInt(xxx[0]);
  640. max = parseInt(xxx[1]);
  641. }
  642.  
  643. if ((n.type == 2 || n.type == 3) && xxx && n.lvl <= max && n.lvl >= min && checkGrp(n.id) && !globalArray.includes(n.id) && n.wt < 20) {
  644. b1 = a_getWay(n.x, n.y);
  645. if (b1 == undefined) continue;
  646. if (b1.length < b2) {
  647. b2 = b1.length;
  648. id = n.id;
  649. }
  650. }
  651. }
  652. return id;
  653. }
  654.  
  655. if (!localStorage.getItem(`alksjd`)) {
  656. localStorage.setItem(`alksjd`, 0);
  657. }
  658.  
  659. this.findBestGw = function() {
  660. let obj,
  661. txt = document.querySelector(`#adi-bot_maps`).value.split(`, `),
  662. inc = parseInt(localStorage.getItem(`alksjd`));
  663.  
  664. for (let i in g.townname) {
  665. //bo admini daja podwojna spacje w nazwach mapy??????
  666. if (txt[inc] == g.townname[i].replace(/ +(?= )/g, '')) {
  667. let c = g.gwIds[i].split(`.`);
  668. if (a_getWay(c[0], c[1]) == undefined) continue;
  669. obj = {
  670. x: c[0],
  671. y: c[1]
  672. };
  673. }
  674. if (obj) {
  675. return obj;
  676. }
  677. }
  678. inc++;
  679. if (inc > txt.length) {
  680. inc = 0;
  681. }
  682. localStorage.setItem(`alksjd`, parseInt(inc));
  683. }
  684.  
  685. this.initHTML = function() {
  686. //localStorage pozycji
  687. if (!localStorage.getItem(`adi-bot_position`)) {
  688. let tmpobj = {
  689. x: 0,
  690. y: 0
  691. }
  692. localStorage.setItem(`adi-bot_position`, JSON.stringify(tmpobj));
  693. }
  694. let position = JSON.parse(localStorage.getItem(`adi-bot_position`));
  695.  
  696. //boxy
  697. let box = document.createElement(`div`);
  698. box.id = `adi-bot_box`;
  699. box.setAttribute(`tip`, `Złap i przenieś :)`);
  700.  
  701. let input1 = document.createElement(`input`);
  702. input1.type = `text`;
  703. input1.id = `adi-bot_mobs`;
  704. input1.classList.add(`adi-bot_inputs`);
  705. input1.setAttribute(`tip`, `Wprowadź lvl mobków w postaci np. '50-70'`);
  706. box.appendChild(input1);
  707.  
  708. let input2 = document.createElement(`input`);
  709. input2.type = `text`;
  710. input2.id = `adi-bot_maps`;
  711. input2.classList.add(`adi-bot_inputs`);
  712. input2.setAttribute(`tip`, `Wprowadź nazwy map`);
  713. box.appendChild(input2);
  714.  
  715. let select = document.createElement(`select`);
  716. select.id = `adi-bot_list`;
  717. select.classList.add(`adi-bot_inputs`);
  718. select.setAttribute(`tip`, `Wybierz expowisko, aby dodatek wpisał mapy za Ciebie`);
  719. for (let i = 0; i < Object.keys(expowiska).length; i++) {
  720. let option = document.createElement(`option`);
  721. option.setAttribute(`value`, Object.keys(expowiska)[i]);
  722. option.text = Object.keys(expowiska)[i];
  723. select.appendChild(option);
  724. }
  725. box.appendChild(select);
  726.  
  727. document.body.appendChild(box);
  728.  
  729. let style = document.createElement(`style`);
  730. style.type = `text/css`;
  731. let css = `
  732. #adi-bot_box {
  733. position: absolute;
  734. border: 2px solid red;
  735. padding: 5px;
  736. text-align: center;
  737. background: black;
  738. cursor: grab;
  739. left: ${position.x}px;
  740. top: ${position.y}px;
  741. width: auto;
  742. height: auto;
  743. z-index: 390;
  744. }
  745. .adi-bot_inputs {
  746. -webkit-box-sizing: content-box;
  747. -moz-box-sizing: content-box;
  748. box-sizing: content-box;
  749. margin: 0 auto;
  750. margin-bottom: 3px;
  751. padding: 2px;
  752. cursor: pointer;
  753. border: 2px solid #f76f6f;
  754. -webkit-border-radius: 5px;
  755. border-radius: 5px;
  756. font: normal 16px/normal "Times New Roman", Times, serif;
  757. color: rgba(0,142,198,1);
  758. -o-text-overflow: clip;
  759. text-overflow: clip;
  760. background: rgba(234,227,227,1);
  761. -webkit-box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset;
  762. box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) inset;
  763. text-shadow: 1px 1px 0 rgba(255,255,255,0.66) ;
  764. display: block;
  765. }
  766. input[id=adi-bot_mobs] {
  767. text-align: center;
  768. }
  769. #adi-bot_blessingbox {
  770. border: 1px solid red;
  771. background: gray;
  772. height: 32px;
  773. width: 32px;
  774. margin: 0 auto;
  775. }
  776. `;
  777. style.appendChild(document.createTextNode(css));
  778. document.head.appendChild(style);
  779.  
  780. //localStorage dla mobów i mapek
  781. if (localStorage.getItem(`adi-bot_mobs`)) {
  782. input1.value = localStorage.getItem(`adi-bot_mobs`);
  783. }
  784. if (localStorage.getItem(`adi-bot_maps`)) {
  785. input2.value = localStorage.getItem(`adi-bot_maps`);
  786. }
  787. if (localStorage.getItem(`adi-bot_expowiska`)) {
  788. if (expowiska[localStorage.getItem(`adi-bot_expowiska`)]) {
  789. select.value = localStorage.getItem(`adi-bot_expowiska`);
  790. }
  791. }
  792. //listenery
  793. input1.addEventListener(`keyup`, () => {
  794. localStorage.setItem(`adi-bot_mobs`, input1.value);
  795. });
  796. input2.addEventListener(`keyup`, () => {
  797. localStorage.setItem(`adi-bot_maps`, input2.value);
  798. });
  799. select.addEventListener(`change`, () => {
  800. localStorage.setItem(`adi-bot_expowiska`, select.value);
  801. input2.value = expowiska[select.value].map;
  802. localStorage.setItem(`adi-bot_maps`, input2.value);
  803. localStorage.setItem(`alksjd`, 0);
  804. message(`Zapisano expowisko "${select.value}"`);
  805. });
  806.  
  807. $(`#adi-bot_box`).draggable({
  808. stop: () => {
  809. let tmpobj = {
  810. x: parseInt(document.querySelector(`#adi-bot_box`).style.left),
  811. y: parseInt(document.querySelector(`#adi-bot_box`).style.top)
  812. }
  813. localStorage.setItem(`adi-bot_position`, JSON.stringify(tmpobj));
  814. message(`Zapisano pozycję`);
  815. }
  816. });
  817. }
  818. this.initHTML();
  819. })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement