Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Customowe setUpy menogram
- // @namespace http://tampermonkey.net/
- // @version 2
- // @description Nowa lepsza wersja customowych setupów umieszczona w oknie bota. W razie błędów proszę pisać: Czogi#0938
- // @author Czogi
- // @match http://*.margonem.pl/
- // @grant none
- // ==/UserScript==
- const enabled = true;
- const sets = [
- {
- type: "exp",
- name: "test",
- travMaps: "1,2,3",
- minLvl: 0,
- maxLvl: 300,
- expMaps: "1,2,3",
- },
- {
- type: "exp",
- name: "test 2",
- travMaps: "3,2,1",
- minLvl: 80,
- maxLvl: 90,
- expMaps: "1,9,3,7,6,4,5,3,1,2",
- },
- {
- type: "e2",
- name: "test",
- travMaps: "3,2,1",
- lvl: 3,
- mapName: "Ithan",
- eliteName: "Mietek",
- cords: [0, 0],
- },
- {
- type: "e2",
- name: "test 2",
- travMaps: "100,200,300,400",
- lvl: 36,
- mapName: "Adnarum Ilami",
- eliteName: "Mushita",
- cords: [0, 0],
- },
- {
- type: "other",
- name: "test",
- travMaps:
- "3,3,2,2,1,1" /*mapName oraz cords nie są wymagane ale mozna je wpisać*/,
- },
- {
- type: "other",
- name: "test 2",
- travMaps:
- "3,3,2,2,1,1,3,3,2,2,1,1" /*mapName oraz cords nie są wymagane ale mozna je wpisać*/,
- },
- ];
- const sleep = async (time) => {
- return await new Promise((resolve) => setTimeout(resolve, time));
- };
- String.prototype.escapeDiacritics = function () {
- return this.replace(/ą/g, "a")
- .replace(/Ą/g, "A")
- .replace(/ć/g, "c")
- .replace(/Ć/g, "C")
- .replace(/ę/g, "e")
- .replace(/Ę/g, "E")
- .replace(/ł/g, "l")
- .replace(/Ł/g, "L")
- .replace(/ń/g, "n")
- .replace(/Ń/g, "N")
- .replace(/ó/g, "o")
- .replace(/Ó/g, "O")
- .replace(/ś/g, "s")
- .replace(/Ś/g, "S")
- .replace(/ż/g, "z")
- .replace(/Ż/g, "Z")
- .replace(/ź/g, "z")
- .replace(/Ź/g, "Z");
- };
- class SetUp {
- constructor(set, index) {
- this.type = set["type"];
- this.name = set["name"];
- this.travMaps = set["travMaps"];
- switch (set.type) {
- case "exp":
- this.minLvl = set["minLvl"];
- this.maxLvl = set["maxLvl"];
- this.expMaps = set["expMaps"];
- break;
- case "e2":
- this.lvl = set["lvl"];
- this.mapName = set["mapName"];
- this.eliteName = set["eliteName"];
- this.cords = set["cords"];
- break;
- case "other":
- this.lvl = 0;
- this.mapName =
- typeof set["mapName"] != "undefined" ? set["mapName"] : "brak";
- this.cords = typeof set["cords"] != "undefined" ? set["cords"] : [0, 0];
- break;
- default:
- return alert("Podano nieprawidłowy typ setUpa.");
- }
- this.elem = document.createElement("option");
- this.elem.text =
- this.name +
- ` ${
- this.type == "exp"
- ? ` (${this.minLvl}-${this.maxLvl})`
- : this.type == "e2"
- ? `(${this.lvl}lvl)`
- : ""
- }`;
- this.elem.value = `c|${this.type}|${index}`;
- }
- }
- class MenoSetUps {
- constructor() {
- this.userID = getCookie("user_id");
- this.char = getCookie("mchar_id");
- this.mode = localStorage["last_t"];
- this.setUps = { exp: [], e2: [], other: [] };
- for (const set of sets) {
- this.setUps[set.type].push(new SetUp(set, this.setUps[set.type].length));
- }
- }
- async init() {
- while (
- this.mode != "exp" ||
- !document.getElementsByClassName("b_set")[0] ||
- !document.getElementsByClassName("b_set_filter")[0]
- ) {
- await sleep(200);
- this.mode = localStorage["last_t"];
- }
- this.filterSelect = document.getElementsByClassName("b_set_filter")[0];
- this.setSelect = document.getElementsByClassName("b_set")[0];
- this.filterSelect.style.width = "100px";
- const separation = document.createElement("option");
- separation.text = " ";
- separation.disabled = true;
- this.filterSelect.appendChild(separation);
- for (const mode of [
- ["Customowe Wszystko", "b_c_set_all"],
- ["Customowy Exp", "b_c_set_exp"],
- ["Customowe e2", "b_c_set_e2"],
- ["Customowe Inne", "b_c_set_other"],
- ["Customowe Dedykowane", "b_c_set_forme"],
- ]) {
- const filterElem = document.createElement("option");
- filterElem.text = mode[0];
- filterElem.value = mode[1];
- this.filterSelect.appendChild(filterElem);
- }
- this.appendSetUps();
- }
- appendSetUps() {
- for (const elem of Object.entries(this.setUps)) {
- const header = document.createElement("option");
- header.text =
- (elem[0] != "exp" ? "Customowe " : "Customowy ") +
- elem[0][0].replace("o", "i").toUpperCase() +
- elem[0].slice(1).replace("ther", "nne");
- header.text;
- header.disabled = true;
- this.setSelect.appendChild(header);
- for (const set of elem[1]) {
- this.setSelect.appendChild(set.elem);
- }
- }
- this.setSelect.onchange = () => {
- const optValue = this.setSelect.options[this.setSelect.selectedIndex]
- .value;
- const optSplit = optValue.split("|");
- if (optSplit[0] != "c") {
- return;
- }
- const setUp = this.setUps[optSplit[1]][parseInt(optSplit[2])];
- switch (optSplit[1]) {
- case "exp":
- if (!document.getElementsByClassName("b_mode")[0].checked)
- document.getElementsByClassName("b_mode")[0].click();
- localStorage.setItem(this.userID + "expMode" + this.char, "on");
- localStorage.setItem(
- this.userID + "otherMap" + this.char,
- setUp.expMaps
- );
- localStorage.setItem(
- this.userID + "mapsRet" + this.char,
- setUp.travMaps
- );
- localStorage.setItem(this.userID + "myMax" + this.char, setUp.maxLvl);
- localStorage.setItem(this.userID + "myMin" + this.char, setUp.minLvl);
- document.getElementsByClassName("b_exp_ids")[0].value = setUp.expMaps;
- document.getElementsByClassName("b_back_ids")[0].value =
- setUp.travMaps;
- document.getElementsByClassName("b_mob_lvl_min")[0].value =
- setUp.minLvl;
- document.getElementsByClassName("b_mob_lvl_max")[0].value =
- setUp.maxLvl;
- break;
- case "e2":
- if (document.getElementsByClassName("b_mode")[0].checked)
- document.getElementsByClassName("b_mode")[0].click();
- localStorage.setItem(this.userID + "expMode" + this.char, "off");
- localStorage.setItem(
- this.userID + "mainMap" + this.char,
- setUp.mapName
- );
- localStorage.setItem(
- this.userID + "mapsRet" + this.char,
- setUp.travMaps
- );
- localStorage.setItem(
- this.userID + "tytData" + this.char,
- localStorage.getItem(this.userID + "tytData" + this.char) +
- " " +
- setUp.eliteName
- );
- localStorage.setItem(
- "myback" +
- this.char +
- window.map.name.replace(" ", "_").escapeDiacritics(),
- setUp.cords.join(",")
- );
- document.getElementsByClassName("b_names")[0].value +=
- " " + setUp.eliteName;
- document.getElementsByClassName(
- "b_back_cords"
- )[0].value = setUp.cords.join(",");
- document.getElementsByClassName("b_map_name")[0].value =
- setUp.mapName;
- document.getElementsByClassName("b_back_ids")[0].value =
- setUp.travMaps;
- break;
- case "other":
- if (document.getElementsByClassName("b_mode")[0].checked)
- document.getElementsByClassName("b_mode")[0].click();
- localStorage.setItem(this.userID + "expMode" + this.char, "off");
- localStorage.setItem(
- this.userID + "mainMap" + this.char,
- setUp.mapName
- );
- localStorage.setItem(
- this.userID + "mapsRet" + this.char,
- setUp.travMaps
- );
- localStorage.setItem(
- "myback" +
- this.char +
- window.map.name
- .replace(" ", "_")
- .replace("-", "_")
- .escapeDiacritics(),
- setUp.cords.join(",")
- );
- document.getElementsByClassName(
- "b_back_cords"
- )[0].value = setUp.cords.join(",");
- document.getElementsByClassName("b_map_name")[0].value =
- setUp.mapName;
- document.getElementsByClassName("b_back_ids")[0].value =
- setUp.travMaps;
- break;
- }
- };
- this.filterSelect.onchange = () => {
- for (const option of Object.values(this.setUps)) {
- option.forEach((el) => {
- el.elem.style.display = "unset";
- });
- switch (
- this.filterSelect.options[this.filterSelect.selectedIndex].value
- ) {
- case "b_c_set_all":
- break;
- case "b_set_all":
- break;
- case "b_c_set_exp":
- option.forEach((el) => {
- if (el.type != "exp") {
- el.elem.style.display = "none";
- }
- });
- break;
- case "b_c_set_e2":
- option.forEach((el) => {
- if (el.type != "e2") {
- el.elem.style.display = "none";
- }
- });
- break;
- case "b_c_set_other":
- option.forEach((el) => {
- if (el.type != "other") {
- el.elem.style.display = "none";
- }
- });
- break;
- case "b_c_set_forme":
- option.forEach((el) => {
- if (
- el.type != "exp" ||
- (el.type == "exp" &&
- (el.minLvl + 17 <= window.hero.lvl ||
- el.maxLvl - 17 >= window.hero.lvl))
- ) {
- el.elem.style.display = "none";
- }
- });
- break;
- default:
- option.forEach((el) => {
- el.elem.style.display = "none";
- });
- break;
- }
- }
- };
- }
- }
- if (enabled) {
- const menoSets = new MenoSetUps();
- menoSets.init();
- }
Advertisement
Add Comment
Please, Sign In to add comment