Home
Softono
chronoclicker

chronoclicker

Open source Python
11
Stars
0
Forks
1
Issues
1
Watchers
2 months
Last Commit

About chronoclicker

# chronoclicker Chronoclicker - это автокликер для вара, использующий в основном Selenium WebDriver. На данный момент (v2.3) кликер умеет: качать активность, УН, КУ, ПУ, т. е. ходить по локациям по маршруту и выполнять любые действия (в том числе с другими игроками). Также умеет играть в числа с Лапом, искать предметы (включая звёздную пыль), искать котов (включая ботов СЛ), закапывать предметы, писать в чат, искать путь от клетки до клетки и прочее. #### С версии 1.4 можно программировать! С версии 2.1 появился интерфейс! С версии 2.4 добавлен менеджер персонажей! ##### github: https://github.com/YaraRishar/chronoclicker #### vk: https://vk.com/chronoclicker #### **НИГДЕ БОЛЬШЕ** кликер не выкладывается. #### Также есть отдельная программа, умеющая только играть в числа с Лапом (работает без комманд, у меня поставлена на автозапуск). Ссылка на репозиторий: https://github.com/YaraRishar/chronominer ## Описание работы кликера При запуске кликер открывает вебдрайвер - отдельный браузер (в данном случае Chrome F ...

Platforms

Web Self-hosted

Languages

Python

Links

chronoclicker

Chronoclicker - это автокликер для вара, использующий в основном Selenium WebDriver. На данный момент (v2.3) кликер умеет: качать активность, УН, КУ, ПУ, т. е. ходить по локациям по маршруту и выполнять любые действия (в том числе с другими игроками). Также умеет играть в числа с Лапом, искать предметы (включая звёздную пыль), искать котов (включая ботов СЛ), закапывать предметы, писать в чат, искать путь от клетки до клетки и прочее.

С версии 1.4 можно программировать! С версии 2.1 появился интерфейс! С версии 2.4 добавлен менеджер персонажей!

github: https://github.com/YaraRishar/chronoclicker

vk: https://vk.com/chronoclicker

НИГДЕ БОЛЬШЕ кликер не выкладывается.

Также есть отдельная программа, умеющая только играть в числа с Лапом (работает без комманд, у меня поставлена на автозапуск). Ссылка на репозиторий: https://github.com/YaraRishar/chronominer

Описание работы кликера

При запуске кликер открывает вебдрайвер - отдельный браузер (в данном случае Chrome For Testing), в котором открывается только вкладка Игровой. Если вы запустили кликер в первый раз, то спустя 5-30 секунд ожидания вы увидите страницу входа на catwar и окно интерфейса. Важно: данные, которые вы использовали для входа на вар, сохраняются на вашем компьютере. Местонахождение этих данных зависит от операционной системы, например, на всех Linux они хранятся в папке selenium. Она создаётся при запуске вебдрайвера там же, где лежит приложение. На всякий случай НЕ ПЕРЕСЫЛАЙТЕ НИКОМУ ПАПКУ SELENIUM! Если вы хотите поделиться с кем-то кликером, то скиньте им ссылку на гитхаб/паблик вк (см. первый абзац), где можно скачать "чистую" версию. Вебдрайвер контролируется командами из приложения chronoclicker.exe: Если вы видите надпись "Загружается...", но вебдрайвер не открывается даже спустя несколько минут ожидания, напишите в ЛС паблика. В приложении можно ввести команду, которая будет исполняться в вебдрайвере. Гайд ниже содержит описания команд и примеры использования, его можно всегда посмотреть в самом кликере командой help.

(Кликером также возможно пользоваться как текстовым клиентом вара, если вы хотите играть в игру про котов так, как будто она вышла в 1979)

Установка

Вариант А: воспользоваться готовым приложением

