Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: lahesis333 on November 24, 2019, 09:15:01 PM
-
И снова здравствуйте. На сегодня задача такая.
Есть 10 аккаунтов в ВК. Все они играют в одну и ту же игру. Каждый день требуется выполнять одни и те же действия на каждом аккаунте.
Судя по предыдущей теме, как я понял, можно создать скрипт выполняющий следующее: есть стартовое окно игры. Есть нужная кнопка(картинка) с которой все начинается(каждый день "запуск дня прохождения игры") и на которую нужно нажать. Мы нажимаем на эту кнопку(картинку) и скрипт ждет пока не появится следующая, нужная нам. И так далее: выполнили действие с предыдущей кнопкой(картинкой), скрипт ждет когда появится следующая нужная нам. То есть запись скрипта выполнена не по конкретному таймингу нажатия кнопок(картинок)а именно при появлении нужной кнопки(картинки) в данный момент времени.
Проблема в том, что на каждом аккаунте разная прокачка уровня персонажа и, соответственно, нужно разное время на прохождение заданий. То есть на первом аккаунте задание может выполняться 20 секунд а, к примеру, на пятом все 30(на восьмом аккаунте 15 и тд.).
Также при открытии сразу нескольких окон браузера(шесть и более) игра может подвисать на некоторых аккаунтах(опять таки не всегда и не во всех окнах) . Поэтому даже между теми действиями, между которыми в обычном режиме(когда открыто 2-3 окна браузера) время одинаковое(кнопка-3 секунды-кнопка-4 секунды-кнопка-2 секунды-кнопка и тд.), может быть увеличение времени отклика игры. Поэтому также не получается привязаться к определенному времени между действиями.
Прикладываю фрагмент того как это выглядит в жизни. Помогите пожалуйста решить задачку! Буду очень благодарен))
Также может быть такое, что на каком то из аккаунтов нет нужных ресурсов для выполнения какого то задания и происходит "прерывание" обычного хода действий. И если мы нажимаем на кнопку выполнения задания но выполнить его не можем(то есть вместо нужной нам по плану следующей кнопки в нужном месте, появляется другая кнопка, либо не происходит ничего) мы возвращались на главный экран игры(обычно это происходит при нажатии на клавишу ESC-это как клавиша "назад" в данной игре).
-
Вот сама игра https://dropmefiles.com/rinq1
-
Выложи видео лучше качеством и на ютуб, опиши конкретно что нужно делать. Со входом в каждый акаунт тебе показали пример в другой теме. Я сам не силен в скриптах, но по не сложным кускам скрипта могу помочь, типа найти картинку кликнуть там через столько времени и тому подобное.
-
Выложи видео лучше качеством и на ютуб, опиши конкретно что нужно делать. Со входом в каждый акаунт тебе показали пример в другой теме. Я сам не силен в скриптах, но по не сложным кускам скрипта могу помочь, типа найти картинку кликнуть там через столько времени и тому подобное.
Спасибо за подсказку! Вот понемногу стал разбираться... Но не могу задать следующее условие. Нужно чтобы найдя требуемую картинку происходило нажатие следующей нужной.Но не через четкий промежуток времени(1,2, 3 и тд секунд) а именно тогда, когда нужная картинка появится(к примеру в пределах одной минуты). И если картинка не появилась, то обновлять страницу браузера. Вот что пока удалось нарыть, но не уверен что хоть немного приблизился к истине...
$time = $_time_m + 5
WHILE($time > $_time_m)
GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
$time > 0
WAITMS(200)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"1.bmp")
$time > 0
WAITMS(200)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
END_IF
END_CYC
IF($time ! 0)
// время истекло, картинка не найдена
END_IF
HALT
-
Привет, поверь пока не будет чёткой логики, никто тебе не поможет, не потому что лень или не хотят а потому то никто не знает какую картинку ждать, что сделать или куда нажать. Выложи картинки обьясни на пальцах с самого начала куда нажать чего и как ждать, потом после того как дождёшься что сделать.
-
Привет, поверь пока не будет чёткой логики, никто тебе не поможет, не потому что лень или не хотят а потому то никто не знает какую картинку ждать, что сделать или куда нажать. Выложи картинки обьясни на пальцах с самого начала куда нажать чего и как ждать, потом после того как дождёшься что сделать.
Да, я понял. Это мне кажется все очевидным))Вот подготовил как это должно выглядеть. Все начинается с основного(стартового) окна. Оно запускается в 100% случаях при загрузке игры(скрин 1). Его нужно закрыть нажав на значок закрытия. После этого может появиться(но может и не появиться) похожая, которую так же нужно закрыть(скрин2) и попасть в итоге не главный экран(скрин 3). На главном экране(скрин 3) нужно нажать на картинку "АРЕНА" чтобы попасть в новое окно. Но проблема в том, что человечки перемещаются по экрану и иногда могут закрывать собой часть нужной картинки(АРЕНА). После нажатия на АРЕНА(скрин 3) мы попадаем на скрин 4 где нужно нажать "НАПАСТЬ"(желательно всегда на самую правую кнопку). Затем скрин 5 "В БОЙ". Затем идет окно загрузки боя. И вот этот период может быть всегда разным. Иногда между скрином 5 и скрином 7 проходит около 3 секунд, а иногда и порядка 15-20. После того как все загрузилось видим скрин 7. На нем нужно нажать на зеленый значок вверху справа и появится новое окно(скрин 8) где нужно нажать "ПРОПУСТИТЬ". Мы снова возвращаемся в окно выбора противника(скрин 9), которое нужно закрыть (крестик справа) и после закрытия оказываемся вновь на рабочем столе.
-
Вот сами скрины
-
1
-
2
-
Нет только не jpg BMP или png
-
Теперь осталось сделать 7 скринов, и собрать рабочий скрипт. Если в кликер у тебя не получается это сделать можешь, сделать по другому, как появится экран на котором нужно сделать действие, как например в начале игры скрин 1, жмёшь кнопку принтскрин на клавиатуре, открываешь пеинт родная встроенная программа виндовс, после открытия программы жмёшь сочетание клавиш контроля в. В прогу вставит я картинка, потом файл сохранить как выбираешь формат BMP и сохранить, и так все 7 скринов кидаешь сюда, дальше будет дальше😁
-
Теперь осталось сделать 7 скринов, и собрать рабочий скрипт. Если в кликер у тебя не получается это сделать можешь, сделать по другому, как появится экран на котором нужно сделать действие, как например в начале игры скрин 1, жмёшь кнопку принтскрин на клавиатуре, открываешь пеинт родная встроенная программа виндовс, после открытия программы жмёшь сочетание клавиш контроля в. В прогу вставит я картинка, потом файл сохранить как выбираешь формат BMP и сохранить, и так все 7 скринов кидаешь сюда, дальше будет дальше😁
Да, вот они)
-
Вот это уже другое дело, надеюсь ты их не редактировал, чуть позже, сделаем тестовый скрипт, просто на работе, пока нет возможности посидеть за компом
-
А почему первый и второй крестик разного размера?
-
А почему первый и второй крестик разного размера?
А это я пробовал изначальный скрин экрана уменьшить по размеру и пошла потеря качества)
-
Вот это уже другое дело, надеюсь ты их не редактировал, чуть позже, сделаем тестовый скрипт, просто на работе, пока нет возможности посидеть за компом
Буду ждать с нетерпением!
-
Кусочки картинок нужно скринить строго на одном разрешении, поэтому выстави нужный масштаб, и только потом собирай кусочки картинок, иначе скрипт работать не будет.
-
Кусочки картинок нужно скринить строго на одном разрешении, поэтому выстави нужный масштаб, и только потом собирай кусочки картинок, иначе скрипт работать не будет.
Да сделал все в одном разрешении теперь уже на домашнем компе.
ЗЫ. Или имеется ввиду чтобы был одинаковый размер? Типо если первые скрины 17х17, то и остальные должны быть такими же?
-
А что там с окнами? тебе нужно что бы он последовательно запускал и закрывал по одному окну за раз? или что бы он постоянно работал переключаясь между запущенными окнами?
-
А что там с окнами? тебе нужно что бы он последовательно запускал и закрывал по одному окну за раз? или что бы он постоянно работал переключаясь между запущенными окнами?
Чтобы закрывал окна по одному разу в последовательности от скрина 1 до скрина 10.
-
Ты с профилями разобрался же?
#DEFINE WM_SYSCOMMAND: 0x0112
#DEFINE SC_CLOSE: 0xF060
EXECUTE("firefox.exe", STRCONCAT("-P vk_user_data_", $counter, " -new-window https://vk.com/app5327745_569506422")) // открываем игру под профилем от 0 до 10 в мозилле
$hwnd = 0
WHILE($hwnd = 0)
$hwnd = WNDFIND("Хроники Хаоса - Mozilla Firefox")
END_CYC
WNDSETINFO($hwnd, 0, 0, 1280, 800) // устанавливаем позицию и размер окна
WAIT(2) // Тут ожидание загрузки игры и какие то действия
SENDMESSAGE($hwnd, WM_SYSCOMMAND, SC_CLOSE, 0) // закрываем окно
$counter = $counter + 1 // инкрементируем переменную счётчик аккаунтов
IF($counter > 10) // Если счётчик больше 10, то стоп
HALT
END_IF
-
Да, все работает. Но пришлось сократить кол-во открытых окон браузера до двух-трех т.к. после обновы в игре браузер может жрать аж до 6-7ГБ! оперативы...
-
А что там с окнами? тебе нужно что бы он последовательно запускал и закрывал по одному окну за раз? или что бы он постоянно работал переключаясь между запущенными окнами?
Окна имеются ввиду те же которые в игре? А то может мы о разных окнах говорим)) Просто скрипт заточен именно под окна браузера) А я думал что про окна диалоговые что в игре выскакивают когда нажимаешь на ту или иную кнопку ;D
-
это всё предстоит написать с 10-11 строки
-
Запустил игру, пришлось обучение пройти ;D, До конца не смог сделать, там арена лимитирована 5 проходов всего в день, так что держи не полный скрипт, остальное завтра. Кстати если кто может первые 2 цикла обьеденить в один было бы норм, у меня что то не получилось придумать как. Там такое условие, запуск игры появляется окно с крестиком, первое всегда, второе может быть а может и нет, 5 сек хватает что бы 2 окна поймать, надо проверить первое и закрыть потом в течении 5 сек чекать второе, если есть закрыть, если нет пойти дальше.
#name "Хроники хаоса"
// Проверяем первый крестик если нету через 10 сек идем дальше
$time = $_time_t + 10 // таймер на 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
IF($time ! 0)
END_IF
// Проверяем второй крестик если нету через 5 сек идем дальше
$time = $_time_t + 5 // таймер на 5 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
IF($time ! 0)
END_IF
WAITMS(800)
// Ищим арену
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Арена.bmp", -1, 90)
LCLICK($_return1 + 15, $_return2 + 15) // Клик по арена
WAITMS(1500)
LCLICK($_return1, $_return2 + 145) // Клик по напасть
WAITMS(1500)
LCLICK($_return1 + 280, $_return2 + 205) // Клик по в бой
WAITMS(1200)
END_IF
HALT
-
Вот тебе скрипт, пробуй тестируй, если что то не понравится пиши, поправим настроим.
#name "Хроники хаоса"
// Проверяем первый крестик если нету через 10 сек идем дальше
$time = $_time_t + 10 // таймер на 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
IF($time ! 0)
END_IF
// Проверяем второй крестик если нету через 5 сек идем дальше
$time = $_time_t + 5 // таймер на 5 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
IF($time ! 0)
END_IF
WAITMS(800)
// Ищим арену
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Арена.bmp", -1, 90)
LCLICK($_return1 + 15, $_return2 + 15) // Клик по арена
WAITMS(1500)
LCLICK($_return1, $_return2 + 145) // Клик по напасть
WAITMS(1500)
LCLICK($_return1 + 280, $_return2 + 205) // Клик по в бой
WAITMS(1200)
END_IF
// Ожидаем появления паузы
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Пауза.bmp", -1, 90)
LCLICK($_return1 + 10, $_return2 + 10) // Клик по пауза
WAITMS(500)
LCLICK($_return1 - 460, $_return2 + 340) // Клик по пропустить
$check = 1
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
HALT
-
Забыл сказать скачай 3 картинки во вложении, и положи рядом со скриптом
-
Забыл сказать скачай 3 картинки во вложении, и положи рядом со скриптом
Вай красота!)))А можно вопрос? Как ты добился нажатия на кнопку "НАПАСТЬ" и "В БОЙ" без применения части картинки?Я так понимаю "LCLICK($_return1, $_return2 + 145) // Клик по напасть" +145 и "LCLICK($_return1 + 280, $_return2 + 205) // Клик по в бой" +280,+205 это какое то смещение курсора которое направляет его в нужную точку?Если мне например нужно нажать не на самую правую "НАПАСТЬ" а на среднюю?
-
Просто я хочу попробовать дальше развить скрипт т.к. арена это только процентов 5 от того что нужно делать в игре ежедневно и мне хочется понять хотя бы приблизительную логику ::)
-
Если на середину там разница 200 пикселей, нужно по оси х отнять 200 пикселей
LCLICK($_return1 - 200, $_return2 + 145) // Клик по напасть (средняя кнопка)
-
Если на середину там разница 200 пикселей, нужно по оси х отнять 200 пикселей
LCLICK($_return1 - 200, $_return2 + 145) // Клик по напасть (средняя кнопка)
Не могу понять как заставить скрипт работать на закрытие диалогового окна в миссиях. При запуске он как положено ждет прохождения миссии и после того как миссия пройдена и появляется кнопка продолжить жмет пропустить. Все ок. Но вот не нажимает после этого на кнопку закрыть. Хотя я поставил смещение курсора как положено.
// Ожидаем появления продолжить
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "продолжить.bmp", -1, 60)
LCLICK($_return1 + 10, $_return2 + 10) // Клик по продолжить
WAITMS(500)
LCLICK($_return1 - 5, $_return2 + 5) // Клик по пропустить
WAITMS(500)
LCLICK($_return1 + 360, $_return2 - 510) // Клик по закрыть
$check = 1
ELSE
WAITMS(50)
END_IF
END_CYC
HALT
И почему то при параметрах картинки -1,70 или больше(80,90) он на нее не нажимает. Я так понял что вторая цифра отвечает за процент совпадения пикселей в игре и картинки? и чем меньше значение тем дольше он ее анализирует? Просто при выскакивании картинки "Продолжить" в игре, нажатие на нее происходить лишь спустя секунды 3-4 а то и все 5.
-
Там такое условие, запуск игры появляется окно с крестиком, первое всегда, второе может быть а может и нет, 5 сек хватает что бы 2 окна поймать, надо проверить первое и закрыть потом в течении 5 сек чекать второе, если есть закрыть, если нет пойти дальше.
Так можно это проверять? Вроде работает, но не уверен что сделал правильно.
$check = 2
$time = $_time_t + 8 // таймер на 8 секунд
WHILE($time > $_time_t) | ($check > 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
INC($check,-1)
LCLICK($_return1 + 10, $_return2 + 10)
WAITMS(1500)
ELSE
WAITMS(1500)
END_IF
END_CYC
IF($time ! 0)
END_IF
-
Проверяй такой вариант
#name "Хроники хаоса"
// Проверяем и закрываем рекламу
$check = 2
$time = $_time_t + 8 // таймер на 8 секунд
WHILE($time > $_time_t) | ($check > 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
INC($check,-1)
LCLICK($_return1 + 10, $_return2 + 10)
WAITMS(1500)
ELSE
WAITMS(1500)
END_IF
END_CYC
IF($time ! 0)
END_IF
WAITMS(800)
// Ищим арену
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Арена.bmp", -1, 90)
LCLICK($_return1 + 15, $_return2 + 15) // Клик по арена
WAITMS(1500)
LCLICK($_return1, $_return2 + 145) // Клик по напасть
WAITMS(1500)
LCLICK($_return1 + 280, $_return2 + 205) // Клик по в бой
WAITMS(1200)
END_IF
// Ожидаем появления паузы
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Пауза.bmp", -1, 90)
LCLICK($_return1 + 10, $_return2 + 10) // Клик по пауза
WAITMS(500)
LCLICK($_return1 - 460, $_return2 + 340) // Клик по пропустить
$check = 1
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
HALT // Удали это если надо что бы скрипт работал без остановки
-
Подскажите пожалуйста, как вы высчитываете нужные координаты куда кликнуть после нахождения нужной картинки? на этом примере:
// Ожидаем появления паузы
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Пауза.bmp", -1, 90)
LCLICK($_return1 + 10, $_return2 + 10) // Клик по пауза
WAITMS(500)
LCLICK($_return1 - 460, $_return2 + 340) // Клик по пропустить
WAITMS(1500)
LCLICK($_return1 - 32, $_return2 + 44) // Клик по закрыть
$check = 1
WAITMS(100)
ELSE
WAITMS(50)
END_IF
"Пауза.bmp", -1, 90 - Это нахождение части картинки(что такое -1,90?пытался понять через справку, но еще больше запутался)
LCLICK($_return1 + 10, $_return2 + 10) // Клик по пауза - Это клик непосредственно по нашедшейся картинке(почему стоит смещение +10 и +10?или это не смещение?)
LCLICK($_return1 - 460, $_return2 + 340) // Клик по пропустить - Это клик по кнопке пропустить. -460 и +340 смещение относительно какой точки? И можно ли быстро узнать на сколько идет смещение до нужно точки нажатия? А то вчера полвечера просидел с калькулятором считал куда нажать ;D
-
Это из справки кликермена
IF_PICTURE_IN ... END_IF
Производит поиск изображения в прямоугольной области буфера анализа.
Синтаксис
IF_PICTURE_IN (x, y, x2, y2, file, [bgcolor], [currency] )
...
END_IF
Параметры
x, y - числовые координаты левого верхнего угла области поиска
x2, y2 - числовые координаты правого нижнего угла области поиска
file - bmp файл, поиск которого будет осуществляться
bgcolor - необязательный параметр; игнорируемый цвет фона входного изображения
currency - необязательный параметр; точность поиска в процентах (1..100)
Возвращаемые параметры
$_return1 - x координата найденного изображения
$_return2 - y координата -//-
Пример
getscreen
IF_PICTURE_IN (10,20, 300, 300, "somefile.bmp")
move($_return1, $_return2)
END_IF
-
После поиска картинки, переменные примут значения координат, найденной картинки (левый верх куска картинки) и дальнейшие расчеты надо делать относительно этих координат. например картинка, которую мы ищем, находится в координатах 10 10 переменные $_return1 и $_return2 присвоили значение 10 10, что бы попасть по картинке, желательно прибавить к ним пару пикселей получится ($_return1 + 5, $_return2 + 5) теперь нам надо кликнуть ниже и правее от найденной картинки на 10 по х и на 20 по у, мы помним что $_return1 и $_return2 = х10 у10 значит надо прибавить получится ($_return1 + 10, $_return2 + 20) и скажем нужно еще кликнуть левее на 20 и ниже на 30 получится ($_return1 - 20, $_return2 + 30). что бы узнать координаты искомой картинки, можно после поиска картинки, прописать запись в лог такую строчку
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
LOGWRITE ($_return1, " х ", $_return2)
END_IF
или такуюGETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
MOVE($_return1, $_return2) // Курсор прыгнет на эти координаты, потом можно запомнить их или нахать Alt+Q они запишутся в открытом редакторе кликермана
END_IF
-
И можно ли быстро узнать на сколько идет смещение до нужно точки нажатия? А то вчера полвечера просидел с калькулятором считал куда нажать ;D
Есть проги которые все это высчитывают, я привык сам с добрым калюкулятором, нахожу координаты картинки потом от них отнимаю те в которые надо нажать после поиска, если значение положительное тогда прибавляешь к $_return если отрицательно то отнимаешь все просто
-
Да и еще, учти такой момент, когда ты найдешь картинку переменные $_return запомнят координаты картинки 1 и все расчеты производишь относительно этих координат, но когда ты запустишь поиск второй картинки или пикселя,в переменные $_return запишутся уже координаты картинки 2.
-
Да и еще, учти такой момент, когда ты найдешь картинку переменные $_return запомнят координаты картинки 1 и все расчеты производишь относительно этих координат, но когда ты запустишь поиск второй картинки или пикселя,в переменные $_return запишутся уже координаты картинки 2.
Я не совсем понял как пользоваться логом для поиска координаты искомой картинки...В лог то прописал команду чтобы курсор прыгнул на картинку но не знаю как применить чтобы все работало...
И еще вопрос. Как сделать условие:если картинка найдена, то мы нажимаем на нее. а если не найдена то нажимаем на другую(или ESC)?
И как бы сделать так, чтобы при нажатии на картинку, если она снова появляется в том же месте, на нее нажималось именно столько раз, сколько она будет появляться?
-
Не совсем понятно, что ты не понял, вроде я довольно понятно все написал.
По поводу если не найдена картинка:
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Если найдено
LCLICK($_return1, $_return2) // Клик по картинке
WAITMS(100)
ELSE // Если не найдено
WAITMS(300)
KEYPRESS(#ESC) // Жмем ESC
WAITMS(50)
END_IF
И как бы сделать так, чтобы при нажатии на картинку, если она снова появляется в том же месте, на нее нажималось именно столько раз, сколько она будет появляться?
Напиши прямо куда нажимать? Ты про подарки от друзей? Добавь меня в скайп ggk-vova, вечером если не буду занят, пообщаемся, и попробуем собрать то что тебе нужно.
-
Напиши прямо куда нажимать? Ты про подарки от друзей? Добавь меня в скайп ggk-vova, вечером если не буду занят, пообщаемся, и попробуем собрать то что тебе нужно.
Когда заходишь в ежедневные задания, то там есть кнопки завершить(когда выполнил арену и миссии и тд). Там может быть 3,4,5,6 и тд картинок завершить. Когда на нее нажимаешь, она пропадает и на ее месте появляется следующая(если еще есть такие). Нужно чтобы нажималось на одинаковую картинку ЗАВЕРШИТЬ, пока она будет появляться. Как только они закончатся то начать ESC. У меня идея только продублировать несколько раз поиск этой картинки. И везде вставить ELSE с нажатием ESC. Но скрипт и так большой получается а тут еще и 6-7 штук одного и того же. Может можно как то более грамотно организовать?
А также вопрос по мигающей кнопке. Есть мигание, но оно каждый день в другом место. Цвет один и тот же. Нужно найти пиксель(и) в произвольной точке и нажать. Пробовал скринить в тот момент когда появляется "свечение" кнопки, но не находит...
-
Пробуй так
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Завершить.bmp", -1, 95)
LCLICK($_return1, $_return2)
WAITMS(500)
MOVE($_return1 - 50, $_return2)
ELSE
KEYPRESS(#ESC)
$check = 1
WAITMS(150)
END_IF
END_CYC
А также вопрос по мигающей кнопке.
А ее надо увидеть что бы понять что с ней делать
-
А ее надо увидеть что бы понять что с ней делать
Вот она. Она постоянно мерцает от менее желтой рамки к более желтой. Нужно нажимать на саму картинку в центре.
-
Целиком окно заскринь, и как ты скрины делаешь?
Если через пеинт то при сохранении выбери BMP формат
-
Целиком окно заскринь, и как ты скрины делаешь?
Если через пеинт то при сохранении выбери BMP формат
Это я чисто для форума быстро скриню с работы. У нас тут плагин установлен и он сразу сохраняет автоматом.
Вот все окно
-
Вот что имеем на данный момент. Отрабатывается открытие окна браузера с последующим запуском игры и зыкрытием стартовых диалоговых окон. Плюс реализован сбор ежедневных заданий.
#DEFINE WM_SYSCOMMAND: 0x0112
#DEFINE SC_CLOSE: 0xF060
#DEFINE PROFILE_NAME: "vk_user_data_"
#DEFINE GAME_TITLE: "Хроники Хаоса"
#DEFINE GAME_LINK: "https://vk.com/app5327745_569506422"
#DEFINE WINDOW_POS: 0, 0
#DEFINE WINDOW_SIZE: 1280, 840
#DEFINE GAME_CLIENT_POS: 200, 180
#DEFINE GAME_CLIENT_SIZE: WINDOW_SIZE
#INCLUDE "data\includes\mySub.cms"
FOR($counter, $counter < 10)
EXECUTE("palemoon.exe", STRCONCAT("-P ", PROFILE_NAME, $counter, " -new-window ", GAME_LINK))
$hwnd = #FALSE
WHILE($hwnd = #FALSE)
$hwnd = WNDFIND(GAME_TITLE)
END_CYC
WNDSETINFO($hwnd, WINDOW_POS, WINDOW_SIZE)
GAME_LOADING() // Ожидание загрузки игры
SKIP_OFFER() // Пропускаем рекламу
OPEN_DAILY_MISSIONS() // Открываем ежедневные миссии
COMPLETE() // Завершение миссиий
SENDMESSAGE($hwnd, WM_SYSCOMMAND, SC_CLOSE, 0)
WHILE(STRLEN(HGETTEXT($hwnd)))
WAITMS(25)
END_CYC
HALT
END_CYC
SUB(SKIP_OFFER)
$time = $_time_t + 5
WHILE($time > $_time_t)
GETSCREEN
COLORMODE(8)
IF_PICTURE_IN (GAME_CLIENT_POS, GAME_CLIENT_SIZE, "data\pictures\OFFER_CLOSE.bmp", -1, 100)
PRINT("offer_close found")
LCLICK($_return1 + 5 + RND(-2,2), $_return2 + 5 + RND(-2,2))
WAITMS(2500)
$time = $_time_t + 5
END_IF
END_CYC
END_SUB
SUB(OPEN_DAILY_MISSIONS)
STRSEPARATE("daily_missions.bmp;daily_missions_open.bmp", ";", $arr_temp)
$state = 0
WHILE($state < 2)
GETSCREEN (GAME_CLIENT_POS, GAME_CLIENT_SIZE)
COLORMODE (8, GAME_CLIENT_POS, GAME_CLIENT_SIZE)
IF_PICTURE_IN (GAME_CLIENT_POS, GAME_CLIENT_SIZE, STRCONCAT("data\pictures\", $arr_temp[$state]), -1, 100)
PRINT($arr_temp[$state], " found")
IF($state = 0)
LCLICK($_return1 + 40 + RND(-5,5), $_return2 + 20 + RND(-5,5))
WAITMS(1500)
END_IF
$state = $state + 1
ELSE
PRINT($arr_temp[$state], " not found")
END_IF
END_CYC
END_SUB
SUB(COMPLETE)
$check = #FALSE
WHILE($check = #FALSE)
GETSCREEN
COLORMODE(8)
IF_PICTURE_IN(GAME_CLIENT_POS, GAME_CLIENT_SIZE, "data\pictures\complete.bmp", -1, 100)
PRINT("complete found")
LCLICK($_return1 + 40 + RND(-5,5), $_return2 + 8 + RND(-5,5))
WAITMS(1500)
ELSE
PRINT("complete not found")
$check = #TRUE
END_IF
END_CYC
END_SUB
SUB(GAME_LOADING)
$game_loading = #FALSE
WHILE($game_loading = #FALSE)
GETSCREEN (GAME_CLIENT_POS, GAME_CLIENT_SIZE)
$game_loading = PXLCOUNT(GAME_CLIENT_POS, GAME_CLIENT_SIZE, 6225919)
WAITMS(25)
END_CYC
END_SUB
-
Можно ли сделать в кликере такие чудеса:
Запускаем скрипт. Он открывает первый профиль браузера(всего их допустим 10) и сразу заходит в ВК.
В ВК заходит в определенную группу-ищет на странице нужную картинку(подарки в игре)-если находит нажимает по ней и сразу запускается игра-как только игра прогрузилась до определенного момента(окно рекламы) игра закрывается.
Мы вновь заходим в ту же группу и прокручиваем страницу до тех пор, пока не появится опять такая же картинка(картинки одинаковые. обычно два раза в день появляются утром и вечером. но проблема в том, что первая картинка, на которую мы нажали ранее, никуда не пропадает а так и остается в группе т.к. это пост).
После нажатия на вторую картинку мы опять ждем пока игра не прогрузится до окна рекламы и после этого закрывает браузер.
И сразу же после закрытия первого профиля открывался второй(потом когда закроется второй, третий и тд) с аналогичными действиями в группе ВК.
Выше выложил скрипт, которые открывает профиль браузера с последующим запуском игры и закрытием окна браузера после выполнения всех необходимых действий(спасибо большое за написание пользователю Космич! :D)
-
тут надо думать над парсером страницы группы за определённое время
-
тут надо думать над парсером страницы группы за определённое время
А можно языком для таких как я?)Или это не мне сообщение? :-X
-
А можно языком для таких как я?)
(https://99px.ru/sstorage/86/2018/09/image_862909181827114104596.gif)
Ну, так все сразу понятно! А главное, сразу приблизились к решению вопроса!
-
чтоб, сразу приблизились к решению вопроса, не буду раздражать вас дополнительными вопросами, необходимыми для написания кода, а корректно и точно отвечу на тот единственный, который вы смогли здесь сформулировать: ДА, МОЖНО.
Вы как всегда оригинальны в своих ответах! Но вам не кажется, что люди, которые обращаются за помощью на данном форуме(в большинстве или в меньшинстве, неважно) не всегда понимают какую именно информацию они должны предоставить ВАМ(помогающим) для решения того или иного вопроса? Есть вопрос "Можно ли ...." и есть ваш ответ "Да можно...". Моя ошибка в том, что я некорректно задал вопрос и не знаю какую информацию, кроме того как это должно выглядеть, предоставить. Но вместо того, чтобы хоть как то помочь(да вы не обязаны) и направить в нужное русло(даже в таком элементарном деле, как выражение МОИХ хотелок и мыслей), вы применяете не совсем уместный сарказм.
ЗЫ.Прошу прощения за разведенную в теме полемику!
-
Проверь вот это. Должен появится файл с html кодом страницы группы
#DEFINE HTTPGET_SITE: "https://vk.com/bestmobagroup"
#DEFINE HTTPGET_OUTPUT_FILE: "bestmobagroup.txt"
EXECUTE("httpget.exe", STRCONCAT("-S ", HTTPGET_SITE, " -F ", HTTPGET_OUTPUT_FILE))
WHILE($isnew = 0)
GETMESSAGE($wParam, $lParam, $isnew)
END_CYC
HALT