В большинстве играх (как в браузерных, так и в приложениях) существует необходимость в повторении каких-то однообразных действий. Их приходится регулярно повторять для достижения результата, и эти монотонные действия могут прекрасно выполняться функционалом кликера. Для этого:
- Запустите одновременно Clickermann и игровое приложение.
- Определите действия, которые нужно повторять в игре и запищите их через запись сценария (это также можно сделать с помощью редактора скриптов).
- Сохраните результат и запускайте его по мере необходимости.
Скачать Clickermann
Нужно иметь в виду, что многие игры имеют защиту (Frost, GameGuard и т.д), которая не дает работать кликерам. Вы можете найти обсуждение этих тем на тематических форумах. Там есть советы о способах противодействия этому. Если игра перестает работать, можно попробовать скрыть кликер через HideTools или использовать проактивную защиту.
Приложения со сложным рендером или «тяжелые» игры могут вызвать проблемы с составлением скрипта или экранными функциями, поэтому используйте менеджер окон для установления прозрачности (видимость выставляйте на 100%), а также отключите графический курсор.
Пример сценария
Ниже приведен сценарий для онлайн-игрушки, где через браузер кликер управляет корабликом и собирает звездочки. Звездочки в игре постоянно появляются новые, примерно каждые 2-3 секунды. На скрине виден интерфейс игры.
Сам сценарий:
go: getscreen if_pixel_in(0, 0, 100, 100, 255) lclick($_return1, $_return2) WAITMS (100) Else WAITMS (300) end_if goto(go)
Примечания к скрипту.
Цвет и координаты можно записать в скрипт, если в режиме редактора навести мышь на нужное место и нажать Alt+Q.
0, 0, – верхний левый угол области поиска.
100, 100, – нижний правый угол.
255 – цвет звездочки (можно указать сразу несколько цветов через запятую).
WAITMS (100) – это задержка после клика в миллисекундах (можно поставить большее значение, чтобы на пути кораблика к звезде кликер реже кликал).
WAITMS (300) – это задержка в случае если искомый цвет не найден.
go: – метка.
goto(go) – переход к метке для самозацикливания.
- Печать
Страницы: [1] 2 3 … 15
Тема: Типовые алгоритмы, вводные статьи (Новички, читайте!) (Прочитано 253311 раз)
0 Пользователей и 1 Гость просматривают эту тему.
« Последнее редактирование: Март 18, 2022, 01:29:05 pm от Vint »
Записан
Поиск пикселя определенного цвета и щелчок по нему мышью
Использованные инструкции (ознакомьтесь с ними в справке по языку):
- getscreen
- if_pixel_in .. end_if
- lclick
- else
- halt
Приведенный ниже код ищет на экране пиксель красного цвета, начиная с левого верхнего угла. Как только пиксель будет найден, поиск окончится. В данном примере обрабатываются как успешный поиск, так и неуспешный.
// помещение текущего снимка экрана в буфер программы
// это необходимо для работы всех графических функций и процедур
getscreen
// --- конструкция поиска пикселя в буфере экрана ---
// координаты 0, 0, $_xmax, $_ymax описывают прямоугольную область, в которой будет осуществлен поиск. при этом $_xmax и $_ymax содержат максимально возможные значения для текущего разрешения экрана. 255 это код цвета, он соответствует красному. код цвета можно узнать в редакторе, наведя курсор на нужного цвета пиксель
// сама инструкция поиска if_pixel_in по сути представляет собой условие, то есть выполнение кода, который описан внутри условия, зависит от результата проверки самого условия (если пиксель найден) с учетом всех вышеописанных параметров.
if_pixel_in(0, 0, $_xmax, $_ymax, 255)
// если пиксель заданного цвета найден, его координаты будут помещены в системные переменные $_return1 и $_return2. можно их распечатать в лог ...
print("Цвет обнаружен в координатах: ", $_return1, ,":", $_return2)
// ... а можно сразу кликнуть по нему левой кнопкой мыши
lclick($_return1, $_return2)
else // блок else (вместе с кодом) не обязателен, но он обеспечивает обработку ситуации, когда условие вернуло отрицательный результат
// если ничего не найдено, выводим сообщение
print("ничего не найдено")
end_if // конец условия
halt // остановка скрипта, обеспечивает однократное выполнение
« Последнее редактирование: Ноябрь 05, 2012, 06:43:04 pm от Johnny »
Записан
Запуск блокнота и запись в нем произвольного текста.
Данный скрипт запускает блокнот и 5 раз записывает в него строку «The quick brown fox jumps over the lazy dog.»
#name "Запись в блокнот"//Имя нашего скрипта
EXECUTE("notepad.exe")//Запускаем программу notepad.exe. Команда EXECUTE равносильна окну "Выполнить" в Виндовс (Win+R).
WNDSTATE(WNDFIND("Блокнот"), 1)//Разворачиваем окно в заголовке которого есть строка "Блокнот". 1 - означает развернуть, 0 - свернуть.
WAITMS(500)//Ждем чтобы блокнот окончательно запустился. 500 мс достаточно
FOR($i, $i < 5)//Начало цикла. Цифра 5 означает что цикл повторится 5 раз
KEYSTRING("The quick brown fox jumps over the lazy dog.", 20)//Вводим текст. 20 означает задержку в 20 мс между вводом каждой буквы
KEYPRESS(#ENTER)//Нажимаем Enter чтобы перевести строку. #ENTER - код клавиши Enter
END_CYC//Заканчиваем цикл
HALT//Останавливаем скрипт
Коды всех клавиш можно посмотреть в help.chm, в разделе «Коды клавиш».
Обратите внимание, что у вас должна быть включена английская раскладка в окне кликермана и в окне блокнота.
Используемые команды:
- EXECUTE — Выполнение программ
- WNDSTATE — Сворачивание/разворачивание окна
- WNDFIND — Нахождение окна по заголовку
- WAITMS — Остановка скрипта на заданное кол-во миллисекунд
- FOR — Цикл
- KEYSTRING — Печать текста
- KEYPRESS — Нажатие клавиш
- HALT — Остановка программы
« Последнее редактирование: Октябрь 27, 2012, 10:46:17 am от Сергей »
Записан
Отсутствую.
Данный скрипт запускает блокнот и 5 раз записывает в него строку «The quick brown fox jumps over the lazy dog.»
Заметь, что должна быть включена английская раскладка.
Записан
Заметь, что должна быть включена английская раскладка.
Нельзя ли процедуру переключения раскладки поручить самой программе, или хотя бы дать понять пользователю , что у него раскладка не та?
Это я к чему?
Попробовал воспользоваться примером .
НО!
В моей ноуте никакие команды ( в языковой панели) по изменению раскладки так и не смогли «убедить» стандартный блокнот писать по английски. Хотя вручную все делаю исправно.
Если переключено на русский то получаю пустой лист с 5 точками
Если переключаю на англ , то печатается текст, но русскими буквами.
« Последнее редактирование: Октябрь 26, 2012, 10:12:13 pm от ЦИТРИН »
Записан
Бабочки полёт будит тихую поляну в солнечном свету…
В переключении языка есть особенность.
Для корректного вывода раскладка должна быть одинакова и в кликере в поле ввода.
Записан
добрый смех равняет всех
раскладка должна быть одинакова и в кликере в поле ввода.
Тут непонятный баг. Изначально у меня стоит англ и печатаю от руки в блокноте англ.
Но в момент запуска кликера визуально наблюдается самопроизвольный переход на русскую раскладку в языковой панели.
Записан
Бабочки полёт будит тихую поляну в солнечном свету…
1. Отследи постянно ли происходит этот переход.
2. Воспользуйся кодом:
KEYDOWN (#ALT) // меняем на русскую раскладку
waitms(100)
KEYPRESS (#SHIFT)
waitms(100)
KEYUP (#ALT)
waitms(100)
KEYSTRING ("")
KEYDOWN (#ALT) // меняем обратно
waitms(100)
KEYPRESS (#SHIFT)
waitms(100)
KEYUP (#ALT)
В моём случае замечено что команда KEYSTRING некорректно работает с раскладкой на русском языке. Мне пришлось писать по русски через KEYPRESS (#z).
Записан
добрый смех равняет всех
Тут непонятный баг. Изначально у меня стоит англ и печатаю от руки в блокноте англ.
Но в момент запуска кликера визуально наблюдается самопроизвольный переход на русскую раскладку в языковой панели.
просто винда запоминает для каждого приложения раскладку. даже если это калькулятор и вводить ему нечего. насколько я помню за это отвечает процесс ctfmon.exe
можете поэкспериментировать.
вообще с нелатиницей у кейстринга всегда проблемы. поэтому обычно я рекомендую писать «привет мир» как «ghbdtn vbh»
но если кто-то разберется с непонятным багом и сделает его понятным, думаю я смогу его исправить
« Последнее редактирование: Октябрь 27, 2012, 10:07:02 am от Johnny »
Записан
Нафлудили тут.
Заметь, что должна быть включена английская раскладка.
Поправил.
вообще с нелатиницей у кейстринга всегда проблемы. поэтому обычно я рекомендую писать «привет мир» как «ghbdtn vbh»
Почему бы кликерману самому, автоматически не конвертировать русский текст в лытдыбру и сразу печатать? А то сейчас поведение KEYSTRING очень странное.
Вот методом тыка я вывел:
Если в кликермане раскладка русская, то русские строки KEYSTRING понимает, но английские нет. Если раскладка английская, то наоборот.
От этого большая путаница, ведь за раскладкой нужно следить ещё и в целевом окне.
И ещё ввести бы функцию KEYLAYOUT($hwnd) которая возвращает текущую раскладку в заданном hwnd. Ну или хотя бы раскладку активного окна.
2. Воспользуйся кодом
Вариант чуть по-проще:
SUB(CHANGE_LAYOUT)
KEYDOWN(#CTRL)
KEYPRESS(#SHIFT)
KEYUP(#CTRL)
KEYDOWN(#ALT)
KEYPRESS(#SHIFT)
KEYUP(#ALT)
END_SUB
Записан
Отсутствую.
Нафлудили тут.
Вариант чуть по-проще:
Корифеям большое спасибо!
Если не затруднит , пишите полностью рабочие скрипты. Вам не трудно сделать копипаст в скрипт ( туда куда нужно) зато у нуба одним ступором меньше.
Записан
Бабочки полёт будит тихую поляну в солнечном свету…
Решил небольшую лепту внести…
Переменные.[/size]
Что это и зачем? Допустим Вы пишете скрипт на 500 строк и нём есть много одинаковых действий, например одни и теже координаты для клика:
LCLICK(695,336)
WAITMS(500) //Задержка выполнение следующей строки скрипта в милисекундах
LCLICK(728,375)
WAIT(5,8) //Таже задержка, но в секундах
LCLICK(695,386)
WAIT(RND(3,5)) //А вот так далаем рандомную задержку от 3 до 5 секунд
LCLICK(728,375)
WAIT(RND(5,8))
LCLICK(695,433)
WAITMS(RND(300,500))
LCLICK(728,375)
WAIT(RND(5,8)) и т.д.
Вместо того, что бы каждый раз вписывать одни и теже координаты, можно «обьявить переменную» — $
Прописывается так: $(название переменной) = её значение(число или слово)… Например:
$x = 695
$y = 728
$z = 375
В результате мы в скрипт можем вместо точек координат вставлять переменные и у нас получится следующее:
$x = 695
$y = 728
$z = 375
LCLICK($x,336) //заменили координату 695 на переменную $x
WAITMS(500)
LCLICK($y,$z) //дальше по аналогии, меняем координаты на нужные нам переменные
WAIT(RND(5,8))
LCLICK($x,386)
WAIT(RND(3,5))
LCLICK($y,$z)
WAIT(RND(5,8))
LCLICK($x,433)
WAITMS(RND(300,500))
LCLICK($y,$z)
WAIT(RND(5,8))
Цикличность действий.
Автоматизация ведь у нас всё таки? ))) И так. За цикличность у нас отвечает параметр FOR и
WHILE.
Сначала WHILE… Пример приведённый в справочнике вводит в ступор. Попробую обьяснить языком более понятным.
$a =0
То есть, поиск нужного пиксела или картинки будет проходить бесконечно, пока не появится то что нам надо и только тогда сценарий будет продолжать работать дальше.
WHILE ($a = 0) //вот мы начинаем цикл
WAITMS(100) //задержка в милисекуднах (если просто WAIT то в секундах)
GETSCREEN //делаем снимок экрана
IF(PXL(100, 100) = 255)//если нужный пиксел(100,100 - координаты поиска пиксела, 255 - номер цвета пиксела который нам нужен)тут не находится, то
//цикл начинается заного, а если нашли то что нам надо, то в следующей строке
$a = 1 // меняем переменную
END_IF //заканчиваем сравнение
END_CYC //заканчиваем цикл
FOR ($var, expression, [step]) — организует цикл с параметром. Для корифеев всё понятно, а я например дня три смотрел на функцию как баран на новые ворота. Но в принципе понять что написано в Help можно. Правда я смог понять только после того как разобрался с WHILE функцией. Если что то не правильно написал, поправьте — исправлю.
« Последнее редактирование: Ноябрь 01, 2012, 12:11:57 pm от prapor »
Записан
prapor, вариант цикла с WHILE можно написать куда кароче!
// если по координатам 100,100 цвет пиксела НЕ 255, то цикл будет работать
GETSCREEN // снимок в буфер кликера
// условие цикла: если функция PXL находит по координатам 100,100 пиксел любого цвета кроме 255
// цикл будет продолжаться, а как найдет цвет 255 то прервется, и скрипт продолжится дальше после END_CYC
WHILE(PXL(100, 100) ! 255)
WAITMS(100) // задержка
GETSCREEN // снимок в буфер кликера внутри цикла
END_CYC
« Последнее редактирование: Ноябрь 01, 2012, 04:56:40 pm от Oraven »
Записан
Мне как обьяснили, так я и раскоментировал. Спс, что показали другой способ. Как уже писал из вас умельцев всё клещами надо вытягивать.
Только раскоментируйте свой вариант. Не всё понятно.
« Последнее редактирование: Ноябрь 01, 2012, 12:08:33 pm от prapor »
Записан
л из вас умельцев всё клещами надо вытягивать.
Только раскоментируйте свой вариант. Не всё понятно.
Проблема умельцев в том, что они не понимают, чего там такого не понимают нубы. Сытый — голодного….
Нубам эту особенность психологии нужно понимать и принимать спокойно.
Главное, чтобы у обеих сторон хватало выдержки )
Записан
Бабочки полёт будит тихую поляну в солнечном свету…
- Печать
Страницы: [1] 2 3 … 15
-
#1
Для работы бота нам будет необходимо скачать Clickermann v4.10 ( Последняя версия)
И вот два скрипта
HTML:
ccc:
WAITMS(300)
KEYPRESS(#TAB)//следующая цель
WAITMS(300)
KEYPRESS(#4)//агрессия или другой аналогичный скил
WAIT(2)
bbb:
GETSCREEN
IF_PIXEL_IN (35,65,65,75,1930288)//анализ собственного здоровья
goto(aaa)
waitms(300)
ELSE
KEYPRESS(187)//кушаем зелье исцеления
waitms(300)
goto(aaa)
END_IF
aaa:
IF_PIXEL_IN (570,60,575,75,1908102)//анализ здоровья моба
KEYPRESS(#5)//атака
waitms(300)
KEYPRESS(#4)//атака
waitms(300)
KEYPRESS(#3)//атака
waitms(300)
KEYPRESS(#2)//атака
waitms(300)
KEYPRESS(#1)//атака
waitms(300)
KEYPRESS(#1)//атака
waitms(200)
KEYPRESS(#1)//атака
waitms(200)
goto(bbb)
ELSE
WAITMS(100)
KEYPRESS(#F)//дроп
WAITMS(300)
goto(ccc)
END_IF
HTML:
check:
GETSCREEN
$mp = PXL(710,698) // mana координаты пискеля с потраченной маной
$hp = PXL(818,680) // hp пиксель с потраченными хп
$target = PXL(647,776) // taget - пиксель в полоске цели перед смертью(лоухп где-то 1-5%, яркокрасный слева)
// все это в ручную подбираете в своем интерфейсе.
waitms(100)
if ($mp = 1124918) //проверка на цвет
goto(manareg)
end_if
if ($hp = 1124919)
goto(heal)
end_if
if ($target = 1908102)
goto(kill)
else
goto(turn)
end_if
//в цель беру скиллом, а не табом.
target:
KEYDOWN(49) //1
WAITMS(1000)
KEYUP(49)
goto(check)
//скилы на убийство
kill:
KEYDOWN(49) //кнопка "1" - клинки
WAITMS(11000)
KEYUP(49)
//сюда можно вставить кнопку лута
goto(check)
turn:
keydown(37) // <- стрелка влево
waitms(1350)
keyup(37)
goto(target)
heal:
KEYDOWN(50) //"2" инстант хилка
WAITMS(100)
KEYUP(50)
waitms(500)
KEYDOWN(51) //"3" кастующаяся
WAITMS(100)
KEYUP(51)
wait(2)
goto(check)
manareg:
KEYDOWN(52) //4 флейта
WAITMS(100)
KEYUP(52)
wait(5)
goto(check)
После запуска скриптов, бот стоит на месте и бьет мобов, так же поднимает дроп.
Координаты и кнопки выставлять свои!
Последнее редактирование модератором: 14 Апр 2014
@TheMrEnderBro, Про валюту: можно верифнуть киви/любые карты на дропов/етц
нын есть читы на фулл арсенал?
Если деньги есть, то проблема перевода чисто на человеке
@TheMrEnderBro, Только визуальный, да и это же хрень
Так раньше тоже такого не было)
Вернее банилось так же легко
визуальный,это когда ток в бою доступно всё?
@TheMrEnderBro, А ты кстати раньше с какими читами играл
@TheMrEnderBro, Это когда на сервере нет у тебя этого арсенала
с супербункерроломом и титановой балкой
Но это же хрень была всегда
Если только нет цели банить аккаунт
@TheMrEnderBro, Ща, вопрос
@TheMrEnderBro, Так оружия ж те же и всё такое
@TheMrEnderBro, А, ну это для игры на миссиях, скучное
ну и новая версия не заходит
@TheMrEnderBro, Так это ж скучные читы какие-то, ну типа… Что интересного…
@TheMrEnderBro, Ну это подмена пакетов, но это было году в 2011
@TheMrEnderBro, В 2013 конкретно в вормиксе уже редактировали сами .swf-файлы, декомпилировали, меняли код и перекомпилировали (тем же ффдеком)
@TheMrEnderBro, Справедливости ради, вормикс сейчас на том же уровне и остался, то есть просто декомпиляция и изменение кода прямо в свф (вормикс написан на AS3)
Вот это «редактирование» это то же самое, даже язык похож, как раньше делали читы на майнкрафт и редактировали клиент декомпилятором
Только у майнкрафта это осталось в 2015
@TheMrEnderBro, Сейчас все современные читы инжектятся прямо в процесс с дллькой и пишутся на C++, только у вормикса остался уровень 2015 с декомпиляторами
@TheMrEnderBro, От чего именно
@TheMrEnderBro, Так античит на клиенте можно же обойти
@TheMrEnderBro, Ну это изучение античита, для начала
То комментарий, а это основная статья
Там много интересного и сам процесс кратко показан
сука,игра проебала соединение с сервером
такой вариант мне не подъодит
не полезу я в ваши реверс инженеринги
@TheMrEnderBro, А что сложного…
@TheMrEnderBro, Так ведь в этом и суть обхода античитов и защиты в играх…
Чем лучше написана защита — тем интереснее реверсить, анализить и ломать/обходить
@TheMrEnderBro, А на чём ты пишешь? Какой стек языков
у меня не то мышление для подобного
Это же офигенно, сам процесс
я логически особо мыслить не умею
@TheMrEnderBro, А с психикой что
@TheMrEnderBro, Уууу, это ты ещё вмпротект 3.x не пытался девиртить
пока плагины с пхп на плюсы под liteloader bds переписую
а с психикой шизотипическое расстройство личности
Особенно когда попадаешь в ад и приходится очень много писать на ассемблере
@TheMrEnderBro, Ну в целом подходит…
Мне наоборот это так доставляет
Особенно то, что в реверс не все могут и это реально мозги плавит (особенно в начале)
я электронику пока изучаю
Типа, обычно люди, которые могут в реверс, не могут писать хорошо на высокоуровневых языках, а если ты одинаково хорошо можешь и так, и так, то это кайф вообще
А у меня сами платы и прочее не вызывает интереса, хотя в целом легко разобрался бы если бы были какие-то цели связанные с этим
@TheMrEnderBro, Сама игра на AS3, можешь попробовать пореверсить и покопаться в AS3 (джава-подобный, прям очень-очень похож на джаву)
Патчить придётся в ассемблере AS3, это что-то похожее на настоящий ассемблер, но намного проще для понимания
Потому что AS3 сам не обратно-компилируемый язык
@TheMrEnderBro, Сами свф можешь, для начала, найти в папке архива теста в public/vk/%имя_версии%/Wormix.swf
@Qwerty1337, Бредишь, то перенос был его фейка
Где найти команды для спавна
@djsh4ne, выбираешь версию 1.54 с разлочкой и покупаешь в магазине
на 1.35 мождно на другой ты на какой?
вкладка диалоги в вверхнем меню
где можно найти консольные команды
@Bratva_Shestov, «Как играть» нажми, там будет «Управление из консоли»
скиньте ссылку на Адобе флеш плеер не могу установить
А кто-нибудь знает, новые шапки и артефакты будут доступны в тесте?
Их будут делать или они так и останутся «Добротными»
Ну как тёмный выйдет из бана, так сразу всё будет
А почему через изменение параметров в профиле не добавляются оружия ? Такие как липучая мина и титановая балка
@Fearless, а когда он выйдет?
Как выдать себе в дом определенную шапку/арт?
@Alukard, Ну на месяц оформили его
@Alukard, 2023-02-28 00:23:35
а можно ссылку на новый архив версий без сайта мега?
@Alukard, Ну посмотри коммент к его бану
дайте ссылку на скачивание не с мега сайта
могу залить только версии и тсу для винды
а кто то играет с линукса в тест чтоли
Ну на кой то х.й тсу под него пилят
Над устроить бухич в честь смерти руре
@Lipa, Версия с консолью ?
Ты щас сверляшкой мне дал
Не хочешь телепата пройти?
А у тебя не в тесте акк ессть вормикс ?
Как зайти с другого аккаунта, если тсу 3.1 не запускается?
Попробуй 3.0, если работает
Пацаны ниже версии 1.04.0 можно как нибудь поиграть??
@beton2012, да, если скачаешь архив на 7 гигов
XaZoR
2023-02-02 01:42:58
@
Плагин Flash устарел
XaZoR
2023-02-02 01:43:00
@
Что сделать ?
в какой версии лучше купить арсенал что бы он сохоранился?
потому что нигде не сохраняется(
Но для этого не должно быть штучного арсенала вообще, тогда купится нормально
Если что-то покупалось по уровням, к примеру, ранец, а потом на 1.26.0 покупаешь полноценный, то ранцев станет 3 после обновления, а не бесконечный
Ну и так со всем, оружия не должно быть вообще перед покупкой бесконечного