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

Основной раздел => Общие вопросы => Topic started by: haerb on February 29, 2020, 09:59:07 PM

Title: Ошибка при интерпретации строки
Post by: haerb on February 29, 2020, 09:59:07 PM
Code: [Select]
$campX = 1170
$campY = 595

$firstButtonX[0] = 1500
$firstButtonY[0] = 435
$firstButtonY[1] = 635
$firstButtonY[2] = 835

$secondButtonX[1] = 1820
$secondButtonY[0] = 135
$secondButtonY[1] = 325
$secondButtonY[2] = 515

$thirdButtonX[2] = 1510
$thirdButtonY[0] = 240
$thirdButtonY[1] = 435
$thirdButtonY[2] = 630

$isScoutAvailable[0] = 0
$isScoutAvailable[1] = 0
$isScoutAvailable[2] = 0

SUB(checkScout, $i, $x, $y)
   GETSCREEN
   IF(PXL($x,$y) = 48895)
      $isScoutAvailable[$i] = 1
   ELSE
      $isScoutAvailable[$i] = 0
   END_IF
END_SUB

SUB(clickButton, $x, $y)
   LCLICK($x,$y)
   WAIT(2)
END_SUB

clickButton($campX, $campY)
clickButton($campX+200, $campY+160)

WHILE($isScoutAvailable[0] = 0 & $isScoutAvailable[1] = 0 & $isScoutAvailable[2] = 0)
   checkScout(0, $firstButtonX[0], $firstButtonY[0])
checkScout(1, $firstButtonX[0], $firstButtonY[1])
checkScout(2, $firstButtonX[0], $firstButtonY[2]) 
END_CYC

$selectedScout = 0

FOR($i, $i < ARRSIZE($isScoutAvailable))
   IF($isScoutAvailable[$i] = 1)       
      $selectedScout = $i
   END_IF
END_CYC

clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])

Errorlog: Thread _MAIN(0) raise exception
Title: Re: Ошибка при интерпретации строки
Post by: Hito on February 29, 2020, 10:58:00 PM
А ты эту строку вообще в скрипте видишь...? - "LCLICK($firstButtonX[$selectedScout],$firstButtonY[$s..."
Или ты решил попробовать людям моцк взорвать...?
Title: Re: Ошибка при интерпретации строки
Post by: haerb on February 29, 2020, 11:00:52 PM
А ты эту строку вообще в скрипте видишь...? - "LCLICK($firstButtonX[$selectedScout],$firstButtonY[$s..."
Или ты решил попробовать людям моцк взорвать...?

Скрин с полной программы, просто другие имена переменных, суть та же.
Title: Re: Ошибка при интерпретации строки
Post by: Hito on February 29, 2020, 11:07:00 PM
А ты эту строку вообще в скрипте видишь...? - "LCLICK($firstButtonX[$selectedScout],$firstButtonY[$s..."
Или ты решил попробовать людям моцк взорвать...?

Скрин с полной программы, просто другие имена переменных, суть та же.
Тут людям проблем хватает, чтобы еще твои ребусы разгадывать... Тебе нужна помощь? Предоставь людям достоверную информацию. А тот код, что ты дал, лично у меня работает без ошибок.
Title: Re: Ошибка при интерпретации строки
Post by: haerb on February 29, 2020, 11:24:58 PM
А ты эту строку вообще в скрипте видишь...? - "LCLICK($firstButtonX[$selectedScout],$firstButtonY[$s..."
Или ты решил попробовать людям моцк взорвать...?

Скрин с полной программы, просто другие имена переменных, суть та же.
Тут людям проблем хватает, чтобы еще твои ребусы разгадывать... Тебе нужна помощь? Предоставь людям достоверную информацию. А тот код, что ты дал, лично у меня работает без ошибок.

