PathCreator

Create path has never been so easy

目前为 2018-03-07 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name PathCreator
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.0.4
  5. // @description Create path has never been so easy
  6. // @author Drigtime
  7. // @match https://dofus-map.com/*
  8. // @run-at document-idle
  9. // @require https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
  10. // @require https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js
  11. // @require https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/js/bootstrap-select.min.js
  12. // @grant GM_setValue
  13. // @grant GM_getValue
  14. // ==/UserScript==
  15.  
  16. (function () {
  17. var icon = {
  18. top: {
  19. move: L.icon({
  20. iconUrl: "https://svgshare.com/i/54N.svg",
  21. className: "top-arrow"
  22. }),
  23. gather: L.icon({
  24. iconUrl: "https://svgshare.com/i/556.svg",
  25. className: "top-arrow"
  26. }),
  27. fight: L.icon({
  28. iconUrl: "https://svgshare.com/i/53n.svg",
  29. className: "top-arrow"
  30. }),
  31. bank: L.icon({
  32. iconUrl: "https://svgshare.com/i/54G.svg",
  33. className: "top-arrow"
  34. }),
  35. phoenix: L.icon({
  36. iconUrl: "https://svgshare.com/i/54x.svg",
  37. className: "top-arrow"
  38. })
  39. },
  40. left: {
  41. move: L.icon({
  42. iconUrl: "https://svgshare.com/i/54m.svg",
  43. className: "left-arrow"
  44. }),
  45. gather: L.icon({
  46. iconUrl: "https://svgshare.com/i/555.svg",
  47. className: "left-arrow"
  48. }),
  49. fight: L.icon({
  50. iconUrl: "https://svgshare.com/i/54H.svg",
  51. className: "left-arrow"
  52. }),
  53. bank: L.icon({
  54. iconUrl: "https://svgshare.com/i/54v.svg",
  55. className: "left-arrow"
  56. }),
  57. phoenix: L.icon({
  58. iconUrl: "https://svgshare.com/i/557.svg",
  59. className: "left-arrow"
  60. })
  61. },
  62. bottom: {
  63. move: L.icon({
  64. iconUrl: "https://svgshare.com/i/51x.svg",
  65. className: "bottom-arrow"
  66. }),
  67. gather: L.icon({
  68. iconUrl: "https://svgshare.com/i/54b.svg",
  69. className: "bottom-arrow"
  70. }),
  71. fight: L.icon({
  72. iconUrl: "https://svgshare.com/i/54o.svg",
  73. className: "bottom-arrow"
  74. }),
  75. bank: L.icon({
  76. iconUrl: "https://svgshare.com/i/53x.svg",
  77. className: "bottom-arrow"
  78. }),
  79. phoenix: L.icon({
  80. iconUrl: "https://svgshare.com/i/54q.svg",
  81. className: "bottom-arrow"
  82. })
  83. },
  84. right: {
  85. move: L.icon({
  86. iconUrl: "https://svgshare.com/i/53t.svg",
  87. className: "right-arrow"
  88. }),
  89. gather: L.icon({
  90. iconUrl: "https://svgshare.com/i/54p.svg",
  91. className: "right-arrow"
  92. }),
  93. fight: L.icon({
  94. iconUrl: "https://svgshare.com/i/527.svg",
  95. className: "right-arrow"
  96. }),
  97. bank: L.icon({
  98. iconUrl: "https://svgshare.com/i/54w.svg",
  99. className: "right-arrow"
  100. }),
  101. phoenix: L.icon({
  102. iconUrl: "https://svgshare.com/i/543.svg",
  103. className: "right-arrow"
  104. })
  105. },
  106. havenbag: {
  107. move: L.icon({
  108. iconUrl: "https://svgshare.com/i/58M.svg",
  109. className: "havenbag-icon"
  110. }),
  111. gather: L.icon({
  112. iconUrl: "https://svgshare.com/i/58N.svg",
  113. className: "havenbag-icon"
  114. }),
  115. fight: L.icon({
  116. iconUrl: "https://svgshare.com/i/5BW.svg",
  117. className: "havenbag-icon"
  118. }),
  119. bank: L.icon({
  120. iconUrl: "https://svgshare.com/i/5BL.svg",
  121. className: "havenbag-icon"
  122. }),
  123. phoenix: L.icon({
  124. iconUrl: "https://svgshare.com/i/5BB.svg",
  125. className: "havenbag-icon"
  126. })
  127. },
  128. hint: {
  129. phenix: L.icon({
  130. iconUrl: "https://dofusgo.com/imgs/map/hint/phoe.png",
  131. className: "hint-icon"
  132. }),
  133. bank: L.icon({
  134. iconUrl: "https://dofusgo.com/imgs/map/hint/401.png",
  135. className: "hint-icon"
  136. })
  137. }
  138. };
  139. $(function preloader() {
  140. if (document.images) {
  141. var img1 = new Image();
  142. var img2 = new Image();
  143. var img3 = new Image();
  144. var img4 = new Image();
  145. var img5 = new Image();
  146. var img6 = new Image();
  147. var img7 = new Image();
  148. var img8 = new Image();
  149. var img9 = new Image();
  150. var img10 = new Image();
  151. var img11 = new Image();
  152. var img12 = new Image();
  153. var img13 = new Image();
  154. var img14 = new Image();
  155. var img15 = new Image();
  156. var img16 = new Image();
  157. var img17 = new Image();
  158. var img18 = new Image();
  159. var img19 = new Image();
  160. var img20 = new Image();
  161. var img21 = new Image();
  162. var img22 = new Image();
  163. var img23 = new Image();
  164. var img24 = new Image();
  165. var img25 = new Image();
  166. img1.src = "https://svgshare.com/i/54N.svg";
  167. img2.src = "https://svgshare.com/i/54m.svg";
  168. img3.src = "https://svgshare.com/i/51x.svg";
  169. img4.src = "https://svgshare.com/i/53t.svg";
  170. img5.src = "https://svgshare.com/i/556.svg";
  171. img6.src = "https://svgshare.com/i/555.svg";
  172. img7.src = "https://svgshare.com/i/54b.svg";
  173. img8.src = "https://svgshare.com/i/54p.svg";
  174. img9.src = "https://svgshare.com/i/53n.svg";
  175. img10.src = "https://svgshare.com/i/54H.svg";
  176. img11.src = "https://svgshare.com/i/54o.svg";
  177. img12.src = "https://svgshare.com/i/527.svg";
  178. img13.src = "https://svgshare.com/i/54G.svg";
  179. img14.src = "https://svgshare.com/i/54w.svg";
  180. img15.src = "https://svgshare.com/i/54v.svg";
  181. img16.src = "https://svgshare.com/i/53x.svg";
  182. img17.src = "https://svgshare.com/i/54x.svg";
  183. img18.src = "https://svgshare.com/i/557.svg";
  184. img19.src = "https://svgshare.com/i/54q.svg";
  185. img20.src = "https://svgshare.com/i/543.svg";
  186. img21.src = "https://svgshare.com/i/58M.svg";
  187. img22.src = "https://svgshare.com/i/58N.svg";
  188. img23.src = "https://svgshare.com/i/5BW.svg";
  189. img24.src = "https://svgshare.com/i/5BL.svg";
  190. img25.src = "https://svgshare.com/i/5BB.svg";
  191. }
  192. });
  193. var actualMap;
  194. var pathData = [];
  195. var pathLinearData = [];
  196. var bankData = [];
  197. var phenixData = [];
  198. var havenBagData = [];
  199. var phenixPos=[{map:"12,12",cellid:"184",marker:void 0},{map:"7,36",cellid:"0",marker:void 0},{map:"22,22",cellid:"272",marker:void 0},{map:"10,19",cellid:"192",marker:void 0},{map:"5,1",cellid:"0",marker:void 0},{map:"2,-1",cellid:"0",marker:void 0},{map:"13,-7",cellid:"0",marker:void 0},{map:"5,-9",cellid:"116",marker:void 0},{map:"2,-12",cellid:"272",marker:void 0},{map:"-6,-12",cellid:"0",marker:void 0},{map:"36,10",cellid:"330",marker:void 0},{map:"25,-4",cellid:"450",marker:void 0},{map:"27,-33",cellid:"0",marker:void 0},{map:"24,-43",cellid:"245",marker:void 0},{map:"17,-36",cellid:"0",marker:void 0},{map:"-13,-29",cellid:"0",marker:void 0},{map:"-10,-54",cellid:"342",marker:void 0},{map:"-33,-56",cellid:"0",marker:void 0},{map:"-10,13",cellid:"354",marker:void 0},{map:"-14,31",cellid:"243",marker:void 0},{map:"-26,34",cellid:"0",marker:void 0},{map:"-26,36",cellid:"0",marker:void 0},{map:"-55,40",cellid:"240",marker:void 0},{map:"-58,18",cellid:"354",marker:void 0},{map:"-60,-3",cellid:"0",marker:void 0},{map:"-43,0",cellid:"259",marker:void 0},{map:"-41,-17",cellid:"0",marker:void 0},{map:"-43,-19",cellid:"0",marker:void 0},{map:"-53,-40",cellid:"0",marker:void 0},{map:"-67,-44",cellid:"219",marker:void 0},{map:"-60,-79",cellid:"0",marker:void 0}];
  200. var bankPos=[{map:"4,-16",marker:void 0},{map:"24,-36",marker:void 0},{map:"2,-2",marker:void 0},{map:"14,25",marker:void 0},{map:"-27,35",marker:void 0},{map:"-47,21",marker:void 0},{map:"-16,4",marker:void 0},{map:"-31,-54",marker:void 0},{map:"-77,-41",marker:void 0}];
  201. var ressourcesFr=[{itemId:254,itemName:"Ortie"},{itemId:255,itemName:"Sauge"},{itemId:67,itemName:"Trèfle à 5 feuilles"},{itemId:66,itemName:"Menthe Sauvage"},{itemId:68,itemName:"Orchidée Freyesque"},{itemId:61,itemName:"Edelweiss"},{itemId:112,itemName:"Graine de Pandouille"},{itemId:256,itemName:"Ginseng"},{itemId:257,itemName:"Belladone"},{itemId:258,itemName:"Mandragore"},{itemId:131,itemName:"Perce-neige"},{itemId:1,itemName:"Bois de Frêne"},{itemId:33,itemName:"Bois de Châtaignier"},{itemId:34,itemName:"Bois de Noyer"},{itemId:8,itemName:"Bois de Chêne"},{itemId:98,itemName:"Bois de Bombu"},{itemId:31,itemName:"Bois d’Erable"},{itemId:101,itemName:"Bois d’Oliviolet"},{itemId:28,itemName:"Bois d’If"},{itemId:108,itemName:"Bois de Bambou"},{itemId:35,itemName:"Bois de Merisier"},{itemId:259,itemName:"Bois de Noisetier"},{itemId:29,itemName:"Bois d’Ebène"},{itemId:121,itemName:"Bois de Kaliptus"},{itemId:32,itemName:"Bois de Charme"},{itemId:109,itemName:"Bois de Bambou Sombre"},{itemId:30,itemName:"Bois d’Orme"},{itemId:110,itemName:"Bois de Bambou Sacré"},{itemId:133,itemName:"Bois de Tremble"},{itemId:17,itemName:"Fer"},{itemId:53,itemName:"Cuivre"},{itemId:55,itemName:"Bronze"},{itemId:37,itemName:"Kobalte"},{itemId:54,itemName:"Manganèse"},{itemId:52,itemName:"Etain"},{itemId:114,itemName:"Silicate"},{itemId:24,itemName:"Argent"},{itemId:26,itemName:"Bauxite"},{itemId:25,itemName:"Or"},{itemId:113,itemName:"Dolomite"},{itemId:135,itemName:"Obsidienne"},{itemId:38,itemName:"Blé"},{itemId:43,itemName:"Orge"},{itemId:45,itemName:"Avoine"},{itemId:39,itemName:"Houblon"},{itemId:42,itemName:"Lin"},{itemId:44,itemName:"Seigle"},{itemId:111,itemName:"Riz"},{itemId:47,itemName:"Malt"},{itemId:46,itemName:"Chanvre"},{itemId:260,itemName:"Maïs"},{itemId:261,itemName:"Millet"},{itemId:134,itemName:"Frostiz"},{itemId:75,itemName:"Goujon"},{itemId:71,itemName:"Greuvette"},{itemId:74,itemName:"Truite"},{itemId:77,itemName:"Crabe Sourimi"},{itemId:76,itemName:"Poisson-Chaton"},{itemId:78,itemName:"Poisson Pané"},{itemId:79,itemName:"Carpe d’Iem"},{itemId:81,itemName:"Sardine Brillante"},{itemId:263,itemName:"Brochet"},{itemId:264,itemName:"Kralamoure"},{itemId:265,itemName:"Anguille"},{itemId:266,itemName:"Dorade Grise"},{itemId:267,itemName:"Perche"},{itemId:268,itemName:"Raie Bleue"},{itemId:269,itemName:"Lotte"},{itemId:270,itemName:"Requin Marteau-Faucille"},{itemId:271,itemName:"Bar Rikain"},{itemId:272,itemName:"Morue"},{itemId:273,itemName:"Tanche"},{itemId:274,itemName:"Espadon"},{itemId:132,itemName:"Poisskaille"}];
  202. var ressourcesEn=[{itemId:1,itemName:"Ash"},{itemId:8,itemName:"Oak"},{itemId:17,itemName:"Iron"},{itemId:24,itemName:"Silver"},{itemId:25,itemName:"Gold"},{itemId:26,itemName:"Bauxite"},{itemId:28,itemName:"Yew"},{itemId:29,itemName:"Ebony"},{itemId:30,itemName:"Elm"},{itemId:31,itemName:"Maple"},{itemId:32,itemName:"Hornbeam"},{itemId:33,itemName:"Chestnut"},{itemId:34,itemName:"Walnut"},{itemId:35,itemName:"Cherry"},{itemId:37,itemName:"Cobalt"},{itemId:38,itemName:"Wheat"},{itemId:39,itemName:"Hop"},{itemId:42,itemName:"Flax"},{itemId:43,itemName:"Barley"},{itemId:44,itemName:"Rye"},{itemId:45,itemName:"Oats"},{itemId:46,itemName:"Hemp"},{itemId:47,itemName:"Malt"},{itemId:48,itemName:"Potato heap"},{itemId:52,itemName:"Tin"},{itemId:53,itemName:"Copper"},{itemId:54,itemName:"Manganese"},{itemId:55,itemName:"Bronze"},{itemId:61,itemName:"Edelweiss"},{itemId:63,itemName:"Wheat"},{itemId:64,itemName:"Spelt"},{itemId:65,itemName:"Sorghum"},{itemId:66,itemName:"Wild Mint"},{itemId:67,itemName:"Five-Leaf Clover"},{itemId:68,itemName:"Freyesque Orchid"},{itemId:71,itemName:"Grawn"},{itemId:72,itemName:"Aggressive Salmoon"},{itemId:73,itemName:"Octopwus"},{itemId:74,itemName:"Trout"},{itemId:75,itemName:"Gudgeon"},{itemId:76,itemName:"Kittenfish"},{itemId:77,itemName:"Crab"},{itemId:78,itemName:"Breaded Fish"},{itemId:79,itemName:"Ediem Carp"},{itemId:80,itemName:"Sludgy Trout"},{itemId:81,itemName:"Shiny Sardine"},{itemId:82,itemName:"Cotton"},{itemId:84,itemName:"Well"},{itemId:98,itemName:"Bombu"},{itemId:99,itemName:"Strange shadow"},{itemId:100,itemName:"Snapper"},{itemId:101,itemName:"Oliviolet"},{itemId:102,itemName:"Strength machine"},{itemId:104,itemName:"Quaquack"},{itemId:108,itemName:"Bamboo"},{itemId:109,itemName:"Dark Bamboo"},{itemId:110,itemName:"Holy Bamboo"},{itemId:111,itemName:"Rice"},{itemId:112,itemName:"Pandkin"},{itemId:113,itemName:"Dolomite"},{itemId:114,itemName:"Silicate"},{itemId:121,itemName:"Kaliptus"},{itemId:131,itemName:"Snowdrop"},{itemId:132,itemName:"Icefish"},{itemId:133,itemName:"Aspen"},{itemId:134,itemName:"Frosteez"},{itemId:135,itemName:"Obsidian"},{itemId:136,itemName:"Shell"},{itemId:137,itemName:"Poss'Ybel's sewing machine"},{itemId:138,itemName:"Factory"},{itemId:139,itemName:"Bad Quality Kitchen Table"},{itemId:140,itemName:"Bad Quality Workshop"},{itemId:141,itemName:"Bad Quality Workbench"},{itemId:142,itemName:"Bad Quality Sewing Machine"},{itemId:143,itemName:"Toy machine"},{itemId:144,itemName:"Fish press"},{itemId:145,itemName:"Wrapping Station"},{itemId:146,itemName:"Gift Package"},{itemId:147,itemName:"Gift Wrapping Station"},{itemId:148,itemName:"Alchemists' Workshop"},{itemId:149,itemName:"Jewellers' Workshop"},{itemId:150,itemName:"Butchers' Workshop"},{itemId:151,itemName:"Butchers' and Hunters' Workshop"},{itemId:152,itemName:"Shield Smiths' Workshop"},{itemId:153,itemName:"Bakers' Workshop"},{itemId:154,itemName:"Handymen's Workshop"},{itemId:155,itemName:"Lumberjacks' Workshop"},{itemId:156,itemName:"Hunters' Workshop"},{itemId:157,itemName:"Shoemakers' Workshop"},{itemId:158,itemName:"Smithmagi's Workshop"},{itemId:159,itemName:"Smiths' Workshop"},{itemId:160,itemName:"Miners' Workshop"},{itemId:161,itemName:"Farmers' Workshop"},{itemId:162,itemName:"Fishmongers' Workshop"},{itemId:163,itemName:"Fishermen and Fishmongers' Workshop"},{itemId:164,itemName:"Fishermen's Workshop"},{itemId:165,itemName:"Carvers' Workshop"},{itemId:166,itemName:"Tailors' Workshop"},{itemId:167,itemName:"Arena"},{itemId:168,itemName:"Bank"},{itemId:169,itemName:"Bar Racuda"},{itemId:170,itemName:"Library"},{itemId:171,itemName:"Kwismas Shops"},{itemId:172,itemName:"Dojo"},{itemId:173,itemName:"Church"},{itemId:174,itemName:"Grocery Store"},{itemId:175,itemName:"Ski Maker"},{itemId:176,itemName:"Town Hall"},{itemId:177,itemName:"Profession Information Centre"},{itemId:178,itemName:"Kanojedo"},{itemId:179,itemName:"Kolossium"},{itemId:180,itemName:"Militia"},{itemId:181,itemName:"Frigost's Doctor"},{itemId:182,itemName:"Inn"},{itemId:183,itemName:"Atyu Sirvis's Inn"},{itemId:184,itemName:"Atolmond's Inn"},{itemId:185,itemName:"The Silver Tavern"},{itemId:186,itemName:"Djaul Inn"},{itemId:187,itemName:"Bagrutte's Inn"},{itemId:188,itemName:"Woodenglass Inn"},{itemId:189,itemName:"Misery Inn"},{itemId:190,itemName:"Kikim Inn"},{itemId:191,itemName:"Lisa Kaya's Tavern"},{itemId:192,itemName:"Sakai Tavern"},{itemId:193,itemName:"Bwork Inn"},{itemId:194,itemName:"Burnt Cat Inn"},{itemId:195,itemName:"Last Chance Saloon"},{itemId:196,itemName:"Swashbuckler Inn"},{itemId:197,itemName:"Feubuk Inn"},{itemId:198,itemName:"Drunken Pandawa Inn"},{itemId:199,itemName:"Frigostian Paradise Tavern"},{itemId:200,itemName:"Pinchaut Inn"},{itemId:201,itemName:"Ripate Inn"},{itemId:202,itemName:"Guild Temple"},{itemId:203,itemName:"Tower of Brakmar"},{itemId:204,itemName:"Tower of Archives"},{itemId:205,itemName:"Tower of Orders"},{itemId:206,itemName:"Foggernaut Submarine"},{itemId:207,itemName:"Altar"},{itemId:208,itemName:"Krosmaster"},{itemId:209,itemName:"Gith Smold's Workshop"},{itemId:210,itemName:"Al Shab's Workshop"},{itemId:211,itemName:"Frigostine's Workshop"},{itemId:212,itemName:"Francky's Workshop"},{itemId:213,itemName:"Dutch's Workshop"},{itemId:214,itemName:"Brokkreitri's Workshop"},{itemId:215,itemName:"Ingram Part's Workshop"},{itemId:216,itemName:"Clarisse Tocate's Workshop"},{itemId:217,itemName:"Bea Fortax's Workshop"},{itemId:218,itemName:"Carla Garfield's Workshop"},{itemId:219,itemName:"Weaver of Fortunes"},{itemId:220,itemName:"Barrel of explosives"},{itemId:221,itemName:"Sutol Flower"},{itemId:222,itemName:"Barbecue"},{itemId:223,itemName:"Fresh Cawwot"},{itemId:224,itemName:"Profession Information Centre's weathered alembic"},{itemId:225,itemName:"Bottle of Rum"},{itemId:226,itemName:"Lift"},{itemId:227,itemName:"Mushroom"},{itemId:228,itemName:"Bowisse's Table"},{itemId:229,itemName:"Meriana's Workshop"},{itemId:230,itemName:"Bwork Portal"},{itemId:231,itemName:"Automated Treasure Machine"},{itemId:232,itemName:"Portal"},{itemId:233,itemName:"Golden chest"},{itemId:234,itemName:"Ice Cube"},{itemId:235,itemName:"Go to"},{itemId:236,itemName:"Desk"},{itemId:237,itemName:"Drafting Table"},{itemId:238,itemName:"Go to instance A"},{itemId:239,itemName:"Go to instance B"},{itemId:240,itemName:"Go to instance C"},{itemId:241,itemName:"Old Chest XXIII"},{itemId:242,itemName:"Clockmaker's Workbench"},{itemId:243,itemName:"Chest XI"},{itemId:244,itemName:"Chest XXIII"},{itemId:245,itemName:"Chest XXXI"},{itemId:246,itemName:"Chest LIX"},{itemId:247,itemName:"Clock That's 2 Minutes Fast"},{itemId:248,itemName:"Clock That's 3 Minutes Slow"},{itemId:249,itemName:"Clock That's 7 Minutes Fast"},{itemId:250,itemName:"Clock That's 8 Minutes Slow"},{itemId:251,itemName:"Paxtim Eggs"},{itemId:252,itemName:"Voyagers' Workshop"},{itemId:253,itemName:"Eliotrope Portal"},{itemId:254,itemName:"Nettle"},{itemId:255,itemName:"Sage"},{itemId:256,itemName:"Ginseng"},{itemId:257,itemName:"Belladonna"},{itemId:258,itemName:"Mandrake"},{itemId:259,itemName:"Hazel"},{itemId:260,itemName:"Corn"},{itemId:261,itemName:"Millet"},{itemId:262,itemName:"Stone Block"},{itemId:263,itemName:"Pike"},{itemId:264,itemName:"Kralove"},{itemId:265,itemName:"Eel"},{itemId:266,itemName:"Grey Sea Bream"},{itemId:267,itemName:"Perch"},{itemId:268,itemName:"Ray"},{itemId:269,itemName:"Monkfish"},{itemId:270,itemName:"Sickle-Hammerhead Shark"},{itemId:271,itemName:"Lard Bass"},{itemId:272,itemName:"Cod"},{itemId:273,itemName:"Tench"},{itemId:274,itemName:"Swordfish"},{itemId:275,itemName:"Mulic Bere's Anvil"},{itemId:276,itemName:"Mulic Bere's Workbench"},{itemId:277,itemName:"Mulic Bere's Workshop"},{itemId:278,itemName:"Mulic Bere's Assembler"},{itemId:279,itemName:"Magus Ax's Workshop"},{itemId:280,itemName:"Huppermage Platform"},{itemId:281,itemName:"Four-leaf Clover"},{itemId:282,itemName:"Point out an exit"},{itemId:283,itemName:"Catuna"},{itemId:284,itemName:"Stairs"},{itemId:285,itemName:"Reinforced Door"},{itemId:286,itemName:"Unspeakable Workbench"},{itemId:287,itemName:"Mahaquany"},{itemId:288,itemName:"Salikronia"},{itemId:289,itemName:"Quisnoa"},{itemId:290,itemName:"Limpet"},{itemId:291,itemName:"Sepiolite"},{itemId:292,itemName:"Workbench"},{itemId:293,itemName:"Sepiolite"},{itemId:294,itemName:"Mahaquany"},{itemId:295,itemName:"Salikronia"},{itemId:296,itemName:"Quisnoa"},{itemId:297,itemName:"Limpet"},{itemId:298,itemName:"Natasha Manka's Workshop"},{itemId:299,itemName:"Fresh Eggs"}];
  203. var ressourcesEs=[{itemId:254,itemName:"Ortiga"},{itemId:255,itemName:"Salvia"},{itemId:67,itemName:"Trébol de 5 hojas"},{itemId:66,itemName:"Menta salvaje"},{itemId:68,itemName:"Orquídea freyesca"},{itemId:61,itemName:"Edelweiss"},{itemId:112,itemName:"Pandoja"},{itemId:256,itemName:"Ginseng"},{itemId:257,itemName:"Belladona"},{itemId:258,itemName:"Mandrágora"},{itemId:131,itemName:"Campanilla de invierno"},{itemId:1,itemName:"Madera de fresno"},{itemId:33,itemName:"Madera de castaño"},{itemId:34,itemName:"Madera de nogal"},{itemId:8,itemName:"Madera de roble"},{itemId:98,itemName:"Madera de bombú"},{itemId:31,itemName:"Madera de arce"},{itemId:101,itemName:"Madera de olivioleta"},{itemId:28,itemName:"Madera de tejo"},{itemId:108,itemName:"Madera de bambú"},{itemId:35,itemName:"Madera de cerezo"},{itemId:259,itemName:"Madera de castaño"},{itemId:29,itemName:"Madera de ébano"},{itemId:121,itemName:"Madera de kalipto"},{itemId:32,itemName:"Madera de carpe"},{itemId:109,itemName:"Madera de bambú oscuro"},{itemId:30,itemName:"Madera de olmo"},{itemId:110,itemName:"Madera de bambú sagrado"},{itemId:133,itemName:"Madera de álamo temblón"},{itemId:17,itemName:"Hierro"},{itemId:53,itemName:"Cobre"},{itemId:55,itemName:"Bronce"},{itemId:37,itemName:"Kobalto"},{itemId:54,itemName:"Manganeso"},{itemId:52,itemName:"Estaño"},{itemId:114,itemName:"Silicato"},{itemId:24,itemName:"Plata"},{itemId:26,itemName:"Bauxita"},{itemId:25,itemName:"Oro"},{itemId:113,itemName:"Dolomita"},{itemId:135,itemName:"Obsidiana"},{itemId:38,itemName:"Trigo"},{itemId:43,itemName:"Cebada"},{itemId:45,itemName:"Avena"},{itemId:39,itemName:"Lúpulo"},{itemId:42,itemName:"Lino"},{itemId:44,itemName:"Arroz"},{itemId:111,itemName:"Centeno"},{itemId:47,itemName:"Malta"},{itemId:46,itemName:"Cáñamo"},{itemId:260,itemName:"Maíz"},{itemId:261,itemName:"Mijo"},{itemId:134,itemName:"Frostizz"},{itemId:75,itemName:"Gobio"},{itemId:71,itemName:"Bamga"},{itemId:74,itemName:"Trucha"},{itemId:77,itemName:"Cangrejo surimi"},{itemId:76,itemName:"Pez gatito"},{itemId:78,itemName:"Pescado empanado"},{itemId:79,itemName:"Carpa de Iem"},{itemId:81,itemName:"Sardina brillante"},{itemId:263,itemName:"Lucio"},{itemId:264,itemName:"Kralamar"},{itemId:265,itemName:"Anguila"},{itemId:266,itemName:"Dorada exploradora"},{itemId:267,itemName:"Perca"},{itemId:268,itemName:"Raya azul"},{itemId:269,itemName:"Rape"},{itemId:270,itemName:"Tiburón Martillhoz"},{itemId:271,itemName:"Lubina mericana"},{itemId:272,itemName:"Bacaladilla"},{itemId:273,itemName:"Tenca"},{itemId:274,itemName:"Pez espada"},{itemId:132,itemName:"Inverluza"}];
  204. var loadingFile = false;
  205. var havenToggle = false;
  206.  
  207. var css = document.createElement('style');
  208. css.type = 'text/css';
  209. css.textContent = 'a:focus {text-decoration: none!important;}.toggled{background-color:#c0dcf3!important}.leaflet-touch .leaflet-bar a{text-decoration:none!important;outline:none!important}.hint-icon{width:40px;margin-top:-20px;margin-left:-20px}.checkbox.checbox-switch{padding-left:0}.checkbox.checbox-switch label,.checkbox-inline.checbox-switch{display:inline-block;position:relative;padding-left:0}.checkbox.checbox-switch label input,.checkbox-inline.checbox-switch input{display:none}.checkbox.checbox-switch label span,.checkbox-inline.checbox-switch span{width:35px;border-radius:20px;height:18px;border:1px solid #dbdbdb;background-color:#fff;border-color:#dfdfdf;box-shadow:#dfdfdf 0 0 0 0 inset;transition:border .4s ease 0s,box-shadow .4s ease 0;display:inline-block;vertical-align:middle;margin-right:5px}.checkbox.checbox-switch label span:before,.checkbox-inline.checbox-switch span:before{display:inline-block;width:16px;height:16px;border-radius:50%;background:#fff;content:" ";top:0;position:relative;left:0;transition:all .3s ease;box-shadow:0 1px 4px rgba(0,0,0,0.4)}.checkbox.checbox-switch label > input:checked + span:before,.checkbox-inline.checbox-switch > input:checked + span:before{left:17px}.checkbox.checbox-switch.switch-primary label > input:checked + span,.checkbox-inline.checbox-switch.switch-primary > input:checked + span{background-color:#0069d9;border-color:#0069d9;box-shadow:#0069d9 0 0 0 8px inset;transition:border .4s ease 0s,box-shadow .4s ease 0s,background-color 1.2s ease 0}.checkbox.checbox-switch.switch-primary label > input:checked:disabled + span,.checkbox-inline.checbox-switch.switch-primary > input:checked:disabled + span{background-color:#6da3dd;border-color:#6da3dd;box-shadow:#6da3dd 0 0 0 8px inset;transition:border .4s ease 0s,box-shadow .4s ease 0s,background-color 1.2s ease 0}#mapContainer[data-zoom="7"] .top-arrow{width:145px;margin-left:528.5px}#mapContainer[data-zoom="6"] .top-arrow{width:75px;margin-left:262.5px}#mapContainer[data-zoom="5"] .top-arrow{width:36px;margin-left:131.5px}#mapContainer[data-zoom="4"] .top-arrow{width:19px;margin-left:65.75px}#mapContainer[data-zoom="3"] .top-arrow{width:15px;margin-left:30.13px}#mapContainer[data-zoom="2"] .top-arrow{width:9.9px;margin-left:13.86px}#mapContainer[data-zoom="1"] .top-arrow{width:7px;margin-left:5.91px}#mapContainer[data-zoom="0"] .top-arrow{width:5.38px;margin-left:5.01px}#mapContainer[data-zoom="7"] .havenbag-icon{width:500.83px;margin-left:350.5833333px;margin-top:135.8px}#mapContainer[data-zoom="6"] .havenbag-icon{width:250px;margin-left:175px;margin-top:67.5px}#mapContainer[data-zoom="5"] .havenbag-icon{width:124.58px;margin-left:87.20833333px;margin-top:33.35px}#mapContainer[data-zoom="4"] .havenbag-icon{width:61.88px;margin-left:43.3125px;margin-top:16.28px}#mapContainer[data-zoom="3"] .havenbag-icon{width:30.52px;margin-left:21.36458333px;margin-top:7.74px}#mapContainer[data-zoom="2"] .havenbag-icon{width:14.84px;margin-left:10.390625px;margin-top:3.47px}#mapContainer[data-zoom="1"] .havenbag-icon{width:7.01px;margin-left:4.903645833px;margin-top:1.33px}#mapContainer[data-zoom="0"] .havenbag-icon{width:3.09px;margin-left:2.16015625px;margin-top:.27px}#mapContainer[data-zoom="7"] .left-arrow{width:324.26px;margin-top:356.5px}#mapContainer[data-zoom="6"] .left-arrow{width:161.59px;margin-top:177.75px}#mapContainer[data-zoom="5"] .left-arrow{width:80.53px;margin-top:88.38px}#mapContainer[data-zoom="4"] .left-arrow{width:40.13px;margin-top:44.19px}#mapContainer[data-zoom="3"] .left-arrow{width:30.87px;margin-top:19.34px}#mapContainer[data-zoom="2"] .left-arrow{width:23.75px;margin-top:7.42px}#mapContainer[data-zoom="1"] .left-arrow{width:18.27px;margin-top:1.86px}#mapContainer[data-zoom="0"] .left-arrow{width:14.05px;margin-top:1px}#mapContainer[data-zoom="7"] .right-arrow{width:324.26px;margin-left:878.74px;margin-top:356.5px}#mapContainer[data-zoom="6"] .right-arrow{width:161.59px;margin-left:439.41px;margin-top:177.75px}#mapContainer[data-zoom="5"] .right-arrow{width:80.53px;margin-left:219.47px;margin-top:88.38px}#mapContainer[data-zoom="4"] .right-arrow{width:40.13px;margin-left:110.37px;margin-top:44.19px}#mapContainer[data-zoom="3"] .right-arrow{width:30.87px;margin-left:43.38px;margin-top:19.34px}#mapContainer[data-zoom="2"] .right-arrow{width:23.75px;margin-left:12.88px;margin-top:7.42px}#mapContainer[data-zoom="1"] .right-arrow{width:18.27px;margin-left:1px;margin-top:1.86px}#mapContainer[data-zoom="0"] .right-arrow{width:14.05px;margin-left:1px;margin-top:1px}#mapContainer[data-zoom="7"] .bottom-arrow{width:145px;margin-left:528.5px;margin-top:648.2px}#mapContainer[data-zoom="6"] .bottom-arrow{width:75px;margin-left:262.5px;margin-top:319.5px}#mapContainer[data-zoom="5"] .bottom-arrow{width:36px;margin-left:131.5px;margin-top:160.91px}#mapContainer[data-zoom="4"] .bottom-arrow{width:19px;margin-left:65.75px;margin-top:78.02px}#mapContainer[data-zoom="3"] .bottom-arrow{width:15px;margin-left:30.13px;margin-top:31.09px}#mapContainer[data-zoom="2"] .bottom-arrow{width:9.9px;margin-left:13.86px;margin-top:11.59px}#mapContainer[data-zoom="1"] .bottom-arrow{width:7px;margin-left:5.91px;margin-top:3px}#mapContainer[data-zoom="0"] .bottom-arrow{width:5.38px;margin-left:5.01px;margin-top:0}#mapContainer[data-zoom="7"] .leaflet-popup{margin-left:601px}#mapContainer[data-zoom="6"] .leaflet-popup{margin-left:3005px}#mapContainer[data-zoom="5"] .leaflet-popup{margin-left:149.5px}#mapContainer[data-zoom="4"] .leaflet-popup{margin-left:74.25px}#mapContainer[data-zoom="3"] .leaflet-popup{margin-left:36.625px}#mapContainer[data-zoom="2"] .leaflet-popup{margin-left:17.8125px}#mapContainer[data-zoom="1"] .leaflet-popup{margin-left:8.40625px}#mapContainer[data-zoom="0"] .leaflet-popup{margin-left:3.703125px}';
  210. $('head').append(css);
  211. var contenu = '';
  212. contenu = `
  213. <link rel="stylesheet" href="//use.fontawesome.com/releases/v5.0.6/css/all.css">
  214. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/css/bootstrap-select.min.css">
  215. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
  216. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/flag-icon-css/2.9.0/css/flag-icon.css">
  217. <div id="path-creator-bar" class="leaflet-top leaflet-right" style="top: 150px;">
  218. </div>
  219. <!-- Modal -->
  220. <div class="modal fade" id="havenBagSetting" tabindex="-1" role="dialog" style="top: 300px;"></div>
  221. <div class="modal fade" id="setting" tabindex="-1" role="dialog" style="top: 100px;"></div>
  222. <div class="modal fade" id="pathSetting" tabindex="-1" role="dialog" style="top: 100px;"></div>`;
  223.  
  224.  
  225. $('body').append(contenu);
  226.  
  227.  
  228. function checkMaps(mapcoord, array) {
  229. for (let key = 0; key < array.length; key++) {
  230. if (array[key].map == mapcoord) {
  231. return true;
  232. }
  233. }
  234. return false;
  235. }
  236.  
  237. function getMapIndex(mapcoord, array) {
  238. for (let key = 0; key < array.length; key++) {
  239. if (array[key].map == mapcoord) {
  240. return key;
  241. }
  242. }
  243. }
  244.  
  245. function onMapClick() {
  246.  
  247. if (!loadingFile)
  248. actualMap = $('#mapCoordinates').html();
  249.  
  250. if (RegExp(/<span>/).test(actualMap)) {
  251. actualMap = $('#mapCoordinates').html().split(/<span>/)[0];
  252. }
  253.  
  254. if ($('.fa-suitcase.toggled').length > 0) {
  255. if (!havenToggle) {
  256. if (!checkMaps(actualMap.split(', ')[0] + ',' + actualMap.split(', ')[1], havenBagData)) {
  257. havenToggle = true;
  258. $('#havenBagSetting').appendTo("body").modal('show');
  259. return;
  260. } else {
  261. havenBagData.splice(getMapIndex(actualMap.split(', ')[0] + ',' + actualMap.split(', ')[1], havenBagData), 1);
  262. }
  263. } else {
  264. havenToggle = false;
  265. }
  266. }
  267. if ($('.fa-eraser.toggled').length > 0) {
  268. let deleteAll = function (array, index) {
  269. if (array[index] !== undefined) {
  270. if (array[index].top)
  271. if (array[index].top.icon) map.removeLayer(array[index].top.icon);
  272. if (array[index].bottom)
  273. if (array[index].bottom.icon) map.removeLayer(array[index].bottom.icon);
  274. if (array[index].left)
  275. if (array[index].left.icon) map.removeLayer(array[index].left.icon);
  276. if (array[index].right)
  277. if (array[index].right.icon) map.removeLayer(array[index].right.icon);
  278. if (array[index].havenbag)
  279. if (array[index].havenbag.icon) map.removeLayer(array[index].havenbag.icon);
  280. array.splice(index, 1);
  281. }
  282. };
  283. deleteAll(pathData, getMapIndex(actualMap, pathData));
  284. deleteAll(pathLinearData, getMapIndex(actualMap, pathLinearData));
  285. deleteAll(bankData, getMapIndex(actualMap, bankData));
  286. deleteAll(phenixData, getMapIndex(actualMap, phenixData));
  287. deleteAll(havenBagData, getMapIndex(actualMap, havenBagData));
  288. } else if ($(".fa-university.toggled").length > 0) {
  289. if (!checkMaps(actualMap, bankData)) {
  290. if ($(".fa-suitcase.toggled").length > 0) {
  291. if (checkMaps(actualMap, pathData)) {
  292. removeArrow(getMapIndex(actualMap, pathData), pathData);
  293. deleteEmptyPath(pathData);
  294. return;
  295. } else if (checkMaps(actualMap, phenixData)) {
  296. removeArrow(getMapIndex(actualMap, phenixData), phenixData);
  297. deleteEmptyPath(phenixData);
  298. return;
  299. }
  300. }
  301. bankData.push({
  302. map: actualMap,
  303. top: {
  304. path: false,
  305. icon: undefined
  306. },
  307. bottom: {
  308. path: false,
  309. icon: undefined
  310. },
  311. right: {
  312. path: false,
  313. icon: undefined
  314. },
  315. left: {
  316. path: false,
  317. icon: undefined
  318. },
  319. havenbag: {
  320. path: false,
  321. icon: undefined
  322. },
  323. bank: false
  324. });
  325. createMarker(getMapIndex(actualMap, bankData), bankData);
  326. deleteEmptyPath(bankData);
  327. } else {
  328. removeArrow(getMapIndex(actualMap, bankData), bankData);
  329. deleteEmptyPath(bankData);
  330. }
  331. console.clear();
  332. for (let key in bankData) {
  333. console.log(key + ', map : ' + bankData[key].map + ', top : ' + bankData[key].top.path + ', bottom : ' + bankData[key].bottom.path + ', right : ' + bankData[key].right.path + ', left : ' + bankData[key].left.path + ', havenbag : ' + bankData[key].havenbag.path);
  334. }
  335. } else if ($(".fa-fire.toggled").length > 0) {
  336. if (!checkMaps(actualMap, phenixData)) {
  337. if ($(".fa-suitcase.toggled").length > 0) {
  338. if (checkMaps(actualMap, pathData)) {
  339. removeArrow(getMapIndex(actualMap, pathData), pathData);
  340. deleteEmptyPath(pathData);
  341. return;
  342. } else if (checkMaps(actualMap, bankData)) {
  343. removeArrow(getMapIndex(actualMap, bankData), bankData);
  344. deleteEmptyPath(bankData);
  345. return;
  346. }
  347. }
  348. phenixData.push({
  349. map: actualMap,
  350. top: {
  351. path: false,
  352. icon: undefined
  353. },
  354. bottom: {
  355. path: false,
  356. icon: undefined
  357. },
  358. right: {
  359. path: false,
  360. icon: undefined
  361. },
  362. left: {
  363. path: false,
  364. icon: undefined
  365. },
  366. havenbag: {
  367. path: false,
  368. icon: undefined
  369. },
  370. phenix: false
  371. });
  372. createMarker(getMapIndex(actualMap, phenixData), phenixData);
  373. deleteEmptyPath(phenixData);
  374. } else {
  375. removeArrow(getMapIndex(actualMap, phenixData), phenixData);
  376. deleteEmptyPath(phenixData);
  377. }
  378. console.clear();
  379. for (let key in phenixData) {
  380. console.log(key + ', map : ' + phenixData[key].map + ', top : ' + phenixData[key].top.path + ', bottom : ' + phenixData[key].bottom.path + ', right : ' + phenixData[key].right.path + ', left : ' + phenixData[key].left.path + ', havenbag : ' + phenixData[key].havenbag.path);
  381. }
  382. } else {
  383. if (!checkMaps(actualMap, pathData)) {
  384. if ($(".fa-suitcase.toggled").length > 0) {
  385. if (checkMaps(actualMap, bankData)) {
  386. removeArrow(getMapIndex(actualMap, bankData), bankData);
  387. deleteEmptyPath(bankData);
  388. return;
  389. } else if (checkMaps(actualMap, phenixData)) {
  390. removeArrow(getMapIndex(actualMap, phenixData), phenixData);
  391. deleteEmptyPath(phenixData);
  392. return;
  393. }
  394. }
  395. if ($(".fa-random.toggled").length > 0) {
  396. if (!checkMaps(actualMap, pathLinearData)) {
  397. pathLinearData.push({
  398. map: actualMap,
  399. top: {
  400. index: undefined,
  401. path: false,
  402. icon: undefined
  403. },
  404. bottom: {
  405. index: undefined,
  406. path: false,
  407. icon: undefined
  408. },
  409. right: {
  410. index: undefined,
  411. path: false,
  412. icon: undefined
  413. },
  414. left: {
  415. index: undefined,
  416. path: false,
  417. icon: undefined
  418. },
  419. havenbag: {
  420. index: undefined,
  421. path: false,
  422. icon: undefined
  423. },
  424. gather: false,
  425. fight: false,
  426. index: false
  427. });
  428. createMarker(getMapIndex(actualMap, pathLinearData), pathLinearData);
  429. deleteEmptyPath(pathLinearData);
  430. } else {
  431. removeArrow(getMapIndex(actualMap, pathLinearData), pathLinearData);
  432. deleteEmptyPath(pathLinearData);
  433. }
  434. } else {
  435. pathData.push({
  436. map: actualMap,
  437. top: {
  438. path: false,
  439. icon: undefined
  440. },
  441. bottom: {
  442. path: false,
  443. icon: undefined
  444. },
  445. right: {
  446. path: false,
  447. icon: undefined
  448. },
  449. left: {
  450. path: false,
  451. icon: undefined
  452. },
  453. havenbag: {
  454. path: false,
  455. icon: undefined
  456. },
  457. gather: false,
  458. fight: false,
  459. });
  460. createMarker(getMapIndex(actualMap, pathData), pathData);
  461. deleteEmptyPath(pathData);
  462. }
  463. } else {
  464. removeArrow(getMapIndex(actualMap, pathData), pathData);
  465. deleteEmptyPath(pathData);
  466. }
  467. console.clear();
  468. for (let key in pathData) {
  469. console.log(key + ', map : ' + pathData[key].map + ', top : ' + pathData[key].top.path + ', bottom : ' + pathData[key].bottom.path + ', right : ' + pathData[key].right.path + ', left : ' + pathData[key].left.path + ', havenbag : ' + pathData[key].havenbag.path + ', gather : ' + pathData[key].gather + ', fight : ' + pathData[key].fight);
  470. }
  471. }
  472. }
  473.  
  474. function deleteEmptyPath(array) {
  475. if (!array[getMapIndex(actualMap, array)].top.path && !array[getMapIndex(actualMap, array)].bottom.path && !array[getMapIndex(actualMap, array)].left.path && !array[getMapIndex(actualMap, array)].right.path && !array[getMapIndex(actualMap, array)].havenbag.path) {
  476. array.splice(getMapIndex(actualMap, array), 1);
  477. }
  478. }
  479.  
  480. function removeArrow(key, array) {
  481. removeArrowWay(key, array, "fa-arrow-up", "top");
  482. removeArrowWay(key, array, "fa-arrow-left", "left");
  483. removeArrowWay(key, array, "fa-arrow-down", "bottom");
  484. removeArrowWay(key, array, "fa-arrow-right", "right");
  485. removeArrowWay(key, array, "fa-suitcase", "havenbag");
  486. }
  487.  
  488. function removeArrowWay(key, array, className, iconType) {
  489. if ($('.' + className + '.toggled').length > 0) {
  490. if ($(".fa-random.toggled").length > 0) {
  491. if (array[key][iconType].icon !== undefined) {
  492. if (array[key].index == 4) {
  493. if (iconType == "top") {
  494. if (array[key].top.index == 1) {
  495. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  496. if (array[key].left.index > 1) array[key].left.index -= 1;
  497. if (array[key].right.index > 1) array[key].right.index -= 1;
  498. } else if (array[key].top.index == 2) {
  499. if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
  500. if (array[key].left.index > 2) array[key].left.index -= 1;
  501. if (array[key].right.index > 2) array[key].right.index -= 1;
  502. } else if (array[key].top.index == 3) {
  503. if (array[key].bottom.index > 3) array[key].bottom.index -= 1;
  504. if (array[key].left.index > 3) array[key].left.index -= 1;
  505. if (array[key].right.index > 3) array[key].right.index -= 1;
  506. }
  507. } else if (iconType == "bottom") {
  508. if (array[key].bottom.index == 1) {
  509. if (array[key].top.index > 1) array[key].top.index -= 1;
  510. if (array[key].left.index > 1) array[key].left.index -= 1;
  511. if (array[key].right.index > 1) array[key].right.index -= 1;
  512. } else if (array[key].bottom.index == 2) {
  513. if (array[key].top.index > 2) array[key].top.index -= 1;
  514. if (array[key].left.index > 2) array[key].left.index -= 1;
  515. if (array[key].right.index > 2) array[key].right.index -= 1;
  516. } else if (array[key].bottom.index == 3) {
  517. if (array[key].top.index > 3) array[key].top.index -= 1;
  518. if (array[key].left.index > 3) array[key].left.index -= 1;
  519. if (array[key].right.index > 3) array[key].right.index -= 1;
  520. }
  521. } else if (iconType == "left") {
  522. if (array[key].left.index == 1) {
  523. if (array[key].top.index > 1) array[key].top.index -= 1;
  524. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  525. if (array[key].right.index > 1) array[key].right.index -= 1;
  526. } else if (array[key].left.index == 2) {
  527. if (array[key].top.index > 2) array[key].top.index -= 1;
  528. if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
  529. if (array[key].right.index > 2) array[key].right.index -= 1;
  530. } else if (array[key].left.index == 3) {
  531. if (array[key].top.index > 3) array[key].top.index -= 1;
  532. if (array[key].bottom.index > 3) array[key].bottom.index -= 1;
  533. if (array[key].right.index > 3) array[key].right.index -= 1;
  534. }
  535. } else if (iconType == "right") {
  536. if (array[key].right.index == 1) {
  537. if (array[key].top.index > 1) array[key].top.index -= 1;
  538. if (array[key].left.index > 1) array[key].left.index -= 1;
  539. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  540. } else if (array[key].right.index == 2) {
  541. if (array[key].top.index > 2) array[key].top.index -= 1;
  542. if (array[key].left.index > 2) array[key].left.index -= 1;
  543. if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
  544. } else if (array[key].right.index == 3) {
  545. if (array[key].top.index > 3) array[key].top.index -= 1;
  546. if (array[key].left.index > 3) array[key].left.index -= 1;
  547. if (array[key].bottom.index > 3) array[key].bottom.index -= 1;
  548. }
  549. }
  550. } else if (array[key].index == 3) {
  551. if (iconType == "top") {
  552. if (array[key].top.index == 1) {
  553. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  554. if (array[key].left.index > 1) array[key].left.index -= 1;
  555. if (array[key].right.index > 1) array[key].right.index -= 1;
  556. } else if (array[key].top.index == 2) {
  557. if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
  558. if (array[key].left.index > 2) array[key].left.index -= 1;
  559. if (array[key].right.index > 2) array[key].right.index -= 1;
  560. }
  561. } else if (iconType == "bottom") {
  562. if (array[key].bottom.index == 1) {
  563. if (array[key].top.index > 1) array[key].top.index -= 1;
  564. if (array[key].left.index > 1) array[key].left.index -= 1;
  565. if (array[key].right.index > 1) array[key].right.index -= 1;
  566. } else if (array[key].bottom.index == 2) {
  567. if (array[key].top.index > 2) array[key].top.index -= 1;
  568. if (array[key].left.index > 2) array[key].left.index -= 1;
  569. if (array[key].right.index > 2) array[key].right.index -= 1;
  570. }
  571. } else if (iconType == "left") {
  572. if (array[key].left.index == 1) {
  573. if (array[key].top.index > 1) array[key].top.index -= 1;
  574. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  575. if (array[key].right.index > 1) array[key].right.index -= 1;
  576. } else if (array[key].left.index == 2) {
  577. if (array[key].top.index > 2) array[key].top.index -= 1;
  578. if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
  579. if (array[key].right.index > 2) array[key].right.index -= 1;
  580. }
  581. } else if (iconType == "right") {
  582. if (array[key].right.index == 1) {
  583. if (array[key].top.index > 1) array[key].top.index -= 1;
  584. if (array[key].left.index > 1) array[key].left.index -= 1;
  585. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  586. } else if (array[key].right.index == 2) {
  587. if (array[key].top.index > 2) array[key].top.index -= 1;
  588. if (array[key].left.index > 2) array[key].left.index -= 1;
  589. if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
  590. }
  591. }
  592. } else if (array[key].index == 2) {
  593. if (iconType == "top") {
  594. if (array[key].top.index == 1) {
  595. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  596. if (array[key].left.index > 1) array[key].left.index -= 1;
  597. if (array[key].right.index > 1) array[key].right.index -= 1;
  598.  
  599. }
  600. } else if (iconType == "bottom") {
  601. if (array[key].bottom.index == 1) {
  602. if (array[key].top.index > 1) array[key].top.index -= 1;
  603. if (array[key].left.index > 1) array[key].left.index -= 1;
  604. if (array[key].right.index > 1) array[key].right.index -= 1;
  605.  
  606. }
  607. } else if (iconType == "left") {
  608. if (array[key].left.index == 1) {
  609. if (array[key].top.index > 1) array[key].top.index -= 1;
  610. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  611. if (array[key].right.index > 1) array[key].right.index -= 1;
  612.  
  613. }
  614. } else if (iconType == "right") {
  615. if (array[key].right.index == 1) {
  616. if (array[key].top.index > 1) array[key].top.index -= 1;
  617. if (array[key].left.index > 1) array[key].left.index -= 1;
  618. if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
  619. }
  620. }
  621. }
  622. array[key].index -= 1;
  623. array[key][iconType].index = undefined;
  624. array[key][iconType].path = false;
  625. map.removeLayer(array[key][iconType].icon);
  626. array[key][iconType].icon = undefined;
  627. } else createMarkerWay(key, array, className, iconType);
  628. } else if (array[key][iconType].icon !== undefined) {
  629. array[key][iconType].path = false;
  630. map.removeLayer(array[key][iconType].icon);
  631. array[key][iconType].icon = undefined;
  632. } else createMarkerWay(key, array, className, iconType);
  633. }
  634. }
  635.  
  636. function createMarker(key, array) {
  637. createMarkerWay(key, array, "fa-arrow-up", "top");
  638. createMarkerWay(key, array, "fa-arrow-left", "left");
  639. createMarkerWay(key, array, "fa-arrow-down", "bottom");
  640. createMarkerWay(key, array, "fa-arrow-right", "right");
  641. createMarkerWay(key, array, "fa-suitcase", "havenbag");
  642. }
  643.  
  644. function createMarkerWay(key, array, className, iconType) {
  645. if ($('.' + className + '.toggled').length > 0) {
  646. if ($(".fa-leaf.toggled").length > 0) {
  647. if (iconType == "havenbag") {
  648. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  649. interactive: true,
  650. zIndexOffset: 5000,
  651. icon: icon[iconType].gather
  652. }).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
  653. } else {
  654. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  655. interactive: false,
  656. zIndexOffset: 5000,
  657. icon: icon[iconType].gather
  658. }).addTo(map);
  659. }
  660. array[key].gather = true;
  661. } else if ($(".fa-shield-alt.toggled").length > 0) {
  662. if (iconType == "havenbag") {
  663. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  664. interactive: true,
  665. zIndexOffset: 5000,
  666. icon: icon[iconType].fight
  667. }).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
  668. } else {
  669. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  670. interactive: false,
  671. zIndexOffset: 5000,
  672. icon: icon[iconType].fight
  673.  
  674. }).addTo(map);
  675. }
  676. array[key].fight = true;
  677. } else if ($(".fa-university.toggled").length > 0) {
  678. if (iconType == "right" || iconType == "left") {
  679. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1] * 1 + (0.2)), {
  680. interactive: false,
  681. zIndexOffset: 4500,
  682. icon: icon[iconType].bank
  683. }).addTo(map);
  684. } else if (iconType == "top" || iconType == "bottom") {
  685. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0] * 1 + (0.1), actualMap.split(", ")[1]), {
  686. interactive: false,
  687. zIndexOffset: 4500,
  688. icon: icon[iconType].bank
  689. }).addTo(map);
  690. } else if (iconType == "havenbag") {
  691. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  692. interactive: true,
  693. zIndexOffset: 5000,
  694. icon: icon[iconType].bank
  695. }).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
  696. }
  697. array[key].bank = true;
  698. } else if ($(".fa-fire.toggled").length > 0) {
  699. if (iconType == "right" || iconType == "left") {
  700. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1] * 1 - (0.2)), {
  701. interactive: false,
  702. zIndexOffset: 4000,
  703. icon: icon[iconType].phoenix
  704. }).addTo(map);
  705. } else if (iconType == "top" || iconType == "bottom") {
  706. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0] * 1 - (0.1), actualMap.split(", ")[1]), {
  707. interactive: false,
  708. zIndexOffset: 4000,
  709. icon: icon[iconType].phoenix
  710. }).addTo(map);
  711. } else if (iconType == "havenbag") {
  712. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  713. interactive: true,
  714. zIndexOffset: 5000,
  715. icon: icon[iconType].phoenix
  716. }).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
  717. }
  718. array[key].phenix = true;
  719. } else {
  720. if (iconType == "havenbag") {
  721. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  722. interactive: true,
  723. zIndexOffset: 5000,
  724. icon: icon[iconType].move
  725. }).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
  726. } else {
  727. array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
  728. interactive: false,
  729. zIndexOffset: 5000,
  730. icon: icon[iconType].move
  731. }).addTo(map);
  732. }
  733. }
  734. if ($(".fa-random.toggled").length > 0) {
  735. array[key].index += 1;
  736. array[key][iconType].index = array[key].index;
  737. array[key][iconType].path = true;
  738. } else {
  739. array[key][iconType].path = true;
  740. }
  741. }
  742. }
  743.  
  744. function pathGenerator(index, array) {
  745. var path = "";
  746. if (index !== undefined) {
  747. if (array.length !== 0) {
  748. if (array[index].havenbag.path)
  749. path = "havenbag";
  750. else {
  751. if (array[index].top.path)
  752. path = "top";
  753. if (array[index].bottom.path)
  754. path += (path === "" ? "" : "|") + "bottom";
  755. if (array[index].left.path)
  756. path += (path === "" ? "" : "|") + "left";
  757. if (array[index].right.path)
  758. path += (path === "" ? "" : "|") + "right";
  759. }
  760. return path;
  761. }
  762. }
  763. }
  764.  
  765. function checkPhenixPos(map) {
  766. for (let key in phenixPos) {
  767. if (map == phenixPos[key].map) {
  768. return [true, key];
  769. }
  770. }
  771. return false;
  772. }
  773.  
  774. function gatherFigh(index, array) {
  775. var path = "";
  776. if (array[index].gather)
  777. path = ", gather = true";
  778. if (array[index].fight)
  779. path += ", fight = true";
  780. return path;
  781. }
  782.  
  783. function havenbagCheck(option) {
  784. for (let index = 0; index < havenBagData.length; index++) {
  785. if (havenBagData[index][option]) {
  786. return true;
  787. }
  788. }
  789. return false;
  790. }
  791.  
  792. function getLinearAction(params, key) {
  793. if (pathLinearData[key].top.index == params) {
  794. return "top";
  795. } else if (pathLinearData[key].left.index == params) {
  796. return "left";
  797. } else if (pathLinearData[key].bottom.index == params) {
  798. return "bottom";
  799. } else if (pathLinearData[key].right.index == params) {
  800. return "right";
  801. } else if (pathLinearData[key].havenbag.index == params) {
  802. return "havenbag";
  803. }
  804. }
  805.  
  806. $('#path-creator-bar').on('click', '.fa-save', function () {
  807. var firstIf = false;
  808. var txt = "-- Generated On Dofus-Map with Drigtime's SwiftPath Script Maker --\r\n" +
  809. "-- Nom : " + $('#file-name-field').val() + "\r\n" +
  810. "-- Zone : " + $('#area-field').val() + "\r\n" +
  811. "-- Type : " + ($('#type-field').val() ? $('#type-field').val() : "") + "\r\n" +
  812. "-- Version : " + $('#version-field').val() + "\r\n" +
  813. "-- Auteur : " + $('#author-field').val() + "\r\n\r\n" +
  814. "GATHER = {" + ($('#ressources-selecter').val() ? $('#ressources-selecter').val() : "") + "}\r\n" +
  815. "OPEN_BAGS = " + $('#open-bag-checkbox').is(":checked") + "\r\n" +
  816. "AUTO_DELETE = {" + $('#auto-delete-field').val() + "}\r\n\r\n" +
  817. "MAX_MONSTERS = " + $('#max-monster').val() + "\r\n" +
  818. "MIN_MONSTERS = " + $('#min-monster').val() + "\r\n\r\n" +
  819. "FORBIDDEN_MONSTERS = {" + $('#forbidden-ennemy-field').val() + "}\r\n" +
  820. "FORCE_MONSTERS = {" + $('#mendatory-ennemy-field').val() + "}\r\n\r\n";
  821. if (pathLinearData.length !== 0) {
  822. txt +=
  823. 'function GatherFight()\r\n' +
  824. '\tfor index, actualMap in pairs(mapsWithChangeMap) do\r\n' +
  825. '\t\tif (map:onMap(actualMap.map)) then\r\n' +
  826. '\t\t\tif actualMap.gather and actualMap.fight then\r\n' +
  827. '\t\t\t\treturn "both"\r\n' +
  828. '\t\t\telseif actualMap.gather then\r\n' +
  829. '\t\t\t\treturn "gather"\r\n' +
  830. '\t\t\telseif actualMap.forcegather then\r\n' +
  831. '\t\t\t\treturn "forcegather"\r\n' +
  832. '\t\t\telseif actualMap.fight then\r\n' +
  833. '\t\t\t\treturn "fight"\r\n' +
  834. '\t\t\telseif actualMap.forcefight then\r\n' +
  835. '\t\t\t\treturn "forcefight"\r\n' +
  836. '\t\t\tend\r\n' +
  837. '\t\t\treturn "path"\r\n' +
  838. '\t\tend\r\n' +
  839. '\tend\r\n' +
  840. '\treturn false\r\n' +
  841. 'end\r\n' +
  842. '\r\n' +
  843. '------------------\r\n' +
  844. '\r\n' +
  845. 'function move()\r\n';
  846. if (havenbagCheck('move')) {
  847. txt += "\tif map:onMap(\"0,0\") then\r\n";
  848. firstIf = false;
  849. for (let index = 0; index < havenBagData.length; index++) {
  850. if (havenBagData[index].move) {
  851. if (!firstIf) {
  852. txt += "\t\tif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
  853. firstIf = true;
  854. } else
  855. txt += "\t\telseif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
  856. }
  857. }
  858. txt += '\t\tend\r\n' +
  859. '\telse\r\n' +
  860. '\t\tactualMap = map:currentMap()\r\n' +
  861. '\tend\r\n';
  862. }
  863. txt +=
  864. '\tif banque then\r\n' +
  865. '\t\tfor index, actualMap in pairs(mapsWithChangeMap) do\r\n' +
  866. '\t\t\tif actualMap.doNextMap then\r\n' +
  867. '\t\t\t\tactualMap.doNextMap = "no"\r\n' +
  868. '\t\t\tend\r\n' +
  869. '\t\t\tif actualMap.doThirdMap then\r\n' +
  870. '\t\t\t\tactualMap.doThirdMap = "no"\r\n' +
  871. '\t\t\tend\r\n' +
  872. '\t\t\tif actualMap.doFourthdMap then\r\n' +
  873. '\t\t\t\tactualMap.doFourthMap = "no"\r\n' +
  874. '\t\t\tend\r\n' +
  875. '\t\tend\r\n' +
  876. '\t\tbanque = false\r\n' +
  877. '\tend\r\n' +
  878. '\tif GatherFight() == "both" then\r\n' +
  879. '\t\treturn {\r\n' +
  880. '\t\t\t{map = map:currentMap(), custom = processMap, gather = true, fight = true}\r\n' +
  881. '\t\t}\r\n' +
  882. '\telseif GatherFight() == "gather" then\r\n' +
  883. '\t\treturn {\r\n' +
  884. '\t\t\t{map = map:currentMap(), custom = processMap, gather = true}\r\n' +
  885. '\t\t}\r\n' +
  886. '\telseif GatherFight() == "forcegather" then\r\n' +
  887. '\t\treturn {\r\n' +
  888. '\t\t\t{map = map:currentMap(), custom = processMap, forcegather = true}\r\n' +
  889. '\t\t}\r\n' +
  890. '\telseif GatherFight() == "fight" then\r\n' +
  891. '\t\treturn {\r\n' +
  892. '\t\t\t{map = map:currentMap(), custom = processMap, fight = true}\r\n' +
  893. '\t\t}\r\n' +
  894. '\telseif GatherFight() == "forcefight" then\r\n' +
  895. '\t\treturn {\r\n' +
  896. '\t\t\t{map = map:currentMap(), custom = processMap, forcefight = true}\r\n' +
  897. '\t\t}\r\n' +
  898. '\telseif GatherFight() == "path" then\r\n' +
  899. '\t\treturn {\r\n' +
  900. '\t\t\t{map = map:currentMap(), custom = processMap}\r\n' +
  901. '\t\t}\r\n' +
  902. '\telse\r\n' +
  903. '\t\tglobal:printError("Aucune action sur la map : " .. map:currentMap() .. " | mapID : " .. map:currentMapId())\r\n' +
  904. '\t\tglobal:disconnect()\r\n' +
  905. '\tend\r\n' +
  906. 'end\r\n' +
  907. '\r\n' +
  908. 'mapsWithChangeMap = {\r\n';
  909. for (let key in pathLinearData) {
  910. txt += '\t{map = "' + pathLinearData[key].map.replace(' ', '') + '", changeMap = "' + getLinearAction(1, key) + '"' + (pathLinearData[key].index >= 2 ? ', nextMap = "' + getLinearAction(2, key) + '", doNextMap = "no"' : "") + (pathLinearData[key].index >= 3 ? ', thirdMap = "' + getLinearAction(3, key) + '", doThirdMap = "no"' : "") + (pathLinearData[key].index >= 4 ? ', fourthMap = "' + getLinearAction(4, key) + '", doFourthMap = "no"' : "") + gatherFigh(key, pathLinearData) + '},\r\n';
  911. }
  912. for (let key in pathData) {
  913. txt += '\t{map = "' + pathData[key].map.replace(" ", "") + '", changeMap = "' + pathGenerator(key, pathData) + '"' + gatherFigh(key, pathData) + '},\r\n';
  914. }
  915. txt += '}\r\n' +
  916. '\r\n' +
  917. 'function processMap()\r\n' +
  918. '\tfor index, actualMap in pairs(mapsWithChangeMap) do\r\n' +
  919. '\t\tif (map:onMap(actualMap.map)) then\r\n' +
  920. '\t\t\tif (actualMap.doNextMap) and (actualMap.doThirdMap) and (actualMap.doFourthMap) then\r\n' +
  921. '\t\t\t\tif (actualMap.doFourthMap) == "yes" then\r\n' +
  922. '\t\t\t\t\tactualMap.doFourthMap = "no"\r\n' +
  923. '\t\t\t\t\tif (actualMap.fourthMapDoor) then\r\n' +
  924. '\t\t\t\t\t\tactualMap.fourthMapDoor = tonumber(actualMap.fourthMapDoor)\r\n' +
  925. '\t\t\t\t\t\tmap:door(actualMap.fourthMapDoor)\r\n' +
  926. '\t\t\t\t\telseif (actualMap.fourthMapCustom) then\r\n' +
  927. '\t\t\t\t\t\treturn (actualMap.fourthMapCustom)()\r\n' +
  928. '\t\t\t\t\telse\r\n' +
  929. '\t\t\t\t\t\tmap:changeMap(actualMap.fourthMap)\r\n' +
  930. '\t\t\t\t\tend\r\n' +
  931. '\t\t\t\telseif (actualMap.doThirdMap) == "yes" then\r\n' +
  932. '\t\t\t\t\tactualMap.doThirdMap = "no"\r\n' +
  933. '\t\t\t\t\tactualMap.doFourthMap = "yes"\r\n' +
  934. '\t\t\t\t\tif (actualMap.thirdMapDoor) then\r\n' +
  935. '\t\t\t\t\t\tactualMap.thirdMapDoor = tonumber(actualMap.thirdMapDoor)\r\n' +
  936. '\t\t\t\t\t\tmap:door(actualMap.thirdMapDoor)\r\n' +
  937. '\t\t\t\t\telseif (actualMap.thirdMapCustom) then\r\n' +
  938. '\t\t\t\t\t\treturn (actualMap.thirdMapCustom)()\r\n' +
  939. '\t\t\t\t\telse\r\n' +
  940. '\t\t\t\t\t\tmap:changeMap(actualMap.thirdMap)\r\n' +
  941. '\t\t\t\t\tend\r\n' +
  942. '\t\t\t\telseif (actualMap.doNextMap == "yes") then\r\n' +
  943. '\t\t\t\t\tactualMap.doNextMap = "no"\r\n' +
  944. '\t\t\t\t\tactualMap.doThirdMap = "yes"\r\n' +
  945. '\t\t\t\t\tif (actualMap.nextMapDoor) then\r\n' +
  946. '\t\t\t\t\t\tactualMap.nextMapDoor = tonumber(actualMap.nextMapDoor)\r\n' +
  947. '\t\t\t\t\t\tmap:door(actualMap.nextMapDoor)\r\n' +
  948. '\t\t\t\t\telseif (actualMap.nextMapCustom) then\r\n' +
  949. '\t\t\t\t\t\treturn (actualMap.nextMapCustom)()\r\n' +
  950. '\t\t\t\t\telse\r\n' +
  951. '\t\t\t\t\t\tmap:changeMap(actualMap.nextMap)\r\n' +
  952. '\t\t\t\t\tend\r\n' +
  953. '\t\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
  954. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  955. '\t\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
  956. '\t\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
  957. '\t\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
  958. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  959. '\t\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
  960. '\t\t\t\telseif (actualMap.changeMap) then\r\n' +
  961. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  962. '\t\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
  963. '\t\t\t\tend\r\n' +
  964. '\t\t\telseif (actualMap.doNextMap) and (actualMap.doThirdMap) then\r\n' +
  965. '\t\t\t\tif (actualMap.doThirdMap) == "yes" then\r\n' +
  966. '\t\t\t\t\tactualMap.doThirdMap = "no"\r\n' +
  967. '\t\t\t\t\tif (actualMap.thirdMapDoor) then\r\n' +
  968. '\t\t\t\t\t\tactualMap.thirdMapDoor = tonumber(actualMap.thirdMapDoor)\r\n' +
  969. '\t\t\t\t\t\tmap:door(actualMap.thirdMapDoor)\r\n' +
  970. '\t\t\t\t\telseif (actualMap.thirdMapCustom) then\r\n' +
  971. '\t\t\t\t\t\treturn (actualMap.thirdMapCustom)()\r\n' +
  972. '\t\t\t\t\telse\r\n' +
  973. '\t\t\t\t\t\tmap:changeMap(actualMap.thirdMap)\r\n' +
  974. '\t\t\t\t\tend\r\n' +
  975. '\t\t\t\telseif (actualMap.doNextMap == "yes") then\r\n' +
  976. '\t\t\t\t\tactualMap.doNextMap = "no"\r\n' +
  977. '\t\t\t\t\tactualMap.doThirdMap = "yes"\r\n' +
  978. '\t\t\t\t\tif (actualMap.nextMapDoor) then\r\n' +
  979. '\t\t\t\t\t\tactualMap.nextMapDoor = tonumber(actualMap.nextMapDoor)\r\n' +
  980. '\t\t\t\t\t\tmap:door(actualMap.nextMapDoor)\r\n' +
  981. '\t\t\t\t\telseif (actualMap.nextMapCustom) then\r\n' +
  982. '\t\t\t\t\t\treturn (actualMap.nextMapCustom)()\r\n' +
  983. '\t\t\t\t\telse\r\n' +
  984. '\t\t\t\t\t\tmap:changeMap(actualMap.nextMap)\r\n' +
  985. '\t\t\t\t\tend\r\n' +
  986. '\t\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
  987. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  988. '\t\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
  989. '\t\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
  990. '\t\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
  991. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  992. '\t\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
  993. '\t\t\t\telseif (actualMap.changeMap) then\r\n' +
  994. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  995. '\t\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
  996. '\t\t\t\tend\r\n' +
  997. '\t\t\telseif (actualMap.doNextMap) then\r\n' +
  998. '\t\t\t\tif (actualMap.doNextMap == "yes") then\r\n' +
  999. '\t\t\t\t\tactualMap.doNextMap = "no"\r\n' +
  1000. '\t\t\t\t\tif (actualMap.nextMapDoor) then\r\n' +
  1001. '\t\t\t\t\t\tactualMap.nextMapDoor = tonumber(actualMap.nextMapDoor)\r\n' +
  1002. '\t\t\t\t\t\tmap:door(actualMap.nextMapDoor)\r\n' +
  1003. '\t\t\t\t\telseif (actualMap.nextMapCustom) then\r\n' +
  1004. '\t\t\t\t\t\treturn (actualMap.nextMapCustom)()\r\n' +
  1005. '\t\t\t\t\telse\r\n' +
  1006. '\t\t\t\t\t\tmap:changeMap(actualMap.nextMap)\r\n' +
  1007. '\t\t\t\t\tend\r\n' +
  1008. '\t\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
  1009. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  1010. '\t\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
  1011. '\t\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
  1012. '\t\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
  1013. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  1014. '\t\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
  1015. '\t\t\t\telseif (actualMap.changeMap) then\r\n' +
  1016. '\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
  1017. '\t\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
  1018. '\t\t\t\tend\r\n' +
  1019. '\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
  1020. '\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
  1021. '\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
  1022. '\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
  1023. '\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
  1024. '\t\t\telseif (actualMap.changeMap) then\r\n' +
  1025. '\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
  1026. '\t\t\telseif (actualMap.forcegather) then\r\n' +
  1027. '\t\t\tend\r\n' +
  1028. '\t\tend\r\n' +
  1029. '\tend\r\n' +
  1030. 'end\r\n\r\n';
  1031. } else {
  1032. txt += "\r\nfunction move()\r\n";
  1033. if (havenbagCheck('move')) {
  1034. txt += "\tif map:onMap(\"0,0\") then\r\n";
  1035. firstIf = false;
  1036. for (let index = 0; index < havenBagData.length; index++) {
  1037. if (havenBagData[index].move) {
  1038. if (!firstIf) {
  1039. txt += "\t\tif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
  1040. firstIf = true;
  1041. } else
  1042. txt += "\t\telseif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
  1043. }
  1044. }
  1045. txt += '\t\tend\r\n' +
  1046. '\telse\r\n' +
  1047. '\t\tactualMap = map:currentMap()\r\n' +
  1048. '\tend\r\n';
  1049. }
  1050. txt += '\treturn {\r\n' +
  1051. '\t\t{map = "83887104", path = "396"}, --Interieur banque Astrub vers Sortie--\r\n' +
  1052. '\t\t{map = "54534165", path = "424"}, --Interieur banque Frigost vers Sortie--\r\n' +
  1053. '\t\t{map = "2885641", path = "424"}, --Interieur banque Bonta vers Sortie--\r\n' +
  1054. '\t\t{map = "99095051", path = "410"}, --Interieur banque Amakna vers Sortie--\r\n' +
  1055. '\t\t{map = "8912911", path = "424"}, --Interieur banque Brakmar vers Sortie--\r\n' +
  1056. '\t\t{map = "91753985", path = "396"}, --Interieur banque Sufokia vers Sortie--\r\n' +
  1057. '\t\t{map = "86511105", door = "452"}, --Interieur banque Ottomaï vers Sortie--\r\n' +
  1058. '\t\t{map = "8129542", path = "409"}, --Interieur banque Pandala vers Sortie--\r\n' +
  1059. '\t\t{map = "84935175", path = "425"}, --Interieur banque Montagne Koalak vers Sortie--\r\n';
  1060. for (let key in pathData) {
  1061. txt += '\t\t{map = "' + pathData[key].map.replace(" ", "") + '", path = "' + pathGenerator(key, pathData) + '"' + gatherFigh(key, pathData) + '},\r\n';
  1062. }
  1063. txt += '\t}\r\nend\r\n\r\n';
  1064. }
  1065. txt += "function bank()\r\n";
  1066. if (pathLinearData.length !== 0) {
  1067. txt += '\tbanque = true\r\n';
  1068. }
  1069. if (havenbagCheck('bank')) {
  1070. txt += "\tif map:onMap(\"0,0\") then\r\n";
  1071. firstIf = false;
  1072. for (let index = 0; index < havenBagData.length; index++) {
  1073. if (havenBagData[index].bank) {
  1074. if (!firstIf) {
  1075. txt += "\t\tif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
  1076. firstIf = true;
  1077. } else
  1078. txt += "\t\telseif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
  1079. }
  1080. }
  1081. txt += "\t\tend\r\n" +
  1082. "\telse\r\n" +
  1083. "\t\tactualMap = map:currentMap()\r\n" +
  1084. "\tend\r\n";
  1085. }
  1086. txt += "\treturn {\r\n";
  1087. for (let key in bankData) {
  1088. txt += '\t\t{map = "' + bankData[key].map.replace(" ", "") + '", path = "' + pathGenerator(key, bankData) + '"},\r\n';
  1089. }
  1090. txt += '\t\t{map = "84674566", door = "303"}, --Devant banque Astrub--\r\n' +
  1091. '\t\t{map = "83887104", path = "396", npcBank = true}, --Banque Astrub--\r\n' +
  1092. '\t\t{map = "54172457", door = "358"}, --Devant banque Frigost--\r\n' +
  1093. '\t\t{map = "54534165", path = "424", npcBank = true}, --Banque Frigost--\r\n' +
  1094. '\t\t{map = "147254", door = "383"}, --Devant banque Bonta--\r\n' +
  1095. '\t\t{map = "2885641", path = "424", npcBank = true}, --Banque Bonta--\r\n' +
  1096. '\t\t{map = "88081177", door = "216"}, --Devant banque Amakna--\r\n' +
  1097. '\t\t{map = "99095051", path = "410", npcBank = true}, --Banque Amakna--\r\n' +
  1098. '\t\t{map = "144931", door = "248"}, --Devant banque Brakmar--\r\n' +
  1099. '\t\t{map = "8912911", path = "424", npcBank = true}, --Banque Brakmar--\r\n' +
  1100. '\t\t{map = "90703872", door = "302"}, --Devant banque Sufokia --\r\n' +
  1101. '\t\t{map = "91753985", path = "494", npcBank = true}, --Banque Sufokia--\r\n' +
  1102. '\t\t{map = "155157", door = "355"}, --Devant banque Ottomaï--\r\n' +
  1103. '\t\t{map = "86511105", door = "452", npcBank = true}, --Banque Ottomaï--\r\n' +
  1104. '\t\t{map = "12580", door = "284"}, --Devant banque Pandala--\r\n' +
  1105. '\t\t{map = "8129542", path = "409", npcBank = true}, --Banque Pandala--\r\n' +
  1106. '\t\t{map = "73400323", door = "330"}, --Devant banque Montagne Koalak--\r\n' +
  1107. '\t\t{map = "84935175", path = "425", npcBank = true}, --Banque Montagne Koalak--\r\n\t}\r\nend\r\n' +
  1108. '\r\n\r\nfunction phenix()\r\n';
  1109. if (havenbagCheck('phenix')) {
  1110. txt += "\tif map:onMap(\"0,0\") then\r\n";
  1111. firstIf = false;
  1112. for (let index = 0; index < havenBagData.length; index++) {
  1113. if (havenBagData[index].phenix) {
  1114. if (!firstIf) {
  1115. txt += '\t\tif actualMap == \"' + havenBagData[index].map + '\" then\r\n\t\t\tmap:changeMap(\"zaap(' + havenBagData[index].mapidToGo + ')\")\r\n';
  1116. firstIf = true;
  1117. } else
  1118. txt += '\t\telseif actualMap == \"' + havenBagData[index].map + '\" then\r\n\t\t\tmap:changeMap(\"zaap(' + havenBagData[index].mapidToGo + ')\")\r\n';
  1119. }
  1120. }
  1121. txt += '\t\tend\r\n' +
  1122. '\telse\r\n' +
  1123. '\t\tactualMap = map:currentMap()\r\n' +
  1124. '\tend\r\n';
  1125. } else if (havenbagCheck('move')) txt += '\tactualMap = map:currentMap()\r\n';
  1126. txt += "\treturn {\r\n";
  1127. for (let key in phenixData) {
  1128. if (checkPhenixPos(phenixData[key].map.replace(" ", ""))[0]) {
  1129. txt += '\t\t{map = "' + phenixPos[checkPhenixPos(phenixData[key].map.replace(" ", ""))[1]].map + '", phenix = "' + phenixPos[checkPhenixPos(phenixData[key].map.replace(" ", ""))[1]].cellid + '", path = "' + pathGenerator(key, phenixData) + '"},\r\n';
  1130. } else {
  1131. txt += '\t\t{map = "' + phenixData[key].map.replace(" ", "") + '", path = "' + pathGenerator(key, phenixData) + '"},\r\n';
  1132. }
  1133. }
  1134. txt += '\t}\r\nend\r\n';
  1135. saveTextAsFile(txt);
  1136. });
  1137.  
  1138. function saveTextAsFile(txt) {
  1139. var textToSaveAsBlob = new Blob([txt], {
  1140. type: "text/plain"
  1141. });
  1142. var textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob);
  1143. var fileNameToSaveAs = '[' + ($('#type-field').val() ? $('#type-field').val() : "") + '][' + $('#area-field').val() + ']' + $('#file-name-field').val() + '.lua';
  1144. var downloadLink = document.createElement("a");
  1145. downloadLink.download = fileNameToSaveAs;
  1146. downloadLink.innerHTML = "Download File";
  1147. downloadLink.href = textToSaveAsURL;
  1148. downloadLink.style.display = "none";
  1149. document.body.appendChild(downloadLink);
  1150. downloadLink.click();
  1151. }
  1152.  
  1153. function languageSelector(params) {
  1154. switch (params) {
  1155. case "fr":
  1156. $('#path-creator-bar').empty().append('<div class="leaflet-bar leaflet-control path-selecter"> <a class="leaflet-control-zoom-in fas fa-arrow-up" href="#" title="Haut" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-down" href="#" title="Bas" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-left" href="#" title="Gauche" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-right" href="#" title="Droite" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-suitcase" href="#" title="Havre-sac" style="color:black;"></a> </div><div class="leaflet-bar leaflet-control tool-selecter"> <a class="leaflet-control-zoom-in fas fa-eraser" href="#" title="Effacer une action" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-random" href="#" title="Linéaire" style="color:black;"></a> </div><div class="leaflet-bar leaflet-control path-type-selecter"> <a class="leaflet-control-zoom-in fas fa-arrows-alt toggled" href="#" title="Deplacement" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-shield-alt" href="#" title="Combat" style="color:#d82121;"></a> <a class="leaflet-control-zoom-in fas fa-leaf" href="#" title="Récolte" style="color:#229e22;"></a> <a class="leaflet-control-zoom-in fas fa-university" href="#" title="Banque" style="color:#3a3ab9;"></a> <a class="leaflet-control-zoom-in fas fa-fire" href="#" title="Phenix" style="color:purple;"></a> </div><div class="leaflet-bar leaflet-control path-setting"> <a class="leaflet-control-zoom-in fas fa-info-circle" href="#" title="Paramétre du trajet" style="color:#3a3ab9;"></a> <a class="leaflet-control-zoom-in fas fa-save" href="#" title="Sauvegarder" style="color:#3a3ab9;"></a> <input type="file" id="file" title="Ouvrir" style="display: none;"> <a class="leaflet-control-zoom-in fas fa-folder-open" href="#" title="Ouvrir" style="color:#ffd228;"></a> <a class="leaflet-control-zoom-in fas fa-trash-alt" href="#" title="Supprimer tout" style="color:#4c4c4c;"></a> <a class="leaflet-control-zoom-in fas fa-cog" href="#" title="Paramétre" style="color:#4c4c4c;"></a> </div>');
  1157. $('#havenBagSetting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <h4 class="modal-title" id="myModalLabel">Zaap : </h4> </div><div class="modal-body"> <label>Zaap d\'arrivée :</label> <select class="form-control" id="sel1"> <option value=\'{"map": "4,-19", "mapid": "84674563"}\'>Astrub | 4,-19</option> <option value=\'{"map": "-32,-56", "mapid": "147768"}\'>Bonta | -32,-56</option> <option value=\'{"map": "-26,35", "mapid": "144419"}\'>Brâkmar | -26,35</option> <option value=\'{"map": "-1,13", "mapid": "88212746"}\'>Amakna (Bord de la forêt maléfique) | -1,13</option> <option value=\'{"map": "3,-5", "mapid": "68552706"}\'>Amakna (Château d\'Amakna) | 3,-5</option> <option value=\'{"map": "5,7", "mapid": "88082704"}\'>Amakna (Coins des Bouftous) | 5,7</option> <option value=\'{"map": "7,-4", "mapid": "68419587"}\'>Amakna (Port de Madrestam) | 7,-4</option> <option value=\'{"map": "-2,0", "mapid": "88213271"}\'>Amakna (Village d\'Amakna) | -2,0</option> <option value=\'{"map": "-1,24", "mapid": "88212481"}\'>Amakna (Plaîne des Scarafeuilles) | -1,24</option> <option value=\'{"map": "10,22", "mapid": "88085249"}\'>Baie de Sufokia (Rivage Sufokien) | 10,22</option> <option value=\'{"map": "13,26", "mapid": "95422468"}\'>Baie de Sufokia (Sufokia) | 13,26</option> <option value=\'{"map": "-46,18", "mapid": "154642"}\'>Île d\'Otomaïl (Village côtier) | -46,18</option> <option value=\'{"map": "-79,-41", "mapid": "54172969"}\'>Île de Frigost (La Bourgade) | -79,-41</option> <option value=\'{"map": "-77,-73", "mapid": "54172489"}\'>Île de Frigost (Village enseveli) | -77,-73</option> <option value=\'{"map": "35,12", "mapid": "156762120"}\'>Île de Moon (Plage de la Tortue) | 35,12</option> <option value=\'{"map": "-16,1", "mapid": "73400320"}\'>Montagne des Koalaks (Village des Eleveurs) | -16,1</option> <option value=\'{"map": "26,-37", "mapid": "13605"}\'>Pandala Neutre (Faubourgs de Pandala) | 26,-37</option> <option value=\'{"map": "29,-49", "mapid": "15153"}\'>Pandala Feu (Village de Feudala) | 29,-49</option> <option value=\'{"map": "-27,-36", "mapid": "142087694"}\'>Plaine de Cania (Champs de Cania) | -27,-36</option> <option value=\'{"map": "-3,-42", "mapid": "156240386"}\'>Plaine de Cania (Lac de Cania) | -3,-42</option> <option value=\'{"map": "-13,-28", "mapid": "165152263"}\'>Plaine de Cania (Massif de Cania) | -13,-28</option> <option value=\'{"map": "-5,-23", "mapid": "84806401"}\'>Plaine de Cania (Plaine des Porkass) | -5,-23</option> <option value=\'{"map": "-17,-47", "mapid": "147590153"}\'>Plaine de Cania (Plaines Rocheuses) | -17,-47</option> <option value=\'{"map": "-20,-20", "mapid": "164364304"}\'>Plaine de Cania (Route Rocailleuse) | -20,-20</option> <option value=\'{"map": "15,-58", "mapid": "173278210"}\'>Saharach (Dunes des ossements) | 15,-58</option> <option value=\'{"map": "-25,12", "mapid": "171967506"}\'>Landes de Sidimote (Route des Roulottes) | -25,12</option> </select> </div><div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button> <button type="button" class="btn btn-primary">Valider</button> </div></div></div>');
  1158. $('#pathSetting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Paramétre du trajet</h4> </div><div class="modal-body"> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active"> <a href="#informationTab" aria-controls="informationTab" role="tab" data-toggle="tab">Information</a> </li><li role="presentation"> <a href="#fightTab" aria-controls="fightTab" role="tab" data-toggle="tab">Combat</a> </li><li role="presentation"> <a href="#gatherTab" aria-controls="gatherTab" role="tab" data-toggle="tab">Récolte</a> </li><li role="presentation"> <a href="#bankTab" aria-controls="bankTab" role="tab" data-toggle="tab">Banque</a> </li></ul> <div class="tab-content"> <div role="tabpanel" class="tab-pane active" id="informationTab"> <br/> <div class="row no-gutters"> <div class="col col-sm-2"> <p>Nom :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" id="file-name-field"> </div><p></p></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Zone :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" placeholder="Astrub" id="area-field"> </div></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Type :</p></div><div class="col col-sm-10"> <select class="form-control" id="type-field"> <option disabled selected value></option> <option>Combat</option> <option>Déplacement</option> <option>Récolte</option> </select> </div><p></p></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Version :</p></div><div class="col col-sm-10"> <input type="number" value="1.0" step="0.1" class="form-control" id="version-field"> </div></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Auteur :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" placeholder="Drigtime" id="author-field"> </div></div><br></div><div role="tabpanel" class="tab-pane" id="fightTab"> <br/> <div class="row"> <div class="col col-sm-5"> <p>Nombre de monstres minimum : </p></div><div class="col col-sm-7"> <input type="number" max="8" min="1" value="1" id="min-monster" class="=" form-control> </div></div><div class="row"> <div class="col col-sm-5"> <p>Nombre de monstres maximum : </p></div><div class="col col-sm-7"> <input type="number" max="8" min="1" value="8" id="max-monster" class="=" form-control> </div></div><br/> <div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Monstres interdit</div><div class="panel-body"> <div class="col col-sm-5"> <p>Liste des monstres à éviter : </p></div><div class="col col-sm-6"> <input type="text" class="form-control" placeholder="ex : 101, 98 ..." id="forbidden-ennemy-field"> </div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/monstres.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div><div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Monstres obligatoire</div><div class="panel-body"> <div class="col col-sm-5"> <p>Liste des monstres à avoir : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="mendatory-ennemy-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/monstres.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div></div><div role="tabpanel" class="tab-pane" id="gatherTab"> <br/> <div class="checkbox checbox-switch switch-primary"> <label> <input type="checkbox" id="open-bag-checkbox" checked=""/> <span></span> Ouverture automatique des sacs de ressources </label> </div><div class="panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Ressources à récolter</div><div class="panel-body" id="ressources-to-gather"> <div class="row"> <div class="col col-sm-5"> <p>Liste des ressources à récolter : </p></div><div class="col col-sm-7"> <select class="form-control selectpicker" data-live-search="true" multiple data-dropup-auto="false" id="ressources-selecter"> </select> </div></div><div class="ressources-selected-summary"></div></div></div></div><div role="tabpanel" class="tab-pane" id="bankTab"> <br/><div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Objets à supprimer automatiquement</div><div class="panel-body"> <div class="col col-sm-5"> <p>Liste des objets à supprimer automatiquement : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="auto-delete-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/objets.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div></div></div></div><div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Valider</button> </div></div></div></div></div>');
  1159. $('#setting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Paramétre</h4> </div><div class="modal-body"> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation"> <a href="#shortcutTab" aria-controls="shortcutTab" role="tab" data-toggle="tab">Raccourcis</a> </li><li role="presentation" class="active"> <a href="#languageTab" aria-controls="languageTab" role="tab" data-toggle="tab">Langue</a> </li></ul> <div class="tab-content"> <div role="tabpanel" class="tab-pane" id="shortcutTab"> <br/> <table class="table table-bordered table-hover table-condensed table-responsive"> <thead> <tr> <th> Nom de l\'action </th> <th> Raccourci </th> </tr></thead> <tbody> <tr> <td> Haut </td><td> <input type="text" class="form\-control" id="shortcut-key-up" value="' + GM_getValue("shortcut-key-up", "z") + '" readonly> </td></tr><tr> <td> Bas </td><td> <input type="text" class="form\-control" id="shortcut-key-down" value="' + GM_getValue("shortcut-key-down", "s") + '" readonly> </td></tr><tr> <td> Gauche </td><td> <input type="text" class="form\-control" id="shortcut-key-left" value="' + GM_getValue("shortcut-key-left", "q") + '" readonly> </td></tr><tr> <td> Droite </td><td> <input type="text" class="form\-control" id ="shortcut-key-right" value="' + GM_getValue("shortcut-key-right", "d") + '" readonly> </td></tr><tr> <td> Havre-sac </td><td> <input type="text" class="form\-control" id="shortcut-key-havenbag" value="' + GM_getValue("shortcut-key-havenbag", "a") + '" readonly> </td></tr><tr> <td> Effacer une action </td><td> <input type="text" class="form\-control" id="shortcut-key-erase" value="' + GM_getValue("shortcut-key-erase", "e") + '" readonly> </td></tr></tbody> </table> </div><div role="tabpanel" class="tab-pane active" id="languageTab"> <br/> <div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Langue</div><div class="panel-body"> <select multiple class="form-control" id="language-selected"> <option value="fr">Français</option> <option value="en">English</option> <option value="es">Español</option> </select> </div></div></div><div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Valider</button> </div></div></div></div></div></div>');
  1160. $('#ressources-selecter').empty();
  1161. for (let key in ressourcesFr) {
  1162. $('#ressources-selecter').append('<option value="' + ressourcesFr[key].itemId + '">' + ressourcesFr[key].itemName + '</option>');
  1163. }
  1164. GM_setValue("language", "fr");
  1165. break;
  1166. case "en":
  1167. $('#path-creator-bar').empty().append('<div class="leaflet-bar leaflet-control path-selecter"> <a class="leaflet-control-zoom-in fas fa-arrow-up" href="#" title="Top" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-down" href="#" title="Bottom" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-left" href="#" title="Left" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-right" href="#" title="Right" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-suitcase" href="#" title="Havenbag" style="color:black;"></a> </div><div class="leaflet-bar leaflet-control tool-selecter"> <a class="leaflet-control-zoom-in fas fa-eraser" href="#" title="Erase an action" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-random" href="#" title="Linear" style="color:black;"></a> </div><div class="leaflet-bar leaflet-control path-type-selecter"> <a class="leaflet-control-zoom-in fas fa-arrows-alt toggled" href="#" title="Move" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-shield-alt" href="#" title="Fight" style="color:#d82121;"></a> <a class="leaflet-control-zoom-in fas fa-leaf" href="#" title="Gather" style="color:#229e22;"></a> <a class="leaflet-control-zoom-in fas fa-university" href="#" title="Bank" style="color:#3a3ab9;"></a> <a class="leaflet-control-zoom-in fas fa-fire" href="#" title="Phoneix" style="color:purple;"></a> </div><div class="leaflet-bar leaflet-control path-setting"> <a class="leaflet-control-zoom-in fas fa-info-circle" href="#" title="Setting of the path" style="color:#3a3ab9;"></a> <a class="leaflet-control-zoom-in fas fa-save" href="#" title="Save" style="color:#3a3ab9;"></a> <input type="file" id="file" style="display: none;"> <a class="leaflet-control-zoom-in fas fa-folder-open" href="#" title="Open" style="color:#ffd228;"></a> <a class="leaflet-control-zoom-in fas fa-trash-alt" href="#" title="Erase all" style="color:#4c4c4c;"></a> <a class="leaflet-control-zoom-in fas fa-cog" href="#" title="Setting" style="color:#4c4c4c;"></a> </div>');
  1168. $('#havenBagSetting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <h4 class="modal-title" id="myModalLabel">Zaap : </h4> </div><div class="modal-body"> <label>Zaap to go :</label> <select class="form-control" id="sel1"> <option value=\'{"map": "4,-19", "mapid": "84674563"}\'>Astrub | 4,-19</option> <option value=\'{"map": "-32,-56", "mapid": "147768"}\'>Bonta | -32,-56</option> <option value=\'{"map": "-26,35", "mapid": "144419"}\'>Brâkmar | -26,35</option> <option value=\'{"map": "-1,13", "mapid": "88212746"}\'>Amakna (Bord de la forêt maléfique) | -1,13</option> <option value=\'{"map": "3,-5", "mapid": "68552706"}\'>Amakna (Château d\'Amakna) | 3,-5</option> <option value=\'{"map": "5,7", "mapid": "88082704"}\'>Amakna (Coins des Bouftous) | 5,7</option> <option value=\'{"map": "7,-4", "mapid": "68419587"}\'>Amakna (Port de Madrestam) | 7,-4</option> <option value=\'{"map": "-2,0", "mapid": "88213271"}\'>Amakna (Village d\'Amakna) | -2,0</option> <option value=\'{"map": "-1,24", "mapid": "88212481"}\'>Amakna (Plaîne des Scarafeuilles) | -1,24</option> <option value=\'{"map": "10,22", "mapid": "88085249"}\'>Baie de Sufokia (Rivage Sufokien) | 10,22</option> <option value=\'{"map": "13,26", "mapid": "95422468"}\'>Baie de Sufokia (Sufokia) | 13,26</option> <option value=\'{"map": "-46,18", "mapid": "154642"}\'>Île d\'Otomaïl (Village côtier) | -46,18</option> <option value=\'{"map": "-79,-41", "mapid": "54172969"}\'>Île de Frigost (La Bourgade) | -79,-41</option> <option value=\'{"map": "-77,-73", "mapid": "54172489"}\'>Île de Frigost (Village enseveli) | -77,-73</option> <option value=\'{"map": "35,12", "mapid": "156762120"}\'>Île de Moon (Plage de la Tortue) | 35,12</option> <option value=\'{"map": "-16,1", "mapid": "73400320"}\'>Montagne des Koalaks (Village des Eleveurs) | -16,1</option> <option value=\'{"map": "26,-37", "mapid": "13605"}\'>Pandala Neutre (Faubourgs de Pandala) | 26,-37</option> <option value=\'{"map": "29,-49", "mapid": "15153"}\'>Pandala Feu (Village de Feudala) | 29,-49</option> <option value=\'{"map": "-27,-36", "mapid": "142087694"}\'>Plaine de Cania (Champs de Cania) | -27,-36</option> <option value=\'{"map": "-3,-42", "mapid": "156240386"}\'>Plaine de Cania (Lac de Cania) | -3,-42</option> <option value=\'{"map": "-13,-28", "mapid": "165152263"}\'>Plaine de Cania (Massif de Cania) | -13,-28</option> <option value=\'{"map": "-5,-23", "mapid": "84806401"}\'>Plaine de Cania (Plaine des Porkass) | -5,-23</option> <option value=\'{"map": "-17,-47", "mapid": "147590153"}\'>Plaine de Cania (Plaines Rocheuses) | -17,-47</option> <option value=\'{"map": "-20,-20", "mapid": "164364304"}\'>Plaine de Cania (Route Rocailleuse) | -20,-20</option> <option value=\'{"map": "15,-58", "mapid": "173278210"}\'>Saharach (Dunes des ossements) | 15,-58</option> <option value=\'{"map": "-25,12", "mapid": "171967506"}\'>Landes de Sidimote (Route des Roulottes) | -25,12</option> </select> </div><div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Validate</button> </div></div></div>');
  1169. $('#pathSetting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Setting of the path</h4> </div><div class="modal-body"> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active"> <a href="#informationTab" aria-controls="informationTab" role="tab" data-toggle="tab">Information</a> </li><li role="presentation"> <a href="#fightTab" aria-controls="fightTab" role="tab" data-toggle="tab">Fight</a> </li><li role="presentation"> <a href="#gatherTab" aria-controls="gatherTab" role="tab" data-toggle="tab">Gather</a> </li><li role="presentation"> <a href="#bankTab" aria-controls="bankTab" role="tab" data-toggle="tab">Bank</a> </li></ul> <div class="tab-content"> <div role="tabpanel" class="tab-pane active" id="informationTab"> <br/> <div class="row no-gutters"> <div class="col col-sm-2"> <p>Name :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" id="file-name-field"> </div><p></p></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Area :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" placeholder="Astrub" id="area-field"> </div></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Type :</p></div><div class="col col-sm-10"> <select class="form-control" id="type-field"> <option disabled selected value></option> <option>Fight</option> <option>Move</option> <option>Gather</option> </select> </div><p></p></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Version :</p></div><div class="col col-sm-10"> <input type="number" value="1.0" step="0.1" class="form-control" id="version-field"> </div></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Autor :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" placeholder="Drigtime" id="author-field"> </div></div><br></div><div role="tabpanel" class="tab-pane" id="fightTab"> <br/> <div class="row"> <div class="col col-sm-5"> <p>Minimum number of monster : </p></div><div class="col col-sm-7"> <input type="number" max="8" min="1" value="1" id="min-monster" class="=" form-control> </div></div><div class="row"> <div class="col col-sm-5"> <p>Maximum number of monster : </p></div><div class="col col-sm-7"> <input type="number" max="8" min="1" value="8" id="max-monster" class="=" form-control> </div></div><br/> <div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Forbidden monster</div><div class="panel-body"> <div class="col col-sm-5"> <p>List of forbidden monster : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="forbidden-ennemy-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/monstres.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div><div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Mendatory monster</div><div class="panel-body"> <div class="col col-sm-5"> <p>List of mendatory monster : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="mendatory-ennemy-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/monstres.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div></div><div role="tabpanel" class="tab-pane" id="gatherTab"> <br/> <div class="checkbox checbox-switch switch-primary"> <label> <input type="checkbox" id="open-bag-checkbox" checked=""/> <span></span> Automatically open resource bags </label> </div><div class="panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Resources to gather</div><div class="panel-body" id="ressources-to-gather"> <div class="row"> <div class="col col-sm-5"> <p>List of resources to gather : </p></div><div class="col col-sm-7"> <select class="form-control selectpicker" data-live-search="true" multiple data-dropup-auto="false" id="ressources-selecter"> </select> </div></div><div class="ressources-selected-summary"></div></div></div></div><div role="tabpanel" class="tab-pane" id="bankTab"> <br/><div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Items to delete automatically</div><div class="panel-body"> <div class="col col-sm-5"> <p>List of items to delete automatically : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="auto-delete-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/objets.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div></div></div></div><div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Validate</button> </div></div></div></div></div>');
  1170. $('#setting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Setting</h4> </div><div class="modal-body"> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation"> <a href="#shortcutTab" aria-controls="shortcutTab" role="tab" data-toggle="tab">Shortcuts</a> </li><li role="presentation" class="active"> <a href="#languageTab" aria-controls="languageTab" role="tab" data-toggle="tab">Language</a> </li></ul> <div class="tab-content"> <div role="tabpanel" class="tab-pane" id="shortcutTab"> <br/> <table class="table table-bordered table-hover table-condensed table-responsive"> <thead> <tr> <th> Action name </th> <th> Shortcuts </th> </tr></thead> <tbody> <tr> <td> Top </td><td> <input type="text" class="form\-control" id="shortcut-key-up" value="' + GM_getValue("shortcut-key-up", "z") + '" readonly> </td></tr><tr> <td> Bottom </td><td> <input type="text" class="form\-control" id="shortcut-key-down" value="' + GM_getValue("shortcut-key-down", "s") + '" readonly> </td></tr><tr> <td> Left </td><td> <input type="text" class="form\-control" id="shortcut-key-left" value="' + GM_getValue("shortcut-key-left", "q") + '" readonly> </td></tr><tr> <td> Right </td><td> <input type="text" class="form\-control" id ="shortcut-key-right" value="' + GM_getValue("shortcut-key-right", "d") + '" readonly> </td></tr><tr> <td> Havenbag </td><td> <input type="text" class="form\-control" id="shortcut-key-havenbag" value="' + GM_getValue("shortcut-key-havenbag", "a") + '" readonly> </td></tr><tr> <td> Erase an action </td><td> <input type="text" class="form\-control" id="shortcut-key-erase" value="' + GM_getValue("shortcut-key-erase", "e") + '" readonly> </td></tr></tbody> </table> </div><div role="tabpanel" class="tab-pane active" id="languageTab"> <br/> <div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Language</div><div class="panel-body"> <select multiple class="form-control" id="language-selected"> <option value="fr">Français</option> <option value="en">English</option> <option value="es">Español</option> </select> </div></div></div><div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Valider</button> </div></div></div></div></div></div>');
  1171. $('#ressources-selecter').empty();
  1172. for (let key in ressourcesEn) {
  1173. $('#ressources-selecter').append('<option value="' + ressourcesEn[key].itemId + '">' + ressourcesEn[key].itemName + '</option>');
  1174. }
  1175. GM_setValue("language", "en");
  1176. break;
  1177. case "es":
  1178. $('#path-creator-bar').empty().append('<div class="leaflet-bar leaflet-control path-selecter"> <a class="leaflet-control-zoom-in fas fa-arrow-up" href="#" title="Arriba" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-down" href="#" title="Abajo" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-left" href="#" title="Izquierda" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-arrow-right" href="#" title="Derecha" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-suitcase" href="#" title="Merkasakos" style="color:black;"></a> </div><div class="leaflet-bar leaflet-control tool-selecter"> <a class="leaflet-control-zoom-in fas fa-eraser" href="#" title="Borrar una acción" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-random" href="#" title="Lineal" style="color:black;"></a> </div><div class="leaflet-bar leaflet-control path-type-selecter"> <a class="leaflet-control-zoom-in fas fa-arrows-alt toggled" href="#" title="Desplazamiento" style="color:black;"></a> <a class="leaflet-control-zoom-in fas fa-shield-alt" href="#" title="Lucha" style="color:#d82121;"></a> <a class="leaflet-control-zoom-in fas fa-leaf" href="#" title="Cosechar" style="color:#229e22;"></a> <a class="leaflet-control-zoom-in fas fa-university" href="#" title="Banco" style="color:#3a3ab9;"></a> <a class="leaflet-control-zoom-in fas fa-fire" href="#" title="Fénix" style="color:purple;"></a> </div><div class="leaflet-bar leaflet-control path-setting"> <a class="leaflet-control-zoom-in fas fa-info-circle" href="#" title="Parámetro del trayecto" style="color:#3a3ab9;"></a> <a class="leaflet-control-zoom-in fas fa-save" href="#" title="salvaguardar" style="color:#3a3ab9;"></a> <input type="file" id="file" title="Ouvrir" style="display: none;"> <a class="leaflet-control-zoom-in fas fa-folder-open" href="#" title="Abrir" style="color:#ffd228;"></a> <a class="leaflet-control-zoom-in fas fa-trash-alt" href="#" title="Suprimir todo" style="color:#4c4c4c;"></a> <a class="leaflet-control-zoom-in fas fa-cog" href="#" title="Parámetro" style="color:#4c4c4c;"></a> </div>');
  1179. $('#havenBagSetting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <h4 class="modal-title" id="myModalLabel">Zaap : </h4> </div><div class="modal-body"> <label>Zaap d\'arrivée :</label> <select class="form-control" id="sel1"> <option value=\'{"map": "4,-19", "mapid": "84674563"}\'>Astrub | 4,-19</option> <option value=\'{"map": "-32,-56", "mapid": "147768"}\'>Bonta | -32,-56</option> <option value=\'{"map": "-26,35", "mapid": "144419"}\'>Brâkmar | -26,35</option> <option value=\'{"map": "-1,13", "mapid": "88212746"}\'>Amakna (Bord de la forêt maléfique) | -1,13</option> <option value=\'{"map": "3,-5", "mapid": "68552706"}\'>Amakna (Château d\'Amakna) | 3,-5</option> <option value=\'{"map": "5,7", "mapid": "88082704"}\'>Amakna (Coins des Bouftous) | 5,7</option> <option value=\'{"map": "7,-4", "mapid": "68419587"}\'>Amakna (Port de Madrestam) | 7,-4</option> <option value=\'{"map": "-2,0", "mapid": "88213271"}\'>Amakna (Village d\'Amakna) | -2,0</option> <option value=\'{"map": "-1,24", "mapid": "88212481"}\'>Amakna (Plaîne des Scarafeuilles) | -1,24</option> <option value=\'{"map": "10,22", "mapid": "88085249"}\'>Baie de Sufokia (Rivage Sufokien) | 10,22</option> <option value=\'{"map": "13,26", "mapid": "95422468"}\'>Baie de Sufokia (Sufokia) | 13,26</option> <option value=\'{"map": "-46,18", "mapid": "154642"}\'>Île d\'Otomaïl (Village côtier) | -46,18</option> <option value=\'{"map": "-79,-41", "mapid": "54172969"}\'>Île de Frigost (La Bourgade) | -79,-41</option> <option value=\'{"map": "-77,-73", "mapid": "54172489"}\'>Île de Frigost (Village enseveli) | -77,-73</option> <option value=\'{"map": "35,12", "mapid": "156762120"}\'>Île de Moon (Plage de la Tortue) | 35,12</option> <option value=\'{"map": "-16,1", "mapid": "73400320"}\'>Montagne des Koalaks (Village des Eleveurs) | -16,1</option> <option value=\'{"map": "26,-37", "mapid": "13605"}\'>Pandala Neutre (Faubourgs de Pandala) | 26,-37</option> <option value=\'{"map": "29,-49", "mapid": "15153"}\'>Pandala Feu (Village de Feudala) | 29,-49</option> <option value=\'{"map": "-27,-36", "mapid": "142087694"}\'>Plaine de Cania (Champs de Cania) | -27,-36</option> <option value=\'{"map": "-3,-42", "mapid": "156240386"}\'>Plaine de Cania (Lac de Cania) | -3,-42</option> <option value=\'{"map": "-13,-28", "mapid": "165152263"}\'>Plaine de Cania (Massif de Cania) | -13,-28</option> <option value=\'{"map": "-5,-23", "mapid": "84806401"}\'>Plaine de Cania (Plaine des Porkass) | -5,-23</option> <option value=\'{"map": "-17,-47", "mapid": "147590153"}\'>Plaine de Cania (Plaines Rocheuses) | -17,-47</option> <option value=\'{"map": "-20,-20", "mapid": "164364304"}\'>Plaine de Cania (Route Rocailleuse) | -20,-20</option> <option value=\'{"map": "15,-58", "mapid": "173278210"}\'>Saharach (Dunes des ossements) | 15,-58</option> <option value=\'{"map": "-25,12", "mapid": "171967506"}\'>Landes de Sidimote (Route des Roulottes) | -25,12</option> </select> </div><div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button> <button type="button" class="btn btn-primary">Valider</button> </div></div></div>');
  1180. $('#pathSetting').empty().append(' <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Parámetro del trayecto</h4> </div><div class="modal-body"> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active"> <a href="#informationTab" aria-controls="informationTab" role="tab" data-toggle="tab">Información</a> </li><li role="presentation"> <a href="#fightTab" aria-controls="fightTab" role="tab" data-toggle="tab">Lucha</a> </li><li role="presentation"> <a href="#gatherTab" aria-controls="gatherTab" role="tab" data-toggle="tab">Cosechar</a> </li><li role="presentation"> <a href="#bankTab" aria-controls="bankTab" role="tab" data-toggle="tab">Banco</a> </li></ul> <div class="tab-content"> <div role="tabpanel" class="tab-pane active" id="informationTab"> <br/> <div class="row no-gutters"> <div class="col col-sm-2"> <p>Nombre :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" id="file-name-field"> </div><p></p></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Zona :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" placeholder="Astrub" id="area-field"> </div></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Tipo :</p></div><div class="col col-sm-10"> <select class="form-control" id="type-field"> <option disabled selected value></option> <option>Lucha</option> <option>Desplazamiento</option> <option>Cosechar</option> </select> </div><p></p></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Versión :</p></div><div class="col col-sm-10"> <input type="number" value="1.0" step="0.1" class="form-control" id="version-field"> </div></div><div class="row no-gutters"> <div class="col col-sm-2"> <p>Autora :</p></div><div class="col col-sm-10"> <input type="text" class="form-control" placeholder="Drigtime" id="author-field"> </div></div><br></div><div role="tabpanel" class="tab-pane" id="fightTab"> <br/> <div class="row"> <div class="col col-sm-5"> <p>Número mínimo de monstruos : </p></div><div class="col col-sm-7"> <input type="number" max="8" min="1" value="1" id="min-monster" class="=" form-control> </div></div><div class="row"> <div class="col col-sm-5"> <p>Número máximo de monstruos : </p></div><div class="col col-sm-7"> <input type="number" max="8" min="1" value="8" id="max-monster" class="=" form-control> </div></div><br/> <div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Monstruos entredicho</div><div class="panel-body"> <div class="col col-sm-5"> <p>Lista monstruos que hay que evitar : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="forbidden-ennemy-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/monstres.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div><div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Monstruos obligatorio</div><div class="panel-body"> <div class="col col-sm-5"> <p>Lista monstruos que hay que tener : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="mendatory-ennemy-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/monstres.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div></div><div role="tabpanel" class="tab-pane" id="gatherTab"> <br/> <div class="checkbox checbox-switch switch-primary"> <label> <input type="checkbox" id="open-bag-checkbox" checked=""/> <span></span> Apertura automática de las bolsas de recursos </label> </div><div class="panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Recursos para cosechar</div><div class="panel-body" id="ressources-to-gather"> <div class="row"> <div class="col col-sm-5"> <p>Lista recursos para cosechar : </p></div><div class="col col-sm-7"> <select class="form-control selectpicker" data-live-search="true" multiple data-dropup-auto="false" id="ressources-selecter"> </select> </div></div><div class="ressources-selected-summary"></div></div></div></div><div role="tabpanel" class="tab-pane" id="bankTab"> <br/><div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Objetos que hay que suprimir automáticamente</div><div class="panel-body"> <div class="col col-sm-5"> <p>Lista objetos que hay que suprimir automáticamente : </p></div><div class="col col\-sm\-6"><input type="text" class="form\-control" placeholder="ex : 101, 98 \.\.\." id="auto-delete-field"></div><div class="col col-sm-1"><a target="_blank" href="https://snowbot.eu/objets.txt" class="fas fa-info-circle" style="font-size: 32px; text-decoration: none"></a></div></div></div></div></div></div><div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Validar</button> </div></div></div></div></div>');
  1181. $('#setting').empty().append('<div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Parámetro</h4> </div><div class="modal-body"> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation"> <a href="#shortcutTab" aria-controls="shortcutTab" role="tab" data-toggle="tab">Atajos</a> </li><li role="presentation" class="active"> <a href="#languageTab" aria-controls="languageTab" role="tab" data-toggle="tab">Lengua</a> </li></ul> <div class="tab-content"> <div role="tabpanel" class="tab-pane" id="shortcutTab"> <br/> <table class="table table-bordered table-hover table-condensed table-responsive"> <thead> <tr> <th> Nombre de la acción </th> <th> Atajo </th> </tr></thead> <tbody> <tr> <td> Arriba </td><td> <input type="text" class="form\-control" id="shortcut-key-up" value=" ' + GM_getValue("shortcut-key-up", "z") + ' " readonly> </td></tr><tr> <td> Abajo </td><td> <input type="text" class="form\-control" id="shortcut-key-down" value=" ' + GM_getValue("shortcut-key-down", "s") + ' " readonly> </td></tr><tr> <td> Izquierda </td><td> <input type="text" class="form\-control" id="shortcut-key-left" value=" ' + GM_getValue("shortcut-key-left", "q") + ' " readonly> </td></tr><tr> <td> Derecha </td><td> <input type="text" class="form\-control" id ="shortcut-key-right" value=" ' + GM_getValue("shortcut-key-right", "d") + ' " readonly> </td></tr><tr> <td> Merkasakos </td><td> <input type="text" class="form\-control" id="shortcut-key-havenbag" value=" ' + GM_getValue("shortcut-key-havenbag", "a") + ' " readonly> </td></tr><tr> <td> Borrar una acción </td><td> <input type="text" class="form\-control" id="shortcut-key-erase" value=" ' + GM_getValue("shortcut-key-erase", "e") + ' " readonly> </td></tr></tbody> </table> </div><div role="tabpanel" class="tab-pane active" id="languageTab"> <br/> <div class="row panel panel-default" style="margin-left: 0; margin-right: 0"> <div class="panel-heading">Lengua</div><div class="panel-body"> <select multiple class="form-control" id="language-selected"> <option value="fr">Français</option> <option value="en">English</option> <option value="es">Español</option> </select> </div></div></div><div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Validar</button> </div></div></div></div></div></div>');
  1182. $('#ressources-selecter').empty();
  1183. for (let key in ressourcesEs) {
  1184. $('#ressources-selecter').append('<option value="' + ressourcesEs[key].itemId + '">' + ressourcesEs[key].itemName + '</option>');
  1185. }
  1186. GM_setValue("language", "es");
  1187. break;
  1188. default:
  1189. break;
  1190. }
  1191. $('#language-selected').change(function () {
  1192. languageSelector($('#language-selected').val()[0]);
  1193. });
  1194. $('#shortcut-key-up, #shortcut-key-down, #shortcut-key-left, #shortcut-key-right, #shortcut-key-havenbag, #shortcut-key-erase').focusin(function(){
  1195. $(this).val("");
  1196. switch (GM_getValue("language")) {
  1197. case "fr":
  1198. $(this).attr("placeholder", "Appuyer sur une touche");
  1199. break;
  1200. case "en":
  1201. $(this).attr("placeholder", "Press a key");
  1202. break;
  1203. case "es":
  1204. $(this).attr("placeholder", "Presione una tecla");
  1205. break;
  1206. default:
  1207. break;
  1208. }
  1209. $(this).keydown(function (evt) {
  1210. GM_setValue(this.id, evt.key);
  1211. $(this).val(GM_getValue(this.id));
  1212. });
  1213. });
  1214. $('#shortcut-key-up, #shortcut-key-down, #shortcut-key-left, #shortcut-key-right, #shortcut-key-havenbag, #shortcut-key-erase').focusout(function(){
  1215. $(this).val(GM_getValue(this.id));
  1216. });
  1217. }
  1218. languageSelector(GM_getValue("language", "fr"));
  1219.  
  1220. $('#file').change(function () {
  1221. var file = this.files[0];
  1222. var content;
  1223. var reader = new FileReader();
  1224. reader.onload = function (progressEvent) {
  1225. // Entire file
  1226. content = this.result;
  1227. let regexPath = /function move\(\)[\s\S]+?return.*?{\r\n([\s\S]+?)}\r\n.*end/g;
  1228. let regexPathLinear = /mapsWithChangeMap.?=.?{\r\n([\s\S]+?)}\r\n/g;
  1229. let regexBank = /function bank\(\)[\s\S]+?return.*?{\r\n([\s\S]+?)}\r\n.*end/g;
  1230. let regexPhenix = /function phenix\(\)[\s\S]+?return.*?{\r\n([\s\S]+?)}\r\n.*end/g;
  1231. let result;
  1232. let matche = regexBank.exec(content);
  1233. loadingFile = true;
  1234. $(".path-selecter .toggled").removeClass('toggled');
  1235. if (matche !== null) {
  1236. result = matche[1];
  1237. result = result.split('\r\n');
  1238. for (let index = 0; index < result.length; index++) {
  1239. matche = /map.?=.?"(.*?)"/g.exec(result[index]);
  1240. if (matche !== null) actualMap = matche[1];
  1241. actualMap = actualMap.replace(/,/g, ", ");
  1242. if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
  1243. matche = /top/g.exec(result[index]);
  1244. if (matche !== null) $(".fa-arrow-up").addClass('toggled');
  1245. matche = /left/g.exec(result[index]);
  1246. if (matche !== null) $(".fa-arrow-left").addClass('toggled');
  1247. matche = /bottom/g.exec(result[index]);
  1248. if (matche !== null) $(".fa-arrow-down").addClass('toggled');
  1249. matche = /right/g.exec(result[index]);
  1250. if (matche !== null) $(".fa-arrow-right").addClass('toggled');
  1251. $(".path-type-selecter .toggled").removeClass('toggled');
  1252. $(".fa-university").addClass('toggled');
  1253. onMapClick();
  1254. $(".path-selecter .toggled").removeClass('toggled');
  1255. $(".path-type-selecter .toggled").removeClass('toggled');
  1256. }
  1257. }
  1258. }
  1259.  
  1260. matche = regexPathLinear.exec(content);
  1261. if (matche !== null) {
  1262. result = matche[1];
  1263. result = result.split('\r\n');
  1264. $(".fa-random").addClass('toggled');
  1265. for (let index = 0; index < result.length; index++) {
  1266. matche = /map.?=.?"(.*?)"/g.exec(result[index]);
  1267. if (matche !== null) actualMap = matche[1];
  1268. actualMap = actualMap.replace(/,/g, ", ");
  1269. if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
  1270. let loadAddLinearAction = function (param) {
  1271. matche = param.exec(result[index]);
  1272. if (matche !== null) {
  1273. if (matche[1] == "top") $(".fa-arrow-up").addClass('toggled');
  1274. if (matche[1] == "left") $(".fa-arrow-left").addClass('toggled');
  1275. if (matche[1] == "bottom") $(".fa-arrow-down").addClass('toggled');
  1276. if (matche[1] == "right") $(".fa-arrow-right").addClass('toggled');
  1277. }
  1278. $(".fa-arrows-alt").addClass('toggled');
  1279. matche = /gather/g.exec(result[index]);
  1280. if (matche !== null) $(".fa-leaf").addClass('toggled');
  1281. matche = /fight/g.exec(result[index]);
  1282. if (matche !== null) $(".fa-shield-alt").addClass('toggled');
  1283. onMapClick();
  1284. $(".path-selecter .toggled").removeClass('toggled');
  1285. $(".path-type-selecter .toggled").removeClass('toggled');
  1286. };
  1287. loadAddLinearAction(/changeMap.?=.?"(.+?)"/g);
  1288. loadAddLinearAction(/nextMap.?=.?"(.+?)"/g);
  1289. loadAddLinearAction(/thirdMap.?=.?"(.+?)"/g);
  1290. loadAddLinearAction(/fourthMap.?=.?"(.+?)"/g);
  1291. }
  1292. }
  1293. $(".fa-random.toggled").removeClass('toggled');
  1294. } else if ((matche = regexPath.exec(content)) !== null) {
  1295. result = matche[1];
  1296. result = result.split('\r\n');
  1297. for (let index = 0; index < result.length; index++) {
  1298. matche = /map.?=.?"(.*?)"/g.exec(result[index]);
  1299. if (matche !== null) actualMap = matche[1];
  1300. actualMap = actualMap.replace(/,/g, ", ");
  1301. if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
  1302. matche = /top/g.exec(result[index]);
  1303. if (matche !== null) $(".fa-arrow-up").addClass('toggled');
  1304. matche = /left/g.exec(result[index]);
  1305. if (matche !== null) $(".fa-arrow-left").addClass('toggled');
  1306. matche = /bottom/g.exec(result[index]);
  1307. if (matche !== null) $(".fa-arrow-down").addClass('toggled');
  1308. matche = /right/g.exec(result[index]);
  1309. if (matche !== null) $(".fa-arrow-right").addClass('toggled');
  1310. $(".fa-arrows-alt").addClass('toggled');
  1311. matche = /gather/g.exec(result[index]);
  1312. if (matche !== null) $(".fa-leaf").addClass('toggled');
  1313. matche = /fight/g.exec(result[index]);
  1314. if (matche !== null) $(".fa-shield-alt").addClass('toggled');
  1315. onMapClick();
  1316. $(".path-selecter .toggled").removeClass('toggled');
  1317. $(".path-type-selecter .toggled").removeClass('toggled');
  1318. }
  1319. }
  1320. }
  1321. matche = regexPhenix.exec(content);
  1322. if (matche !== null) {
  1323. result = matche[1];
  1324. result = result.split('\r\n');
  1325. for (let index = 0; index < result.length; index++) {
  1326. matche = /map.?=.?"(.*?)"/g.exec(result[index]);
  1327. if (matche !== null) actualMap = matche[1];
  1328. actualMap = actualMap.replace(/,/g, ", ");
  1329. if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
  1330. matche = /top/g.exec(result[index]);
  1331. if (matche !== null) $(".fa-arrow-up").addClass('toggled');
  1332. matche = /left/g.exec(result[index]);
  1333. if (matche !== null) $(".fa-arrow-left").addClass('toggled');
  1334. matche = /bottom/g.exec(result[index]);
  1335. if (matche !== null) $(".fa-arrow-down").addClass('toggled');
  1336. matche = /right/g.exec(result[index]);
  1337. if (matche !== null) $(".fa-arrow-right").addClass('toggled');
  1338. $(".fa-fire").addClass('toggled');
  1339. onMapClick();
  1340. $(".path-selecter .toggled").removeClass('toggled');
  1341. $(".path-type-selecter .toggled").removeClass('toggled');
  1342. }
  1343. }
  1344. }
  1345. $(".fa-arrows-alt").addClass('toggled');
  1346. loadingFile = false;
  1347. };
  1348. reader.readAsText(file);
  1349. });
  1350.  
  1351. $(document).keydown(function (evt) {
  1352. var keyCode = evt.key;
  1353. switch (keyCode) {
  1354. case GM_getValue("shortcut-key-up", "z"):
  1355. if ($(".fa-arrow-up.toggled").length > 0)
  1356. $(".fa-arrow-up.toggled").removeClass('toggled');
  1357. else {
  1358. $(".fa-arrow-up").toggleClass('toggled');
  1359. $(".fa-suitcase.toggled").removeClass('toggled');
  1360. }
  1361. break;
  1362. case GM_getValue("shortcut-key-left", "q"):
  1363. if ($(".fa-arrow-left.toggled").length > 0)
  1364. $(".fa-arrow-left.toggled").removeClass('toggled');
  1365. else {
  1366. $(".fa-arrow-left").toggleClass('toggled');
  1367. $(".fa-suitcase.toggled").removeClass('toggled');
  1368. }
  1369. break;
  1370. case GM_getValue("shortcut-key-down", "s"):
  1371. if ($(".fa-arrow-down.toggled").length > 0)
  1372. $(".fa-arrow-down.toggled").removeClass('toggled');
  1373. else {
  1374. $(".fa-arrow-down").toggleClass('toggled');
  1375. $(".fa-suitcase.toggled").removeClass('toggled');
  1376. }
  1377. break;
  1378. case GM_getValue("shortcut-key-right", "d"):
  1379. if ($(".fa-arrow-right.toggled").length > 0)
  1380. $(".fa-arrow-right.toggled").removeClass('toggled');
  1381. else {
  1382. $(".fa-arrow-right").toggleClass('toggled');
  1383. $(".fa-suitcase.toggled").removeClass('toggled');
  1384. }
  1385. break;
  1386. case GM_getValue("shortcut-key-havenbag", "a"):
  1387. if ($(".fa-suitcase.toggled").length > 0)
  1388. $(".fa-suitcase.toggled").removeClass('toggled');
  1389. else {
  1390. $(".fa-arrow-up.toggled").removeClass('toggled');
  1391. $(".fa-arrow-left.toggled").removeClass('toggled');
  1392. $(".fa-arrow-down.toggled").removeClass('toggled');
  1393. $(".fa-arrow-right.toggled").removeClass('toggled');
  1394. $(".fa-suitcase").toggleClass('toggled');
  1395. }
  1396. break;
  1397. case GM_getValue("shortcut-key-erase", "e"):
  1398. if ($(".fa-eraser.toggled").length > 0)
  1399. $(".fa-eraser.toggled").removeClass('toggled');
  1400. else {
  1401. $(".fa-eraser").toggleClass('toggled');
  1402. }
  1403. break;
  1404. default:
  1405. break;
  1406. }
  1407. });
  1408.  
  1409. $('#havenBagSetting').on('click', '.btn-primary', function () {
  1410. let e = $('#sel1 option:selected');
  1411. var objMap = JSON.parse(e.val());
  1412. if ($(".fa-arrows-alt.toggled").length > 0 || $(".fa-leaf.toggled").length > 0 || $(".fa-shield-alt.toggled").length > 0)
  1413. havenBagData.push({
  1414. map: actualMap.split(", ")[0] + "," + actualMap.split(", ")[1],
  1415. mapToGo: objMap.map,
  1416. mapidToGo: objMap.mapid,
  1417. move: true,
  1418. });
  1419. else if ($(".fa-university.toggled").length > 0)
  1420. havenBagData.push({
  1421. map: actualMap.split(", ")[0] + "," + actualMap.split(", ")[1],
  1422. mapToGo: objMap.map,
  1423. mapidToGo: objMap.mapid,
  1424. bank: true,
  1425. });
  1426. else if ($(".fa-fire.toggled").length > 0)
  1427. havenBagData.push({
  1428. map: actualMap.split(", ")[0] + "," + actualMap.split(", ")[1],
  1429. mapToGo: objMap.map,
  1430. mapidToGo: objMap.mapid,
  1431. move: true
  1432. });
  1433. $('#havenBagSetting').modal('hide');
  1434. onMapClick();
  1435. });
  1436.  
  1437. $('#havenBagSetting').on('click', '.btn-secondary', function () {
  1438. havenToggle = false;
  1439. $('#havenBagSetting').modal('hide');
  1440. });
  1441.  
  1442. $('#havenBagSetting').on('click', '.close', function () {
  1443. havenToggle = false;
  1444. $('#havenBagSetting').modal('hide');
  1445. });
  1446.  
  1447. function linearActualItem(index, time) {
  1448. if (GM_getValue('language') == 'fr') {
  1449. if (pathLinearData[index].top.index == time) return 'Haut';
  1450. else if (pathLinearData[index].left.index == time) return 'Gauche';
  1451. else if (pathLinearData[index].bottom.index == time) return 'Bas';
  1452. else if (pathLinearData[index].right.index == time) return 'Droite';
  1453. else if (pathLinearData[index].havenbag.index == time) return 'Havre-sac';
  1454. } else if (GM_getValue('language') == 'en') {
  1455. if (pathLinearData[index].top.index == time) return 'Top';
  1456. else if (pathLinearData[index].left.index == time) return 'Left';
  1457. else if (pathLinearData[index].bottom.index == time) return 'Bottom';
  1458. else if (pathLinearData[index].right.index == time) return 'Right';
  1459. else if (pathLinearData[index].havenbag.index == time) return 'Havenbag';
  1460. } else if (GM_getValue('language') == 'es') {
  1461. if (pathLinearData[index].top.index == time) return 'Arriba';
  1462. else if (pathLinearData[index].left.index == time) return 'Bajo';
  1463. else if (pathLinearData[index].bottom.index == time) return 'Izquierda';
  1464. else if (pathLinearData[index].right.index == time) return 'Derecha';
  1465. else if (pathLinearData[index].havenbag.index == time) return 'Merkasako';
  1466. }
  1467. }
  1468.  
  1469. function LMap() {
  1470. if (map) {
  1471. map.on('click', onMapClick);
  1472. map.on('mousemove', function () {
  1473. for (let index = 0; index < pathLinearData.length; index++) {
  1474. if (pathLinearData[index].map == $('#mapCoordinates').text()) {
  1475. if (pathLinearData[index].index == 4) {
  1476. if (GM_getValue('language') == 'fr') {
  1477. $('#mapCoordinates').append(
  1478. '<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) +
  1479. '<br />Deuxiéme action sur la map : ' + linearActualItem(index, 2) +
  1480. '<br />Troisiéme action sur la map : ' + linearActualItem(index, 3) +
  1481. '<br />Quatrième action sur la map : ' + linearActualItem(index, 4) + '</span>'
  1482. );
  1483. } else if (GM_getValue('language') == 'en') {
  1484. $('#mapCoordinates').append(
  1485. '<span><br />First action on the map : ' + linearActualItem(index, 1) +
  1486. '<br />Second action on the map : ' + linearActualItem(index, 2) +
  1487. '<br />Third action on the map : ' + linearActualItem(index, 3) +
  1488. '<br />Fourth action on the map : ' + linearActualItem(index, 4) + '</span>'
  1489. );
  1490. } else if (GM_getValue('language') == 'es') {
  1491. $('#mapCoordinates').append(
  1492. '<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) +
  1493. '<br />Segunda acción en el mapa : ' + linearActualItem(index, 2) +
  1494. '<br />Tercera acción en el mapa : ' + linearActualItem(index, 3) +
  1495. '<br />Cuarta acción en el mapa : ' + linearActualItem(index, 4) + '</span>'
  1496. );
  1497. }
  1498. } else if (pathLinearData[index].index == 3) {
  1499. if (GM_getValue('language') == 'fr') {
  1500. $('#mapCoordinates').append(
  1501. '<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) +
  1502. '<br />Deuxiéme action sur la map : ' + linearActualItem(index, 2) +
  1503. '<br />Troisiéme action sur la map : ' + linearActualItem(index, 3) + '</span>'
  1504. );
  1505. } else if (GM_getValue('language') == 'en') {
  1506. $('#mapCoordinates').append(
  1507. '<span><br />First action on the map : ' + linearActualItem(index, 1) +
  1508. '<br />Second action on the map : ' + linearActualItem(index, 2) +
  1509. '<br />Third action on the map : ' + linearActualItem(index, 3) + '</span>'
  1510. );
  1511. } else if (GM_getValue('language') == 'es') {
  1512. $('#mapCoordinates').append(
  1513. '<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) +
  1514. '<br />Segunda acción en el mapa : ' + linearActualItem(index, 2) +
  1515. '<br />Tercera acción en el mapa : ' + linearActualItem(index, 3) + '</span>'
  1516. );
  1517. }
  1518. } else if (pathLinearData[index].index == 2) {
  1519. if (GM_getValue('language') == 'fr') {
  1520. $('#mapCoordinates').append(
  1521. '<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) +
  1522. '<br />Deuxiéme action sur la map : ' + linearActualItem(index, 2) + '</span>'
  1523. );
  1524. } else if (GM_getValue('language') == 'en') {
  1525. $('#mapCoordinates').append(
  1526. '<span><br />First action on the map : ' + linearActualItem(index, 1) +
  1527. '<br />Second action on the map : ' + linearActualItem(index, 2) + '</span>'
  1528. );
  1529. } else if (GM_getValue('language') == 'es') {
  1530. $('#mapCoordinates').append(
  1531. '<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) +
  1532. '<br />Segunda acción en el mapa : ' + linearActualItem(index, 2) + '</span>'
  1533. );
  1534. }
  1535. } else if (pathLinearData[index].index == 1) {
  1536. if (GM_getValue('language') == 'fr') {
  1537. $('#mapCoordinates').append(
  1538. '<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) + '</span>'
  1539. );
  1540. } else if (GM_getValue('language') == 'en') {
  1541. $('#mapCoordinates').append(
  1542. '<span><br />PFirst action on the map : ' + linearActualItem(index, 1) + '</span>'
  1543. );
  1544. } else if (GM_getValue('language') == 'es') {
  1545. $('#mapCoordinates').append(
  1546. '<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) + '</span>'
  1547. );
  1548. }
  1549. }
  1550. }
  1551. }
  1552. });
  1553. } else {
  1554. setTimeout(function () {
  1555. LMap();
  1556. }, 50);
  1557. }
  1558. }
  1559. LMap();
  1560.  
  1561. $('#path-creator-bar').on('click', '.fa-folder-open', function () {
  1562. $('#file').trigger('click');
  1563. });
  1564.  
  1565. $('#path-creator-bar').on('click', '.fa-trash-alt', function () {
  1566. let deleteAll = function (array) {
  1567. for (let index = 0; index < array.length; index) {
  1568. if (array[index].top)
  1569. if (array[index].top.icon) map.removeLayer(array[index].top.icon);
  1570. if (array[index].bottom)
  1571. if (array[index].bottom.icon) map.removeLayer(array[index].bottom.icon);
  1572. if (array[index].left)
  1573. if (array[index].left.icon) map.removeLayer(array[index].left.icon);
  1574. if (array[index].right)
  1575. if (array[index].right.icon) map.removeLayer(array[index].right.icon);
  1576. if (array[index].havenbag)
  1577. if (array[index].havenbag.icon) map.removeLayer(array[index].havenbag.icon);
  1578. array.splice(index, 1);
  1579. }
  1580. };
  1581. deleteAll(pathData);
  1582. deleteAll(pathLinearData);
  1583. deleteAll(bankData);
  1584. deleteAll(phenixData);
  1585. deleteAll(havenBagData);
  1586. console.clear();
  1587. });
  1588.  
  1589. $('#path-creator-bar').on('click', '.fa-eraser, .fa-random', function () {
  1590. $(this).toggleClass('toggled');
  1591. if (($('.fa-random.toggled').length > 0)) {
  1592. $('.fa-arrows-alt').toggleClass('toggled');
  1593. $('.fa-fire').removeClass("toggled");
  1594. $('.fa-fire').css("background-color", "#999");
  1595. $('.fa-fire').css("pointer-events", "none");
  1596. $('.fa-university').removeClass("toggled");
  1597. $('.fa-university').css("background-color", "#999");
  1598. $('.fa-university').css("pointer-events", "none");
  1599.  
  1600. } else {
  1601. $('.fa-fire').css("background-color", "white");
  1602. $('.fa-fire').css("pointer-events", "auto");
  1603. $('.fa-university').css("background-color", "white");
  1604. $('.fa-university').css("pointer-events", "auto");
  1605. }
  1606.  
  1607. });
  1608.  
  1609. $('#path-creator-bar').on('click', '.fa-arrows-alt, .fa-shield-alt, .fa-leaf, .fa-university, .fa-fire', function () {
  1610. $(".path-type-selecter .toggled").removeClass("toggled");
  1611. $(this).toggleClass('toggled');
  1612. if ($(".fa-fire.toggled").length > 0) {
  1613. for (let key in phenixPos) {
  1614. if (phenixPos[key].marker)
  1615. map.removeLayer(phenixPos[key].marker);
  1616. phenixPos[key].marker = undefined;
  1617. }
  1618. for (let key in phenixPos) {
  1619. phenixPos[key].marker = L.marker(dofusXYToMapXY(phenixPos[key].map.split(",")[0] * 1 + 0.5, phenixPos[key].map.split(",")[1] * 1 + 0.5), {
  1620. interactive: true,
  1621. zIndexOffset: 5000,
  1622. icon: icon.hint.phenix
  1623. }).addTo(map);
  1624. }
  1625. } else {
  1626. for (let key in phenixPos) {
  1627. if (phenixPos[key].marker)
  1628. map.removeLayer(phenixPos[key].marker);
  1629. phenixPos[key].marker = undefined;
  1630. }
  1631. }
  1632. if ($(".fa-university.toggled").length > 0) {
  1633. for (let key in bankPos) {
  1634. if (bankPos[key].marker)
  1635. map.removeLayer(bankPos[key].marker);
  1636. bankPos[key].marker = undefined;
  1637. }
  1638. for (let key in bankPos) {
  1639. bankPos[key].marker = L.marker(dofusXYToMapXY(bankPos[key].map.split(",")[0] * 1 + 0.5, bankPos[key].map.split(",")[1] * 1 + 0.5), {
  1640. interactive: true,
  1641. zIndexOffset: 5000,
  1642. icon: icon.hint.bank
  1643. }).addTo(map);
  1644. }
  1645. } else {
  1646. for (let key in bankPos) {
  1647. if (bankPos[key].marker)
  1648. map.removeLayer(bankPos[key].marker);
  1649. bankPos[key].marker = undefined;
  1650. }
  1651. }
  1652. });
  1653.  
  1654. $('#path-creator-bar').on('click', '.fa-suitcase', function () {
  1655. $(".fa-arrow-up.toggled").removeClass('toggled');
  1656. $(".fa-arrow-left.toggled").removeClass('toggled');
  1657. $(".fa-arrow-down.toggled").removeClass('toggled');
  1658. $(".fa-arrow-right.toggled").removeClass('toggled');
  1659. $(this).toggleClass('toggled');
  1660. });
  1661.  
  1662. $('#path-creator-bar').on('click', '.fa-arrow-up, .fa-arrow-down, .fa-arrow-left, .fa-arrow-right', function () {
  1663. $(".fa-suitcase.toggled").removeClass("toggled");
  1664. $(this).toggleClass('toggled');
  1665. });
  1666.  
  1667. $('#path-creator-bar').on('click', '.fa-cog', function () {
  1668. $('#setting').modal('show');
  1669. });
  1670.  
  1671. $('#path-creator-bar').on('click', '.fa-info-circle', function () {
  1672. $('#pathSetting').modal('show');
  1673. $('#ressources-selecter').selectpicker('refresh');
  1674. });
  1675.  
  1676. $("#pathSetting").on('change', '#ressources-selecter',function () {
  1677. // gatherData = $('#ressources-selecter').val();
  1678. $('#ressources-to-gather .ressources-selected-summary').empty();
  1679. $("#ressources-selecter option:selected").each(function () {
  1680. $('#ressources-to-gather .ressources-selected-summary').append('<button class="btn btn-success" style="margin: 2.5px;">' + $(this).text() + '</button>');
  1681. });
  1682. });
  1683. })();