Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: qazqaz0 on December 29, 2020, 01:19:46 PM
-
Всем привет!! Рад что смог зарегистрироваться . Не дает регистрацию на майл ру и джемаил.
Прошу небольшой помощи ,только начал осваивать программу. Видел похожий пример с перебором картинок .
Как сделать с #include ( во внешнем коде только переключение на новый счет . ) Чтобы не писать основное тело программы 18 раз в каждом #include Так выдает ошибку #include "$a.cms" Как сделать правильно чтобы он присваивал значения из цикла FOR Чтобы 18 раз запускал #include ( они немного разные ) в цикле . И второй вопрос как правильно в конце цикла обнулять переменную . Например: в цикле остановился с ошибкой на #include 15 ( 15 счет ) Необходимо чтобы при следующем запуске он стартовал (-1) с 14 #include 14 Если все 18 счетов пройдены начинал с 1 счета .. Понимаю надо переменную $a как то правильно в конце прописать и обнулить если $a=18 . И цикл FOR должен начинаться с правильной переменной. Если все 18 пройдены с 1 .. Если нет - то последний счет где была ошибка (-1)
Спасибо заранее.
// 29.12.2020
#name "New Script"
print("Hello, world!")
FOR($a=0, $a < 18)
#include "$a.cms" - так не работает выдает ошибку.
И так 18 раз вывести с 1 по 18 include
////// бла бла бла
Здесь основной цикл:
// основное тело программы .Одинаковое для 18 счетов
END_CYC
HALT
-
#include "$a.cms" - так не работает выдает ошибку.
Естественно. В include должно быть явно указано имя подключаемого файла. А файла с именем $a.cms у тебя нет.
include это директива препроцессора (всё что начинается с #). Директивы исполняются до запуска основного кода где бы они не стояли. Само собой использовать переменные в них нельзя, т.к. переменных ещё нет.
И второй вопрос как правильно в конце цикла обнулять переменную
UNDEFINE($var)
Как сделать правильно чтобы он присваивал значения из цикла FOR Чтобы 18 раз запускал #include ( они немного разные ) в цикле . И второй вопрос как правильно в конце цикла обнулять переменную . Например: в цикле остановился с ошибкой на #include 15 ( 15 счет ) Необходимо чтобы при следующем запуске он стартовал (-1) с 14 #include 14 Если все 18 счетов пройдены начинал с 1 счета .. Понимаю надо переменную $a как то правильно в конце прописать и обнулить если $a=18 . И цикл FOR должен начинаться с правильной переменной. Если все 18 пройдены с 1 .. Если нет - то последний счет где была ошибка (-1)
Неправильное решение. Нужно делать как-то иначе. Чтобы знать как надо знать что находится в этих 18 инклюдах, может и не нужно столько их.
В самом простом и худшем варианте можно написать так
SUB(main)
// основное тело программы .Одинаковое для 18 счетов
END_SUB
#include "0.cms"
main()
#include "1.cms"
main()
#include "2.cms"
main()
... И так 18 раз с 0 по 17 include
#include "17.cms"
main()
HALT
-
А по поводу запоминания и повторного старта, нужно сохранять выполняемый номер в файл. Хоть в txt, хоть ini А в начале читать из файла.
Но для этого лучше избавиться от номерных инклюдов или в крайнем случае запихнуть их в свитч.
SUB(main)
// основное тело программы .Одинаковое для 18 счетов
END_SUB
$current = INIREAD("config.ini", "current")
IF(($current = "") | ($current = 0) | ($current > 17))
$start = 0
ELSE
$start = $current - 1
END_IF
LOGWRITE("Последний обрабатываемый '", $current, "'. Стартуем с № ", $start)
FOR($i=$start, $i < 18)
LOGWRITE("Текущий: ", $i)
INIWRITE("config.ini", "current", $i)
SWITCH($i)
CASE(0)
#include "0.cms"
CASE(1)
#include "1.cms"
CASE(2)
#include "2.cms"
// ...И так 18 раз
CASE(17)
#include "17.cms"
END_SWITCH
main()
END_CYC
INIWRITE("config.ini", "current", 0)
HALT
-
Уважаемый Vint .. Огромное спасибо.... Мне такое точно ене осилить самому написать .Буду пробовать. Изначально с подпрограммой совсем не получилось... Но основная проблема была -пройдя 10 счетов в игре- все начинать по новой.
В инклюдах практически все одинаково. Буду делать как у ВАС- не получиться Попрошу помощи
Вот пример
LCLICK(429,59) // иконка для пер на счет
WAIT(3)
LCLICK(823,56) // шестеренка для пер на счет
WAIT(3)
LCLICK(464,181) // наж аккаунт
WAIT(2)
LCLICK(727,444) // измен ак
WAIT(5)
$var=0
WHILE($var=0)
LCLICK(645,303) // выбр гугл
WAIT(14)
LDOWN(683,558)
WAIT(1)
MOVER(706,391)
WAIT(1)
LUP(706,391)
WAIT(1)
GETSCREEN
COLORMODE(6)
GETSCREEN( 443,471,481,759,)
COLORMODE(6)
IF_PICTURE_IN (443,471,481,759, "велбит7.bmp", -1,70)
dbLCLICK($_return1, $_return2)
LOGWRITE ("счет найден")
WAIT(9)
LCLICK(528,526)
WAIT(4)
dbLCLICK(538,530)
WAIT(2)
$var=1
ELSE
LOGWRITE ("счет нет")
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (641,508,816,534,"ош гугл.bmp", -1,70)
dbLCLICK($_return1, $_return2)
LOGWRITE (" ошибка гугл ")
WAIT(5)
END_IF
ELSE
LOGWRITE (" гугл еше раз ")
WAIT(9)
END_IF
END_CYC
WAIT(12)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (646,546,799,581, "пр Гугл.bmp", -1,70)
LOGWRITE ("принять условия проверка ")
LCLICK(727,568)
WAIT(18)
END_IF
WAIT(8)
По сути только несколько строк меняется. картинка и координаты поиска .
Вот эти Значит я их запихаю св инклюд а все остальное пропишу в основной программе
LDOWN(683,558)
WAIT(1)
MOVER(706,391)
WAIT(1)
LUP(706,391)
WAIT(1)
GETSCREEN
COLORMODE(6)
GETSCREEN( 443,471,481,759,)
COLORMODE(6)
IF_PICTURE_IN (443,471,481,759, "велбит7.bmp", -1,70)
dbLCLICK($_return1, $_return2)
LOGWRITE ("счет найден")
WAIT(9)
LCLICK(528,526)
WAIT(4)
dbLCLICK(538,530)
WAIT(2)