// ==UserScript==
// @name UCIEKANIE BRUTUS
// @version 1.7
// @description co tu opisywac duzo, fajny dodatek... i przydatny....
// @author adi wilk
// @match http://berufs.margonem.pl/
// @match https://berufs.margonem.pl/
// @grant none
// ==/UserScript==
(function(d, _n, _b) {
//graficzne elementy
let box = d.createElement("span");
box.id = "adisonzawodowiec";
box.innerHTML = "Przeciągnij teleport
";
//chowanie okienka
let box3 = d.createElement("span");
box3.id = "asdasdrewwq";
box3.classList.add("b_buttons");
box3.tip = "Wyświetl okienko od uciekania";
let style1 = d.createElement("style");
style1.innerHTML = "#asdasdrewwq{left:127px;top:115px;background-image:url();opaciy:.7}#asdasdrewwq:hover{opacty:}";
d.querySelector("#panel").appendChild(box3);
d.head.appendChild(style1);
box3.addEventListener("click", function() {
let dane = localStorage.getItem("brutus_position").split("|");
let x = dane[0];
let y = dane[1];
if(dane[2] == 1){
d.querySelector("#adisonzawodowiec").style.display = "none";
localStorage.setItem("brutus_position", `${x}|${y}|0`);
} else {
d.querySelector("#adisonzawodowiec").style.display = "block";
localStorage.setItem("brutus_position", `${x}|${y}|1`);
}
});
//dla itemka
let inpTp = d.createElement("div");
inpTp.id = "adison_inpTp";
inpTp.style = "position: relative; left: 77px; width: 32px; height: 32px; background: rgba(40,40,40,0.5); border: 1px solid #333333; margin-bottom: 5px; margin-top: 2px";
box.appendChild(inpTp);
let inpLvl = d.createElement("input");
inpLvl.type = "text";
inpLvl.size = "1";
inpLvl.id = "adison_inpLvl";
box.appendChild(inpLvl);
box.innerHTML += "
";
let inpClan = d.createElement("input");
inpClan.type = "checkbox";
inpClan.name = "adison_inpClan";
box.appendChild(inpClan);
box.innerHTML += "Uciekać znaj/klan?
";
let inpEscape = d.createElement("input");
inpEscape.type = "checkbox";
inpEscape.name = "adison_inpEscape";
box.appendChild(inpEscape);
let strEscape = d.createElement("span");
strEscape.id = "adison_strEscape";
strEscape.innerHTML = "Uciekanie włączone"
strEscape.style.fontWeight = "bold";
box.appendChild(strEscape);
d.body.appendChild(box);
let style = d.createElement("style");
style.innerHTML = "#adisonzawodowiec{position:absolute; z-index: 400; width: 188px; height: 110px; background:#b8b8b8;text-align:center;padding:5px;border:2px solid red}input[id=adison_inpLvl]{border:1px solid #86cdda;border-radius:4px;padding:1px}input[id=adison_inpLvl]:hover{background:#dadada;cursor:auto}input[id=adison_inpLvl]:focus{background:#dadada}";
d.head.appendChild(style);
//zmienne do tp po walce
let tpAfterFight = false;
let tpItemId = 0;
//pozycja okienka
if(!localStorage.getItem("brutus_position")) localStorage.setItem("brutus_position", "0|0|1");
(function(pos, element){
let position = pos.split("|");
let x = position[0] + "px";
let y = position[1] + "px";
if(position[2] == "1"){
element.style.display = "block";
} else if(position[2] == "0"){
element.style.display = "none";
} else {
throw "Error z wyświetlaniem";
}
element.style.top = x;
element.style.left = y;
})(localStorage.getItem("brutus_position"), d.querySelector("#adisonzawodowiec"))
//generowanie tipu itemsa
function generateItem(item) {
let tip = itemTip(item);
let html = "";
html += `
`;
if(item.stat.indexOf("legendary") > -1) html += `
`;
if(item.stat.indexOf("heroic") > -1) html += `
`;
if(item.stat.indexOf("unique") > -1) html += `
`;
if(item.stat.indexOf("upgraded") > -1) html += `
`;
html += `
`;
html += `
`;
return html;
}
//localStorage
g.loadQueue.push({
fun: function() {
//lvl
if (!localStorage.getItem(`brutus${hero.id}_lvl`)) localStorage.setItem(`brutus${hero.id}_lvl`, `-30`);
d.querySelector("#adison_inpLvl").value = localStorage.getItem(`brutus${hero.id}_lvl`);
//lastPerson
if (localStorage.getItem(`lastPerson`)) log(localStorage.getItem(`lastPerson`));
//tp
if (!localStorage.getItem(`brutus${hero.id}_tp1`)) localStorage.setItem(`brutus${hero.id}_tp1`, JSON.stringify({
name: "Zwój teleportacji na Kwieciste Przejście",
stat: "amount=14;capacity=15;lvl=70;teleport=344,17,60",
icon: "pap/pap44.gif",
pr: 42000,
cl: 16
}));
d.querySelector("#adison_inpTp").innerHTML = generateItem(JSON.parse(localStorage.getItem(`brutus${hero.id}_tp1`)));
//clan/znaj
if (!localStorage.getItem(`brutus_clanfr`)) localStorage.setItem(`brutus_clanfr`, true);
d.querySelector("input[name=adison_inpClan]").checked = JSON.parse(localStorage.getItem(`brutus_clanfr`));
//ogolny przycisk uciekania
if (!localStorage.getItem(`brutus_escape${hero.id}`)) localStorage.setItem(`brutus_escape${hero.id}`, true);
d.querySelector("input[name=adison_inpEscape]").checked = JSON.parse(localStorage.getItem(`brutus_escape${hero.id}`));
if(JSON.parse(localStorage.getItem(`brutus_escape${hero.id}`))) {
d.querySelector("#adison_strEscape").style.color = "green";
d.querySelector("#adison_strEscape").innerHTML = "Uciekanie włączone";
} else {
d.querySelector("#adison_strEscape").style.color = "red";
d.querySelector("#adison_strEscape").innerHTML = "Uciekanie wyłączone";
}
}
});
//zapisywanie ustawien
d.querySelector("#adison_inpTp").addEventListener("keyup", function() {
localStorage.setItem(`brutus${hero.id}_tp1`, this.value);
});
d.querySelector("#adison_inpLvl").addEventListener("keyup", function() {
localStorage.setItem(`brutus${hero.id}_lvl`, this.value);
});
d.querySelector("input[name=adison_inpClan]").addEventListener("change", function() {
localStorage.setItem(`brutus_clanfr`, this.checked);
});
d.querySelector("input[name=adison_inpEscape]").addEventListener("change", function() {
localStorage.setItem(`brutus_escape${hero.id}`, this.checked);
if(this.checked == true){
d.querySelector("#adison_strEscape").style.color = "green";
d.querySelector("#adison_strEscape").innerHTML = "Uciekanie włączone";
} else {
d.querySelector("#adison_strEscape").style.color = "red";
d.querySelector("#adison_strEscape").innerHTML = "Uciekanie wyłączone";
}
});
function savePosition(){
let x = parseInt(d.querySelector("#adisonzawodowiec").style.top);
let y = parseInt(d.querySelector("#adisonzawodowiec").style.left);
localStorage.setItem(`brutus_position`, `${x}|${y}|1`);
}
//draggable dla okienka z zapisem pozycji
$("#adisonzawodowiec").draggable({
start: function(){
g.lock.add("adi_zmiana_pozycji");
},
stop: function(){
g.lock.remove("adi_zmiana_pozycji");
message("Zapisano pozycję!");
savePosition();
}
});
//droppable dla teleporta
$("#adison_inpTp").droppable({
accept: ".item",
drop: (e, ui) => {
let item = g.item[ui.draggable.attr("id").replace("item", "")];
if(item.cl == 16 && item.loc == "g"){
d.querySelector("#adison_inpTp").innerHTML = generateItem(item);
localStorage.setItem(`brutus${hero.id}_tp1`, JSON.stringify(item));
message("Zapisano");
} else {
message("To nie teleport wtf");
}
}
});
//funkcja szukajaca Tp
function teleport(nazwa, asd){
let Person = g.other[asd];
let content = `Ostatnia osoba przed którą próbowałeś uciekać: ${Person.nick} ${Person.lvl}${Person.prof} lvl`;
localStorage.setItem("lastPerson", content);
for(let i in g.item){
if(g.item[i].loc == "g" && g.item[i].name == nazwa){
let item = parseItemStat(g.item[i].stat);
if(item.timelimit){
let itemsikTime = item.timelimit.split(",");
let ts = unix_time();
let min = itemsikTime[1];
if(min){
if(ts > min){
tpItemId = g.item[i].id;
break;
}
} else {
tpItemId = g.item[i].id;
break;
}
} else {
tpItemId = g.item[i].id;
break;
}
}
}
if(tpItemId != 0){
if(!g.battle){
let t_mapa = map.name;
let t_id = tpItemId;
_g(`moveitem&st=1&id=${tpItemId}`);
tpItemId = 0;
setTimeout(()=>{
if(map.name == t_mapa){
_g(`moveitem&st=1&id=${t_id}`);
}
}, 50);
} else {
message("Teleport zostanie użyty po walce");
tpAfterFight = true;
}
} else {
message("Nie posiadasz teleportu");
}
}
newOther = function(e) {
_n(e);
if(map.pvp == 2){
let obj = JSON.parse(localStorage.getItem(`brutus${hero.id}_tp1`));
let TpName = obj.name;
let leverz = Number(localStorage.getItem(`brutus${hero.id}_lvl`));
let ClanFrEscape = JSON.parse(localStorage.getItem(`brutus_clanfr`));
let Escape = JSON.parse(localStorage.getItem(`brutus_escape${hero.id}`));
let hlvl = hero.lvl;
for (let i in e) {
if(e[i].lvl - hlvl >= leverz && Escape){
if(ClanFrEscape){
teleport(TpName, i);
break;
} else {
if(e[i].relation != "fr" && e[i].relation != "cl"){
teleport(TpName, i);
break;
}
}
}
}
}
}
battleMsg = function(a, b) {
let ret = _b(a, b);
if (a.indexOf("winner=") > -1) {
_g("fight&a=exit");
if(tpAfterFight){
let t_mapa = map.name;
let t_id = tpItemId;
_g(`moveitem&st=1&id=${tpItemId}`);
tpItemId = 0;
setTimeout(()=>{
if(map.name == t_mapa){
_g(`moveitem&st=1&id=${t_id}`);
}
}, 50);
tpAfterFight = false;
}
}
return ret;
}
})(document, newOther, battleMsg)