Этот вариант предпочтителен в том случае, если вы доверяете рандому из интернета (ака мне). Исходный код всё ещё лежит в архиве с приложением, папка source, так что все, знающие Python, могут ознакомиться с тем, что запускают.

  1. Чтобы скачать приложение, найдите вкладку "Releases" на гитхабе и перейдите к последней версии: https://github.com/YaraRishar/chronoclicker/releases/latest
  2. Внизу страницы под заголовком "Assets" найдите и кликните на ссылку "chronoclicker_windows_v2_4.zip" (номер после v может отличаться, если вы читаете это после выхода новых версий).
  3. Начнётся загрузка архива с кликером. После её завершения найдите архив в папке "Загрузки" и распакуйте его с помощью 7zip или rar.
  4. В папке, которая появилась после распаковки архива, найдите chronoclicker.exe и запустите его. Если здесь (или далее) кликер вылетел, то напишите в паблик ВК со скрином ошибки/крашлогом.
  5. Должно появиться окно браузера Chrome For Testing (там будут кликаться действия) и окно интерфейса кликера: readme_instruction UI
  6. После того, как вы залогинились в варовский аккаунт в открывшемся окне браузера, перейдите в Игровую.
  7. Введите info в поле в нижней части окна кликера и нажмите кнопку ОК: readme_instruction UI_1
  8. Если вы видите информацию об Игровой (на скрине имена игроков замазаны), то кликер работает:readme_instruction UI_2 Теперь вы можете, например, прописать команду для прокачки активности (заменив названия локаций):
    patrol Каменистый перевал - Вершина - Отвесная тропа

    Или качать УН и КУ:

    loop do принюхаться - копать землю

    Или даже сохранить на будущее скрипт на прокачку всего сразу:

    alias скрипт go Журчащий ручеёк; do поплавать - поплавать - поплавать; go Каменная гряда; do принюхаться - копать землю

    Чтобы использовать скрипт:

    loop скрипт

    readme_instruction UI_3

    Вариант Б: скомпилировать код самостоятельно

    Более сложный вариант, но в какой-то мере гарантирует, что вы знаете, что делаете.

  9. Установите последнюю версию Python с официального сайта (https://www.python.org/) с добавлением python в переменную PATH.
  10. Откройте командную строку (win+R, в открывшемся окошке наберите cmd).
  11. Кликер использует пакеты selenium, selenium_stealth, chardet, urllib3, cryptography. Главными являются первые два: selenium обеспечивает работу вебдрайвера, selenium_stealth прячет кликер от варовского античита. Для их установки в командной строке наберите py -m pip install selenium и py -m pip install selenium-stealth, так же поступите с названиями остальных пакетов.
  12. С гитхаба (https://github.com/YaraRishar/chronoclicker) скачайте исходный код (зелёная кнопка Code, в выпадающем меню Download ZIP).
  13. В распакованном архиве лежит main.py, откройте его в Python IDLE (устанавливается вместе с Python) или в PyCharm (если есть).
  14. Попробуйте запустить код: F5 или зелёный треугольник в правом верхнем углу. Если вы видите интерфейс кликера с надписью "Вебдрайвер запускается, может занять некоторое время...", то вебдрайвер откроется через ~20 секунд при первом запуске. Далее следуйте инструкциям со скриншотами из варианта A.
  15. Если же программа крашнулась, то скачайте chromedriver (https://googlechromelabs.github.io/chrome-for-testing/#stable), вероятно, нужная версия указана в таблице как chromedriver - win64.
  16. В файле config.json найдите параметр "driver_path": "" и в кавычки вставьте путь к chromedriver.exe.
  17. Теперь вебдрайвер должен запуститься. Если, несмотря на правильность пути, программа крашится, то напишите в ЛС паблика со скринами ошибки.

    Гайд по интерфейсу

    readme_instruction UI_guide

  18. Поле для ввода команд.
  19. Статус выполнения действия/таймер.
  20. Кнопка ОК - подтвердить ввод команды.
  21. Обновить логи (если команда выполнилась, но текст не прогрузился).
  22. Поставить кликер на паузу (таймер в кликере остановится и новые действия выполняться не будут)
  23. Возобновить кликер.
  24. Остановить выполнение команды "бесконечной" команды.

    Гайд по командам

    Команды вводятся в текстовом поле в интерфейсе кликера, также их может быть несколько. В таком случае команды разделяются точкой с запятой, а все вместе они называются мультикомандой. В самом конце точку с запятой ставить не нужно. Пример:

    go Поляна для отдыха - Морозная поляна - Каменная гряда; jump 5 - 8; do Попить воды; go Морозная поляна - Поляна для отдыха - Лисья нора

    Данная мультикоманда состоит из четырёх команд поменьше: go, jump, do, go. Они выполняются по очереди: как только ваш персонаж пройдёт по маршруту, данному первой командой go, он прыгнет на пятый ряд, восьмую клетку и начнёт действие питья. После окончания действия персонаж вернётся в спальную локацию (Лисья нора). Также для мультикоманд могут быть созданы сокращения - синтаксис такой же, как обычно: alias name comm1; comm2 и так далее. Ещё один пример из установки:

    alias скрипт go Журчащий ручеёк; do поплавать - поплавать - поплавать; go Каменная гряда; do принюхаться - копать землю

    Здесь alias - ключевое слово для создания сокращения, скрипт - название сокращения (может быть любым). Сначала ваш персонаж перейдёт на локацию Журчащий ручеёк, затем поплавает три раза, затем перейдёт на Каменную гряду, потом принюхается и покопает землю. Заметим, что изначально персонаж должен находиться там, где есть переход на Журчащий ручеёк, и этот ручеёк должен быть безопасной плавательной локацией. В случае, если вы хотите плавать на опасной локации с поклеточным перемещением, вам придётся использовать команду pathfind и указать свой ID в config.json (для того, чтобы кликер знал, где ваш персонаж находится относительно перехода и рассчитал путь по клеткам).

    Тернарные выражения

    Тернарные выражение (от слова "три") - особые команды, которые состоят из трёх частей:

    условие ? команда1 : команда2

    При выполнении тернарного выражения сначала проверяется условие: если оно истинно, то выполняется команда1. В ином случае - команда2. Пример:

    param бодрость < 90 ? do поспать : wait 5

    Условием выступает команда param с аргументом "бодрость", она возвращает значение вашего параметра сна в процентах. Если возвращённое значение оказалось меньше 90%, то ваш персонаж совершит действие "поспать", а если больше, то подождёт 5 секунд, то есть, ничего не будет делать. Более сложный пример:

    param бодрость < 40 ? pathfind 5 - 6; do поспать : do поплавать

    Представьте, что вы находитесь на опасной плавательной локации. Когда ваш параметр сна опустится ниже 40%, то ваш персонаж по клеткам переместится на 6 клетку 5 ряда (где, предположим, есть переход на берег), и затем отоспится. Если же сон не упал ниже 40%, то будет совершено действие "поплавать". Чтобы записать команду и повторять её бесконечно (пока вы не выключите кликер), можно сделать сокращение:

    alias плывите_сосиски param бодрость < 40 ? pathfind 5 - 6; do поспать : do поплавать

    Теперь, чтобы повторять команду бесконечно: loop плывите_сосиски Это сокращение, как и многие другие, уже добавлено в config.json.

    wait начало_диапазона_секунд - конец_диапазона_секунд

    Ничего не делает, просто ждёт. Используется в мультикомандах, например, чтобы отсрочить выполнение действия. Чтобы ждать точное количество секунд, начало и конец диапазона должны быть одинаковыми. Пример:

    wait 10 - 60

    После ввода команды персонаж ничего не делает рандомное количество секунд, от 10 до 60. Пример в мультикоманде:

    do Принюхаться; wait 1800 - 1700; do Принюхаться
    go название_локации1 - название_локации2

    Команда перехода, маршрут проходится один раз. Пример:

    go Обжитая айн прогалина - Тёплые камни
    patrol название_локации1 - название_локации2

    Команда перехода, маршрут повторяется бесконечно (для маршрута из 3 локаций: 1 - 2 - 3 - 2 - 1 - 2 - 3 и так далее).

    do действие1 - действие2

    Команда для исполнения последовательности действий один раз. Пример:

    do Принюхаться - Копать землю - Вылизаться

    q

    Большая красная кнопка. Выйти из кликера и закрыть вебдрайвер.

    alias name comm

    Команда для создания сокращений для часто используемых команд. Пример:

    alias кач_актив patrol Морозная поляна - Поляна для отдыха

    В дальнейшем команда patrol Морозная поляна - Поляна для отдыха будет исполняться при вводе кач_актив. Все названия сокращений должны быть без пробелов. Сокращения сохраняются в файле config.json, их можно редактировать и напрямую в обычном блокноте, но придерживайтесь формата! Бэкап конфига можно всегда скачать на GitHub.

    say сообщение

    Написать сообщение в чат Игровой. Пример:

    say мяу
    info

    Вывести информацию об окружающей среде.

    char

    Вывести информацию о персонаже (т. е. имя, луны, должность, навыки). Из навыков показывает УН, КУ, ПУ, БУ, ЛУ, ЗУ.

    hist

    Вывести историю действий.

    clear_hist

    Очистить историю.

    help

    Вывести этот документ либо ссылку на него, если README.md не найден в папке с кликером.

    refresh

    Перезагрузить страницу.

    cancel

    Отменить действие.

    settings название_настройки - значение

    Команда для изменения настроек. Пример:

    settings is_headless - True
    rabbit_game

    Команда для того, чтобы 5 раз поиграть в числа с Лапом.

    inv

    Вывести ссылки на картинки всех предметов во рту.

    c ряд - клетка

    (с работает как на кириллице, так и на латинице)

Вывести всю информацию о клетка клетке ряд ряда: что на ней лежит, куда ведёт переход, вся видимая информация про сидящего на ней кота. Пример:

c 6 - 10
balance

Вывести баланс кролей вашего персонажа.

do_with имя_кота - действие

Выполнить действие действие с другим игроком по имени имя_кота. Сидеть рядом с котом при этом не обязательно, кликер сам перепрыгнет на соседнюю с этим игроком клетку. Поднимать таким образом котов тоже можно! Пример с обычным действием:

do_with Трололапик - потереться носом о нос
bury id_картинки_предмета - глубина

Закопать предмет с айди картинки id_картинки_предмета на глубину глубина.

loop имя_сокращения

Бесконечно повторять сокращение имя_сокращения. О том, как добавить сокращение, читайте в команде alias. Текже можно повторять команду:

loop do принюхаться - копать землю

Заметка: если действие нюха недоступно на данный момент, то кликер пропустит его и выполнит копание. Но если на следующее повторение цикла нюх доступен, то он будет выполнен. То же самое верно и для переходов.

pathfind row - column

Предупреждение: так как кликер не знает, кто из котов на локации - вы и откуда ему начинать рассчитывать путь, то для работы этой команды вам нужно заполнить поле my_id в config.json. В противном случае команда работать не будет, но в остальном кликер будет работать. Если вы застрянете на опасной плавательной локации без pathfind, то вы можете утонуть! Поэтому следите за персонажем глазами либо качайте ПУ только в безопасках. Найти кратчайший путь по клеткам от вашего местоположения до column клетки row ряда. Команда нужна в основном для тех локаций, где перемещение только по клеткам (опасные плавательные). Пример:

pathfind 3 - 3

find_item item_image_id1 - item_image_id2

Найти предмет по ID его изображения, рандомно переходя по локациям, когда нашёл, поднять. Откуда взять item_image_id: кликните ПКМ по предмету, выберите "Открыть изображение", посмотрите на ссылку на это изображение. Она будет выглядеть примерно так: https://catwar.net/cw3/things/386.png (это ссылка на одну из вариаций звёздной пыли). Число 386 - это тот ID изображения, который вам нужен. Пример:

find_item 385 - 386 - 387 - 388 - 389 - 390 - 392

Эта команда содержит ID всех звёздных пылей, так что ваш персонаж будет бесконечно ходить по локациям, ища и поднимая пыль.

find_cat cat_name1 - cat_name2

То же самое, что и find_item, только без поднимания и с котами. Ищет кота по имени cat_name, рандомно переходя по локациям. Пример:

find_cat Латрис

После нахождения кота (или всех котов в списке) команда заканчивает выполняться и печатает, на какой локации и клетке сидит искомый кот.

findme

Печатает ваши координаты на поле (ряд и клетку). Работает только тогда, когда заполнен параметр my_id в config.json. Понадобится в будущем для тернарных мультикоманд.

param parameter_name

Выводит значение параметра parameter_name в процентах. Может использоваться как условие для тернарной команды. Пример:

param бодрость

skill skill_name

То же самое, что и с параметром. Выводит значение и уровень навыка, в тернарной команде возвращает "числитель" дроби навыка. Пример:

skill нюх

exit_char

Выйти из варовского аккаунта.

save_char мастер_пароль - имя_персонажа - почта - пароль

Сохранить в зашифрованном виде почту и пароль от персонажа, чтобы потом переключаться на него одной командой (см. switch_char). В первый раз вы придумываете мастер-пароль и запоминаете его, и в дальнейшем заходите с его помощью на сохранённых персонажей. имя персонажа это название файла, в котором будут храниться зашифрованные почта и пароль, оно может быть любым. почта и пароль - данные для захода на какого-нибудь из ваших персонажей, будут храниться в папке character_tokens в зашифрованном виде.

switch_char мастер_пароль - имя_персонажа

Сменить персонажа. Мастер-пароль используется тот же, который был указан при сохранении персонажей, имя_персонажа - то название, которое вы ввели при сохранении командой save_char.

clear_char

Сбросить мастер-пароль и удалить сохранённые почты и пароли от всех персонажей. Сами персонажи затронуты не будут.

Что делают настройки в config.json

long_break_chance

После каждого "круга" действий/каждого перехода есть шанс, что кликер прекратит работу на некоторое количество секунд, имитируя AFK. По умолчанию этот шанс равен 0.15, что соответствует 15%. Тогда 10% == 0.1, 95% == 0.95 и так далее. Если вы оставляете кликер на ночь, лучше не понижайте этот шанс до 0 или 0.01.

long_break_duration

Это и есть "некоторое количество секунд", указанное в предыдущем пункте. По умолчанию AFK-перерыв длится от 10 до 200 секунд, значение выбирается рандомно в этих границах.

short_break_duration

Этот параметр отвечает за перерыв после каждого действия, по умолчанию от 1 до 15 секунд. Теоретически его можно понизить, например, до 0-1, но во избежание бана лучше так не делать.

critical_sleep_pixels

Используется только для команды swim, которая скорее всего не работает в v0.1. Обозначает количество оставшихся зелёных пикселей в параметре сна, при котором персонаж прекращает плавать и идёт отсыпаться.

is_headless

Запуск вебдрайвера без интерфейса. Если вы не хотите, чтобы окно браузера забивало память/мешало вам/етс, то вы можете изменить это значение на True и играть в вар с консоли.

driver_path

Путь к вашему chromedriver, если вам понадобилось его скачивать при установке. По умолчанию равен "".

max_waiting_time

Сколько вебдрайвер может ожидать загрузки страницы. Если у вас плохой интернет и загрузка занимает значительно больше 1 секунды, измените это значение на 3 или 5. Высокие значения вызывают замедление работы кликера!