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

Основной раздел => Общие вопросы => Topic started by: KingDrakonov on August 14, 2018, 08:55:31 PM

Title: Помогите разобраться не получается
Post by: KingDrakonov on August 14, 2018, 08:55:31 PM
Помогите разобраться почему не работает, далжно пахать
цель пока простая

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

покупка. вначале самое дорогое их 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н открыть случайным образом
ТО работает то нет и подвисает
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov 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мя, я писал с семи для полной картины пака вроде там не каких изменений не заметил. подправил чтобы не путать других
Title: Re: Помогите разобраться не получается
Post by: dramster 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
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov 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 микро сек


ну меня больше волнует то что выше факт то что повисает и искать не хочет
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov 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
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 15, 2018, 03:48:23 AM
Спс всем и за глупой ошибки не работало
Помогите с другим есть три сейфа надо по одному кликнуть случайным образом.
Желательно  на верх скрипта вынести переменную,отключения и авто выбора того которого я хочу
Title: Re: Помогите разобраться не получается
Post by: Qwerry 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)
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov 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й сейф, на случайку не очень похоже. Завтра пройду гляну.
К стате как прописать чтобы в логе показывал какой открыт сейф
Title: Re: Помогите разобраться не получается
Post by: Oraven 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)
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 16, 2018, 06:54:56 PM
этот скрипт доже не работает открыл 12 сейфов и все первые. Может быть он разщитан на открытия с подряд сейфов, но у меня для открытия следующего сейфа надо пройти 2-5 этажей патом отрыть сейф надо
Title: Re: Помогите разобраться не получается
Post by: Vint 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)
...

После первого выбора, рандом отключается. Пусть автор переделает.
Title: Re: Помогите разобраться не получается
Post by: Oraven 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
Title: Re: Помогите разобраться не получается
Post by: Vint on August 17, 2018, 10:29:13 AM
А, ну да.
А зачем тогда вообще условие, если перед ним всегда сбрасываем? Это и сбило с толку.

Аааа, это я не проснулся. Там же на все случаи жизни, которые не просили.
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov 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

Что скажешь в чем причина
Title: Re: Помогите разобраться не получается
Post by: Oraven on August 17, 2018, 02:09:51 PM
Что скажешь в чем причина

И где твой код?
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 17, 2018, 02:14:49 PM
весь код выложить прохождения
твой вот и показываю где стоит
рисунком