Отредактировал пост
Title: Re: Ошибка при интерпретации строки
Post by: Hito on February 29, 2020, 11:39:31 PM
А ты эту строку вообще в скрипте видишь...? - "LCLICK($firstButtonX[$selectedScout],$firstButtonY[$s..."
Или ты решил попробовать людям моцк взорвать...?

Скрин с полной программы, просто другие имена переменных, суть та же.
Тут людям проблем хватает, чтобы еще твои ребусы разгадывать... Тебе нужна помощь? Предоставь людям достоверную информацию. А тот код, что ты дал, лично у меня работает без ошибок.

Отредактировал пост

Ты издеваешься что ль...? Ты в своем отредактированном посте, в скрипте видишь строку - "PUSH($FIRSTBUTTONX[$SELECTEDSCOUNT])"...?
Title: Re: Ошибка при интерпретации строки
Post by: haerb on February 29, 2020, 11:41:50 PM
А ты эту строку вообще в скрипте видишь...? - "LCLICK($firstButtonX[$selectedScout],$firstButtonY[$s..."
Или ты решил попробовать людям моцк взорвать...?

Скрин с полной программы, просто другие имена переменных, суть та же.
Тут людям проблем хватает, чтобы еще твои ребусы разгадывать... Тебе нужна помощь? Предоставь людям достоверную информацию. А тот код, что ты дал, лично у меня работает без ошибок.

Отредактировал пост

Ты издеваешься что ль...? Ты в своем отредактированном посте, в скрипте видишь строку - "PUSH($FIRSTBUTTONX[$SELECTEDSCOUNT])"...?

Нет не издеваюсь, выскакивает именно это
Title: Re: Ошибка при интерпретации строки
Post by: haerb on February 29, 2020, 11:45:55 PM
А ты эту строку вообще в скрипте видишь...? - "LCLICK($firstButtonX[$selectedScout],$firstButtonY[$s..."
Или ты решил попробовать людям моцк взорвать...?

Скрин с полной программы, просто другие имена переменных, суть та же.
Тут людям проблем хватает, чтобы еще твои ребусы разгадывать... Тебе нужна помощь? Предоставь людям достоверную информацию. А тот код, что ты дал, лично у меня работает без ошибок.

Отредактировал пост

Ты издеваешься что ль...? Ты в своем отредактированном посте, в скрипте видишь строку - "PUSH($FIRSTBUTTONX[$SELECTEDSCOUNT])"...?
Title: Re: Ошибка при интерпретации строки
Post by: Hito on February 29, 2020, 11:55:35 PM
А если скрипт запустить без 54 строки - не выдает ошибку? Если нет, то вставь это вместо 54 строки и посмотри в логе, какое значение пишет.
Code: (clickermann) [Select]
LOGWRITE ("selectedScout = ",$selectedScout)
Title: Re: Ошибка при интерпретации строки
Post by: haerb on March 01, 2020, 12:01:43 AM
А если скрипт запустить без 54 строки - не выдает ошибку? Если нет, то вставь это вместо 54 строки и посмотри в логе, какое значение пишет.
Code: (clickermann) [Select]
LOGWRITE ("selectedScout = ",$selectedScout)

Без 54 запускает, из лога selectedScout = 2. Еще если убрать последний FOR и индексы вручную подставить, то тоже все работает. Дело в цикле.
Title: Re: Ошибка при интерпретации строки
Post by: Hito on March 01, 2020, 12:04:56 AM
А если скрипт запустить без 54 строки - не выдает ошибку? Если нет, то вставь это вместо 54 строки и посмотри в логе, какое значение пишет.
Code: (clickermann) [Select]
LOGWRITE ("selectedScout = ",$selectedScout)

Без 54 запускает, из лога selectedScout = 2. Еще если убрать последний FOR и индексы вручную подставить, то тоже все работает. Дело в цикле.
У тебя
Code: (clickermann) [Select]
FOR($i, $i < ARRSIZE($isScoutAvailable))
   IF($isScoutAvailable[$i] = 1)       
      $selectedScout = $i
   END_IF
