Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: alien-77 on March 17, 2015, 07:19:19 PM

Title: include возникли вопросы
Post by: alien-77 on March 17, 2015, 07:19:19 PM
print ( $_time_m )
IF (($_time_m >16) & ($_time_m < 24))
LCLICK(90,40)
WAITMS(100)
#include "aukcion.cms"
END_IF

что то не работает условие, подскажите как сделать что бы скрипт вызывался в определенное время и заканчивался тоже?
Title: Re: include возникли вопросы
Post by: ezfalcon on March 17, 2015, 09:28:19 PM
Директивы #include обрабатываются препроцессором. У тебя код из файла aukcion.cms вставляется в то место, где указана директива. Никакого запуска aukcion.cms не происходит. Внимательно прочитай справку еще раз.

Предлагаю оформить код в файле aukcion.cms в виде процедуры:
Code: (clickermann) [Select]
sub(aukcion)
// содержимое aukcion.cms
end_sub

Соответственно твой код преобразуется примерно так:
Code: (clickermann) [Select]
#include "aukcion.cms"

print ( $_time_m )

$exit = 0

while ($exit ! 1)
IF (($_time_m > 16) & ($_time_m < 24))
LCLICK(90, 40)
aukcion() // запускаем код из aukcion.cms
END_IF
        WAITMS(100)
end_cyc

halt

Дополнение. Так и задумывалось, что скрипт должен выполняться между 17 до 23 мин включительно? С задержкой в 100мс будет порядка (23-17+1)*10*60 = 4200 запусков aukcion() в час. Если нужен один запуск, то в условие нужно либо добавить проверку флага однократного запуска, либо после запуска aukcion() вставить задержку на 7мин<=DELAY<60мин

[spoiler=флаг однократного запуска]
Code: (clickermann) [Select]
#include "aukcion.cms"
 
print ( $_time_m )
 
$exit = 0
$run = 0
 
while ($exit ! 1)
IF (($_time_m > 16) & ($_time_m < 24))
                IF ($run ! 1)
    LCLICK(90, 40)
    aukcion() // запускаем код из aukcion.cms
                    $run = 1
                END_IF
        ELSE
                $run = 0
END_IF
        WAITMS(100)
end_cyc
 
halt
[/spoiler]

[spoiler=задержка после запуска аукциона]
Code: (clickermann) [Select]
#include "aukcion.cms"
 
print ( $_time_m )
 
$exit = 0
 
while ($exit ! 1)
IF (($_time_m > 16) & ($_time_m < 24))
    LCLICK(90, 40)
    aukcion() // запускаем код из aukcion.cms
            WAIT(7*60)
END_IF
        WAITMS(100)
end_cyc
 
halt
[/spoiler]
Title: Re: include возникли вопросы
Post by: alien-77 on March 17, 2015, 09:33:51 PM
как раз файл запускается, только без всяких условий, конечно я знаю про процедуры их там у меня полно, это большой файл, хотел отдельно его просто включать раз в час...может использовать команду LOAD ?
Title: Re: include возникли вопросы
Post by: Vint on March 17, 2015, 11:42:53 PM
Нет. Зачем лоад.
Раз у тебя там подпрограммы, переделай как показали.

Тело подпрограммы должно быть в корне скрипта (на верхнем уровне), а так оно получается внутри условия.