// ==UserScript==
// @name PathCreator
// @namespace http://tampermonkey.net/
// @version 2.0.6
// @description Create path has never been so easy
// @author Drigtime
// @match https://dofus-map.com/*
// @run-at document-idle
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
// @require https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/js/bootstrap-select.min.js
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
(function () {
var icon = {
top: {
move: L.icon({
iconUrl: "https://svgshare.com/i/54N.svg",
className: "top-arrow"
}),
gather: L.icon({
iconUrl: "https://svgshare.com/i/556.svg",
className: "top-arrow"
}),
fight: L.icon({
iconUrl: "https://svgshare.com/i/53n.svg",
className: "top-arrow"
}),
bank: L.icon({
iconUrl: "https://svgshare.com/i/54G.svg",
className: "top-arrow"
}),
phoenix: L.icon({
iconUrl: "https://svgshare.com/i/54x.svg",
className: "top-arrow"
})
},
left: {
move: L.icon({
iconUrl: "https://svgshare.com/i/54m.svg",
className: "left-arrow"
}),
gather: L.icon({
iconUrl: "https://svgshare.com/i/555.svg",
className: "left-arrow"
}),
fight: L.icon({
iconUrl: "https://svgshare.com/i/54H.svg",
className: "left-arrow"
}),
bank: L.icon({
iconUrl: "https://svgshare.com/i/54v.svg",
className: "left-arrow"
}),
phoenix: L.icon({
iconUrl: "https://svgshare.com/i/557.svg",
className: "left-arrow"
})
},
bottom: {
move: L.icon({
iconUrl: "https://svgshare.com/i/51x.svg",
className: "bottom-arrow"
}),
gather: L.icon({
iconUrl: "https://svgshare.com/i/54b.svg",
className: "bottom-arrow"
}),
fight: L.icon({
iconUrl: "https://svgshare.com/i/54o.svg",
className: "bottom-arrow"
}),
bank: L.icon({
iconUrl: "https://svgshare.com/i/53x.svg",
className: "bottom-arrow"
}),
phoenix: L.icon({
iconUrl: "https://svgshare.com/i/54q.svg",
className: "bottom-arrow"
})
},
right: {
move: L.icon({
iconUrl: "https://svgshare.com/i/53t.svg",
className: "right-arrow"
}),
gather: L.icon({
iconUrl: "https://svgshare.com/i/54p.svg",
className: "right-arrow"
}),
fight: L.icon({
iconUrl: "https://svgshare.com/i/527.svg",
className: "right-arrow"
}),
bank: L.icon({
iconUrl: "https://svgshare.com/i/54w.svg",
className: "right-arrow"
}),
phoenix: L.icon({
iconUrl: "https://svgshare.com/i/543.svg",
className: "right-arrow"
})
},
havenbag: {
move: L.icon({
iconUrl: "https://svgshare.com/i/58M.svg",
className: "havenbag-icon"
}),
gather: L.icon({
iconUrl: "https://svgshare.com/i/58N.svg",
className: "havenbag-icon"
}),
fight: L.icon({
iconUrl: "https://svgshare.com/i/5BW.svg",
className: "havenbag-icon"
}),
bank: L.icon({
iconUrl: "https://svgshare.com/i/5BL.svg",
className: "havenbag-icon"
}),
phoenix: L.icon({
iconUrl: "https://svgshare.com/i/5BB.svg",
className: "havenbag-icon"
})
},
hint: {
phenix: L.icon({
iconUrl: "https://dofusgo.com/imgs/map/hint/phoe.png",
className: "hint-icon"
}),
bank: L.icon({
iconUrl: "https://dofusgo.com/imgs/map/hint/401.png",
className: "hint-icon"
})
}
};
$(function preloader() {
if (document.images) {
var img1 = new Image();
var img2 = new Image();
var img3 = new Image();
var img4 = new Image();
var img5 = new Image();
var img6 = new Image();
var img7 = new Image();
var img8 = new Image();
var img9 = new Image();
var img10 = new Image();
var img11 = new Image();
var img12 = new Image();
var img13 = new Image();
var img14 = new Image();
var img15 = new Image();
var img16 = new Image();
var img17 = new Image();
var img18 = new Image();
var img19 = new Image();
var img20 = new Image();
var img21 = new Image();
var img22 = new Image();
var img23 = new Image();
var img24 = new Image();
var img25 = new Image();
img1.src = "https://svgshare.com/i/54N.svg";
img2.src = "https://svgshare.com/i/54m.svg";
img3.src = "https://svgshare.com/i/51x.svg";
img4.src = "https://svgshare.com/i/53t.svg";
img5.src = "https://svgshare.com/i/556.svg";
img6.src = "https://svgshare.com/i/555.svg";
img7.src = "https://svgshare.com/i/54b.svg";
img8.src = "https://svgshare.com/i/54p.svg";
img9.src = "https://svgshare.com/i/53n.svg";
img10.src = "https://svgshare.com/i/54H.svg";
img11.src = "https://svgshare.com/i/54o.svg";
img12.src = "https://svgshare.com/i/527.svg";
img13.src = "https://svgshare.com/i/54G.svg";
img14.src = "https://svgshare.com/i/54w.svg";
img15.src = "https://svgshare.com/i/54v.svg";
img16.src = "https://svgshare.com/i/53x.svg";
img17.src = "https://svgshare.com/i/54x.svg";
img18.src = "https://svgshare.com/i/557.svg";
img19.src = "https://svgshare.com/i/54q.svg";
img20.src = "https://svgshare.com/i/543.svg";
img21.src = "https://svgshare.com/i/58M.svg";
img22.src = "https://svgshare.com/i/58N.svg";
img23.src = "https://svgshare.com/i/5BW.svg";
img24.src = "https://svgshare.com/i/5BL.svg";
img25.src = "https://svgshare.com/i/5BB.svg";
}
});
var actualMap;
var pathData = [];
var pathLinearData = [];
var bankData = [];
var phenixData = [];
var havenBagData = [];
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}];
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}];
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"}];
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"}];
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"}];
var loadingFile = false;
var havenToggle = false;
var css = document.createElement('style');
css.type = 'text/css';
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}';
$('head').append(css);
var contenu = '';
contenu = `
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.0.6/css/all.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/css/bootstrap-select.min.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/flag-icon-css/2.9.0/css/flag-icon.css">
<div id="path-creator-bar" class="leaflet-top leaflet-right" style="top: 150px;">
</div>
<!-- Modal -->
<div class="modal fade" id="havenBagSetting" tabindex="-1" role="dialog" style="top: 300px;"></div>
<div class="modal fade" id="setting" tabindex="-1" role="dialog" style="top: 100px;"></div>
<div class="modal fade" id="pathSetting" tabindex="-1" role="dialog" style="top: 100px;"></div>`;
$('body').append(contenu);
function checkMaps(mapcoord, array) {
for (let key = 0; key < array.length; key++) {
if (array[key].map == mapcoord) {
return true;
}
}
return false;
}
function getMapIndex(mapcoord, array) {
for (let key = 0; key < array.length; key++) {
if (array[key].map == mapcoord) {
return key;
}
}
}
function onMapClick() {
if (!loadingFile)
actualMap = $('#mapCoordinates').html();
if (RegExp(/<span>/).test(actualMap)) {
actualMap = $('#mapCoordinates').html().split(/<span>/)[0];
}
if ($('.fa-suitcase.toggled').length > 0) {
if (!havenToggle) {
if (!checkMaps(actualMap.split(', ')[0] + ',' + actualMap.split(', ')[1], havenBagData)) {
havenToggle = true;
$('#havenBagSetting').appendTo("body").modal('show');
return;
} else {
havenBagData.splice(getMapIndex(actualMap.split(', ')[0] + ',' + actualMap.split(', ')[1], havenBagData), 1);
}
} else {
havenToggle = false;
}
}
if ($('.fa-eraser.toggled').length > 0) {
let deleteAll = function (array, index) {
if (array[index] !== undefined) {
if (array[index].top)
if (array[index].top.icon) map.removeLayer(array[index].top.icon);
if (array[index].bottom)
if (array[index].bottom.icon) map.removeLayer(array[index].bottom.icon);
if (array[index].left)
if (array[index].left.icon) map.removeLayer(array[index].left.icon);
if (array[index].right)
if (array[index].right.icon) map.removeLayer(array[index].right.icon);
if (array[index].havenbag)
if (array[index].havenbag.icon) map.removeLayer(array[index].havenbag.icon);
array.splice(index, 1);
}
};
deleteAll(pathData, getMapIndex(actualMap, pathData));
deleteAll(pathLinearData, getMapIndex(actualMap, pathLinearData));
deleteAll(bankData, getMapIndex(actualMap, bankData));
deleteAll(phenixData, getMapIndex(actualMap, phenixData));
deleteAll(havenBagData, getMapIndex(actualMap, havenBagData));
} else if ($(".fa-university.toggled").length > 0) {
if (!checkMaps(actualMap, bankData)) {
if ($(".fa-suitcase.toggled").length > 0) {
if (checkMaps(actualMap, pathData)) {
removeArrow(getMapIndex(actualMap, pathData), pathData);
deleteEmptyPath(pathData);
return;
} else if (checkMaps(actualMap, phenixData)) {
removeArrow(getMapIndex(actualMap, phenixData), phenixData);
deleteEmptyPath(phenixData);
return;
}
}
bankData.push({
map: actualMap,
top: {
path: false,
icon: undefined
},
bottom: {
path: false,
icon: undefined
},
right: {
path: false,
icon: undefined
},
left: {
path: false,
icon: undefined
},
havenbag: {
path: false,
icon: undefined
},
bank: false
});
createMarker(getMapIndex(actualMap, bankData), bankData);
deleteEmptyPath(bankData);
} else {
removeArrow(getMapIndex(actualMap, bankData), bankData);
deleteEmptyPath(bankData);
}
console.clear();
for (let key in bankData) {
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);
}
} else if ($(".fa-fire.toggled").length > 0) {
if (!checkMaps(actualMap, phenixData)) {
if ($(".fa-suitcase.toggled").length > 0) {
if (checkMaps(actualMap, pathData)) {
removeArrow(getMapIndex(actualMap, pathData), pathData);
deleteEmptyPath(pathData);
return;
} else if (checkMaps(actualMap, bankData)) {
removeArrow(getMapIndex(actualMap, bankData), bankData);
deleteEmptyPath(bankData);
return;
}
}
phenixData.push({
map: actualMap,
top: {
path: false,
icon: undefined
},
bottom: {
path: false,
icon: undefined
},
right: {
path: false,
icon: undefined
},
left: {
path: false,
icon: undefined
},
havenbag: {
path: false,
icon: undefined
},
phenix: false
});
createMarker(getMapIndex(actualMap, phenixData), phenixData);
deleteEmptyPath(phenixData);
} else {
removeArrow(getMapIndex(actualMap, phenixData), phenixData);
deleteEmptyPath(phenixData);
}
console.clear();
for (let key in phenixData) {
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);
}
} else {
if (!checkMaps(actualMap, pathData)) {
if ($(".fa-suitcase.toggled").length > 0) {
if (checkMaps(actualMap, bankData)) {
removeArrow(getMapIndex(actualMap, bankData), bankData);
deleteEmptyPath(bankData);
return;
} else if (checkMaps(actualMap, phenixData)) {
removeArrow(getMapIndex(actualMap, phenixData), phenixData);
deleteEmptyPath(phenixData);
return;
}
}
if ($(".fa-random.toggled").length > 0) {
if (!checkMaps(actualMap, pathLinearData)) {
pathLinearData.push({
map: actualMap,
top: {
index: undefined,
path: false,
icon: undefined
},
bottom: {
index: undefined,
path: false,
icon: undefined
},
right: {
index: undefined,
path: false,
icon: undefined
},
left: {
index: undefined,
path: false,
icon: undefined
},
havenbag: {
index: undefined,
path: false,
icon: undefined
},
gather: false,
fight: false,
index: false
});
createMarker(getMapIndex(actualMap, pathLinearData), pathLinearData);
deleteEmptyPath(pathLinearData);
} else {
removeArrow(getMapIndex(actualMap, pathLinearData), pathLinearData);
deleteEmptyPath(pathLinearData);
}
} else {
pathData.push({
map: actualMap,
top: {
path: false,
icon: undefined
},
bottom: {
path: false,
icon: undefined
},
right: {
path: false,
icon: undefined
},
left: {
path: false,
icon: undefined
},
havenbag: {
path: false,
icon: undefined
},
gather: false,
fight: false,
});
createMarker(getMapIndex(actualMap, pathData), pathData);
deleteEmptyPath(pathData);
}
} else {
removeArrow(getMapIndex(actualMap, pathData), pathData);
deleteEmptyPath(pathData);
}
console.clear();
for (let key in pathData) {
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);
}
}
}
function deleteEmptyPath(array) {
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) {
array.splice(getMapIndex(actualMap, array), 1);
}
}
function removeArrow(key, array) {
removeArrowWay(key, array, "fa-arrow-up", "top");
removeArrowWay(key, array, "fa-arrow-left", "left");
removeArrowWay(key, array, "fa-arrow-down", "bottom");
removeArrowWay(key, array, "fa-arrow-right", "right");
removeArrowWay(key, array, "fa-suitcase", "havenbag");
}
function removeArrowWay(key, array, className, iconType) {
if ($('.' + className + '.toggled').length > 0) {
if ($(".fa-random.toggled").length > 0) {
if (array[key][iconType].icon !== undefined) {
if (array[key].index == 4) {
if (iconType == "top") {
if (array[key].top.index == 1) {
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
} else if (array[key].top.index == 2) {
if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
if (array[key].left.index > 2) array[key].left.index -= 1;
if (array[key].right.index > 2) array[key].right.index -= 1;
} else if (array[key].top.index == 3) {
if (array[key].bottom.index > 3) array[key].bottom.index -= 1;
if (array[key].left.index > 3) array[key].left.index -= 1;
if (array[key].right.index > 3) array[key].right.index -= 1;
}
} else if (iconType == "bottom") {
if (array[key].bottom.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
} else if (array[key].bottom.index == 2) {
if (array[key].top.index > 2) array[key].top.index -= 1;
if (array[key].left.index > 2) array[key].left.index -= 1;
if (array[key].right.index > 2) array[key].right.index -= 1;
} else if (array[key].bottom.index == 3) {
if (array[key].top.index > 3) array[key].top.index -= 1;
if (array[key].left.index > 3) array[key].left.index -= 1;
if (array[key].right.index > 3) array[key].right.index -= 1;
}
} else if (iconType == "left") {
if (array[key].left.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
} else if (array[key].left.index == 2) {
if (array[key].top.index > 2) array[key].top.index -= 1;
if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
if (array[key].right.index > 2) array[key].right.index -= 1;
} else if (array[key].left.index == 3) {
if (array[key].top.index > 3) array[key].top.index -= 1;
if (array[key].bottom.index > 3) array[key].bottom.index -= 1;
if (array[key].right.index > 3) array[key].right.index -= 1;
}
} else if (iconType == "right") {
if (array[key].right.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
} else if (array[key].right.index == 2) {
if (array[key].top.index > 2) array[key].top.index -= 1;
if (array[key].left.index > 2) array[key].left.index -= 1;
if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
} else if (array[key].right.index == 3) {
if (array[key].top.index > 3) array[key].top.index -= 1;
if (array[key].left.index > 3) array[key].left.index -= 1;
if (array[key].bottom.index > 3) array[key].bottom.index -= 1;
}
}
} else if (array[key].index == 3) {
if (iconType == "top") {
if (array[key].top.index == 1) {
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
} else if (array[key].top.index == 2) {
if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
if (array[key].left.index > 2) array[key].left.index -= 1;
if (array[key].right.index > 2) array[key].right.index -= 1;
}
} else if (iconType == "bottom") {
if (array[key].bottom.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
} else if (array[key].bottom.index == 2) {
if (array[key].top.index > 2) array[key].top.index -= 1;
if (array[key].left.index > 2) array[key].left.index -= 1;
if (array[key].right.index > 2) array[key].right.index -= 1;
}
} else if (iconType == "left") {
if (array[key].left.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
} else if (array[key].left.index == 2) {
if (array[key].top.index > 2) array[key].top.index -= 1;
if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
if (array[key].right.index > 2) array[key].right.index -= 1;
}
} else if (iconType == "right") {
if (array[key].right.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
} else if (array[key].right.index == 2) {
if (array[key].top.index > 2) array[key].top.index -= 1;
if (array[key].left.index > 2) array[key].left.index -= 1;
if (array[key].bottom.index > 2) array[key].bottom.index -= 1;
}
}
} else if (array[key].index == 2) {
if (iconType == "top") {
if (array[key].top.index == 1) {
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
}
} else if (iconType == "bottom") {
if (array[key].bottom.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
}
} else if (iconType == "left") {
if (array[key].left.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
if (array[key].right.index > 1) array[key].right.index -= 1;
}
} else if (iconType == "right") {
if (array[key].right.index == 1) {
if (array[key].top.index > 1) array[key].top.index -= 1;
if (array[key].left.index > 1) array[key].left.index -= 1;
if (array[key].bottom.index > 1) array[key].bottom.index -= 1;
}
}
}
array[key].index -= 1;
array[key][iconType].index = undefined;
array[key][iconType].path = false;
map.removeLayer(array[key][iconType].icon);
array[key][iconType].icon = undefined;
} else createMarkerWay(key, array, className, iconType);
} else if (array[key][iconType].icon !== undefined) {
array[key][iconType].path = false;
map.removeLayer(array[key][iconType].icon);
array[key][iconType].icon = undefined;
} else createMarkerWay(key, array, className, iconType);
}
}
function createMarker(key, array) {
createMarkerWay(key, array, "fa-arrow-up", "top");
createMarkerWay(key, array, "fa-arrow-left", "left");
createMarkerWay(key, array, "fa-arrow-down", "bottom");
createMarkerWay(key, array, "fa-arrow-right", "right");
createMarkerWay(key, array, "fa-suitcase", "havenbag");
}
function createMarkerWay(key, array, className, iconType) {
if ($('.' + className + '.toggled').length > 0) {
if ($(".fa-leaf.toggled").length > 0) {
if (iconType == "havenbag") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: true,
zIndexOffset: 5000,
icon: icon[iconType].gather
}).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
} else {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: false,
zIndexOffset: 5000,
icon: icon[iconType].gather
}).addTo(map);
}
array[key].gather = true;
} else if ($(".fa-shield-alt.toggled").length > 0) {
if (iconType == "havenbag") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: true,
zIndexOffset: 5000,
icon: icon[iconType].fight
}).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
} else {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: false,
zIndexOffset: 5000,
icon: icon[iconType].fight
}).addTo(map);
}
array[key].fight = true;
} else if ($(".fa-university.toggled").length > 0) {
if (iconType == "right" || iconType == "left") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1] * 1 + (0.2)), {
interactive: false,
zIndexOffset: 4500,
icon: icon[iconType].bank
}).addTo(map);
} else if (iconType == "top" || iconType == "bottom") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0] * 1 + (0.1), actualMap.split(", ")[1]), {
interactive: false,
zIndexOffset: 4500,
icon: icon[iconType].bank
}).addTo(map);
} else if (iconType == "havenbag") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: true,
zIndexOffset: 5000,
icon: icon[iconType].bank
}).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
}
array[key].bank = true;
} else if ($(".fa-fire.toggled").length > 0) {
if (iconType == "right" || iconType == "left") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1] * 1 - (0.2)), {
interactive: false,
zIndexOffset: 4000,
icon: icon[iconType].phoenix
}).addTo(map);
} else if (iconType == "top" || iconType == "bottom") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0] * 1 - (0.1), actualMap.split(", ")[1]), {
interactive: false,
zIndexOffset: 4000,
icon: icon[iconType].phoenix
}).addTo(map);
} else if (iconType == "havenbag") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: true,
zIndexOffset: 5000,
icon: icon[iconType].phoenix
}).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
}
array[key].phenix = true;
} else {
if (iconType == "havenbag") {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: true,
zIndexOffset: 5000,
icon: icon[iconType].move
}).addTo(map).bindPopup('Téléportation au zaap map : ' + havenBagData[havenBagData.length - 1].mapToGo + ' | mapID : ' + havenBagData[havenBagData.length - 1].mapidToGo);
} else {
array[key][iconType].icon = L.marker(dofusXYToMapXY(actualMap.split(", ")[0], actualMap.split(", ")[1]), {
interactive: false,
zIndexOffset: 5000,
icon: icon[iconType].move
}).addTo(map);
}
}
if ($(".fa-random.toggled").length > 0) {
array[key].index += 1;
array[key][iconType].index = array[key].index;
array[key][iconType].path = true;
} else {
array[key][iconType].path = true;
}
}
}
function pathGenerator(index, array) {
var path = "";
if (index !== undefined) {
if (array.length !== 0) {
if (array[index].havenbag.path && !array[index].bank)
path = "havenbag";
else {
if (array[index].top.path)
path = "top";
if (array[index].bottom.path)
path += (path === "" ? "" : "|") + "bottom";
if (array[index].left.path)
path += (path === "" ? "" : "|") + "left";
if (array[index].right.path)
path += (path === "" ? "" : "|") + "right";
}
return path;
}
}
}
function checkPhenixPos(map) {
for (let key in phenixPos) {
if (map == phenixPos[key].map) {
return [true, key];
}
}
return false;
}
function gatherFigh(index, array) {
var path = "";
if (array[index].gather)
path = ", gather = true";
if (array[index].fight)
path += ", fight = true";
return path;
}
function havenbagCheck(option) {
for (let index = 0; index < havenBagData.length; index++) {
if (havenBagData[index][option]) {
return true;
}
}
return false;
}
function getLinearAction(params, key) {
if (pathLinearData[key].top.index == params) {
return "top";
} else if (pathLinearData[key].left.index == params) {
return "left";
} else if (pathLinearData[key].bottom.index == params) {
return "bottom";
} else if (pathLinearData[key].right.index == params) {
return "right";
} else if (pathLinearData[key].havenbag.index == params) {
return "havenbag";
}
}
$('#path-creator-bar').on('click', '.fa-save', function () {
var firstIf = false;
var txt = "-- Generated On Dofus-Map with Drigtime's SwiftPath Script Maker --\r\n" +
"-- Nom : " + $('#file-name-field').val() + "\r\n" +
"-- Zone : " + $('#area-field').val() + "\r\n" +
"-- Type : " + ($('#type-field').val() ? $('#type-field').val() : "") + "\r\n" +
"-- Version : " + $('#version-field').val() + "\r\n" +
"-- Auteur : " + $('#author-field').val() + "\r\n\r\n" +
"GATHER = {" + ($('#ressources-selecter').val() ? $('#ressources-selecter').val() : "") + "}\r\n" +
"OPEN_BAGS = " + $('#open-bag-checkbox').is(":checked") + "\r\n" +
"AUTO_DELETE = {" + $('#auto-delete-field').val() + "}\r\n\r\n" +
"MAX_MONSTERS = " + $('#max-monster').val() + "\r\n" +
"MIN_MONSTERS = " + $('#min-monster').val() + "\r\n\r\n" +
"FORBIDDEN_MONSTERS = {" + $('#forbidden-ennemy-field').val() + "}\r\n" +
"FORCE_MONSTERS = {" + $('#mendatory-ennemy-field').val() + "}\r\n\r\n";
if (pathLinearData.length !== 0) {
txt +=
'function GatherFight()\r\n' +
'\tfor index, actualMap in pairs(mapsWithChangeMap) do\r\n' +
'\t\tif (map:onMap(actualMap.map)) then\r\n' +
'\t\t\tif actualMap.gather and actualMap.fight then\r\n' +
'\t\t\t\treturn "both"\r\n' +
'\t\t\telseif actualMap.gather then\r\n' +
'\t\t\t\treturn "gather"\r\n' +
'\t\t\telseif actualMap.forcegather then\r\n' +
'\t\t\t\treturn "forcegather"\r\n' +
'\t\t\telseif actualMap.fight then\r\n' +
'\t\t\t\treturn "fight"\r\n' +
'\t\t\telseif actualMap.forcefight then\r\n' +
'\t\t\t\treturn "forcefight"\r\n' +
'\t\t\tend\r\n' +
'\t\t\treturn "path"\r\n' +
'\t\tend\r\n' +
'\tend\r\n' +
'\treturn false\r\n' +
'end\r\n' +
'\r\n' +
'------------------\r\n' +
'\r\n' +
'function move()\r\n';
if (havenbagCheck('move')) {
txt += "\tif map:onMap(\"0,0\") then\r\n";
firstIf = false;
for (let index = 0; index < havenBagData.length; index++) {
if (havenBagData[index].move) {
if (!firstIf) {
txt += "\t\tif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
firstIf = true;
} else
txt += "\t\telseif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
}
}
txt += '\t\tend\r\n' +
'\telse\r\n' +
'\t\tactualMap = map:currentMap()\r\n' +
'\tend\r\n';
}
txt +=
'\tif banque then\r\n' +
'\t\tfor index, actualMap in pairs(mapsWithChangeMap) do\r\n' +
'\t\t\tif actualMap.doNextMap then\r\n' +
'\t\t\t\tactualMap.doNextMap = "no"\r\n' +
'\t\t\tend\r\n' +
'\t\t\tif actualMap.doThirdMap then\r\n' +
'\t\t\t\tactualMap.doThirdMap = "no"\r\n' +
'\t\t\tend\r\n' +
'\t\t\tif actualMap.doFourthdMap then\r\n' +
'\t\t\t\tactualMap.doFourthMap = "no"\r\n' +
'\t\t\tend\r\n' +
'\t\tend\r\n' +
'\t\tbanque = false\r\n' +
'\tend\r\n' +
'\tif GatherFight() == "both" then\r\n' +
'\t\treturn {\r\n' +
'\t\t\t{map = map:currentMap(), custom = processMap, gather = true, fight = true}\r\n' +
'\t\t}\r\n' +
'\telseif GatherFight() == "gather" then\r\n' +
'\t\treturn {\r\n' +
'\t\t\t{map = map:currentMap(), custom = processMap, gather = true}\r\n' +
'\t\t}\r\n' +
'\telseif GatherFight() == "forcegather" then\r\n' +
'\t\treturn {\r\n' +
'\t\t\t{map = map:currentMap(), custom = processMap, forcegather = true}\r\n' +
'\t\t}\r\n' +
'\telseif GatherFight() == "fight" then\r\n' +
'\t\treturn {\r\n' +
'\t\t\t{map = map:currentMap(), custom = processMap, fight = true}\r\n' +
'\t\t}\r\n' +
'\telseif GatherFight() == "forcefight" then\r\n' +
'\t\treturn {\r\n' +
'\t\t\t{map = map:currentMap(), custom = processMap, forcefight = true}\r\n' +
'\t\t}\r\n' +
'\telseif GatherFight() == "path" then\r\n' +
'\t\treturn {\r\n' +
'\t\t\t{map = map:currentMap(), custom = processMap}\r\n' +
'\t\t}\r\n' +
'\telse\r\n' +
'\t\tglobal:printError("Aucune action sur la map : " .. map:currentMap() .. " | mapID : " .. map:currentMapId())\r\n' +
'\t\tglobal:disconnect()\r\n' +
'\tend\r\n' +
'end\r\n' +
'\r\n' +
'mapsWithChangeMap = {\r\n';
for (let key in pathLinearData) {
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';
}
for (let key in pathData) {
txt += '\t{map = "' + pathData[key].map.replace(" ", "") + '", changeMap = "' + pathGenerator(key, pathData) + '"' + gatherFigh(key, pathData) + '},\r\n';
}
txt += '}\r\n' +
'\r\n' +
'function processMap()\r\n' +
'\tfor index, actualMap in pairs(mapsWithChangeMap) do\r\n' +
'\t\tif (map:onMap(actualMap.map)) then\r\n' +
'\t\t\tif (actualMap.doNextMap) and (actualMap.doThirdMap) and (actualMap.doFourthMap) then\r\n' +
'\t\t\t\tif (actualMap.doFourthMap) == "yes" then\r\n' +
'\t\t\t\t\tactualMap.doFourthMap = "no"\r\n' +
'\t\t\t\t\tif (actualMap.fourthMapDoor) then\r\n' +
'\t\t\t\t\t\tactualMap.fourthMapDoor = tonumber(actualMap.fourthMapDoor)\r\n' +
'\t\t\t\t\t\tmap:door(actualMap.fourthMapDoor)\r\n' +
'\t\t\t\t\telseif (actualMap.fourthMapCustom) then\r\n' +
'\t\t\t\t\t\treturn (actualMap.fourthMapCustom)()\r\n' +
'\t\t\t\t\telse\r\n' +
'\t\t\t\t\t\tmap:changeMap(actualMap.fourthMap)\r\n' +
'\t\t\t\t\tend\r\n' +
'\t\t\t\telseif (actualMap.doThirdMap) == "yes" then\r\n' +
'\t\t\t\t\tactualMap.doThirdMap = "no"\r\n' +
'\t\t\t\t\tactualMap.doFourthMap = "yes"\r\n' +
'\t\t\t\t\tif (actualMap.thirdMapDoor) then\r\n' +
'\t\t\t\t\t\tactualMap.thirdMapDoor = tonumber(actualMap.thirdMapDoor)\r\n' +
'\t\t\t\t\t\tmap:door(actualMap.thirdMapDoor)\r\n' +
'\t\t\t\t\telseif (actualMap.thirdMapCustom) then\r\n' +
'\t\t\t\t\t\treturn (actualMap.thirdMapCustom)()\r\n' +
'\t\t\t\t\telse\r\n' +
'\t\t\t\t\t\tmap:changeMap(actualMap.thirdMap)\r\n' +
'\t\t\t\t\tend\r\n' +
'\t\t\t\telseif (actualMap.doNextMap == "yes") then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "no"\r\n' +
'\t\t\t\t\tactualMap.doThirdMap = "yes"\r\n' +
'\t\t\t\t\tif (actualMap.nextMapDoor) then\r\n' +
'\t\t\t\t\t\tactualMap.nextMapDoor = tonumber(actualMap.nextMapDoor)\r\n' +
'\t\t\t\t\t\tmap:door(actualMap.nextMapDoor)\r\n' +
'\t\t\t\t\telseif (actualMap.nextMapCustom) then\r\n' +
'\t\t\t\t\t\treturn (actualMap.nextMapCustom)()\r\n' +
'\t\t\t\t\telse\r\n' +
'\t\t\t\t\t\tmap:changeMap(actualMap.nextMap)\r\n' +
'\t\t\t\t\tend\r\n' +
'\t\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
'\t\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
'\t\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
'\t\t\t\telseif (actualMap.changeMap) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
'\t\t\t\tend\r\n' +
'\t\t\telseif (actualMap.doNextMap) and (actualMap.doThirdMap) then\r\n' +
'\t\t\t\tif (actualMap.doThirdMap) == "yes" then\r\n' +
'\t\t\t\t\tactualMap.doThirdMap = "no"\r\n' +
'\t\t\t\t\tif (actualMap.thirdMapDoor) then\r\n' +
'\t\t\t\t\t\tactualMap.thirdMapDoor = tonumber(actualMap.thirdMapDoor)\r\n' +
'\t\t\t\t\t\tmap:door(actualMap.thirdMapDoor)\r\n' +
'\t\t\t\t\telseif (actualMap.thirdMapCustom) then\r\n' +
'\t\t\t\t\t\treturn (actualMap.thirdMapCustom)()\r\n' +
'\t\t\t\t\telse\r\n' +
'\t\t\t\t\t\tmap:changeMap(actualMap.thirdMap)\r\n' +
'\t\t\t\t\tend\r\n' +
'\t\t\t\telseif (actualMap.doNextMap == "yes") then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "no"\r\n' +
'\t\t\t\t\tactualMap.doThirdMap = "yes"\r\n' +
'\t\t\t\t\tif (actualMap.nextMapDoor) then\r\n' +
'\t\t\t\t\t\tactualMap.nextMapDoor = tonumber(actualMap.nextMapDoor)\r\n' +
'\t\t\t\t\t\tmap:door(actualMap.nextMapDoor)\r\n' +
'\t\t\t\t\telseif (actualMap.nextMapCustom) then\r\n' +
'\t\t\t\t\t\treturn (actualMap.nextMapCustom)()\r\n' +
'\t\t\t\t\telse\r\n' +
'\t\t\t\t\t\tmap:changeMap(actualMap.nextMap)\r\n' +
'\t\t\t\t\tend\r\n' +
'\t\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
'\t\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
'\t\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
'\t\t\t\telseif (actualMap.changeMap) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
'\t\t\t\tend\r\n' +
'\t\t\telseif (actualMap.doNextMap) then\r\n' +
'\t\t\t\tif (actualMap.doNextMap == "yes") then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "no"\r\n' +
'\t\t\t\t\tif (actualMap.nextMapDoor) then\r\n' +
'\t\t\t\t\t\tactualMap.nextMapDoor = tonumber(actualMap.nextMapDoor)\r\n' +
'\t\t\t\t\t\tmap:door(actualMap.nextMapDoor)\r\n' +
'\t\t\t\t\telseif (actualMap.nextMapCustom) then\r\n' +
'\t\t\t\t\t\treturn (actualMap.nextMapCustom)()\r\n' +
'\t\t\t\t\telse\r\n' +
'\t\t\t\t\t\tmap:changeMap(actualMap.nextMap)\r\n' +
'\t\t\t\t\tend\r\n' +
'\t\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
'\t\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
'\t\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
'\t\t\t\telseif (actualMap.changeMap) then\r\n' +
'\t\t\t\t\tactualMap.doNextMap = "yes"\r\n' +
'\t\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
'\t\t\t\tend\r\n' +
'\t\t\telseif (actualMap.changeMapDoor) then\r\n' +
'\t\t\t\tactualMap.changeMapDoor = tonumber(actualMap.changeMapDoor)\r\n' +
'\t\t\t\tmap:door(actualMap.changeMapDoor)\r\n' +
'\t\t\telseif (actualMap.changeMapCustom) then\r\n' +
'\t\t\t\treturn (actualMap.changeMapCustom)()\r\n' +
'\t\t\telseif (actualMap.changeMap) then\r\n' +
'\t\t\t\tmap:changeMap(actualMap.changeMap)\r\n' +
'\t\t\telseif (actualMap.forcegather) then\r\n' +
'\t\t\tend\r\n' +
'\t\tend\r\n' +
'\tend\r\n' +
'end\r\n\r\n';
} else {
txt += "\r\nfunction move()\r\n";
if (havenbagCheck('move')) {
txt += "\tif map:onMap(\"0,0\") then\r\n";
firstIf = false;
for (let index = 0; index < havenBagData.length; index++) {
if (havenBagData[index].move) {
if (!firstIf) {
txt += "\t\tif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
firstIf = true;
} else
txt += "\t\telseif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
}
}
txt += '\t\tend\r\n' +
'\telse\r\n' +
'\t\tactualMap = map:currentMap()\r\n' +
'\tend\r\n';
}
txt += '\treturn {\r\n' +
'\t\t{map = "83887104", path = "396"}, --Interieur banque Astrub vers Sortie--\r\n' +
'\t\t{map = "54534165", path = "424"}, --Interieur banque Frigost vers Sortie--\r\n' +
'\t\t{map = "2885641", path = "424"}, --Interieur banque Bonta vers Sortie--\r\n' +
'\t\t{map = "99095051", path = "410"}, --Interieur banque Amakna vers Sortie--\r\n' +
'\t\t{map = "8912911", path = "424"}, --Interieur banque Brakmar vers Sortie--\r\n' +
'\t\t{map = "91753985", path = "396"}, --Interieur banque Sufokia vers Sortie--\r\n' +
'\t\t{map = "86511105", door = "452"}, --Interieur banque Ottomaï vers Sortie--\r\n' +
'\t\t{map = "8129542", path = "409"}, --Interieur banque Pandala vers Sortie--\r\n' +
'\t\t{map = "84935175", path = "425"}, --Interieur banque Montagne Koalak vers Sortie--\r\n';
for (let key in pathData) {
txt += '\t\t{map = "' + pathData[key].map.replace(" ", "") + '", path = "' + pathGenerator(key, pathData) + '"' + gatherFigh(key, pathData) + '},\r\n';
}
txt += '\t}\r\nend\r\n\r\n';
}
txt += "function bank()\r\n";
if (pathLinearData.length !== 0) {
txt += '\tbanque = true\r\n';
}
if (havenbagCheck('bank')) {
txt += "\tif map:onMap(\"0,0\") then\r\n";
firstIf = false;
for (let index = 0; index < havenBagData.length; index++) {
if (havenBagData[index].bank) {
if (!firstIf) {
txt += "\t\tif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
firstIf = true;
} else
txt += "\t\telseif actualMap == \"" + havenBagData[index].map + "\" then\r\n\t\t\tmap:changeMap(\"zaap(" + havenBagData[index].mapidToGo + ")\")\r\n";
}
}
txt += "\t\tend\r\n" +
"\telse\r\n" +
"\t\tactualMap = map:currentMap()\r\n" +
"\tend\r\n";
}
txt += "\treturn {\r\n";
for (let key in bankData) {
txt += '\t\t{map = "' + bankData[key].map.replace(" ", "") + '", path = "' + pathGenerator(key, bankData) + '"},\r\n';
}
txt += '\t\t{map = "84674566", door = "303"}, --Devant banque Astrub--\r\n' +
'\t\t{map = "83887104", path = "396", npcBank = true}, --Banque Astrub--\r\n' +
'\t\t{map = "54172457", door = "358"}, --Devant banque Frigost--\r\n' +
'\t\t{map = "54534165", path = "424", npcBank = true}, --Banque Frigost--\r\n' +
'\t\t{map = "147254", door = "383"}, --Devant banque Bonta--\r\n' +
'\t\t{map = "2885641", path = "424", npcBank = true}, --Banque Bonta--\r\n' +
'\t\t{map = "88081177", door = "216"}, --Devant banque Amakna--\r\n' +
'\t\t{map = "99095051", path = "410", npcBank = true}, --Banque Amakna--\r\n' +
'\t\t{map = "144931", door = "248"}, --Devant banque Brakmar--\r\n' +
'\t\t{map = "8912911", path = "424", npcBank = true}, --Banque Brakmar--\r\n' +
'\t\t{map = "90703872", door = "302"}, --Devant banque Sufokia --\r\n' +
'\t\t{map = "91753985", path = "494", npcBank = true}, --Banque Sufokia--\r\n' +
'\t\t{map = "155157", door = "355"}, --Devant banque Ottomaï--\r\n' +
'\t\t{map = "86511105", door = "452", npcBank = true}, --Banque Ottomaï--\r\n' +
'\t\t{map = "12580", door = "284"}, --Devant banque Pandala--\r\n' +
'\t\t{map = "8129542", path = "409", npcBank = true}, --Banque Pandala--\r\n' +
'\t\t{map = "73400323", door = "330"}, --Devant banque Montagne Koalak--\r\n' +
'\t\t{map = "84935175", path = "425", npcBank = true}, --Banque Montagne Koalak--\r\n\t}\r\nend\r\n' +
'\r\n\r\nfunction phenix()\r\n';
if (havenbagCheck('phenix')) {
txt += "\tif map:onMap(\"0,0\") then\r\n";
firstIf = false;
for (let index = 0; index < havenBagData.length; index++) {
if (havenBagData[index].phenix) {
if (!firstIf) {
txt += '\t\tif actualMap == \"' + havenBagData[index].map + '\" then\r\n\t\t\tmap:changeMap(\"zaap(' + havenBagData[index].mapidToGo + ')\")\r\n';
firstIf = true;
} else
txt += '\t\telseif actualMap == \"' + havenBagData[index].map + '\" then\r\n\t\t\tmap:changeMap(\"zaap(' + havenBagData[index].mapidToGo + ')\")\r\n';
}
}
txt += '\t\tend\r\n' +
'\telse\r\n' +
'\t\tactualMap = map:currentMap()\r\n' +
'\tend\r\n';
} else if (havenbagCheck('move')) txt += '\tactualMap = map:currentMap()\r\n';
txt += "\treturn {\r\n";
for (let key in phenixData) {
if (checkPhenixPos(phenixData[key].map.replace(" ", ""))[0]) {
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';
} else {
txt += '\t\t{map = "' + phenixData[key].map.replace(" ", "") + '", path = "' + pathGenerator(key, phenixData) + '"},\r\n';
}
}
txt += '\t}\r\nend\r\n';
saveTextAsFile(txt);
});
function saveTextAsFile(txt) {
var textToSaveAsBlob = new Blob([txt], {
type: "text/plain"
});
var textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob);
var fileNameToSaveAs = '[' + ($('#type-field').val() ? $('#type-field').val() : "") + '][' + $('#area-field').val() + ']' + $('#file-name-field').val() + '.lua';
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
downloadLink.href = textToSaveAsURL;
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
downloadLink.click();
}
function languageSelector(params) {
switch (params) {
case "fr":
$('#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>');
$('#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">×</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>');
$('#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>');
$('#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>');
$('#ressources-selecter').empty();
for (let key in ressourcesFr) {
$('#ressources-selecter').append('<option value="' + ressourcesFr[key].itemId + '">' + ressourcesFr[key].itemName + '</option>');
}
GM_setValue("language", "fr");
break;
case "en":
$('#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>');
$('#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">×</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>');
$('#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>');
$('#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>');
$('#ressources-selecter').empty();
for (let key in ressourcesEn) {
$('#ressources-selecter').append('<option value="' + ressourcesEn[key].itemId + '">' + ressourcesEn[key].itemName + '</option>');
}
GM_setValue("language", "en");
break;
case "es":
$('#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>');
$('#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">×</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>');
$('#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>');
$('#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>');
$('#ressources-selecter').empty();
for (let key in ressourcesEs) {
$('#ressources-selecter').append('<option value="' + ressourcesEs[key].itemId + '">' + ressourcesEs[key].itemName + '</option>');
}
GM_setValue("language", "es");
break;
default:
break;
}
$('#language-selected').change(function () {
languageSelector($('#language-selected').val()[0]);
});
$('#shortcut-key-up, #shortcut-key-down, #shortcut-key-left, #shortcut-key-right, #shortcut-key-havenbag, #shortcut-key-erase').focusin(function(){
$(this).val("");
switch (GM_getValue("language")) {
case "fr":
$(this).attr("placeholder", "Appuyer sur une touche");
break;
case "en":
$(this).attr("placeholder", "Press a key");
break;
case "es":
$(this).attr("placeholder", "Presione una tecla");
break;
default:
break;
}
$(this).keydown(function (evt) {
GM_setValue(this.id, evt.key);
$(this).val(GM_getValue(this.id));
});
});
$('#shortcut-key-up, #shortcut-key-down, #shortcut-key-left, #shortcut-key-right, #shortcut-key-havenbag, #shortcut-key-erase').focusout(function(){
$(this).val(GM_getValue(this.id));
});
}
languageSelector(GM_getValue("language", "fr"));
$('#file').change(function () {
var file = this.files[0];
var content;
var reader = new FileReader();
reader.onload = function (progressEvent) {
// Entire file
content = this.result;
let regexPath = /function move\(\)[\s\S]+?return.*?{\r\n([\s\S]+?)}\r\n.*end/g;
let regexPathLinear = /mapsWithChangeMap.?=.?{\r\n([\s\S]+?)}\r\n/g;
let regexBank = /function bank\(\)[\s\S]+?return.*?{\r\n([\s\S]+?)}\r\n.*end/g;
let regexPhenix = /function phenix\(\)[\s\S]+?return.*?{\r\n([\s\S]+?)}\r\n.*end/g;
let result;
let matche = regexBank.exec(content);
loadingFile = true;
$(".path-selecter .toggled").removeClass('toggled');
if (matche !== null) {
result = matche[1];
result = result.split('\r\n');
for (let index = 0; index < result.length; index++) {
matche = /map.?=.?"(.*?)"/g.exec(result[index]);
if (matche !== null) actualMap = matche[1];
actualMap = actualMap.replace(/,/g, ", ");
if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
matche = /top/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-up").addClass('toggled');
matche = /left/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-left").addClass('toggled');
matche = /bottom/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-down").addClass('toggled');
matche = /right/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-right").addClass('toggled');
$(".path-type-selecter .toggled").removeClass('toggled');
$(".fa-university").addClass('toggled');
onMapClick();
$(".path-selecter .toggled").removeClass('toggled');
$(".path-type-selecter .toggled").removeClass('toggled');
}
}
}
matche = regexPathLinear.exec(content);
if (matche !== null) {
result = matche[1];
result = result.split('\r\n');
$(".fa-random").addClass('toggled');
for (let index = 0; index < result.length; index++) {
matche = /map.?=.?"(.*?)"/g.exec(result[index]);
if (matche !== null) actualMap = matche[1];
actualMap = actualMap.replace(/,/g, ", ");
if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
let loadAddLinearAction = function (param) {
matche = param.exec(result[index]);
if (matche !== null) {
if (matche[1] == "top") $(".fa-arrow-up").addClass('toggled');
if (matche[1] == "left") $(".fa-arrow-left").addClass('toggled');
if (matche[1] == "bottom") $(".fa-arrow-down").addClass('toggled');
if (matche[1] == "right") $(".fa-arrow-right").addClass('toggled');
}
$(".fa-arrows-alt").addClass('toggled');
matche = /gather/g.exec(result[index]);
if (matche !== null) $(".fa-leaf").addClass('toggled');
matche = /fight/g.exec(result[index]);
if (matche !== null) $(".fa-shield-alt").addClass('toggled');
onMapClick();
$(".path-selecter .toggled").removeClass('toggled');
$(".path-type-selecter .toggled").removeClass('toggled');
};
loadAddLinearAction(/changeMap.?=.?"(.+?)"/g);
loadAddLinearAction(/nextMap.?=.?"(.+?)"/g);
loadAddLinearAction(/thirdMap.?=.?"(.+?)"/g);
loadAddLinearAction(/fourthMap.?=.?"(.+?)"/g);
}
}
$(".fa-random.toggled").removeClass('toggled');
} else if ((matche = regexPath.exec(content)) !== null) {
result = matche[1];
result = result.split('\r\n');
for (let index = 0; index < result.length; index++) {
matche = /map.?=.?"(.*?)"/g.exec(result[index]);
if (matche !== null) actualMap = matche[1];
actualMap = actualMap.replace(/,/g, ", ");
if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
matche = /top/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-up").addClass('toggled');
matche = /left/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-left").addClass('toggled');
matche = /bottom/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-down").addClass('toggled');
matche = /right/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-right").addClass('toggled');
$(".fa-arrows-alt").addClass('toggled');
matche = /gather/g.exec(result[index]);
if (matche !== null) $(".fa-leaf").addClass('toggled');
matche = /fight/g.exec(result[index]);
if (matche !== null) $(".fa-shield-alt").addClass('toggled');
onMapClick();
$(".path-selecter .toggled").removeClass('toggled');
$(".path-type-selecter .toggled").removeClass('toggled');
}
}
}
matche = regexPhenix.exec(content);
if (matche !== null) {
result = matche[1];
result = result.split('\r\n');
for (let index = 0; index < result.length; index++) {
matche = /map.?=.?"(.*?)"/g.exec(result[index]);
if (matche !== null) actualMap = matche[1];
actualMap = actualMap.replace(/,/g, ", ");
if (/(-|)[0-9]+?,\s(-|)[0-9]+?/g.exec(actualMap)) {
matche = /top/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-up").addClass('toggled');
matche = /left/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-left").addClass('toggled');
matche = /bottom/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-down").addClass('toggled');
matche = /right/g.exec(result[index]);
if (matche !== null) $(".fa-arrow-right").addClass('toggled');
$(".fa-fire").addClass('toggled');
onMapClick();
$(".path-selecter .toggled").removeClass('toggled');
$(".path-type-selecter .toggled").removeClass('toggled');
}
}
}
$(".fa-arrows-alt").addClass('toggled');
loadingFile = false;
};
reader.readAsText(file);
});
$(document).keydown(function (evt) {
var keyCode = evt.key;
switch (keyCode) {
case GM_getValue("shortcut-key-up", "z"):
if ($(".fa-arrow-up.toggled").length > 0)
$(".fa-arrow-up.toggled").removeClass('toggled');
else {
$(".fa-arrow-up").toggleClass('toggled');
$(".fa-suitcase.toggled").removeClass('toggled');
}
break;
case GM_getValue("shortcut-key-left", "q"):
if ($(".fa-arrow-left.toggled").length > 0)
$(".fa-arrow-left.toggled").removeClass('toggled');
else {
$(".fa-arrow-left").toggleClass('toggled');
$(".fa-suitcase.toggled").removeClass('toggled');
}
break;
case GM_getValue("shortcut-key-down", "s"):
if ($(".fa-arrow-down.toggled").length > 0)
$(".fa-arrow-down.toggled").removeClass('toggled');
else {
$(".fa-arrow-down").toggleClass('toggled');
$(".fa-suitcase.toggled").removeClass('toggled');
}
break;
case GM_getValue("shortcut-key-right", "d"):
if ($(".fa-arrow-right.toggled").length > 0)
$(".fa-arrow-right.toggled").removeClass('toggled');
else {
$(".fa-arrow-right").toggleClass('toggled');
$(".fa-suitcase.toggled").removeClass('toggled');
}
break;
case GM_getValue("shortcut-key-havenbag", "a"):
if ($(".fa-suitcase.toggled").length > 0)
$(".fa-suitcase.toggled").removeClass('toggled');
else {
$(".fa-arrow-up.toggled").removeClass('toggled');
$(".fa-arrow-left.toggled").removeClass('toggled');
$(".fa-arrow-down.toggled").removeClass('toggled');
$(".fa-arrow-right.toggled").removeClass('toggled');
$(".fa-suitcase").toggleClass('toggled');
}
break;
case GM_getValue("shortcut-key-erase", "e"):
if ($(".fa-eraser.toggled").length > 0)
$(".fa-eraser.toggled").removeClass('toggled');
else {
$(".fa-eraser").toggleClass('toggled');
}
break;
default:
break;
}
});
$('#havenBagSetting').on('click', '.btn-primary', function () {
let e = $('#sel1 option:selected');
var objMap = JSON.parse(e.val());
if ($(".fa-arrows-alt.toggled").length > 0 || $(".fa-leaf.toggled").length > 0 || $(".fa-shield-alt.toggled").length > 0)
havenBagData.push({
map: actualMap.split(", ")[0] + "," + actualMap.split(", ")[1],
mapToGo: objMap.map,
mapidToGo: objMap.mapid,
move: true,
});
else if ($(".fa-university.toggled").length > 0)
havenBagData.push({
map: actualMap.split(", ")[0] + "," + actualMap.split(", ")[1],
mapToGo: objMap.map,
mapidToGo: objMap.mapid,
bank: true,
});
else if ($(".fa-fire.toggled").length > 0)
havenBagData.push({
map: actualMap.split(", ")[0] + "," + actualMap.split(", ")[1],
mapToGo: objMap.map,
mapidToGo: objMap.mapid,
move: true
});
$('#havenBagSetting').modal('hide');
onMapClick();
});
$('#havenBagSetting').on('click', '.btn-secondary', function () {
havenToggle = false;
$('#havenBagSetting').modal('hide');
});
$('#havenBagSetting').on('click', '.close', function () {
havenToggle = false;
$('#havenBagSetting').modal('hide');
});
function linearActualItem(index, time) {
if (GM_getValue('language') == 'fr') {
if (pathLinearData[index].top.index == time) return 'Haut';
else if (pathLinearData[index].left.index == time) return 'Gauche';
else if (pathLinearData[index].bottom.index == time) return 'Bas';
else if (pathLinearData[index].right.index == time) return 'Droite';
else if (pathLinearData[index].havenbag.index == time) return 'Havre-sac';
} else if (GM_getValue('language') == 'en') {
if (pathLinearData[index].top.index == time) return 'Top';
else if (pathLinearData[index].left.index == time) return 'Left';
else if (pathLinearData[index].bottom.index == time) return 'Bottom';
else if (pathLinearData[index].right.index == time) return 'Right';
else if (pathLinearData[index].havenbag.index == time) return 'Havenbag';
} else if (GM_getValue('language') == 'es') {
if (pathLinearData[index].top.index == time) return 'Arriba';
else if (pathLinearData[index].left.index == time) return 'Bajo';
else if (pathLinearData[index].bottom.index == time) return 'Izquierda';
else if (pathLinearData[index].right.index == time) return 'Derecha';
else if (pathLinearData[index].havenbag.index == time) return 'Merkasako';
}
}
function LMap() {
if (map) {
map.on('click', onMapClick);
map.on('mousemove', function () {
for (let index = 0; index < pathLinearData.length; index++) {
if (pathLinearData[index].map == $('#mapCoordinates').text()) {
if (pathLinearData[index].index == 4) {
if (GM_getValue('language') == 'fr') {
$('#mapCoordinates').append(
'<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) +
'<br />Deuxiéme action sur la map : ' + linearActualItem(index, 2) +
'<br />Troisiéme action sur la map : ' + linearActualItem(index, 3) +
'<br />Quatrième action sur la map : ' + linearActualItem(index, 4) + '</span>'
);
} else if (GM_getValue('language') == 'en') {
$('#mapCoordinates').append(
'<span><br />First action on the map : ' + linearActualItem(index, 1) +
'<br />Second action on the map : ' + linearActualItem(index, 2) +
'<br />Third action on the map : ' + linearActualItem(index, 3) +
'<br />Fourth action on the map : ' + linearActualItem(index, 4) + '</span>'
);
} else if (GM_getValue('language') == 'es') {
$('#mapCoordinates').append(
'<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) +
'<br />Segunda acción en el mapa : ' + linearActualItem(index, 2) +
'<br />Tercera acción en el mapa : ' + linearActualItem(index, 3) +
'<br />Cuarta acción en el mapa : ' + linearActualItem(index, 4) + '</span>'
);
}
} else if (pathLinearData[index].index == 3) {
if (GM_getValue('language') == 'fr') {
$('#mapCoordinates').append(
'<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) +
'<br />Deuxiéme action sur la map : ' + linearActualItem(index, 2) +
'<br />Troisiéme action sur la map : ' + linearActualItem(index, 3) + '</span>'
);
} else if (GM_getValue('language') == 'en') {
$('#mapCoordinates').append(
'<span><br />First action on the map : ' + linearActualItem(index, 1) +
'<br />Second action on the map : ' + linearActualItem(index, 2) +
'<br />Third action on the map : ' + linearActualItem(index, 3) + '</span>'
);
} else if (GM_getValue('language') == 'es') {
$('#mapCoordinates').append(
'<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) +
'<br />Segunda acción en el mapa : ' + linearActualItem(index, 2) +
'<br />Tercera acción en el mapa : ' + linearActualItem(index, 3) + '</span>'
);
}
} else if (pathLinearData[index].index == 2) {
if (GM_getValue('language') == 'fr') {
$('#mapCoordinates').append(
'<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) +
'<br />Deuxiéme action sur la map : ' + linearActualItem(index, 2) + '</span>'
);
} else if (GM_getValue('language') == 'en') {
$('#mapCoordinates').append(
'<span><br />First action on the map : ' + linearActualItem(index, 1) +
'<br />Second action on the map : ' + linearActualItem(index, 2) + '</span>'
);
} else if (GM_getValue('language') == 'es') {
$('#mapCoordinates').append(
'<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) +
'<br />Segunda acción en el mapa : ' + linearActualItem(index, 2) + '</span>'
);
}
} else if (pathLinearData[index].index == 1) {
if (GM_getValue('language') == 'fr') {
$('#mapCoordinates').append(
'<span><br />Premiére action sur la map : ' + linearActualItem(index, 1) + '</span>'
);
} else if (GM_getValue('language') == 'en') {
$('#mapCoordinates').append(
'<span><br />PFirst action on the map : ' + linearActualItem(index, 1) + '</span>'
);
} else if (GM_getValue('language') == 'es') {
$('#mapCoordinates').append(
'<span><br />Primera acción en el mapa: ' + linearActualItem(index, 1) + '</span>'
);
}
}
}
}
});
} else {
setTimeout(function () {
LMap();
}, 50);
}
}
LMap();
$('#path-creator-bar').on('click', '.fa-folder-open', function () {
$('#file').trigger('click');
});
$('#path-creator-bar').on('click', '.fa-trash-alt', function () {
let deleteAll = function (array) {
for (let index = 0; index < array.length; index) {
if (array[index].top)
if (array[index].top.icon) map.removeLayer(array[index].top.icon);
if (array[index].bottom)
if (array[index].bottom.icon) map.removeLayer(array[index].bottom.icon);
if (array[index].left)
if (array[index].left.icon) map.removeLayer(array[index].left.icon);
if (array[index].right)
if (array[index].right.icon) map.removeLayer(array[index].right.icon);
if (array[index].havenbag)
if (array[index].havenbag.icon) map.removeLayer(array[index].havenbag.icon);
array.splice(index, 1);
}
};
deleteAll(pathData);
deleteAll(pathLinearData);
deleteAll(bankData);
deleteAll(phenixData);
deleteAll(havenBagData);
console.clear();
});
$('#path-creator-bar').on('click', '.fa-eraser, .fa-random', function () {
$(this).toggleClass('toggled');
if (($('.fa-random.toggled').length > 0)) {
$('.fa-arrows-alt').toggleClass('toggled');
$('.fa-fire').removeClass("toggled");
$('.fa-fire').css("background-color", "#999");
$('.fa-fire').css("pointer-events", "none");
$('.fa-university').removeClass("toggled");
$('.fa-university').css("background-color", "#999");
$('.fa-university').css("pointer-events", "none");
} else {
$('.fa-fire').css("background-color", "white");
$('.fa-fire').css("pointer-events", "auto");
$('.fa-university').css("background-color", "white");
$('.fa-university').css("pointer-events", "auto");
}
});
$('#path-creator-bar').on('click', '.fa-arrows-alt, .fa-shield-alt, .fa-leaf, .fa-university, .fa-fire', function () {
$(".path-type-selecter .toggled").removeClass("toggled");
$(this).toggleClass('toggled');
if ($(".fa-fire.toggled").length > 0) {
for (let key in phenixPos) {
if (phenixPos[key].marker)
map.removeLayer(phenixPos[key].marker);
phenixPos[key].marker = undefined;
}
for (let key in phenixPos) {
phenixPos[key].marker = L.marker(dofusXYToMapXY(phenixPos[key].map.split(",")[0] * 1 + 0.5, phenixPos[key].map.split(",")[1] * 1 + 0.5), {
interactive: true,
zIndexOffset: 5000,
icon: icon.hint.phenix
}).addTo(map);
}
} else {
for (let key in phenixPos) {
if (phenixPos[key].marker)
map.removeLayer(phenixPos[key].marker);
phenixPos[key].marker = undefined;
}
}
if ($(".fa-university.toggled").length > 0) {
for (let key in bankPos) {
if (bankPos[key].marker)
map.removeLayer(bankPos[key].marker);
bankPos[key].marker = undefined;
}
for (let key in bankPos) {
bankPos[key].marker = L.marker(dofusXYToMapXY(bankPos[key].map.split(",")[0] * 1 + 0.5, bankPos[key].map.split(",")[1] * 1 + 0.5), {
interactive: true,
zIndexOffset: 5000,
icon: icon.hint.bank
}).addTo(map);
}
} else {
for (let key in bankPos) {
if (bankPos[key].marker)
map.removeLayer(bankPos[key].marker);
bankPos[key].marker = undefined;
}
}
});
$('#path-creator-bar').on('click', '.fa-suitcase', function () {
$(".fa-arrow-up.toggled").removeClass('toggled');
$(".fa-arrow-left.toggled").removeClass('toggled');
$(".fa-arrow-down.toggled").removeClass('toggled');
$(".fa-arrow-right.toggled").removeClass('toggled');
$(this).toggleClass('toggled');
});
$('#path-creator-bar').on('click', '.fa-arrow-up, .fa-arrow-down, .fa-arrow-left, .fa-arrow-right', function () {
$(".fa-suitcase.toggled").removeClass("toggled");
$(this).toggleClass('toggled');
});
$('#path-creator-bar').on('click', '.fa-cog', function () {
$('#setting').modal('show');
});
$('#path-creator-bar').on('click', '.fa-info-circle', function () {
$('#pathSetting').modal('show');
$('#ressources-selecter').selectpicker('refresh');
});
$("#pathSetting").on('change', '#ressources-selecter',function () {
// gatherData = $('#ressources-selecter').val();
$('#ressources-to-gather .ressources-selected-summary').empty();
$("#ressources-selecter option:selected").each(function () {
$('#ressources-to-gather .ressources-selected-summary').append('<button class="btn btn-success" style="margin: 2.5px;">' + $(this).text() + '</button>');
});
});
})();