-- Координаты точек на экране local stickT = Point.get(2717, 247) -- Верхний левый угол области наблюдения local stickB = Point.get(2994, 344) -- Нижний правый угол области наблюдения local buyBtn = Point.get(1953, 1456) -- Координаты кнопки "Купить" local confirmBtn = Point.get(3456, 532) -- Координаты кнопки "Подтвердить"
-- Задержки (в мс) local checkDelay = 250 -- Задержка между проверками области local clickDelay = 1000 -- Задержка после нажатия кнопки "Купить" перед нажатием "Подтвердить"
-- Функция для захвата части экрана function captureRegion(topLeft, bottomRight) local width = bottomRight.x - topLeft.x local height = bottomRight.y - topLeft.y return CaptureArea(topLeft.x, topLeft.y, width, height) end
-- Функция для поэлементного сравнения двух изображений function imagesAreEqual(img1, img2) if img1.width ~= img2.width or img1.height ~= img2.height then return false end for x = 0, img1.width - 1 do for y = 0, img1.height - 1 do if img1:GetPixel(x, y) ~= img2:GetPixel(x, y) then return false end end end return true end
-- Функция имитации клика с небольшой рандомизацией координат, чтобы избежать детекции ботов function clickWithRandomization(point) local randomX = point.x + math.random(-5, 5) local randomY = point.y + math.random(-5, 5) MoveMouseTo(randomX, randomY) PressMouseButton(1) Sleep(50) ReleaseMouseButton(1) end
-- Захватываем первое изображение области для сравнения local previousImage = captureRegion(stickT, stickB)
-- Основной цикл скрипта while not EXIT do -- Захватим текущее состояние области local currentImage = captureRegion(stickT, stickB)
-- Если обнаружено изменение (например, появление нового скина) if not imagesAreEqual(previousImage, currentImage) then print("Обнаружено изменение в области!")
local stickT = Point.get(2717, 247) -- Верхний левый угол области наблюдения
local stickB = Point.get(2994, 344) -- Нижний правый угол области наблюдения
local buyBtn = Point.get(1953, 1456) -- Координаты кнопки "Купить"
local confirmBtn = Point.get(3456, 532) -- Координаты кнопки "Подтвердить"
-- Задержки (в мс)
local checkDelay = 250 -- Задержка между проверками области
local clickDelay = 1000 -- Задержка после нажатия кнопки "Купить" перед нажатием "Подтвердить"
-- Функция для захвата части экрана
function captureRegion(topLeft, bottomRight)
local width = bottomRight.x - topLeft.x
local height = bottomRight.y - topLeft.y
return CaptureArea(topLeft.x, topLeft.y, width, height)
end
-- Функция для поэлементного сравнения двух изображений
function imagesAreEqual(img1, img2)
if img1.width ~= img2.width or img1.height ~= img2.height then
return false
end
for x = 0, img1.width - 1 do
for y = 0, img1.height - 1 do
if img1:GetPixel(x, y) ~= img2:GetPixel(x, y) then
return false
end
end
end
return true
end
-- Функция имитации клика с небольшой рандомизацией координат, чтобы избежать детекции ботов
function clickWithRandomization(point)
local randomX = point.x + math.random(-5, 5)
local randomY = point.y + math.random(-5, 5)
MoveMouseTo(randomX, randomY)
PressMouseButton(1)
Sleep(50)
ReleaseMouseButton(1)
end
-- Захватываем первое изображение области для сравнения
local previousImage = captureRegion(stickT, stickB)
-- Основной цикл скрипта
while not EXIT do
-- Захватим текущее состояние области
local currentImage = captureRegion(stickT, stickB)
-- Если обнаружено изменение (например, появление нового скина)
if not imagesAreEqual(previousImage, currentImage) then
print("Обнаружено изменение в области!")
-- Нажимаем кнопку "Купить"
clickWithRandomization(buyBtn)
print("Нажата кнопка 'Купить'")
Sleep(clickDelay)
-- Нажимаем кнопку "Подтвердить"
clickWithRandomization(confirmBtn)
print("Нажата кнопка 'Подтвердить'")
-- Обновляем предыдущую картинку на текущую, чтобы не повторять срабатывание на одном и том же изменении
previousImage = currentImage
end
Sleep(checkDelay)
end
если есть вопросы писать в тг @vilca_acliv