Author Topic: Помогите разобраться не получается  (Read 5269 times)

0 Members and 1 Guest are viewing this topic.

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Помогите разобраться почему не работает, далжно пахать
цель пока простая

где то было написано что можно перечислять через запитую рисунки. не работает

покупка. вначале самое дорогое их 7 улучшений всего, в каждой из 3х идет дешевое к дорогому 2,6,20

Code: (clickermann) [Select]
// Пакупка 3    если не чего не находит чтоб искал все время
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (1200,325, 1479,702, "Башня_\Usileniya_Magiya_1.bmp", -1, 90) 
      $check = 1
      LCLICK($_return1, $_return2+280)
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (1200,325, 1479,702, "Башня_\Usileniya_Ataka_4.bmp", -1, 90)
      $check = 1
      LCLICK($_return1, $_return2+280)
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (1200,325, 1479,702, "Башня_\Usileniya_zashita_4.bmp", -1, 90)
      $check = 1
      LCLICK($_return1, $_return2+280)
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (1200,325, 1479,702, "Башня_\Usileniya_z_mag_4.bmp", -1, 90)
      $check = 1
      LCLICK($_return1, $_return2+280)
      WAITMS(100)
   ELSE
   // Не брать   
      IF_PICTURE_IN (1200,325, 1479,702, "Башня_\Usileniya_Enepgiya_1.bmp", -1, 90)
      $check = 1
LOGWRITE ("Не нужное 3")
   ELSE
      IF_PICTURE_IN (1200,325, 1479,702, "Башня_\Usileniya_Hil.bmp_4", -1, 90)
      $check = 1
LOGWRITE ("Не нужное 3")
   ELSE
      IF_PICTURE_IN (1200,325, 1479,702, "Башня_\Usileniya_Voskresenie.bmp_4", -1, 90)
      $check = 1   
LOGWRITE ("Не нужное 3")
WAITMS(100)
       ELSE                       
      WAITMS(50)
   

   END_IF
END_IF
   END_IF
   END_IF
   END_IF
   END_IF
   END_IF
END_CYC


//  Проверка надписи если нету идем дальше    Денег не хватает закрыть   

WAIT(2)  // на всякий случай

WHILE
   GETSCREEN
   IF_PICTURE_IN (973,414, 1304,479, "Башня_\Net_cherepov.bmp", -1, 90) 
      LCLICK($_return1+70, $_return2+100)    // закрыли и идем дальше
      WAITMS(100)
   END_IF
END_CYC


// Пакупка 2         тоже самое только чуть другие кардиналы поиска, и заместо _4  стоит _2
// Пакупка 1            --\\--

//   закрыть   
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (1365,247, 1516,388, "Башня_\Zakryt.bmp", -1, 90) 
      $check = 1
      LCLICK($_return1+7, $_return2+7)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

// Идти дальше
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (1387,414, 1581,578, "Башня_\Idti_dalshe.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

следующая проблема немного другая    три сейфа надо 1н открыть случайным образом
ТО работает то нет и подвисает
« Last Edit: August 14, 2018, 10:40:27 PM by KingDrakonov »

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #1 on: August 14, 2018, 10:37:33 PM »
строка 52-58 там надо чтобы, не искал все время а просто глянул, есть то нажал, нету пропустил
а ты поставил искать беспрерывно. как помню

вроде так правильно а там хз, вроде не проверял эту часть
Code: (clickermann) [Select]
//  Проверка надписи если нету идем дальше    Денег не хватает закрыть
 
WAIT(2)  // на всякий случай
 
WHILE
   GETSCREEN
   IF_PICTURE_IN (973,414, 1304,479, "Башня_\Net_cherepov.bmp", -1, 90)
      LCLICK($_return1+70, $_return2+100)    // закрыли и идем дальше
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

и ты дописал 4 завершения забыл поставить исходник с 3мя, я писал с семи для полной картины пака вроде там не каких изменений не заметил. подправил чтобы не путать других
« Last Edit: August 14, 2018, 10:43:54 PM by KingDrakonov »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Помогите разобраться не получается
« Reply #2 on: August 14, 2018, 11:00:30 PM »
строка 52-58 там надо чтобы, не искал все время а просто глянул, есть то нажал, нету пропустил

ну тогда зачем же там цикл? тем более цикл без условия (в твоем варианте).

убирай его, все равно он игнорируется в таком виде.
Code: (clickermann) [Select]
WAIT(2)  // на всякий случай

GETSCREEN
IF_PICTURE_IN (973,414, 1304,479, "Башня_\Net_cherepov.bmp", -1, 90)
   LCLICK($_return1+70, $_return2+100)    // закрыли и идем дальше
   WAITMS(100)
ELSE
   WAITMS(50)
END_IF

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #3 on: August 14, 2018, 11:45:05 PM »


строка 52-58 там надо чтобы, не искал все время а просто глянул, есть то нажал, нету пропустил

ну тогда зачем же там цикл? тем более цикл без условия (в твоем варианте).

убирай его, все равно он игнорируется в таком виде.
Code: (clickermann) [Select]
WAIT(2)  // на всякий случай

GETSCREEN
IF_PICTURE_IN (973,414, 1304,479, "Башня_\Net_cherepov.bmp", -1, 90)
   LCLICK($_return1+70, $_return2+100)    // закрыли и идем дальше
   WAITMS(100)
ELSE
   WAITMS(50)
END_IF


Что то не понял
эту часть можно у уменьшить до
Code: (clickermann) [Select]
GETSCREEN // делает скрен
IF_PICTURE_IN (973,414, 1304,479, "Башня_\Net_cherepov.bmp", -1, 90)  // ищет
   LCLICK($_return1+70, $_return2+100)    // закрыли и идем дальше
   WAITMS(50) // ожидание 50мс
END_IF
или подругому можно нописать

ну ладно и еще убрать можно 50 микро сек


ну меня больше волнует то что выше факт то что повисает и искать не хочет

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #4 on: August 15, 2018, 12:57:09 AM »
я понял что ты имел виду
было у меня
Code: (clickermann) [Select]

WHILE
   GETSCREEN
   IF_PICTURE_IN (973,414, 1304,479, "Башня_\Net_cherepov.bmp", -1, 90) 
      LCLICK($_return1+70, $_return2+100)    // закрыли и идем дальше
      WAITMS(100)
   END_IF
END_CYC

проверил этот кусок нехочет проходить его ашибка

так как не чего нету, смотрит одним глазом как и надо
Code: (clickermann) [Select]

//WHILE
   GETSCREEN
   IF_PICTURE_IN (973,414, 1304,479, "Башня_\Net_cherepov.bmp", -1, 90) 
      LCLICK($_return1+70, $_return2+100)    // закрыли и идем дальше
      WAITMS(100)
   END_IF
//END_CYC

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #5 on: August 15, 2018, 03:48:23 AM »
Спс всем и за глупой ошибки не работало
Помогите с другим есть три сейфа надо по одному кликнуть случайным образом.
Желательно  на верх скрипта вынести переменную,отключения и авто выбора того которого я хочу
« Last Edit: August 15, 2018, 03:49:55 AM by KingDrakonov »

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Помогите разобраться не получается
« Reply #6 on: August 15, 2018, 10:59:36 AM »
У сейфов могут быть или них постоянные и известные уже координаты или они ищутся через scanpicture. Предположим, что мы каждый раз их ищем по картинке, а значит, они оказываются в массиве в последовательности х1,у1,х2,у2,х3,у3.

Code: (clickermann) [Select]
$safe_x= 3 // вынесено наверх/ 1,2,3 - это выбранный вами вариант. Включение рандома - 0, отключение вообще поиска сейфов - 4 (или любое число больше 3).

If($safe_x=0) //если ничего на выбрано
$safe_x=rnd(1,3)
End_if
If($safe_x<4)
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
lclick ($ARR_SCAN[2*($safe_x-1)], $ARR_SCAN[2*($safe_x-1)+1]  ) // т.к. не знаю размер сейфов, то смешение, чтоб кликал ближе к центру, делаете сами (либо слегка обрезаете картинку сейфа слева сверху - еще и быстрее искать будет)
End_if

halt
Если координаты уже есть  и хочется всегда использовать рандом, то можно было бы просто в клике прописать все возможные координаты х (считаем, что сейфы в ряд поставлены, т.е. по у не отличаются):
Code: [Select]
lclick (RNDFROM (x1,x2,x3), y)

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #7 on: August 16, 2018, 01:18:29 AM »
Да ты прав они стоят в ряд сейфы, игра в оконном режиме, па этому надо постоянно искать их. Активация сейфа кнопкой они все одинаковые. кнопка примерно 30х100пх промеж них 100пх в итоге занимают 500пх от начало 1й до конца 3й кнопки. я захватываю примерно еще 100-200пх во все стороны + к тому окно с правой стороны экрана,
привязывать нельзя стоит защита кликер видит только черный экран
Code: (clickermann) [Select]
$safe_x= 0 // вынесено наверх/ 1,2,3 - это выбранный вами вариант. Включение рандома - 0, отключение вообще поиска сейфов - 4 (или любое число больше 3).
If($safe_x=0) //если ничего на выбрано
$safe_x=rnd(1,3)
End_if
If($safe_x<4)
GETSCREEN
SCANPICTURE($ARR_SCAN, 721,514, 1586,660, "Otkryt_seif.bmp", -1, 100)
lclick ($ARR_SCAN[2*($safe_x-1)], $ARR_SCAN[2*($safe_x-1)+1]  )
End_if

Код работает вроде, четыре раза открыл сейф 1й раз 2й и 3 раза 3й сейф, на случайку не очень похоже. Завтра пройду гляну.
К стате как прописать чтобы в логе показывал какой открыт сейф

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #8 on: August 16, 2018, 08:33:30 AM »
А где условие нахождения картинки? Найдено не найдено все равно клик, а так как массив пуст еще и ошибка.
К тому же нет очистки массива, SCANPICTURE при каждом сканировании будет добавлять значения в $ARR_SCAN.

Вот исправленный код.
Также теперь рандом не будет выдавать одинаковые числа подряд.

Code: (clickermann) [Select]
// 1,2,3 - выбор сейфа
// 0 - Включение рандома
// 4 - отключение поиска сейфов
$safe_x = 0


If($safe_x=0)
   $safe_x=rnd(1,3)
   WHILE($safe_x=$safe_xs)
      $safe_x=rnd(1,3)
   END_CYC
   $safe_xs=$safe_x
End_if

If($safe_x<4)
   GETSCREEN
   SCANPICTURE($ARR_SCAN, 721,514, 1586,660, "Otkryt_seif.bmp", -1, 100)
   IF(ARRSIZE($ARR_SCAN)/2 > 2) // Если найдено 3 картинки
      LCLICK ($ARR_SCAN[2*($safe_x-1)], $ARR_SCAN[2*($safe_x-1)+1])
      LOGWRITE ("Клик по Сейфу №: ", $safe_x)
      WAITMS(50)
   END_IF
   UNDEFINE($ARR_SCAN) // Очистка массива
End_if

WAIT(1)

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #9 on: August 16, 2018, 06:54:56 PM »
этот скрипт доже не работает открыл 12 сейфов и все первые. Может быть он разщитан на открытия с подряд сейфов, но у меня для открытия следующего сейфа надо пройти 2-5 этажей патом отрыть сейф надо

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Помогите разобраться не получается
« Reply #10 on: August 17, 2018, 08:20:04 AM »
разщитан
:o :-[

А по делу, вот эта фиговина одноразовая
Code: (clickermann) [Select]
// 1,2,3 - выбор сейфа
// 0 - Включение рандома
// 4 - отключение поиска сейфов
$safe_x = 0

If($safe_x=0)
   $safe_x=rnd(1,3)
...

После первого выбора, рандом отключается. Пусть автор переделает.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #11 on: August 17, 2018, 10:25:25 AM »
:o :-[

А по делу, вот эта фиговина одноразовая

После первого выбора, рандом отключается. Пусть автор переделает.

Чего???
Code: (clickermann) [Select]
// 1,2,3 - выбор сейфа
// 0 - Включение рандома
// 4 - отключение поиска сейфов
$safe_x = 0


If($safe_x=0)
   $safe_x=rnd(1,3)
   WHILE($safe_x=$safe_xs)
      $safe_x=rnd(1,3)
   END_CYC
   $safe_xs=$safe_x
End_if

LOGWRITE ($safe_x)
WAITMS(500)

Лог:
Code: [Select]
11:24:29 1
11:24:30 3
11:24:30 2
11:24:31 1
11:24:31 2
11:24:32 1
11:24:32 2
11:24:33 3
11:24:33 1
11:24:34 2
11:24:34 1
11:24:35 3
11:24:35 2

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Помогите разобраться не получается
« Reply #12 on: August 17, 2018, 10:29:13 AM »
А, ну да.
А зачем тогда вообще условие, если перед ним всегда сбрасываем? Это и сбило с толку.

Аааа, это я не проснулся. Там же на все случаи жизни, которые не просили.
« Last Edit: August 17, 2018, 10:33:11 AM by Vint »


KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #13 on: August 17, 2018, 01:49:43 PM »
Я не знаю почему не работает у меня ХЗ...ХЗ
Вот мой лог полный прохождения половина пути

Code: [Select]
13:12:57 Ищем
13:12:59 Сундук открыть
13:12:59 Открываем сейф
13:13:01 Клик по Сейфу №: 2           как видно 2й  1
13:13:06 Ищем
13:13:07 В бой
13:13:07 Зачистка этажа - Бой
13:13:08 Бой
13:13:33 Ищем
13:13:34 В бой
13:13:34 Зачистка этажа - Бой
13:13:35 Бой
13:13:55 Ищем
13:13:56 Сундук открыть
13:13:56 Открываем сейф
13:13:58 Клик по Сейфу №: 2           как видно 2й  2
13:14:04 Ищем
13:14:06 В бой
13:14:06 Зачистка этажа - Бой
13:14:07 Бой
13:14:27 Ищем
13:14:28 улучшение
13:14:28 Покупка 3
13:14:28 Покупка 3 не нахожу
13:14:30 Покупка 2
13:14:31 Покупка 1
13:14:37 Ищем
13:14:41 В бой
13:14:41 Зачистка этажа - Бой
13:14:42 Бой
13:15:03 Ищем
13:15:05 Сундук открыть
13:15:05 Открываем сейф
13:15:07 Клик по Сейфу №: 2           как видно 2й  3
13:15:12 Ищем
13:15:16 В бой
13:15:16 Зачистка этажа - Бой
13:15:17 Бой
13:15:38 Ищем
13:15:38 В бой
13:15:38 Зачистка этажа - Бой
13:15:39 Бой
13:16:06 Ищем
13:16:07 Сундук открыть
13:16:07 Открываем сейф
13:16:09 Клик по Сейфу №: 2           как видно 2й  4
13:16:15 Ищем
13:16:16 улучшение
13:16:16 Покупка 3
13:16:16 Покупка 3 не нахожу
13:16:18 Покупка 2
13:16:19 Покупка 1
13:16:25 Ищем
13:16:27 В бой
13:16:27 Зачистка этажа - Бой
13:16:28 Бой
13:16:50 Ищем
13:17:01 В бой
13:17:01 Зачистка этажа - Бой
13:17:02 Бой
13:17:23 Ищем
13:17:24 Сундук открыть
13:17:24 Открываем сейф
13:17:27 Клик по Сейфу №: 2           как видно 2й  5
13:17:32 Ищем
13:17:32 В бой
13:17:32 Зачистка этажа - Бой
13:17:33 Бой
13:20:49 Ищем
13:20:50 улучшение
13:20:50 Покупка 3
13:20:50 Покупка 3 не нахожу
13:20:52 Покупка 2
13:20:53 Покупка 1
13:21:01 Ищем
13:21:01 В бой
13:21:01 Зачистка этажа - Бой
13:21:02 Бой
13:21:25 Ищем
13:21:26 Сундук открыть
13:21:26 Окрашиваем сейф
13:21:29 Клик по Сейфу №: 2           как видно 2й  6
13:21:32 Пройдено
Шесть раз открыл и все 2й сейф  пппппп
Я даже переместил переменную с начала скрипта обратно к коду на последний сейф
Код занимает уже 500 строк ну там можно мусор убрать и логи все почти все будет 420-450
Твой код начинается с 129-148

Что скажешь в чем причина

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #14 on: August 17, 2018, 02:09:51 PM »
Что скажешь в чем причина

И где твой код?