Author Topic: Ошибка при интерпретации строки  (Read 3408 times)

0 Members and 1 Guest are viewing this topic.

haerb

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #15 on: March 01, 2020, 12:35:56 AM »
Прикольно. Мы наткнулись на штуку, на которую я не раз натыкался, но не заводил об этом тут темы. В массивах есть такая шляпа, что они вроде написаны абсолютно одинаково, но скрипт выдает ошибку. А потом скопируешь в ошибочный массив буквы из того же массива, но оттуда, где он инициализируется, и вуаля - все работает...
Скопируй эту строку
Code: (clickermann) [Select]
clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])И вставь вместо своей.

Ничего не понял про ошибочные массивы xD. Но замена строки не помогла.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #16 on: March 01, 2020, 12:40:08 AM »
Короче... Из четвертой строки своего скрипта скопируй мышкой $firstButtonX[0] и вставь в свою 54-ую строку. Потом скопируй $selectedScout там, где она инициализируется и вставь в 54-ую строку, вместо ноля. Аналогично проделай эти действия с  $firstButtonY[0].
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #17 on: March 01, 2020, 12:45:20 AM »
Стоп... Я только что вычислил, что все дело в квадратных кавычках. В строке
Code: (clickermann) [Select]
clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])квадратные кавычки удали и добавь их вновь вручную, клавой.
Я не ду... Потому и не бу...

haerb

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #18 on: March 01, 2020, 12:50:59 AM »
Стоп... Я только что вычислил, что все дело в квадратных кавычках. В строке
Code: (clickermann) [Select]
clickButton($firstButtonX[$selectedScout], $firstButtonY[$selectedScout])квадратные кавычки удали и добавь их вновь вручную, клавой.

Ничего не помогло :)

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #19 on: March 01, 2020, 12:57:20 AM »
В общем у меня твой скрипт срабатывает через раз.
https://youtu.be/qQ_AohzKZz8
В массивах есть какой-то глюк. Я не раз на него натыкался...
Я не ду... Потому и не бу...

haerb

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #20 on: March 01, 2020, 12:59:54 AM »
В общем у меня твой скрипт срабатывает через раз.
https://youtu.be/qQ_AohzKZz8
В массивах есть какой-то глюк. Я не раз на него натыкался...

Вообщем ладно, у меня есть рабочий вариант этого скрипта через потоки, в любом случае спасибо вам за помощь, напишу разработчику :)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #21 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])
« Last Edit: March 01, 2020, 08:06:50 AM by Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ошибка при интерпретации строки
« Reply #22 on: March 02, 2020, 09:31:22 AM »
Короче
Code: (clickermann) [Select]
clickButton($firstButtonX[0], $firstButtonY[$selectedScout])