Вот там где (ошибка все равно вылазит) недоставало скобки. Или скорее твои вездесущие ($x+1) не нужно заключать в скобки.
GETSCREEN в цикле всего один это нормально? Просто там полно анализов экрана.
GETSCREEN
$y = 1
$x = 0
$i = PXLCRC (391,293, 811,320) //контрольная сумма пикс в облости вопроса
$n = TFCOUNT ("quest.txt") //кол-во строк в файле
print($n/2)
WHILE($x < $n) //пока непроверит все строки, будет сверять с вопросом на экране
IF(TFREAD ("quest.txt", $x+1) ! $i)
if($x+1 = $n)
$y = PXLXOR (412,353, 656,359)//если в списке нету такого вопроса, запоминает сумму пикс первого ответа
LCLICK(415,329)//кликает на первый ответ
LCLICK(421,501)
waitms(1500)
GETSCREEN
IF(PXL(411,473)=3274545) //и проверяет, правильно или нет(красный или зеленый)
TFWrite("quest.txt", $i)//если правильно, записывает вопрос и ответ с индексом "а"
TFWrite("quest.txt",STRCONCAT("a",$y))
else
TFWrite("quest.txt", $i)
TFWrite("quest.txt",STRCONCAT("n",$y))//если неправильно, то вопрос и ответ с индексом "н"
END_IF
END_if
INC($x,1)
else
if(strfilter(TFREAD ("quest.txt",$x+2),"a",1) = "a")//если такой вопрос имеется
$s = strfilter(TFREAD ("quest.txt",$x+2),"a",0)//и ответ под ним с индексом "а"
SWITCH($s)
CASE(PXLXOR (412,353, 656,359))//находим ответ и кликаем по нему
LCLICK(415,329)
case(PXLXOR (412,393, 656,399))
LCLICK(415,369)
case(PXLXOR (412,433, 656,439))
LCLICK(415,409)
DEFAULT
END_SWITCH
LCLICK(421,501)
waitms(1500)
$x = $n// и начинаем с начала
print("ok")
else
//если же ответ с индексом "н", то дальше у меня просто мозг кипит
$s = strfilter(TFREAD ("quest.txt",$x+2),"n",0)//считываем из списка сумму, которая прямо под вопросом
if($n > $x+3)//тут я расчитывал, что если ответ в конце списка, то в условии появляется ошибка(ошибка всеравно вылазит)
if(strfilter(TFREAD ("quest.txt",$x+3),"n",1) = "n")// если под первым неправильным есть еще один такой
$s1 = strfilter(TFREAD ("quest.txt",$x+3),"n",0)// то также его считываем
if(($s!PXLXOR(412,353,656,359)&($s1!PXLXOR(412,353,656,359)))//свеирем с первым вариантом ответа
$y = PXLXOR(412,353, 656,359)//если несовпадает, то это правильный ответ
LCLICK(415,329)
else
if(($s!PXLXOR(412,393, 656,399)&($s1!PXLXOR(412,393, 656,399)))//если же нет, то сверяем с втарым
$y = PXLXOR (412,433, 656,439)
LCLICK(415,409)
else
$y = PXLXOR (412,433, 656,439)//если же и там неправильный,то третий ответ должен быть правильным
LCLICK(415,409)
end_if
end_if
else//если же под вопросом только один вариант ответа(неверного)
if($s = PXLXOR (412,353, 656,359))//то свераем его с первым на экране
$y = PXLXOR (412,393, 656,399)//если это он, то запоминаем вторрой вариант и кликам
LCLICK(415,369)
else
$y = PXLXOR (412,353, 656,359)// если не он, то кликаем по первому и запоминаем его
LCLICK(415,329)
end_if
end_if
else//тут я расчитывал, что если вопрос и ответ в конце списка, дабы невылазила ошибка(тоесть в списке только один вариант неправильного ответа)
if($s = PXLXOR (412,353, 656,359))//если совпадает,
$y = PXLXOR (412,393, 656,399)//то запоминаем второй вариант, и кликаем по нему
LCLICK(415,369)
else
$y = PXLXOR (412,353, 656,359)//иначе запоминаем первый вариант и кликаем по нему
LCLICK(415,329)
end_if
end_if
LCLICK(421,501)//нажимем на кнопку "ответ"
waitms(1500)
GETSCREEN
IF(PXL(411,473)=3274545) //и проверям, правильно мы ответили или нет
print("zamena")
TFDelete("quest.txt", $x+2)//если правильно, то заменям строку с индексом "н" на "а"
TFWrite("quest.txt",STRCONCAT("a",$y),$x+2)
if(strfilter(TFREAD ("quest.txt",$x+3),"n",1) = "n")//если после это строки есть еще один неправильный вариант, то и его удаляем
TFDelete("quest.txt", $x+3)
end_if
else
TFWrite("quest.txt",STRCONCAT("n",$y),$x+2)//если же ответ неверный, то добавляем его под строку с вопроосом, с индексом "н"
END_IF
$x = $n//НАЧИНАЕМ С НАЧАЛА
END_IF
END_IF
END_CYC