Ты вот эту переменную в скрипте оставляешь? ($path = "screens\Цех")
Нет, пробовал оставлять только screens или давал другое имя, все равно упирается в ошибку, тут скорее всего всё работает просто я слаб знаниями в области этих переменных...
Ахах
Я тут (на этом форуме) лет 10 назад Винта с этими переменными так достал, что он мне в личку начал писать и интересоваться - я действительно никак понять не могу, или троллю форум своими вопросами
Короче вот мой скрипт полный.
#include "subs\bordering.cms"
#include "subs\MouseClick.cms"
$path = "screens\Цех"
IF($start = 0)
$start = 1
if (FExists($path)=0)
FCREATE ($path)
end_if
GETFILELIST ($arr, "screens\Цех\*.bmp")
FOR($a=0,$a<ARRSIZE($arr))
FDELETE (STRCONCAT("screens\Цех\",$arr[$a]))
END_CYC
UNDEFINE ($arr)
END_IF
THREAD(hotkeys, 1)
IF(ISKEYDOWN(#DOWN)=1)
LOGWRITE ("Стоп...")
$script = 0
WHILE(ISKEYDOWN(#DOWN)=1)
WAITMS(50)
END_CYC
END_IF
IF(ISKEYDOWN(#LEFT)=1)
LOGWRITE ("Поехали!")
$position = "left"
$script = 1
WHILE(ISKEYDOWN(#LEFT)=1)
WAITMS(50)
END_CYC
END_IF
IF(ISKEYDOWN(#RIGHT)=1)
LOGWRITE ("Поехали!")
$position = "right"
$script = 1
WHILE(ISKEYDOWN(#RIGHT)=1)
WAITMS(50)
END_CYC
END_IF
WAITMS(50)
END_THREAD
IF($script > 0)
GETSCREEN (1061,800, 1505,1351)
bordering (1061+170,917, 1061+194,1032, 255) // Обводим поле 1
bordering (1061+243,917, 1061+267,1032, 255) // Обводим поле 2
bordering (1086,917, 1259-32,1032, 255) // Обводим поле 3
bordering (1300+32,917, 1479,1032, 255) // Обводим поле 4
$pos = "_"
IF_PICTURE_IN (1061+81,800+517, 1061+86,800+521, "screens\упс.bmp", -1, 100) // Здесь определяем фейл и конец игры
MouseClick("L", $_return1+50, $_return2+10) // И кликаем, чтобы начать игру заново
WAITMS(1000)
else
IF_PIXEL_IN(1061+170,917, 1061+194,1032, 1446725,5256016) // Здесь ищем пиксель в поле 1
bordering ($_return1,$_return2, $_return1,$_return2, 255) // Обводим его, для инфы на скрине
$pos = "right"
else
END_IF
IF_PIXEL_IN(1061+243,917, 1061+267,1032, 1446725,5256016) // Здесь ищем пиксель в поле 2
bordering ($_return1,$_return2, $_return1,$_return2, 255) // Тоже обводим
$pos = "left"
else
END_IF
END_IF
IF($pos = "_") // Если в поле 1 и 2 пиксели были не найдены, то ищем пиксели в поле 3 и 4. Причем не нужно в левый поиск пихать пиксели правых веток и наоборот.
IF_PIXEL_IN(1086,917, 1259-32,1032, 5605331,10072785,10784132)
bordering ($_return1,$_return2, $_return1,$_return2, 255)
$pos = "right"
else
END_IF
IF_PIXEL_IN(1300+32,917, 1479,1032, 1916556,5589345)
bordering ($_return1,$_return2, $_return1,$_return2, 255)
$pos = "left"
else
END_IF
END_IF
GETFILELIST ($arr, "screens\Цех\*.bmp") // Здесь чисто считаем сколько уже сохранено скринов, чтобы
$n = ARRSIZE($arr) // скрины сохранять по порядку
UNDEFINE ($arr)
SCREENSHOTFIX(1061,800, 1505,1251, STRCONCAT("screens\Цех\",$n,".bmp"), 0)
IF($pos ! "_") // Если в каком-то из полей была определена ветка
$position = $pos // То присваиваем значение right или left
END_IF
// Ну, а если ветка не была найдена вообще, то пусть перс долбит с той стороны, с которой долбил на прошлом кругу скрипта
SWITCH($position)
CASE("right")
$left_time = 0
IF($right_time < $_ms)
KEYPRESS(#RIGHT)
$right_time = $_ms + 150
END_IF
CASE("left")
$right_time = 0
IF($left_time < $_ms)
KEYPRESS(#LEFT)
$left_time = $_ms + 150
END_IF
END_SWITCH
END_IF
WAITMS(50)
По поводу MouseClick("L", $_return1+50, $_return2+10) -
http://crapware.aidf.org/forum/index.php?topic=5750.0 Ато тоже голову сломаешь над этим...
В 1 и 2 зоне ищем ветки, на которых НЕ висят куски льда. Эти ветки мы ищем по цвету пикселей, взятых "из под мышки" этих веток.
В зонах 3 и 4 мы ищем ветки, на которых висят куски льда. Их мы ищем по пикселям, взятым со срезов веток.
Все пиксели ищем без COLORMODE. Они так уникальнее...
Итог...