END_CYC
Ничего не смущает...?
В редакторе кликера - шаблоны -> Циклы, условия -> FOR, и сравни...
Title: Re: Ошибка при интерпретации строки
Post by: haerb on March 01, 2020, 12:10:59 AM
А если скрипт запустить без 54 строки - не выдает ошибку? Если нет, то вставь это вместо 54 строки и посмотри в логе, какое значение пишет.
Code: (clickermann) [Select]
LOGWRITE ("selectedScout = ",$selectedScout)

Без 54 запускает, из лога selectedScout = 2. Еще если убрать последний FOR и индексы вручную подставить, то тоже все работает. Дело в цикле.
У тебя
Code: (clickermann) [Select]
FOR($i, $i < ARRSIZE($isScoutAvailable))
   IF($isScoutAvailable[$i] = 1)       
      $selectedScout = $i
   END_IF
END_CYC
Ничего не смущает...?
В редакторе кликера - шаблоны -> Циклы, условия -> FOR, и сравни...

Ну если вы про инициализацию счетчика, то в документации написано, что он 0 если его не инициализировать.
Title: Re: Ошибка при интерпретации строки
Post by: Hito on March 01, 2020, 12:13:45 AM
Ну если вы про инициализацию счетчика, то в документации написано, что он 0 если его не инициализировать.
Он = 0 на ПЕРВОМ кругу скрипта. А на выходе из цикла FOR эта переменная у тебя уже имеет значение, и возвращаясь по кругу к циклу у тебя уже получается пердоманохль.
Title: Re: Ошибка при интерпретации строки
Post by: haerb on March 01, 2020, 12:16:59 AM
Ну если вы про инициализацию счетчика, то в документации написано, что он 0 если его не инициализировать.
Он = 0 на ПЕРВОМ кругу скрипта.

Инициализировал, не помогло
Title: Re: Ошибка при интерпретации строки
Post by: Hito on March 01, 2020, 12:29:57 AM
Прикольно. Мы наткнулись на штуку, на которую я не раз натыкался, но не заводил об этом тут темы. В массивах есть такая шляпа, что они вроде написаны абсолютно одинаково, но скрипт выдает ошибку. А потом скопируешь в ошибочный массив буквы из того же массива, но оттуда, где он инициализируется, и вуаля - все работает...
Скопируй эту строку
Code: (clickermann) [Select]
clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])И вставь вместо своей.
Title: Re: Ошибка при интерпретации строки
Post by: haerb on March 01, 2020, 12:35:56 AM
Прикольно. Мы наткнулись на штуку, на которую я не раз натыкался, но не заводил об этом тут темы. В массивах есть такая шляпа, что они вроде написаны абсолютно одинаково, но скрипт выдает ошибку. А потом скопируешь в ошибочный массив буквы из того же массива, но оттуда, где он инициализируется, и вуаля - все работает...
Скопируй эту строку
Code: (clickermann) [Select]
clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])И вставь вместо своей.

Ничего не понял про ошибочные массивы xD. Но замена строки не помогла.
Title: Re: Ошибка при интерпретации строки
Post by: Hito on March 01, 2020, 12:40:08 AM
Короче... Из четвертой строки своего скрипта скопируй мышкой $firstButtonX[0] и вставь в свою 54-ую строку. Потом скопируй $selectedScout там, где она инициализируется и вставь в 54-ую строку, вместо ноля. Аналогично проделай эти действия с  $firstButtonY[0].
Title: Re: Ошибка при интерпретации строки
Post by: Hito on March 01, 2020, 12:45:20 AM
Стоп... Я только что вычислил, что все дело в квадратных кавычках. В строке
Code: (clickermann) [Select]
clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])квадратные кавычки удали и добавь их вновь вручную, клавой.
Title: Re: Ошибка при интерпретации строки
Post by: haerb on March 01, 2020, 12:50:59 AM
Стоп... Я только что вычислил, что все дело в квадратных кавычках. В строке
Code: (clickermann) [Select]
clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])квадратные кавычки удали и добавь их вновь вручную, клавой.

