// @name Bot na e2 test!!!
// @version 1.4
// @description bot na e2 w trakcie rozbudowy, dziala na NI i SI
// @author Adi Wilk
// @match http://*.margonem.pl/
// @match https://*.margonem.pl/
// @grant none
// ==/UserScript==
(()=>{class a{constructor(a,b,c,d,e,f){this.width=b,this.height=c,this.collisions=this.parseCollisions(a,b,c),this.additionalCollisions=f||{},this.start=this.collisions[d.x][d.y],this.end=this.collisions[e.x][e.y],this.start.beginning=!0,this.start.g=0,this.start.f=this.heuristic(this.start,this.end),this.end.target=!0,this.end.g=0,this.addNeighbours(),this.openSet=[],this.closedSet=[],this.openSet.push(this.start)}parseCollisions(a,c,d){const e=Array(c);for(let f=0;f
.adi-bot-box {
position: absolute;
text-align: center;
padding: 10px;
height: 272px;
width: 360px;
left: ${this.storage.x}px;
top: ${this.storage.y}px;
background: #975b83;
border: 2px solid white;
border-radius: 8px;
color: black;
z-index: 999;
}
.adi-bot-input-text {
text-align: center;
border: 2px solid lightblue;
border-radius: 3px;
color: black;
cursor: text;
}
`;a.type="text/css",a.appendChild(document.createTextNode(b)),document.head.appendChild(a)}initNewNpc(){if("ni"===this.interface&&(window.API.addCallbackToEvent("newNpc",a=>{void 0!==a&&this.addNpcs(a.d)}),window.API.addCallbackToEvent("removeNpc",a=>{void 0!==a&&this.removeNpcs(a.d)})),"si"===this.interface){const a=window.newNpc;window.newNpc=b=>{if(void 0!==b)for(const[a,c]of Object.entries(b))void 0!==c.del&&void 0!==window.g.npc[a]?this.removeNpcs(window.g.npc[a],a):void 0!==c&&this.addNpcs(c,a);a(b)}}}initNewOther(){if("ni"===this.interface&&(this.makeParty(),window.API.addCallbackToEvent("newOther",a=>{this.filterOther(a.d)})),"si"===this.interface){this.makeParty();const a=window.newOther;window.newOther=b=>{if(a(b),void 0!==b)for(const a of Object.values(b))this.filterOther(a)}}}filterOther(a){if(a!==void 0){const{relation:b,id:c}=a;!0===this.canHeroTryToAttack()&&["cl","fr"].includes(b)&&!0===this.QuickGroupSettings.adding.active&&this.sendInviteToParty(c)}}makeParty(){if("object"!=typeof this.party)return this.sendInvites();const a="ni"===this.interface?this.party.getLeaderId()===this.hero.id:1===this.party[this.hero.id].r;!0==a&&this.sendInvites()}sendInvites(){if(this.others!==void 0)for(const a of Object.values(this.others))this.filterOther(a)}sendInviteToParty(a){window._g(`party&a=inv&id=${a}`)}initChecker(){if(setTimeout(()=>{this.initChecker()},500),!0===this.dead&&(this.removeNpcsFromThisCharId(this.hero.id),this.logout()),!0===this.canHeroTryToAttack())try{if(void 0!==this.npcToKillId){const{x:a,y:b}=this.npcs[this.npcToKillId];1>=Math.abs(this.hero.x-a)&&1>=Math.abs(this.hero.y-b)?0
.adi-bot-minutnik-strona-glowna {
color: white;
font-size: 14px;
text-align: left;
}
.timer_data {
font-weight: bold;
float: right;
cursor: pointer;
}
.timer_data:hover {
color: gray;
}
.adi-bot-konfiguracja {
}
`)),document.head.appendChild(b),this.addNpcsToTimerBox(a),document.addEventListener("click",a=>{try{if("timer_data"===a.target.className){const[b,c]=a.target.getAttribute("timer-data").split("|");c!==void 0&&b!==void 0&&(this.deleteNpcFromTimer(b+c),window.showMsg(`Usunięto ${b} ze świata ${c.charAt(0).toUpperCase()+c.slice(1)}.`))}}catch(a){}})}addNpcsToTimerBox(a){const b={};for(const c of Object.values(this.timerData)){const{name:a,nextRespawn:d,world:e}=c;b[e]===void 0?b[e]=[{name:a,nextRespawn:d}]:b[e].push({name:a,nextRespawn:d})}let c="";for(const[d,e]of Object.entries(b)){c+=`
${this.capitalizeWorld(d)}
`,e.sort((a,b)=>a.nextRespawn-b.nextRespawn);const a=[];a.push("");for(const b of e){const{name:c,nextRespawn:e}=b;a.push(`${this.getTimeToRespawn(c,e)}---`)}a.push(""),c+=a.join("")}a.innerHTML=c,setTimeout(()=>{this.addNpcsToTimerBox(a)},1e3)}capitalizeWorld(a){return a.charAt(0).toUpperCase()+a.slice(1)+":"}getTimeToRespawn(a,b){const c=b-this.timeStamp,d=10>parseInt(c/60)?`0${parseInt(c/60)}`:parseInt(c/60),e=10>c%60?`0${c%60}`:c%60;return`${a}: ${d}:${e}`}removeLockAdding(){"ni"===this.interface&&(window.Engine.lock.add=Function.prototype),"si"===this.interface&&(window.g.lock.add=Function.prototype),window.mAlert=Function.prototype}initLagRefresher(){!1===this.startInctementingLagRefresher&&(this.startInctementingLagRefresher=!0,setInterval(()=>{this.incrementValue++,8