Advertisement
Nolifeq

Untitled

Dec 31st, 2024 (edited)
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.46 KB | None | 0 0
  1. // ==UserScript==
  2. // @name         AntyDuch by SM
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.30
  5. // @description  Skrypt minimalizujący ryzyko wywołania antybota po wyjściu z dusza
  6. // @author       MiensnyTrzaski
  7. // @match        *://*.margonem.pl/
  8. // @exclude      https://www.margonem.pl/
  9. // @grant        none
  10. // ==/UserScript==
  11.  
  12. let classHandler;
  13.  
  14. class heroLife {
  15.     constructor() {
  16.         this.heroX = hero.x;
  17.         this.heroY = hero.y;
  18.         this.retryCount = 0;
  19.  
  20.         // Powiązanie metod z instancją klasy
  21.         this.wakeUp = this.wakeUp.bind(this);
  22.         this.simulateActivity = this.simulateActivity.bind(this);
  23.     }
  24.  
  25.     goTo(x, y) {
  26.         console.log(`Moving to coordinates: (${x}, ${y})`);
  27.         window.hero.searchPath(x, y);
  28.     }
  29.  
  30.     hasCollision(x, y) {
  31.         return map.col[map.x * y + x] === "1" ? true : false;
  32.     }
  33.  
  34.     findFreeCoords(minRange = 3, maxRange = 7) {
  35.         const range = Math.floor(Math.random() * (maxRange - minRange + 1)) + minRange;
  36.         const startX = this.heroX - range,
  37.             endX = this.heroX + range,
  38.             startY = this.heroY - range,
  39.             endY = this.heroY + range,
  40.             allCoords = [];
  41.  
  42.         for (let i = startX; i <= endX; i++) {
  43.             for (let j = startY; j <= endY; j++) {
  44.                 if (i === this.heroX && j === this.heroY) continue;
  45.                 if (!this.hasCollision(i, j)) {
  46.                     allCoords.push([i, j]);
  47.                 }
  48.             }
  49.         }
  50.  
  51.         // Losowe przetasowanie współrzędnych
  52.         return allCoords.sort(() => Math.random() - 0.5);
  53.     }
  54.  
  55.     sleep(ms) {
  56.         return new Promise(res => setTimeout(() => res(1), ms));
  57.     }
  58.  
  59.     async simulateActivity() {
  60.         const off = $("#ground").offset();
  61.         const randomX = Math.random() * window.innerWidth;
  62.         const randomY = Math.random() * window.innerHeight;
  63.         const newObj = {
  64.             clientX: randomX + off.left,
  65.             clientY: randomY + off.top
  66.         };
  67.         console.log("Simulating random click at:", newObj);
  68.         hero.mClick(newObj);
  69.         await this.sleep(Math.random() * 2000 + 1000); // Krótkie opóźnienie po kliknięciu
  70.     }
  71.  
  72.     async wakeUp() {
  73.         const initialDelay = Math.random() * 90000 + 30000; // Losowe opóźnienie 30-120 sekund
  74.         console.log("Delaying actions to avoid detection...");
  75.         await this.sleep(initialDelay);
  76.  
  77.         // Symulacja losowych kliknięć przed ruchem
  78.         if (Math.random() < 0.5) {
  79.             console.log("Simulating activity before movement...");
  80.             await this.simulateActivity();
  81.         }
  82.  
  83.         const dest = this.findFreeCoords(); // Losowe współrzędne w większym zakresie
  84.         console.log("Free coordinates:", dest);
  85.  
  86.         if (dest.length === 0 || !hero.stasis) {
  87.             console.log("No free coordinates or stasis ended. Returning...");
  88.             return;
  89.         }
  90.  
  91.         const randomDest = dest[Math.floor(Math.random() * dest.length)]; // Losowy wybór współrzędnych
  92.         console.log("Moving to:", randomDest);
  93.  
  94.         this.goTo(...randomDest);
  95.         await this.sleep(Math.random() * 10000 + 5000); // Opóźnienie 5-15 sekund po ruchu
  96.  
  97.         if (!hero.stasis) {
  98.             console.log("Stasis ended during movement. Stopping actions.");
  99.             return;
  100.         }
  101.  
  102.         this.retryCount++;
  103.         if (this.retryCount > 3) {
  104.             console.log("Max retries reached. Stopping...");
  105.             return;
  106.         }
  107.     }
  108. }
  109.  
  110. setTimeout(() => {
  111.     const originalParseInput = parseInput;
  112.     parseInput = (a, b, c) => {
  113.         originalParseInput(a, b, c);
  114.  
  115.         if (isset(a.h) && a.h.hasOwnProperty("stasis") && a.h.stasis && !g.battle && !g.dead) {
  116.             if (!classHandler) {
  117.                 classHandler = new heroLife();
  118.                 console.log("Starting heroLife handler...");
  119.             }
  120.  
  121.             setTimeout(() => {
  122.                 if (classHandler) classHandler.wakeUp();
  123.             }, Math.random() * 3000 + 2000); // Opóźnienie 2-5 sekund
  124.         }
  125.     };
  126.  
  127.     if (hero.stasis && !classHandler) {
  128.         classHandler = new heroLife();
  129.         console.log("Hero in stasis. Initializing...");
  130.         setTimeout(() => {
  131.             if (classHandler) classHandler.wakeUp();
  132.         }, Math.random() * 3000 + 2000); // Opóźnienie 2-5 sekund
  133.     }
  134. }, 10000); // Opóźnienie inicjalizacji skryptu o 10 sekund
  135.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement