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

0 Members and 3 Guests are viewing this topic.

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #15 on: August 17, 2018, 02:14:49 PM »
весь код выложить прохождения
твой вот и показываю где стоит
рисунком



переменную переместил к коду обратно решил попробовать хотя не должно было измениться что то, с чем то конфликта не должно быть
« Last Edit: August 17, 2018, 02:35:36 PM by KingDrakonov »

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #16 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
« Last Edit: August 17, 2018, 10:35:31 PM by KingDrakonov »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #17 on: August 18, 2018, 01:16:07 PM »
Ну сколько можно писать что выпрыгивать из циклов или подпрограмм не допустимо.
GOTO не должно вести за грань WHILE FOR или SUB иначе добро пожаловать глюки.

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #18 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
« Last Edit: August 18, 2018, 02:10:32 PM by KingDrakonov »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #19 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

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #20 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...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #21 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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #22 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

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #23 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")

--\\--

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #24 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

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #25 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



Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться не получается
« Reply #26 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

KingDrakonov

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

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

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #28 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
« Last Edit: September 02, 2018, 09:17:34 PM by KingDrakonov »

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Помогите разобраться не получается
« Reply #29 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)