Добрый день! С НГ и Рождеством всех читающих этот форум!!! Пишу на разных ЯП со школы. Кликерман (КМ) около 1,5 года. По показателю "написать бота" ставлю прогу на самый высокий уровень. Огромное спасибо
автору КМ, что поддерживает проект. Отвечает на сообщения, что-то внедряет, другое переносит на будущее.
Предлагаю и с нашей стороны поддержать, кто как может ...
Успешно реализовывал код разной сложности, но по большей части пытался осуществить полную автоматизацию процесса. "Админу" - удовольствие, что всё работает, успех достигнут; $ растут, скилл качается, перс повышается и т.д. С утра снять сливки, поправить скрипт, запустить и уйти на работу и цикл повторяется
.
Самыми большими проектами были: DemonSlaer, IdleHeroDefence, KingOfTowers, LootHeroes, PokieKingdom, swords-and-souls, GalacticClicker. Много мелких, связанных с рутиной автоматизации ручных процессов. Некоторые работают на андроиде, поэтому использовал эмулятор koplayer
.
Прошу рассмотреть список моих предложений для включения в stable версию:
1. Дополнением к уже озвученному в др. теме о задержке после выполнения любых команд управления мышью/клавиатурой: напр. LCLICK(x,y[,задерка]),
хочу предложить использование данной возможности по умолчанию. А значение задержки вынести в изменяемую переменную(ые) в скрипте (-1 = задержка отсутствует).
Таким образом, будет простая совместимость скриптов с предыдущими версиями. Команды управления не поменяются.
2. Аналогичным образом внести два параметра в исполнение конструкции
WHILE (...)
...
END_CYC [(макс. кол-во выполнения, даже если не выполнится условие; задержка в конце)]А для остальных
END_IF, END_SUB оставить только задержку. Важная фича, избавляет от зацикливания и от нагромождения строк. Вот реальный пример:
Sub(MyTagIn,$tx,$ty) // ввод воина в бой
$t=0
while ((PXL($tx,$ty)! $cRed)|($t > 100))
inc($t) // счетчик антилаг
lclick($tx,$ty)
waitms($w)
MyGetScr()
waitms($w)
END_CYC
wait(1)
end_subА получилось бы так (11 против 6 строк кода):Sub(MyTagIn,$tx,$ty) // ввод воина в бой
while (PXL($tx,$ty)! $cRed)
lclick($tx,$ty,$w)
MyGetScr()
END_CYC(100,$w)
end_sub(1000) 3. Читал, что отображение текущей выполняемой команды прямо в редакторе проблематично,
предлагаю зайти на проблему с другой стороны, может будет легче: добавить кнопку, которая отображает окно (типа лога), где будут отображаться ТОЛЬКО выполняемые команды, допустим последние десять штук, этого "за глаза" хватит, чтоб определить зависший кусок.
4. Особенно полезная фича будет отображение на экране (опционально), положения точки (в виде крестика), если курсор находится в внутри конструкции с координатами, а также прямоугольником для соответствующего случая. Завел курсор в LCLICK(1283,866), и сразу видишь где нажимается. Завел внутрь скобок PXLCOUNT(482,357,547,389,$cWhite), и в соответствующем месте появляется прямоугольник.
5. Добавить автоматическое применение изменений, поправил скрипт, сразу АЛТ-Ф1, и запускаешь, а так надо предварительно нажимать кнопку.
6. Редактор. Не нашел, было ли где указано про неправильное "РАЗремирование". Сначала выделяем неск. строк внутри конструкции и комментируем кнопкой, получим:
THREAD(KR, 1) // ручной запуск
if(ISKEYDOWN(#CTRL)=1)
$tkr=$tkr+1
// if($tkr=4)
// $c=1800Затем нажимаем расставить отступы, и символы "//" уходят вправо:
THREAD(KR, 1) // ручной запуск
if(ISKEYDOWN(#CTRL)=1)
$tkr=$tkr+1
// if($tkr=4)
// $c=1800 После этого кнопкой комментарий убрать нельзя
. Только вручную. Если много срок закоментировал, нажал выровнять отступы - добавил себе работы.
7. Внести определение направления сканирования пикселя (картинки).
Хотя бы только четыре варианта - точки начала в прямоугольной области,
всегда скан сначала по Х (влево или вправо),
а потом переход на другой Y.
8. Самое желанное. Ждем реализации простого GUI. Окно, куда можно кинуть кнопку, чекбокс (или группен чекбакс), и какой-нибудь лабель с полем для ввода (
с предустановкой: ввод только чисел, ввод любых значений - хотя обычно только числа нужны). А в скрипте - определить по его имени процедуру запуска при нажатии. Так управлять сложным скриптом в разы проще. А пока управление действиями - через контроль времени нажатия кнопки.
9. Редактор. При наборе команды и переходе к параметрам было бы неплохо показать варианты значений из справки.
Так уже при наборе можно отследить, что набрано правильно, если появился всплывающий хинт под курсором (как в Делфи).
Также нет контроля количества скобок. Конструкция
while ((PXLCOUNT(482,357,547,389,$cWhite)! 183)|($t>10)) может работать, а иногда нет, если пропустить последнюю скобку. Тут главное, проверять дважды. Ошибки при пропуске не возникает.
В целом имеющий функционал позволяет решать задачи в практически полном объеме!!! Если получится, то будем крайне рады новым возможностям.
ВСЁ, можете пинать меня!
С уважением, ...