LINUX.ORG.RU

Сообщения sanya1234

 

помогите со , в perfect click ошибку выдает

Форум — General

// === КОНФИГУРАЦИЯ === var CONFIG = { ACTION_DELAY_BASE: 100, LONG_DELAY: 1500, SCROLL_DELAY: 2000, CHECK_INTERVAL: 30000, STABILITY_DELAY: 2000, BREAK_CYCLE: 25, BREAK_DURATION: 60000, MAX_IDLE_TIME: 120000, ANTICHEAT_LEVEL: ‘EXTREME’, RANDOM_MOVEMENTS: true, JITTER_MOVEMENTS: true, RANDOM_BREAKS: true, HUMAN_VARIATION: 120, COLOR_TOLERANCE: 15, MAX_PURCHASES_PER_HOUR: 45, MIN_PURCHASE_INTERVAL: 45000, ERROR_TOLERANCE: 3, AUTO_RECOVERY: true, ADAPTIVE_SCROLLING: true, ENABLE_DEBUG: true, };

// === КООРДИНАТЫ (Адаптивные) === function getAdaptiveCoordinates() { var w = getScreenWidth(); var h = getScreenHeight(); var sx = w / 720; var sy = h / 1600;

return {
    pricePoint: {x: (500 * sx) | 0, y: (1200 * sy) | 0},
    buyButton: {x: (500 * sx) | 0, y: (1400 * sy) | 0},
    closeButton: {x: (60 * sx) | 0, y: (80 * sy) | 0},
    lobbyCheck: {x: (360 * sx) | 0, y: (50 * sy) | 0},
    errorCheck: {x: (360 * sx) | 0, y: (900 * sy) | 0},
    scrollDown: {x: (360 * sx) | 0, y: (1550 * sy) | 0},
    randomArea1: {x: (200 * sx) | 0, y: (800 * sy) | 0},
    randomArea2: {x: (400 * sx) | 0, y: (600 * sy) | 0},
};

} var COORDS = getAdaptiveCoordinates();

// === ЦВЕТА === var COLORS = { colorPrice_0_03: [parseInt(«FFFFD700», 16), parseInt(«FFFFD800», 16), parseInt(«FFFFD600», 16), parseInt(«FFFFD900», 16)], colorBuyActive: [parseInt(«FF333333», 16), parseInt(«FF343434», 16), parseInt(«FF323232», 16), parseInt(«FF353535», 16)], };

// === СОСТОЯНИЕ === var STATE = { lastActionTime: Date.now(), isMarketActive: false, cycleCounter: 1, totalPurchases: 0, purchaseTimes: [], lastScrollTime: 0, consecutiveErrors: 0, }; var ADAPTIVE_SETTINGS = { currentDelay: CONFIG.ACTION_DELAY_BASE, };

// === УТИЛИТЫ ===

function getCurrentTime() { return Date.now(); }

