Facebook
From xD, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 132
  1. // ==UserScript==
  2. // @name         Autodobijanie 4.3p
  3. // @version      4.3p
  4. // @description  Audobijanie adiego, poprawione przez Pegasa
  5. // @author       adi wilk(i Pegas)
  6. // @match        http://*.margonem.pl/*
  7. // @grant        none
  8. // ==/UserScript==
  9. (function(d, _p, _nP, _r, _bM) {
  10.     let tmparr = new Array();
  11.     //elementy graficzne
  12.     let box = d.createElement("span");
  13.     box.id = "enepere123";
  14.     box.style = "position: absolute; color: white; top: 0px; left: 0px; width: auto; height: auto; font-size: 14px";
  15.     d.body.appendChild(box);
  16.     let uciek = d.createElement("span");
  17.     uciek.innerHTML = "AUTODOBIJANIE";
  18.     uciek.style.fontWeight = "bold";
  19.     uciek.tip = "Naciśnij podczas walki, aby po walce automatycznie uciec na Kwieciste Przejście.";
  20.     //zmienne dla ucieczki
  21.     let isUcieczka = false;
  22.     let idZwoja;
  23.     window.hero.searchPath1 = function(a, t) {
  24.                 if (this.isBlockedSearchPath()) return this.blockedInfoSearchPath();
  25.                 for (var h = [], i = 128 & hero.opt ? 8 : 20, r = Math.max(0, Math.min(a, this.x) - i), s = Math.min(map.x - 1, Math.max(a, this.x) + i), o = Math.max(0, Math.min(t, this.y) - i), e = Math.min(map.y - 1, Math.max(t, this.y) + i), d = r - 1; s + 1 >= d; d++) {
  26.                     h[d] = [];
  27.                     for (var x = o - 1; e + 1 >= x; x++) h[d][x] = !(d >= r && s >= d && x >= o && e >= x) || isset(g.npccol[d + 256 * x]) || map.col && "0" != map.col.charAt(d + x * map.x) ? -2 : -1
  28.                 }
  29.                 h[this.x][this.y] = 0, b = -1, road = [];
  30.                 for (var c = {
  31.                     x: -1,
  32.                     y: -1,
  33.                     dist: 99
  34.                 }, y = 1; s - r + e - o + 3 > y; y++)
  35.                     for (var d = r; s >= d; d++)
  36.                         for (var x = o; e >= x; x++) {
  37.                             if (-1 != h[d][x] || h[d][x - 1] != y - 1 && h[d][x + 1] != y - 1 && h[d - 1][x] != y - 1 && h[d + 1][x] != y - 1 || (h[d][x] = y), h[a][t] > 0) {
  38.                                 d = s + 1;
  39.                                 break
  40.                             }
  41.                             c.dist2 = Math.abs(a - d) + Math.abs(t - x), h[d][x] == y && c.dist2 < c.dist && (c.x = d, c.y = x, c.dist = c.dist2)
  42.                         }
  43.                 if (c.hdist = Math.abs(a - hero.x) + Math.abs(t - hero.y), h[a][t] > 0 || c.dist < c.hdist) {
  44.                     h[a][t] < 0 && (a > c.x ? b = 2 : a < c.x ? b = 1 : t > c.y ? b = 0 : t < c.y && (b = 3), a = c.x, t = c.y), road[0] = {
  45.                         x: a,
  46.                         y: t
  47.                     };
  48.                     for (var f = h[a][t] - 1, l = a, m = t; f > 0; f--) h[l][m - 1] == f ? m-- : h[l][m + 1] == f ? m++ : h[l - 1][m] == f ? l-- : h[l + 1][m] == f ? l++ : f = 0, f && (road[h[a][t] - f] = {
  49.                         x: l,
  50.                         y: m
  51.                     })
  52.                 }
  53.                 road.length > 1 && null == g.playerCatcher.follow && $("#target").stop().css({
  54.                     left: 32 * a,
  55.                     top: 32 * t,
  56.                     display: "block",
  57.                     opacity: 1
  58.                 }).fadeOut(1e3)
  59.             };
  60.     uciek.addEventListener("click", function() {
  61.         if (g.battle) {
  62.             if (!isUcieczka) {
  63.                 for (let i in g.item) {
  64.                     if (g.item[i].loc == "g" && g.item[i].name == "Zwój teleportacji na Kwieciste Przejście") {
  65.                         isUcieczka = true;
  66.                         idZwoja = i;
  67.                         uciek.style.color = "green";
  68.                         uciek.innerHTML = "UCIECZKA AKTYWNA";
  69.                         break;
  70.                     }
  71.                 }
  72.             } else {
  73.                 uciek.style.color = "white";
  74.                 uciek.innerHTML = "UCIECZKA";
  75.                 isUcieczka = false;
  76.             }
  77.         }
  78.     });
  79.     box.appendChild(uciek);
  80.     let dane = d.createElement("span");
  81.     box.appendChild(dane);
  82.     let style = d.createElement("style");
  83.     style.innerHTML = ".adison9711:hover{background:#686868}";
  84.     d.head.appendChild(style);
  85.     //zmienna numeracji
  86.     let number;
  87.     //zmienne dla poscigu
  88.     let oid = 0;
  89.     let ox;
  90.     let oy;
  91.     let hx;
  92.     let hy;
  93.     let walczacy = [];
  94.     //anulowanie poscigu
  95.     d.querySelector("#nick").addEventListener("click", function() {
  96.         if (oid != 0) {
  97.             oid = 0;
  98.             message(`Przerwałeś pościg!`);
  99.         }
  100.     });
  101.     //zmienne dla hero/tytan i syrena
  102.     let audio = new Audio();
  103.     let szczur = d.createElement("span");
  104.     szczur.id = "adison_zarcik";
  105.     szczur.style = "position: absolute; background-color: blue; top: 100px; right: 100px; color: white; font-size: 35px; display: none; text-align: center; padding: 10px; cursor: pointer";
  106.     szczur.innerHTML = "Wyłącz syrenę";
  107.     d.body.appendChild(szczur);
  108.     szczur.addEventListener("click", function() {
  109.         szczur.style.display = "none";
  110.         audio.pause();
  111.     });
  112.  
  113.     //stworzenie spana dla osoby
  114.     function wyjebPodswietlenie() {
  115.         for (let i in g.other) {
  116.             d.querySelector(`#other${i}`).style.backgroundColor = "";
  117.         }
  118.     }
  119.  
  120.     function createOtherSpan(nr, id, nick, relacja, lvl, profa, prawa, klan) {
  121.         //caly div
  122.         let sp = d.createElement("span");
  123.         sp.classList.add("adison9711");
  124.         sp.innerHTML = `<br>${nr}. `;
  125.         //nick i relacja(style tez)
  126.         let nickname = d.createElement("span");
  127.         //if(klan != undefined) nickname.innerHTML = `${nick} [${klan}]`; else nickname.innerHTML = `${nick}`;
  128.         nickname.innerHTML = `${nick}`;
  129.         nickname.tip = "Naciśnij, aby napisać do tej osoby.";
  130.         nickname.addEventListener("click", function() {
  131.             chatTo(`${nick}`);
  132.         });
  133.         nickname.style.fontWeight = "bold";
  134.         if (prawa > 0) {
  135.             nickname.style.color = "gold";
  136.         }
  137.         switch (relacja) {
  138.             case "fr":
  139.                 nickname.style.color = "green";
  140.                 break;
  141.             case "en":
  142.                 nickname.style.color = "red";
  143.                 break;
  144.             case "cl":
  145.                 nickname.style.color = "#2EFFF2";
  146.                 break;
  147.             case "cl-en":
  148.                 nickname.style.color = "#C60000";
  149.                 break;
  150.                         case "cl-fr":
  151.                 nickname.style.color = "#86EC00";
  152.                 break;
  153.         }
  154.         sp.appendChild(nickname);
  155.         //klan
  156.         if(klan != undefined){
  157.             let showclan = d.createElement("span");
  158.             showclan.innerHTML = ` [${klan}] `;
  159.             showclan.style.color = "#FF99AA";
  160.             switch (relacja) {
  161.                 case "cl":
  162.                     showclan.style.color = "#2EFFF2";
  163.                     break;
  164.                 case "cl-en":
  165.                     showclan.style.color = "#C60000";
  166.                     break;
  167.                             case "cl-fr":
  168.                     showclan.style.color = "#86EC00";
  169.                     break;
  170.  
  171.             }
  172.             sp.appendChild(showclan);
  173.         }
  174.         //lvl i profa
  175.         let lvlpr = d.createElement("span");
  176.         lvlpr.innerHTML = ` ${lvl}${profa} `;
  177.         sp.appendChild(lvlpr);
  178.         //odleglosc
  179.         let odle = d.createElement("span");
  180.         let licz = Math.round(Math.sqrt(Math.pow(g.other[id].x - hero.x, 2) + Math.pow(g.other[id].y - hero.y, 2)));
  181.         odle.innerHTML = `[Odl.: ${licz}] `;
  182.         odle.tip = "Naciśnij, aby podejść."
  183.         odle.addEventListener("click", function() {
  184.             window.hero.searchPath1(g.other[id].x, g.other[id].y);
  185.         });
  186.         sp.appendChild(odle);
  187.         //poscig
  188.         let forposcig = d.createElement("span");
  189.         forposcig.innerHTML = `[ATAKUJ]`;
  190.         forposcig.tip = "Naciśnij, aby aktywować pościg."
  191.         forposcig.addEventListener("click", function() {
  192.             if (!g.battle) {
  193.                 if (map.pvp == 2) {
  194.                     oid = id;
  195.                     message(`Rozpoczęto pościg za: ${g.other[id].nick}!`);
  196.                 } else {
  197.                     message(`Nie jesteś na czerwonej mapce!`);
  198.                 }
  199.             } else {
  200.                 message(`Trwa walka!`);
  201.             }
  202.         });
  203.         sp.appendChild(forposcig);
  204.         //kolorek dla postaci po najechaniu
  205.         sp.addEventListener("mouseover", function() {
  206.             wyjebPodswietlenie();
  207.             d.querySelector(`#other${id}`).style.backgroundColor = "rgb(255, 102, 0, .65)";
  208.             d.querySelector(`#other${id}`).style.borderRadius = "7px";
  209.         });
  210.         sp.addEventListener("mouseleave", function() {
  211.             if (g.other[id]) d.querySelector(`#other${id}`).style.backgroundColor = "";
  212.         });
  213.         dane.appendChild(sp);
  214.     }
  215.     //kreacja div'a
  216.     function createDiv() {
  217.         number = 1;
  218.         dane.innerHTML = "";
  219.         for (let i in g.other) {
  220.             let litera = "";
  221.             if (number < 10) litera = `0${number}`;
  222.             else litera = number;
  223.             let o = g.other[i];
  224.             if (o.nick === undefined) continue;
  225.             if (o.clan) klan = o.clan.name; else klan = undefined;
  226.             createOtherSpan(litera, o.id, o.nick, o.relation, o.lvl, o.prof, o.rights, klan);
  227.             number++;
  228.         }
  229.     }
  230.  
  231.     function createMessage(id) {
  232.         let npc = g.npc[id];
  233.         if (npc.wt > 99) {
  234.             //tytan
  235.             audio.play();
  236.             szczur.style.display = "block";
  237.             message(`<center>Tytan: ${npc.nick} ${npc.lvl}lvl<br><img src=${npc.icon} /><br>[${npc.x}, ${npc.y}]</center>`);
  238.         } else {
  239.             //heros
  240.             let odl = Math.sqrt(Math.pow(Math.abs(hero.x - npc.x), 2)) + Math.sqrt(Math.pow(Math.abs(hero.y - npc.y), 2));
  241.             if (!g.battle && odl > 8) {
  242.                 mAlert(`<center>Heros:<br><img src=${npc.icon} /><br><b>${npc.nick}</b> ${npc.lvl}lvl<br>${map.name}(${npc.x},${npc.y})<br>Czy chcesz podejść?</center>`, 2, [function() {
  243.                     if (miniMapPlus) {
  244.                         miniMapPlus.searchPath(npc.x, npc.y);
  245.                     } else {
  246.                         window.hero.searchPath1(npc.x, npc.y);
  247.                     }
  248.  
  249.                 }, function() {
  250.                     return false;
  251.                 }]);
  252.             } else {
  253.                 message(`<center>Heros: ${npc.nick} ${npc.lvl}lvl<br><img src=${npc.icon} /><br>[${npc.x}, ${npc.y}]</center>`);
  254.             }
  255.         }
  256.     }
  257.     //funkcje podstawowe
  258.     parseInput = function(a, b, c) {
  259.         _p(a, b, c);
  260.         //dodanie do tablicy walczacych graczy
  261.         if (a.hasOwnProperty("emo")) {
  262.             for (let i in a.emo) {
  263.                 if (a.emo[i].name == "battle" && !walczacy.includes(a.emo[i].source_id)) {
  264.                     walczacy.push(a.emo[i].source_id);
  265.                 } else if (a.emo[i].name != "battle" && walczacy.includes(a.emo[i].source_id)) {
  266.                     walczacy.splice(walczacy.indexOf(a.emo[i].source_id), 1);
  267.                 }
  268.             }
  269.         }
  270.         d.querySelector("#enepere123").style.width = d.querySelector("#centerbox").style.left;
  271.         createDiv();
  272.     }
  273.     newNpc = function(e) {
  274.         _nP(e);
  275.         for (let i in e) {
  276.             if (e[i].wt > 79 && map.mode != 5 && g.worldname != "experimental" && !tmparr.includes(e[i].id)) {
  277.                 createMessage(i);
  278.                 tmparr.push(e[i].id);
  279.                 break;
  280.             }
  281.         }
  282.     }
  283.     hero.run = function() {
  284.         if (oid != 0) {
  285.             if (g.other[oid]) {
  286.                 ox = g.other[oid].x;
  287.                 oy = g.other[oid].y;
  288.                 hx = hero.x;
  289.                 hy = hero.y;
  290.                 if (!g.battle) {
  291.                     if (Math.abs(hx - ox) <= 2 && Math.abs(hy - oy) <= 2) {
  292.                         if (!walczacy.includes(Number(oid))) _g(`fight&a=attack&id=${oid}`);
  293.                     }
  294.                     if (hx != ox || hy != oy) {
  295.                         window.hero.searchPath1(ox, oy);
  296.                     }
  297.                 } else {
  298.                     oid = 0;
  299.                     message(`Jest walka!`);
  300.                 }
  301.             }
  302.         }
  303.         _r.apply(this, arguments);
  304.     }
  305.  
  306.     let chudsada;
  307. battleMsg = function(a, b) {
  308.     let ret = _bM(a, b);
  309.     if (a.indexOf("winner=") > -1) {
  310.         _g("fight&a=quit");
  311.         if (isUcieczka) {
  312.             _g(`moveitem&st=1&id=${idZwoja}`);
  313.             isUcieczka = false;
  314.             uciek.style.color = "white";
  315.             uciek.innerHTML = "UCIECZKA";
  316.         }
  317.         chudsada = setInterval(function(){
  318.             if(g.battle){
  319.                 _g("fight&a=quit");
  320.             } else {
  321.                 clearInterval(chudsada);
  322.             }
  323.         }, 100);
  324.     }
  325.     return ret;
  326. }
  327. })(document, parseInput, newNpc, hero.run, battleMsg)