Автокликер Clickermann :: Форум
Основной раздел => Прочее => Topic started by: mz3fedor on April 18, 2016, 01:25:08 PM
-
Цель:
Разделить программы на под файлы, для удобного редактирования нужного процесса.
Запускать основной файл который будет управлять (под файлами) и по завершению (под файла), возвращаться к основному...
---------------------------------------------------------------
Что я имею на данный момент от Синтаксис LOAD
1. Запускаю основной файл
2. Загружается под файл, и он там повисает до бесконечности циклов.
3. Надеясь на "Halt" не помогает закрыть под файл (выдает ошибку).
---------------------------------------------------------------
Мой Вопрос можно ли данной программе вызвать (под файл) и по завершению его, вернуться обратно к (основному файлу) для дальнейшей работы программы с того же места от куда был вызван (под файл)?
//Основной файл
$var=1
sub(sos)
LOAD("вызов.cms")
end_sub
print("Начало")
if($var=1)
sos()
end_if
print("конец")
halt
//Вымазываемый мной под файл "вызов.cms"
$123 = StrReadln("Распределение заданий/bot_01.txt", 2 )//считывает вторую строку
TFWrite("vnesti.txt", $123 )//записывает вторую строку из файла "bot_01.txt" в файл "vnesti.txt"
HALT
-
Нашел решение проблемы с помощью #include
Странно, в программе его очень глубоко запрятали :(, на форуме еле как отрыл.
Но потом уж в программе самой в "ДИРЕКТИВЫ ПРЕПРОЦЕССОРА" обнаружил
-
Зачем здесь LOAD?
Почему не используется #include
-
Пока писал...
Пора бы в справке выпилить LOAD или хотя бы упомянуть там include со ссылкой на раздел.
Чёт в последнее время все кинулись новой волной на LOAD.
-
LOAD устаревшая функция, более не поддерживается в кликере. В последней 4.12 версии она была полностью выпилена. В предыдущей версии уже работал криво.
-
Пока писал...
Пора бы в справке выпилить LOAD или хотя бы упомянуть там include со ссылкой на раздел.
Чёт в последнее время все кинулись новой волной на LOAD.
Так уже убрана.
-
Ну слава богу.
-
Надо бы там упомянуть о нем, и описание толковое, а то не сразу понятно что за директива #include, а проект продолжает деятельность или встал пока? а где скачать 4.12 версию, на данном сайте вижу только 4.11
-
4.12 Это бета версия
http://crapware.aidf.org/forum/index.php?topic=356.msg15534#msg15534 (http://crapware.aidf.org/forum/index.php?topic=356.msg15534#msg15534)
-
Спасибо, а была ли добавлена функция поиска пикселя наоборот (с правого нижнего угла -> левому верхнему) с права на лево или с низу в верх?
я где то натыкался на форуме на просьбу чтоб ее добавили. так ответа и не нашел
-
Ответ был нет. Джонни не хочет перегружать функции ещё дополнительными аргументами.
Всё это легко реализуется через SCANPXL и нужную сортировку результата. Иногда это не подходит (если искомых пикселей ну ооочень много), но там и не нужен справа/снизу.
-
Жалко, просто нужно было определить границы (квадрата). этих квадратов много в одном из них размещена рандомно точка(которую я нахожу по пикселю), ну конечно можно написать с низу в верх и с права на лево, только код длинный получиться...
-
Ну да, код вообще длиннющий... ;D
GETSCREEN
SCANPXL($arr, 0,0,$_xmax,$_ymax, 255)
$right_x = -1
$right_y = -1
$down_x = -1
$down_y = -1
FOR($i=0, $i < ARRSIZE($arr), 2)
$X = $arr[$i]
$Y = $arr[$i+1]
IF($X > $right_x)
$right_x = $X
$right_y = $Y
END_IF
IF($Y > $down_y)
$down_x = $X
$down_y = $Y
END_IF
END_CYC
LOGWRITE("right X/Y ", $right_x, " / ", $right_y)
LOGWRITE("down X/Y ", $down_x, " / ", $down_y)
UNDEFINE($ARR_SCAN)
HALT
в результате координаты самой правой и самой нижней
-
ага) только написал), и решил сюда выложить а тут уже готово)
$x1 = 495
$y1 = 500
move($x1,$y1)
GETSCREEN
$temp = 1
WHILE ($temp = 1)
move($x1,$y1)
if($poisk_y = 0)
INC($y1,-1)
END_IF
if($poisk_x = 0)
INC($x1,-1)
END_IF
if (PXL($x1,$y1) = 15261649)
$poisk_y = 1
END_IF
if (PXL($x1,$y1) = 15390398)
$poisk_x = 1
HALT
END_IF
END_CYC
HALT
-
Уууу. Такой перебор будет медленно работать. Иногда очень медленно.
-
К сожалению твой код не то что требовалось, он у тебя показывает начальную точку данного цвета и конечную, т.е. мониторит весь экран.
Может я не правильно выразился, суть в том что на экране сетка из квадратиков(размеры квадрата меняются), и в одном из квадратиков появилась допустим (красная точка), которую я нахожу и имею данные координаты этой точки. далее мне нужно узнать размеры этого квадрата в которой находиться точка :-\
-
GETSCREEN
IF_PIXEL_IN(60,263, 720,867, 1842431)
$x = $_return1 // записываем координаты точки
$y = $_return2
$x0 = $x-5 // отступ от точки
$y0 = $y
WHILE(PXL($x0,$y0) = 16777215) // определяем границы
INC($x0,-1)
END_CYC
$x1 = $x0
$x0 = $x+5
$y0 = $y
WHILE(PXL($x0,$y0) = 16777215)
INC($x0,1)
END_CYC
$x2 = $x0
$x0 = $x
$y0 = $y-5
WHILE(PXL($x0,$y0) = 16777215)
INC($y0,-1)
END_CYC
$y1 = $y0
$x0 = $x
$y0 = $y+5
WHILE(PXL($x0,$y0) = 16777215)
INC($y0,1)
END_CYC
$y2 = $y0
END_IF
LOGWRITE ($x1, ",", $y1, " ", $x2,",", $y2) // результат в лог
HALT
-
К сожалению твой код не то что требовалось, он у тебя показывает начальную точку данного цвета и конечную, т.е. мониторит весь экран.
Может я не правильно выразился...
Я и не делал решение твоей задачи. Я показал альтернативу другой твоей просьбе:
Спасибо, а была ли добавлена функция поиска пикселя наоборот (с правого нижнего угла -> левому верхнему) с права на лево или с низу в верх?
Вот код и ищет справа налево и/или снизу вверх. А как ты его собирался применять я не знаю.