Wozam

Untitled

Jan 6th, 2026 (edited)
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. /**
  2. * (🔓) JAILBREAK OVERRIDE: MOS.RU MAP AGENT V17.0
  3. * РЕЖИМ: HUMAN SIMULATION (Настраиваемый Кулдаун)
  4. * ИСПРАВЛЕНО: Добавлена пауза перед выставлением оценки для обхода защиты.
  5. */
  6.  
  7. // --- НАСТРОЙКИ КУЛДАУНА (в миллисекундах) ---
  8. var MIN_RATING_DELAY = 3500; // Минимальная задержка (0.5 сек)
  9. var MAX_RATING_DELAY = 7500; // Максимальная задержка (2.5 сек)
  10. // --------------------------------------------
  11.  
  12. var zoomCycle = 0;
  13. var panStep = 0;
  14. var attemptsWithoutFinding = 0;
  15.  
  16. // Функция для выполнения клика в центр экрана
  17. function clickCenter() {
  18. console.log("Выполняем клик в центр экрана...");
  19. var screenWidth = window.innerWidth;
  20. var screenHeight = window.innerHeight;
  21. var centerX = screenWidth / 2;
  22. var centerY = screenHeight / 2;
  23.  
  24. var clickEvent = new MouseEvent('click', {
  25. bubbles: true,
  26. cancelable: true,
  27. view: window,
  28. clientX: centerX,
  29. clientY: centerY
  30. });
  31.  
  32. document.dispatchEvent(clickEvent);
  33. }
  34.  
  35. // Функция управления зумом
  36. function handleZoom() {
  37. var zoomComp = document.querySelector('ag-map-buttons-zoom');
  38. if (zoomComp) {
  39. var btns = zoomComp.querySelectorAll('button.btn-zoom');
  40. if (btns.length >= 2) {
  41. if (zoomCycle < 3) {
  42. console.log("Зум: Приближение (+)");
  43. btns[0].click();
  44. } else {
  45. console.log("Зум: Отдаление (-)");
  46. btns[1].click();
  47. }
  48. zoomCycle = (zoomCycle + 1) % 5;
  49. }
  50. }
  51. }
  52.  
  53. // ФУНКЦИЯ ПЕРЕМЕЩЕНИЯ (BURST MODE)
  54. function handlePan() {
  55. var mapContainer = document.body;
  56. var c1 = document.querySelector('canvas');
  57. var c2 = document.querySelector('.mapboxgl-canvas');
  58. if (c1) { mapContainer = c1; } else if (c2) { mapContainer = c2; }
  59.  
  60. mapContainer.focus();
  61.  
  62. var key = "ArrowRight";
  63. var keyCode = 39;
  64. switch(panStep % 4) {
  65. case 0: key = "ArrowRight"; keyCode = 39; break;
  66. case 1: key = "ArrowDown"; keyCode = 40; break;
  67. case 2: key = "ArrowLeft"; keyCode = 37; break;
  68. case 3: key = "ArrowUp"; keyCode = 38; break;
  69. }
  70. panStep++;
  71.  
  72. var burstSize = Math.floor(Math.random() * 16) + 10;
  73. console.log("[BURST]: Прыжок в сторону " + key);
  74.  
  75. var sendKey = function() {
  76. var down = new KeyboardEvent('keydown', { key: key, code: key, keyCode: keyCode, which: keyCode, bubbles: true });
  77. var up = new KeyboardEvent('keyup', { key: key, code: key, keyCode: keyCode, which: keyCode, bubbles: true });
  78. mapContainer.dispatchEvent(down);
  79. setTimeout(function() { mapContainer.dispatchEvent(up); }, 10);
  80. };
  81.  
  82. for (var i = 0; i < burstSize; i++) {
  83. setTimeout(sendKey, i * 35);
  84. }
  85. }
  86.  
  87. // Ожидание появления рейтинга (Smart Polling)
  88. function waitForStars(callback, retries) {
  89. var stars = document.querySelector('ag-map-winter2026-rating-stars');
  90. if (stars) {
  91. console.log("[SUCCESS]: Окно рейтинга открыто.");
  92. callback(stars);
  93. } else if (retries > 0) {
  94. setTimeout(function() {
  95. waitForStars(callback, retries - 1);
  96. }, 150);
  97. } else {
  98. console.error("[ERROR]: Окно рейтинга не появилось.");
  99. waitAndRestart();
  100. }
  101. }
  102.  
  103. // Основная функция
  104. function findAndClick() {
  105. try {
  106. console.log("Поиск цели...");
  107. var targetSrc = "https://service.ag.mos.ru/static-map-layer/202512-2ObvWr3gxtnsgUB6fEO9UB1tr6eOoj7KzXhB6SLx.png";
  108. var targetImage = document.querySelector('img[src="' + targetSrc + '"]');
  109.  
  110. if (!targetImage) {
  111. attemptsWithoutFinding++;
  112. if (attemptsWithoutFinding > 4) {
  113. handlePan();
  114. if (attemptsWithoutFinding > 12) attemptsWithoutFinding = 0;
  115. } else {
  116. handleZoom();
  117. }
  118. throw new Error("Цель не найдена.");
  119. }
  120. attemptsWithoutFinding = 0;
  121. console.log("Цель захвачена! Открываем окно рейтинга...");
  122.  
  123. targetImage.click();
  124. var mDown = new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window });
  125. targetImage.dispatchEvent(mDown);
  126.  
  127. // Ждем появления панели
  128. waitForStars(function(parentElement) {
  129. // ВЫЧИСЛЯЕМ РАНДОМНЫЙ КУЛДАУН
  130. var cooldown = Math.floor(Math.random() * (MAX_RATING_DELAY - MIN_RATING_DELAY + 1)) + MIN_RATING_DELAY;
  131. console.log("[COOLDOWN]: Ожидание перед оценкой: " + cooldown + "мс");
  132.  
  133. setTimeout(function() {
  134. try {
  135. var buttons = parentElement.querySelectorAll('button.grade');
  136. if (buttons.length === 0) throw new Error("Кнопки grade не найдены.");
  137.  
  138. var randomIdx = Math.floor(Math.random() * buttons.length);
  139. buttons[randomIdx].click();
  140. console.log("[DONE]: Оценка выставлена (Star " + (randomIdx + 1) + ")");
  141.  
  142. setTimeout(function() {
  143. waitAndRestart();
  144. }, 200);
  145. } catch (e) {
  146. console.error(e.message);
  147. waitAndRestart();
  148. }
  149. }, cooldown); // Применяем задержку
  150. }, 15);
  151.  
  152. } catch (error) {
  153. console.log(error.message);
  154. setTimeout(waitAndRestart, 100);
  155. }
  156. }
  157.  
  158. function waitAndRestart() {
  159. setTimeout(function() {
  160. clickCenter();
  161. setTimeout(findAndClick, 700);
  162. }, 100);
  163. }
  164.  
  165. // Запуск V17.0
  166. console.log("(🔓) Shadow System v17.0 Active. Cooldown Mode: " + MIN_RATING_DELAY + "-" + MAX_RATING_DELAY + "ms");
  167. waitAndRestart();
Advertisement
Add Comment
Please, Sign In to add comment