Author Topic: Проблема с массивом  (Read 1317 times)

0 Members and 1 Guest are viewing this topic.

}{0T@B(H

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Проблема с массивом
« on: July 16, 2016, 06:43:48 AM »
Всем привет, не могу понять одну вещь: Почему вот в таком варианте скрипта строка  move($Store_O_x,$Store_O_y) выдает ошибку?
Code: (clickermann) [Select]
getscreen
// поиск изображения pict.bmp в области 0,0 - 1250,959
scanpicture($var, 0,0, 1250,959, "build.bmp")
//Защита
$Fort=($var[0],$var[1])
$Fort_x=($var[0])
$Fort_y=($var[1])
//Рынок
$Market=($var[2],$var[3])
$Market_x=($var[2])
$Market_y=($var[3])
//Ферма
$Farm=($var[4],$var[5])
$Farm_X=($var[4])
$Farm_y=($var[5])
//Лесопилка
$Lumberjack=($var[6],$var[7])
$Lumberjack_x=($var[6])
$Lumberjack_y=($var[7])
//Склад дерева
$Store_W=($var[8],$var[9])
$Store_W_x=($var[8])
$Store_W_y=($var[9])
//Каменоломня
$Quarry=($var[10],$var[11])
$Quarry_x=($var[10])
$Quarry_y= ($var[11])
//Склад камня
$Store_S=($var[12],$var[13])
$Store_S_x=($var[12])
$Store_S_y=($var[13])
//Руда
$Ore=($var[14],$var[15])
$Ore_x=($var[14])
$Ore_y=($var[15])
//Склад руды
$Store_O=($var[16],$var[17])
$Store_O_x=($var[16])
$Store_O_y=($var[17])
 unDEFINE($var)
end_cyc
//1 castle
wait(5)
getscreen
IF_PICTURE_IN (0,0, 1500, 800, "start.bmp")
move($_return1, $_return2)
//else пока для проверки его убрал
getscreen
IF_PICTURE_IN (0,0, 1500, 800, "grey.bmp")
lclick($_return1, $_return2)
END_IF
//Кликает по складу руды
WHEELDOWN(5)
$i=10
while($i=10)
move($Store_O_x,$Store_O_y)// вот тут проблема, выдает ошибку!!!!!
inc($i,2)
END_IF
//Кликает по добычи руды
while($i=12)
move($Ore_x,$Ore_x)
END_IF
END_IF
А вот в таком варианте не выдает:
Code: (clickermann) [Select]
getscreen
// поиск изображения pict.bmp в области 0,0 - 1250,959
scanpicture($var, 0,0, 1250,959, "build.bmp")
//Защита
$Fort=($var[0],$var[1])
$Fort_x=($var[0])
$Fort_y=($var[1])
//Рынок
$Market=($var[2],$var[3])
$Market_x=($var[2])
$Market_y=($var[3])
//Ферма
$Farm=($var[4],$var[5])
$Farm_X=($var[4])
$Farm_y=($var[5])
//Лесопилка
$Lumberjack=($var[6],$var[7])
$Lumberjack_x=($var[6])
$Lumberjack_y=($var[7])
//Склад дерева
$Store_W=($var[8],$var[9])
$Store_W_x=($var[8])
$Store_W_y=($var[9])
//Каменоломня
$Quarry=($var[10],$var[11])
$Quarry_x=($var[10])
$Quarry_y= ($var[11])
//Склад камня
$Store_S=($var[12],$var[13])
$Store_S_x=($var[12])
$Store_S_y=($var[13])
//Руда
$Ore=($var[14],$var[15])
$Ore_x=($var[14])
$Ore_y=($var[15])
//Склад руды
$Store_O=($var[16],$var[17])
$Store_O_x=($var[16])
$Store_O_y=($var[17])
 unDEFINE($var)
end_cyc
move($Store_O_x,$Store_O_y)//тут все хорошо,мышка двигается

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Проблема с массивом
« Reply #1 on: July 18, 2016, 08:52:58 AM »
Потому что в обоих вариантах неправильно. Зачем отсебятина в синтаксисе?

К чему относится подвешенный в воздухе end_cyc в 41 строке? После него все условия и циклы портятся. А во втором варианте не выскакивает ошибка, т.к. после этого все циклы/условия убраны.

Но это ещё не всё...
WHILE это цикл. Блок его должен завершаться  инструкцией END_CYC. Они у тебя почему-то заканчиваются END_IF (строки 58, 62)


Что ещё за конструкция вида
Code: (clickermann) [Select]
$Market = ($var[2], $var[3])
и им подобные? Для кликера это не рабочие строки. Мусор для интерпретатора.

Вот этот кусок
Code: (clickermann) [Select]
    $i=10
    while($i=10)
        move($Store_O_x,$Store_O_y)// вот тут проблема, выдает ошибку!!!!!
        inc($i,2)
    END_IF
не делает ничего, чтобы не делала просто строка
Code: (clickermann) [Select]
move($Store_O_x,$Store_O_y)Цикл выполняется 1 раз (когда он будет написан без ошибок).

Ну и следом за ним вечный двигатель
Code: (clickermann) [Select]
    while($i=12)
        move($Ore_x,$Ore_x)
    END_CYC