(http://static2.keep4u.ru/2018/08/17/BUFER-OBMENA1844e01fd30ba0821c.jpg)

переменную переместил к коду обратно решил попробовать хотя не должно было измениться что то, с чем то конфликта не должно быть
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 17, 2018, 08:32:26 PM
Вот накидал простенький код

Рандом работает
Code: (clickermann) [Select]
skip3:
 $safe_x = 0
// skip3:
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (944,280, 1591,507, "KRS.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
LOGWRITE ("1")

GOTO(skip)
   
ELSE
      WAITMS(50)
   END_IF
END_CYC



skip2:
 
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, 944,280, 1591,507, "KRS.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)

GOTO(skip3)

skip:
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (1139,309, 1591,507, "KRS.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
LOGWRITE ("2")
GOTO(skip2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
Лог
Code: [Select]
20:03:57 2
20:04:00 Клик по Сейфу №: 3
20:04:03 1
20:04:04 2
20:04:07 Клик по Сейфу №: 1
20:04:09 1
20:04:10 2
20:04:13 Клик по Сейфу №: 3
20:04:16 1
20:04:16 2
20:04:19 Клик по Сейфу №: 1
20:04:22 1
20:04:23 2
20:04:26 Клик по Сейфу №: 3
20:04:28 1
20:04:29 2
20:04:32 Клик по Сейфу №: 1
20:04:35 1
20:04:35 2
20:04:38 Клик по Сейфу №: 3
20:04:41 1
20:04:42 2
20:04:45 Клик по Сейфу №: 2
20:04:47 1
20:04:48 2
20:04:51 Клик по Сейфу №: 1
20:04:54 1
20:04:54 2
20:04:57 Клик по Сейфу №: 3
20:05:00 1
20:05:01 2
20:05:04 Клик по Сейфу №: 1
20:05:06 1
20:05:07 2
20:05:10 Клик по Сейфу №: 3
Конечно частенько 1,3 выпадает

без кода лишнего прекрасно
Code: [Select]
20:27:42 Клик по Сейфу №: 2
20:27:46 Клик по Сейфу №: 1
20:27:50 Клик по Сейфу №: 2
20:27:54 Клик по Сейфу №: 3
20:27:58 Клик по Сейфу №: 1
20:28:02 Клик по Сейфу №: 3
20:28:06 Клик по Сейфу №: 2
20:28:10 Клик по Сейфу №: 3
20:28:14 Клик по Сейфу №: 2
20:28:18 Клик по Сейфу №: 1
20:28:22 Клик по Сейфу №: 3
20:28:26 Клик по Сейфу №: 2
20:28:30 Клик по Сейфу №: 3
20:28:34 Клик по Сейфу №: 1


А вот не работает
Code: (clickermann) [Select]
// skip3:
 $safe_x = 0
skip3:
$check = 0
WHILE($check = 0)
......

Лог
Code: [Select]
:20:21 1
20:20:21 2
20:20:24 Клик по Сейфу №: 2
20:20:26 1
20:20:27 2
20:20:30 Клик по Сейфу №: 2
20:20:32 1
20:20:33 2
20:20:36 Клик по Сейфу №: 2
20:20:38 1
20:20:39 2
20:20:42 Клик по Сейфу №: 2
20:20:44 1
20:20:45 2
20:20:47 Клик по Сейфу №: 2
20:20:50 1
20:20:50 2
20:20:53 Клик по Сейфу №: 2
20:21:05 1
20:21:05 2
20:21:08 Клик по Сейфу №: 2
20:21:11 1
20:21:11 2
20:21:14 Клик по Сейфу №: 2

Можноли это подправить

Я перенес переменную к основному коду заработало
Code: [Select]
21:56:44 Клик по Сейфу №: 1
21:57:57 Клик по Сейфу №: 3
21:58:57 Клик по Сейфу №: 2
22:00:11 Клик по Сейфу №: 1
22:01:21 Клик по Сейфу №: 2
22:02:38 Клик по Сейфу №: 1
22:04:04 Клик по Сейфу №: 3
Title: Re: Помогите разобраться не получается
Post by: Oraven on August 18, 2018, 01:16:07 PM
Ну сколько можно писать что выпрыгивать из циклов или подпрограмм не допустимо.
GOTO не должно вести за грань WHILE FOR или SUB иначе добро пожаловать глюки.
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 18, 2018, 01:24:04 PM
не обращал внимания
извини постараюсь не допускать эту ошибку


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

не работает ?????? или это на оборот поиск всех кортинок
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp","file2.bmp","file3.bmp","file4.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
Title: Re: Помогите разобраться не получается
Post by: Oraven on August 18, 2018, 04:46:09 PM
Где ты такое мог прочитать? В справке черным по белому описан синтаксис. В функции допустимо указывать только одну картинку.

Если картинок много можно организовать цикл
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   FOR($i=1,($i<5)&($check = 0)) // Перебор file1.bmp - file4.bmp
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("file",$i,".bmp"), -1, 100)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
END_CYC
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 18, 2018, 10:02:01 PM
Спасибо огромное жалко что нельзя оставить свои имина у картинок, если изменится картинка будет не большая путаница

если правильно понял
1я группа   FOR($i=1,($i<6)&($check = 0))
2я группа   FOR($i=6,($i<11)&($check = 0))
-\\-

file1...file10...
Title: Re: Помогите разобраться не получается
Post by: Oraven on August 19, 2018, 08:16:12 AM
Спасибо огромное жалко что нельзя оставить свои имина у картинок, если изменится картинка будет не большая путаница

Вполне можно. Кликер может получить список имен файлов из конкретной папки по полному пути, или относительно загруженному скрипту. Требуется 4.13 версия, только там функция GETFILELIST заработала корректно.
Массив $a_file переписывается каждый раз при вызове GETFILELIST поэтому очищать его не требуется.

Code: (clickermann) [Select]
GETFILELIST($a_file, "Image_1\*.bmp") // Получаем массив имен файлов
$check = 0
WHILE($check = 0)
   GETSCREEN
   FOR($i=0,($i<ARRSIZE($a_file))&($check = 0)) // Перебор всех картинок их папки Image_1
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, $a_file[$i], -1, 100)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
END_CYC
Title: Re: Помогите разобраться не получается
Post by: Oraven on August 19, 2018, 08:18:59 AM
если правильно понял
1я группа   FOR($i=1,($i<6)&($check = 0))
2я группа   FOR($i=6,($i<11)&($check = 0))
-\\-
file1...file10...

1я группа   FOR($i=1,($i<6)&($check = 0)) - от 1 до 5
2я группа   FOR($i=5,($i<11)&($check = 0)) - от 5 до 10

В 4.13 версии введены новые операторы сравнения, больше или равно и меньше или равно. Поэтому если ты работаешь в этой версии писать можно так

1я группа   FOR($i=1,($i<=5)&($check = 0)) - от 1 до 5
2я группа   FOR($i=5,($i<=10)&($check = 0)) - от 5 до 10
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 19, 2018, 10:33:58 AM
проверьте так можно хуже не будет. после  обеда буду пробовать

ошибка черному по белому не вижу пака впрытык
Code: (clickermann) [Select]
LOGWRITE ("Усилие-улучшение 3")
//    GETFILELIST($a_file, "Image_1\*.bmp") // Получаем массив имен файлов
$check = 0
WHILE($check = 0)
   GETSCREEN
   GETFILELIST($a_file, "Usileniya_3\*.bmp") // Получаем массив имен файлов
   FOR($i=0,($i<ARRSIZE($a_file))&($check = 0)) // Перебор всех картинок их папки Image_1
      IF_PICTURE_IN (1213,323, 1466,412, $a_file[$i], -1, 100)
         $check = 1
         LCLICK($_return1+46, $_return2+280)
         WAITMS(50)
      ELSE
         GETFILELIST($a_file, "Usileniya_3-\*.bmp") // Получаем массив имен файлов
         FOR($i=0,($i<ARRSIZE($a_file))&($check = 0)) // Перебор всех картинок их папки Image_1
            IF_PICTURE_IN (1213,323, 1466,412, $a_file[$i], -1, 100)
               $check = 1
               //             LCLICK($_return1+46, $_return2+280)
               LOGWRITE ("Усилие 3 ненужное")
               WAITMS(100)
            ELSE                                                                  // удалить 5 строк лишние
               LOGWRITE ("Усилие 3 ЧТОТО НЕТО СТОП")
               HALT                                                                              // удалить стоп
               WAITMS(50)
            END_IF                                                                // удалить
         END_IF
      END_CYC
   END_CYC
   
   
   
   LOGWRITE ("Усилие-улучшение 2")
   
   --\\--



так вроде правильней
Code: (clickermann) [Select]
LOGWRITE ("Усилие-улучшение 3")
//    GETFILELIST($a_file, "Image_1\*.bmp") // Получаем массив имен файлов
$check = 0
WHILE($check = 0)
   GETSCREEN
   GETFILELIST($a_file, "Usileniya_3\*.bmp") // Получаем массив имен файлов
   FOR($i=0,($i<ARRSIZE($a_file))&($check = 0)) // Перебор всех картинок их папки Image_1
      IF_PICTURE_IN (1213,323, 1466,412, $a_file[$i], -1, 100)
         $check = 1
         LCLICK($_return1+46, $_return2+280)
         WAITMS(50)
      END_IF
   END_CYC
ELSE
   GETFILELIST($a_file, "Usileniya_3-\*.bmp") // Получаем массив имен файлов
   FOR($i=0,($i<ARRSIZE($a_file))&($check = 0)) // Перебор всех картинок их папки Image_1
      IF_PICTURE_IN (1213,323, 1466,412, $a_file[$i], -1, 100)
         $check = 1
         //             LCLICK($_return1+46, $_return2+280)
         LOGWRITE ("Усилие 3 ненужное")
         WAITMS(100)
      ELSE                                                                  // удалить 5 строк лишние
         LOGWRITE ("Усилие 3 ЧТОТО НЕТО СТОП")
         HALT                                                                              // удалить стоп
         WAITMS(50)                                                                       // удалить
      END_IF
   END_CYC
END_CYC



LOGWRITE ("Усилие-улучшение 2")

--\\--

Извините за глупые вопросы я языков программирования не знаю учюсь
Title: Re: Помогите разобраться не получается
Post by: Oraven on August 19, 2018, 11:37:40 AM
Вот так правильно, ELSE то там зачем приписал?! Альтернатива не может быть нигде кроме как в условии IF_.

Code: (clickermann) [Select]
LOGWRITE ("Усилие-улучшение 3")
$check = 0
WHILE($check = 0)
   GETSCREEN
   GETFILELIST($a_file, "Usileniya_3\*.bmp") // Получаем массив имен файлов
   FOR($i=0,($i<ARRSIZE($a_file))&($check = 0)) // Перебор всех картинок их папки Image_1
      IF_PICTURE_IN (1213,323, 1466,412, $a_file[$i], -1, 100)
         $check = 1
         LCLICK($_return1+46, $_return2+280)
         WAITMS(50)
      END_IF
   END_CYC
   GETFILELIST($a_file, "Usileniya_3-\*.bmp") // Получаем массив имен файлов
   FOR($i=0,($i<ARRSIZE($a_file))&($check = 0)) // Перебор всех картинок их папки Image_1
      IF_PICTURE_IN (1213,323, 1466,412, $a_file[$i], -1, 100)
         $check = 1
         //             LCLICK($_return1+46, $_return2+280)
         LOGWRITE ("Усилие 3 ненужное")
         WAITMS(100)
      ELSE                                                                  // удалить 5 строк лишние
         LOGWRITE ("Усилие 3 ЧТОТО НЕТО СТОП")
         HALT                                                                              // удалить стоп
         WAITMS(50)                                                                       // удалить
      END_IF
   END_CYC
END_CYC
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 20, 2018, 01:04:17 AM
Помогите еще с одним всю голову переломал, может просто устал поэтому не доходит
Магу сам попробовать сделать по другому но получается большоват


1ю картинку находит переходит к следующиму поиску-выполнению как полагается
1ю не находит 2ю находит и кликает но начинает этот код сначала и так 6 раз пака не найдет 1ю, если не нашел то кликает на другую кнопку и останавливает скрипт (координаты пусть берет от 2го поиска или 3й поиск дополнительно) + лог; не нашел проход

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
LOGWRITE("1")                                                                    // лог   1й поиск
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Sobrat_nagradu.bmp", -1, 100)
      $check = 1
      LCLICK($_return1+RND(7, 14), $_return2+RND(7, 14))
      WAITMS(50)
   ELSE
LOGWRITE("2")                                                                    // лог   2й поиск
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Sled.bmp", -1, 100)
         $check = 1
         LCLICK($_return1+RND(-10, 10), $_return2+RND(-10, 10))
         WAITMS(50)
      END_IF
   END_IF
END_CYC


Title: Re: Помогите разобраться не получается
Post by: Oraven on August 20, 2018, 07:26:48 AM
Code: (clickermann) [Select]
$check = 0
WHILE($check < 6)
   GETSCREEN
   LOGWRITE("1")                                                                    // лог   1й поиск
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Sobrat_nagradu.bmp", -1, 100)
      $check = 6
      LCLICK($_return1+RND(7, 14), $_return2+RND(7, 14))
      WAITMS(50)
   ELSE
      LOGWRITE("2")                                                                    // лог   2й поиск
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Sled.bmp", -1, 100)
         INC($check,1)
         IF($check < 6)
            LCLICK($_return1+RND(-10, 10), $_return2+RND(-10, 10))
            WAITMS(50)
         ELSE
            LCLICK(100,500) // 6ой раз найдена картинка Sled.bmp
            WAITMS(50)
            HALT
         END_IF
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on August 20, 2018, 05:42:33 PM
спасибо огромное
ты как палочка выручалочка
(https://b.radikal.ru/b21/1808/5e/d4d6bad28181.jpg)
еще вопросы будут. игра не полностью перевидена на автоматику, да еще обновление обещают может там что то замороченное будет
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on September 02, 2018, 06:24:34 PM
появился еще вопросик

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Трата_\Sborka_p.bmp", -1, 100)     // координаты отсюдова
                           print("цена X=", $_return1, ", Y=", $_return2)
      WAITMS(50)
      IF_PIXEL_IN ($_return1-96,$_return2-8, $_return1+120,$_return2+19, 4145895)  // а вот это строчку как написать
                           print("пиксель X=", $_return1, ", Y=", $_return2)
      $check = 1
      WAITMS(50)
      LOGWRITE ("Собран предмет")
      HALT  // стоп
   ELSE
      WAITMS(50)
      LOGWRITE ("начал с начала")
      HALT
      END_IF
   END_IF
END_CYC
HALT
Title: Re: Помогите разобраться не получается
Post by: KingDrakonov on September 04, 2018, 02:19:55 PM
если не возможно написать по другому так и сказали бы
Code: (clickermann) [Select]
IF_PIXEL_IN ($_return1-96,$_return2-8, $_return1+120,$_return2+19, 4145895)  // а вот это строчку как написать
хотя это можно обединить
Code: (clickermann) [Select]
IF_PIXEL_IN ($X1-96,$Y1-8, $X2+120,$Y2+19, 4145895)
Или нет вариантов кругом придется писать
Code: (clickermann) [Select]
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Трата_\Sborka_p.bmp", -1, 100)
$X = $_return1-96
$Y = $_return2-8
$X1 = $_return1+120
$Y1 = $_return2+19
WAITMS(50)
    IF_PIXEL_IN ($X,$Y, $X1,$Y1, 4145895)