function log(msg, lvl) { if (lvl === undefined) lvl = ‘INFO’; if (CONFIG.ENABLE_DEBUG || lvl !== ‘DEBUG’) { log(’[’ + lvl + ’] ’ + msg); // Используем встроенный логгер Perfect Click } }

function isColorMatch(x, y, targets, tol) { tol = tol || CONFIG.COLOR_TOLERANCE; var actual = getPixelColor(x, y); // Функция Perfect Click

 if (!Array.isArray(targets)) targets = [targets];
 for (var tgt of targets) {
     var r_tgt = ((tgt >> 16) & 255);
     var g_tgt = ((tgt >> 8) & 255);
     var b_tgt = (tgt & 255);

     var r_act = ((actual >> 16) & 255);
     var g_act = ((actual >> 8) & 255);
     var b_act = (actual & 255);

     var distance = Math.sqrt(Math.pow(r_tgt - r_act, 2) + Math.pow(g_tgt - g_act, 2) + Math.pow(b_tgt - b_act, 2));
     if (distance <= tol) return true;
 }
 return false;

}

// === ЛОГИКА ===

function simulateHumanCursor() { if (!CONFIG.RANDOM_MOVEMENTS || !CONFIG.JITTER_MOVEMENTS) return; var points = [COORDS.randomArea1, COORDS.randomArea2]; for (var p of points) { setMousePos(p.x, p.y); // setMousePos вместо moveTo for (var j=0; j<2; ++j) { var jitterX = Math.floor(Math.random()*ADAPTIVE_SETTINGS.currentDelay/4 - ADAPTIVE_SETTINGS.currentDelay/8); var jitterY = Math.floor(Math.random()*ADAPTIVE_SETTINGS.currentDelay/4 - ADAPTIVE_SETTINGS.currentDelay/8); moveRel(jitterX, jitterY); sleep(Math.random()*ADAPTIVE_SETTINGS.currentDelay/2|0); } sleep(ADAPTIVE_SETTINGS.currentDelay); } }

function checkMarketState() { STATE.isMarketActive = isColorMatch(COORDS.lobbyCheck.x, COORDS.lobbyCheck.y, COLORS.colorBuyActive); }

function findAndBuy() { // Проверка на ошибку if (isColorMatch(COORDS.errorCheck.x, COORDS.errorCheck.y, COLORS.colorBuyActive)) { STATE.consecutiveErrors++; if (STATE.consecutiveErrors >= CONFIG.ERROR_TOLERANCE && CONFIG.AUTO_RECOVERY) { log(‘Критическая ошибка. Перезапуск.’, ‘ERROR’); sleep(CONFIG.LONG_DELAY); STATE.consecutiveErrors = 0; return false; } log(‘Ошибка интерфейса.’, ‘WARN’); mouseClick(COORDS.closeButton.x, COORDS.closeButton.y); sleep(CONFIG.LONG_DELAY); return false; }

 // Проверка цены и кнопки покупки
 if (isColorMatch(COORDS.pricePoint.x, COORDS.pricePoint.y, COLORS.colorPrice_0_03)) {
     if (isColorMatch(COORDS.buyButton.x, COORDS.buyButton.y, COLORS.colorBuyActive)) {
         mouseClick(COORDS.buyButton.x, COORDS.buyButton.y);
         STATE.totalPurchases++;
         STATE.purchaseTimes.push(getCurrentTime());
         log('Покупка #' + STATE.totalPurchases);
         sleep(CONFIG.STABILITY_DELAY);
         mouseClick(COORDS.closeButton.x, COORDS.closeButton.y);
         sleep(CONFIG.ACTION_DELAY_BASE);
         return true;
     }
 }
 return false;

}

function scrollIfNeeded() { var now = getCurrentTime(); if (CONFIG.ADAPTIVE_SCROLLING && now - STATE.lastScrollTime > CONFIG.SCROLL_DELAY) { mouseClick(COORDS.scrollDown.x, COORDS.scrollDown.y); STATE.lastScrollTime = now; if (CONFIG.RANDOM_BREAKS && Math.random() < .2) { sleep(Math.random()CONFIG.ACTION_DELAY_BASE2|0); simulateHumanCursor(); } log(‘Прокрутка’, ‘DEBUG’); } }

function takeBreak() { STATE.cycleCounter++; if (STATE.cycleCounter >= CONFIG.BREAK_CYCLE) { log(‘Перерыв’, ‘INFO’); sleep(CONFIG.BREAK_DURATION); STATE.cycleCounter = 1; } var now = getCurrentTime(); STATE.purchaseTimes = STATE.purchaseTimes.filter(t => now - t < 36e5); if (STATE.purchaseTimes.length >= CONFIG.MAX_PURCHASES_PER_HOUR && STATE.purchaseTimes.length > 1) { var oldestIndex = STATE.purchaseTimes.length - CONFIG.MAX_PURCHASES_PER_HOUR; var timeSinceOldest = now - STATE.purchaseTimes[oldestIndex]; var waitTime = CONFIG.MIN_PURCHASE_INTERVAL - timeSinceOldest; if (waitTime > 5) { sleep(waitTime); } } }

// === ГЛАВНЫЙ ЦИКЛ === function mainLoop() { while(true) { try { checkMarketState(); if (!STATE.isMarketActive) { sleep(CONFIG.CHECK_INTERVAL); continue; } scrollIfNeeded(); simulateHumanCursor(); var success = findAndBuy(); takeBreak(); sleep(ADAPTIVE_SETTINGS.currentDelay); STATE.lastActionTime = getCurrentTime(); if (success) STATE.consecutiveErrors = 0; } catch(e) { log(‘Критическая ошибка цикла’, ‘ERROR’); sleep(CONFIG.LONG_DELAY); } } } log(‘Скрипт запущен’, ‘INFO’); mainLoop();

 

sanya1234
()

RSS подписка на новые темы