Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: ee33e on December 17, 2016, 11:23:06 PM
-
Подскажите, пожалуйста, что исправить в сценарии! Нужно поочередно вводить два значения i и j, но застревает на j, после первого цикла только j начинает перебирать.
FOR($i=1, $i < 5.6, 0.08)
LDOWN(719,342)
WAITMS(100)
LUP(815,345)
WAITMS(100)
LOGWRITE("i",$i)
KEYSTRING($i, 100)
WAITMS(1500)
FOR($j=5.6, $j > 1, -0.08)
LDOWN(719,369)
WAITMS(100)
LUP(815,373)
WAITMS(100)
LOGWRITE("j",$j)
KEYSTRING($j, 100)
WAITMS(1500)
END_CYC
WAITMS(100)
HALT
-
Не хватает одного END_CYC
Верный код
FOR($a=1, $a < 5.6, 0.08)
LDOWN(719,342)
WAITMS(100)
LUP(815,345)
WAITMS(100)
KEYSTRING($a, 100)
WAITMS(1500)
FOR($b=5.6, $b > 1, -0.08)
LOGWRITE("A: ", $a, " B: ", $b)
LDOWN(719,369)
WAITMS(100)
LUP(815,373)
WAITMS(100)
KEYSTRING($b, 100)
WAITMS(1500)
END_CYC
END_CYC
HALT
-
Все-равно только вторую переменную вписывает(((
-
Работает так как задумано, я просто исправил у тебя ошибку, но щас вчитался в первый пост и понял что тебе нужен 1 цикл. Пишется это так.
Нужно также помнить чтобы KEYSTRING вводила символы правильно раскладки кликера и целевого окна должны быть En
$a=1
$b=5.6
WHILE(($a < 5.6)&($b > 1))
LOGWRITE("A: ", $a, " B: ", $b)
LDOWN(719,342)
WAITMS(100)
LUP(815,345)
WAITMS(100)
KEYSTRING($a, 100) // не многовата задержка?
WAITMS(1500)
LDOWN(719,369)
WAITMS(100)
LUP(815,373)
WAITMS(100)
KEYSTRING($b, 100)
WAITMS(1500)
$a = $a + 0.08
$b = $b - 0.08
END_CYC
HALT
-
Спасибо! Так работает на ура!)
Там задержки нужны для вставки других команд попутных, сохраняются долго данные.
Подскажите, пожалуйста, как сюда добавить рандомность? А ещё лучше управляемую рандомность, т.е. чем ближе $a к 5.6, тем ближе рандомное число сдвигается к 0.004, а чем дальше $a от 5.6, тем ближе к -0.004.
$a = $a + 0.08 + рандомное число (от -0.004 до 0.004)
если $a > 2.8, то
$a = $a + 0.08 + рандомное число (от 0 до 0.004)...
или столько условий сразу нельзя ставить? чет неполучается((( тогда просто рандомное число добавлять.
-
Так:
IF($a > 2.8)
$a = $a + 0.08 + RND(0, 4)/1000
ELSE
$a = $a + 0.08 + RND(0, -4)/1000
END_IF
-
Точно, только с целыми числами работает, а я то думаю! Спасибо!
-
Ребята! Вот такой вопрос родился сейчас, как можно после выполнения вышеописанного цикла, снова запустить такой же, только присвоить переменным другие значения, или вообще другие переменные взять, и шаг изменить и рандом? Не догоняю)))
Иии самое главное, чтобы рандомное число при выполнении следующего цикла, не учитывалось!
Вот прошел один цикл:
$a = $a + 0.08 + RND(0, -4)/1000
$а стала 1,008+ рнд(0,004)=1,012
WHILE($a < 5.6) - ещё действует условие, и в следующем цикле
$а уже =1,012+рандом, а мне надо чтобы было =1,008+рандом
т.е. шаг $a был бы всегда один при новом цикле, а к нему прибавлялся рандом в каждом цикле отдельно без последствий так сказать!)) а то сильно в сторону точки уходят иногда))
Может все просто, убрать рандом из формулы и добавить его в KEYSTRING($a + RND(4, -4)/1000, 100) ?? так будет работать правильно? Вроде правильно))
-
...как можно после выполнения вышеописанного цикла, снова запустить такой же, только присвоить переменным другие значения, или вообще другие переменные взять, и шаг изменить и рандом? Не догоняю)))
Иии самое главное, чтобы рандомное число при выполнении следующего цикла, не учитывалось!
Не понятно. Цикл здесь только один
WHILE(($a < 5.6)&($b > 1))
//...
END_CYC
Такой же это ещё один дописать?
Или этот же запустить снова с другими значениями?
Или ты называешь циклом и сам цикл и его итерации (проходы). Одним словом. Это вызывает путаницу.
Циклом называй конструкцию. Если их две - 2 цикла.
Если 2 раза запускается цикл - это его "запуски" или "работа".
Каждый проход цикла (тела цикла) - это итерация. Можно "проход".
И приводи твой код на текущий момент, если он отличается от последнего в постах. Вот где сейчас собирать по кускам то с чем ты работаешь?
Не все же сидят днями с твоей задачей в голове.
-
А в чём сложность ввести для конечного результата новую переменную и её уже обрабатывать.
А обычную $a оставить без RND
$a = $a + 0.08
IF(($a - 0.08) > 2.8)
$aa = $a + RND(0, 4)/1000
ELSE
$aa = $a + RND(0, -4)/1000
END_IF