Ничего не помогло :)
Title: Re: Ошибка при интерпретации строки
Post by: Hito on March 01, 2020, 12:57:20 AM
В общем у меня твой скрипт срабатывает через раз.
https://youtu.be/qQ_AohzKZz8 (https://youtu.be/qQ_AohzKZz8)
В массивах есть какой-то глюк. Я не раз на него натыкался...
Title: Re: Ошибка при интерпретации строки
Post by: haerb on March 01, 2020, 12:59:54 AM
В общем у меня твой скрипт срабатывает через раз.
https://youtu.be/qQ_AohzKZz8 (https://youtu.be/qQ_AohzKZz8)
В массивах есть какой-то глюк. Я не раз на него натыкался...

Вообщем ладно, у меня есть рабочий вариант этого скрипта через потоки, в любом случае спасибо вам за помощь, напишу разработчику :)
Title: Re: Ошибка при интерпретации строки
Post by: Oraven on March 01, 2020, 08:04:31 AM
Ты издеваешься что ль...? Ты в своем отредактированном посте, в скрипте видишь строку - "PUSH($FIRSTBUTTONX[$SELECTEDSCOUNT])"...?

PUSH - это вызов подпрограммы, к сведению... Просто в ошибке пишется команда вызова за место имени подпрограммы.

Теперь по ошибкам в скрипте.
Недостаточно скобок в условии
Code: (clickermann) [Select]
WHILE($isScoutAvailable[0] = 0 & $isScoutAvailable[1] = 0 & $isScoutAvailable[2] = 0)
правильно так
Code: (clickermann) [Select]
WHILE(($isScoutAvailable[0] = 0) & ($isScoutAvailable[1] = 0) & ($isScoutAvailable[2] = 0))
Ошибка в том что массив $firstButtonX состоит из одной ячейки, поэтому здесь clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout]) если $selectedScout больше 0 будет ошибка.
Code: (clickermann) [Select]
$campX = 1170
$campY = 595

$firstButtonX[0] = 1500
$firstButtonY[0] = 435
$firstButtonY[1] = 635
$firstButtonY[2] = 835

$secondButtonX[1] = 1820
$secondButtonY[0] = 135
$secondButtonY[1] = 325
$secondButtonY[2] = 515

$thirdButtonX[2] = 1510
$thirdButtonY[0] = 240
$thirdButtonY[1] = 435
$thirdButtonY[2] = 630

$isScoutAvailable[0] = 0
$isScoutAvailable[1] = 0
$isScoutAvailable[2] = 0

SUB(checkScout, $i, $x, $y)
   GETSCREEN
   IF(PXL($x,$y) = 48895)
      $isScoutAvailable[$i] = 1
   ELSE
      $isScoutAvailable[$i] = 0
   END_IF
END_SUB

SUB(clickButton, $x, $y)
//   LCLICK($x,$y)
   WAIT(2)
END_SUB

clickButton($campX, $campY)
clickButton($campX+200, $campY+160)

WHILE(($isScoutAvailable[0] = 0) & ($isScoutAvailable[1] = 0) & ($isScoutAvailable[2] = 0))
   checkScout(0, $firstButtonX[0], $firstButtonY[0])
   checkScout(1, $firstButtonX[0], $firstButtonY[1])
   checkScout(2, $firstButtonX[0], $firstButtonY[2])
END_CYC

$selectedScout = 0

FOR($i=0, $i < ARRSIZE($isScoutAvailable))
   IF($isScoutAvailable[$i] = 1)
      $selectedScout = $i
   END_IF
END_CYC

clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])
Title: Re: Ошибка при интерпретации строки
Post by: Vint on March 02, 2020, 09:31:22 AM
Короче
Code: (clickermann) [Select]
clickButton($firstButtonX[0], $firstButtonY[$selectedScout])