Author Topic: помогите пожалуйста  (Read 6402 times)

0 Members and 2 Guests are viewing this topic.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: помогите пожалуйста
« Reply #15 on: December 05, 2017, 11:05:06 AM »
$arr_Images - это массив, куда командой
Code: (clickermann) [Select]
GETFILELIST($arr_Images, "Images\*.bmp")будут занесены имена файлов  *.bmp из папки "Images\"


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите пожалуйста
« Reply #16 on: December 05, 2017, 01:31:27 PM »
Code: [Select]
// Тут указываем пути до папок с картинками (Индекс массива $arr_folder_name идет от 0 и до бесконечности)
$arr_folder_name[0] = "Images\Images 1\" // указываем путь относительно рабочей папки скрипта
$arr_folder_name[1] = "Images\Images 2\"
$arr_folder_name[2] = "C:\Portable\Clickermann\projects\Default\" // либо полный путь

$time = $_time_t + 5 // таймер на 5 секунд
WHILE($time > $_time_t)
   FOR($a=0,$a<ARRSIZE($arr_folder_name)) // Цикл перебора путей
      GETFILELIST($arr_Images, STRCONCAT($arr_folder_name[$a], "*.bmp")) // Получаем массив имен файлов в указанной папке
      GETSCREEN
      FOR($b=0,$b<ARRSIZE($arr_Images)) // Цикл перебора имен файлов
         IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT($arr_folder_name[$a], $arr_Images[$b]), -1, 100)
            LCLICK($_return1, $_return2)
            WAITMS(100)
            $a=ARRSIZE($arr_folder_name) // Прерываем поиск после нахождения картинки. Выходим из всех циклов.
            $b=ARRSIZE($arr_Images)
            $time = 0
         END_IF
      END_CYC
   END_CYC
END_CYC

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #17 on: December 05, 2017, 03:25:40 PM »
спасибо всем попытаюсь разобраться в этом

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #18 on: December 08, 2017, 07:49:14 PM »
Здравствуйте, не могли бы вы мне помочь?
в самом конце, можно ли ставит два раза IF или нужно как-то по другому?
Code: (clickermann) [Select]
GO8:
      $time = $_time_t + 5 // таймер на 5 секунд
      WHILE($time > $_time_t)
         GETSCREEN
         IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\мифрил.bmp", 75)
            $time = 0
            WAITMS(100)
            LCLICK($_return1, $_return2)
            WAITMS(100)
            забрать()
         ELSE
            IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\ветвь дерева жизни.bmp", 75)
               $time = 0
               WAITMS(100)
               LCLICK($_return1, $_return2)
               WAITMS(100)
               забрать()
            ELSE
               IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\свиток призыва ирин.bmp", 75)
                  $time = 0
                  WAITMS(100)
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                  забрать()
               ELSE
                  IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\золотой орешек.bmp", 75)
                     $time = 0
                     WAITMS(100)
                     LCLICK($_return1, $_return2)
                     WAITMS(100)
                     забрать()
                  ELSE
                     IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\золотой купон.bmp", 75)
                        $time = 0
                        WAITMS(100)
                        LCLICK($_return1, $_return2)
                        WAITMS(100)
                        забрать()
                     ELSE
                        IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\малый запас купонов.bmp", 75)
                           $time = 0
                           WAITMS(100)
                           LCLICK($_return1, $_return2)
                           WAITMS(100)
                           открыть()
                        ELSE
                           IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\клетка с непохим рабом.bmp", 75)
                              $time = 0
                              WAITMS(100)
                              LCLICK($_return1, $_return2)
                              WAITMS(100)
                              забрать()
                           ELSE
                              IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\арканум.bmp", 75)
                                 $time = 0
                                 WAITMS(100)
                                 LCLICK($_return1, $_return2)
                                 WAITMS(100)
                                 забрать()
                              ELSE
                                 IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\знак разрушения.bmp", 75)
                                    $time = 0
                                    WAITMS(100)
                                    LCLICK($_return1, $_return2)
                                    WAITMS(100)
                                    забрать()
                                 ELSE
                                    IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\знак лечения.bmp", 75)
                                       $time = 0
                                       WAITMS(100)
                                       LCLICK($_return1, $_return2)
                                       WAITMS(100)
                                       забрать()
                                    ELSE
                                       IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\знак защиты.bmp", 75)
                                          $time = 0
                                          WAITMS(100)
                                          LCLICK($_return1, $_return2)
                                          WAITMS(100)
                                          забрать()
                                       ELSE
                                          IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\лисья магия 1.bmp", 75)
                                             $time = 0
                                             WAITMS(100)
                                             LCLICK($_return1, $_return2)
                                             WAITMS(100)
                                             забрать()
                                          ELSE
                                             IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\лисья магия 2.bmp", 75)
                                                $time = 0
                                                WAITMS(100)
                                                LCLICK($_return1, $_return2)
                                                WAITMS(100)
                                                забрать()
                                             ELSE
                                                IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\лисья магия 3.bmp", 75)
                                                   $time = 0
                                                   WAITMS(1000)
                                                   LCLICK($_return1, $_return2)
                                                   WAITMS(1000)
                                                   забрать()
                                                ELSE
                                                   IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\наруч огненной лисы.bmp", 75)
                                                      $time = 0
                                                      WAITMS(100)
                                                      LCLICK($_return1, $_return2)
                                                      WAITMS(100)
                                                      разобрать()
                                                   ELSE
                                                      IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\наруч солнечной лисы.bmp", 75)
                                                         $time = 0
                                                         WAITMS(100)
                                                         LCLICK($_return1, $_return2)
                                                         WAITMS(100)
                                                         разобрать()
                                                      ELSE
                                                         IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\пояс снежной лисы.bmp", 75)
                                                            $time = 0
                                                            WAITMS(100)
                                                            LCLICK($_return1, $_return2)
                                                            WAITMS(100)
                                                            разобрать()
                                                         ELSE
                                                            IF_PICTURE_IN (1057,333, 1099,374, "screens\дроп\зеленый рецепт.bmp", 75)
                                                               $time = 0
                                                               WAITMS(100)
                                                               LCLICK($_return1, $_return2)
                                                               WAITMS(100)
                                                               забрать()
                                                            ELSE
                                                               IF_PIXEL_IN(1030,220, 1032,222, 4394)  //  предупреждение
                                                                  $time = 0
                                                                  WAITMS(100)
                                                                  LCLICK(1065,469)  // 7822649  вернутся
                                                                  WAITMS(1000)
                                                                  $start = 1
                                                               END_IF
                                                            END_IF
                                                         END_IF
                                                      END_IF
                                                   END_IF
                                                END_IF
                                             END_IF
                                          END_IF
                                       END_IF
                                    END_IF
                                 END_IF
                              END_IF
                           END_IF
                        END_IF
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      END_CYC
      IF($start = 1)
         $start = 0
         GOTO(GO8)
      END_IF
      IF($time ! 0)
         LCLICK(1079,353)  // 1915999
         WAITMS(100)
         продать()
      END_IF

В подпрограммах "забрать" и т.д. имеется таймер на 3 сек. если не найдётся должен перейти к метке GO8

Заранее благодарю
« Last Edit: December 08, 2017, 07:53:23 PM by LLlteйn »

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #19 on: December 08, 2017, 08:41:07 PM »
ну туповат я, что поделать? :)

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #20 on: December 09, 2017, 08:13:45 AM »
вот честно стараюсь изо всех сил, знаю что ошибка где то в подпрограмме "моб", но не могу сообразить, кто может подскажите и как можно проще, для особо отдалённых. ???
Code: (clickermann) [Select]
SUB(моб, $par1,$par2,$par3,$par4,$par5,$par6) // подпрограмма с параметрами
   $check1 = 0
   WHILE($check1 = 0)
      GETSCREEN ($par1,$par2,$par3,$par4)
      IF_PICTURE_IN ($par1,$par2,$par3,$par4,STRCONCAT("screens\",$par5,".bmp"), 75)  //" поиск
         $check1 = 1
         IF($par6= 1) // если  указан  $par6= 1 то делать клик по найденной картинке  0- нет клика
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      ELSE
         WAITMS(500)
      END_IF
   END_CYC
END_SUB



/////////////////////////////////////////////////////////////////////////////






GO1:
LCLICK(1277,365)  // 7385053   следующий остров
WAIT(1)

GO2:
LCLICK(619,569)  // 3942955    монстр
WAIT(1)




$time = $_time_t + 1 // таймер на 1 секунды
WHILE($time > $_time_t)
   GETSCREEN
   IF_PIXEL_IN(740,215, 740,215, 0)  //  окно с мобом
      $time = 0
      LCLICK($_return1, $_return2)
      WAITMS(500)
   END_IF
END_CYC
IF($time ! 0)
   GOTO(GO2)
END_IF


$time = $_time_t + 2 // таймер на 2 секунды
WHILE($time > $_time_t)
   моб(785,248, 872,351, "мобы\вилорогий гэ дэ", 0)
   моб(785,248, 872,351, "мобы\джагга", 0)
   моб(785,248, 872,351, "мобы\джегурдарр", 0)
   моб(785,248, 872,351, "мобы\злобный нико", 0)
   моб(785,248, 872,351, "мобы\курлык", 0)
   моб(785,248, 872,351, "мобы\макук", 0)
   моб(785,248, 872,351, "мобы\матаззу", 0)
   моб(785,248, 872,351, "мобы\низзер", 0)
   моб(785,248, 872,351, "мобы\мымра", 0)
   моб(785,248, 872,351, "мобы\мясник", 0)
   моб(785,248, 872,351, "мобы\счастливая эл", 0)
   моб(785,248, 872,351, "мобы\таар маан", 0)
   моб(785,248, 872,351, "мобы\бес", 0)
   моб(785,248, 872,351, "мобы\бесенок", 0)
   моб(785,248, 872,351, "мобы\дитя зла", 0)
   моб(785,248, 872,351, "мобы\защитник зла", 0)
   моб(785,248, 872,351, "мобы\лорд н глад", 0)
   моб(785,248, 872,351, "мобы\порождение зла", 0)
   моб(785,248, 872,351, "мобы\служитель зла", 0)
   моб(785,248, 872,351, "мобы\сторонник зла", 0)
   моб(785,248, 872,351, "мобы\черт", 0)
   моб(785,248, 872,351, "мобы\чертенок", 0)
   моб(785,248, 872,351, "мобы\солнечная ведьма", 0)
END_CYC
IF($time ! 0)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(1212,132, 1216,136, 5682917)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(2000)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
      GOTO(GO1)
END_IF

моб(923,187, 1221,493, "рабочие\напасть", 1)


halt
« Last Edit: December 09, 2017, 12:45:49 PM by LLlteйn »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите пожалуйста
« Reply #21 on: December 09, 2017, 10:24:09 AM »
Строка 77, "IF($time ! 0)" у тебя выше нет нигде $time = 0 поэтому это условие не имеет смысла, оно по любому выполнится.

Строка 85, выпрыгивание из цикла через гото. Сколько можно писать что так нельзя делать. Логически правильно написать прыжок сразу после цикла.

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #22 on: December 09, 2017, 11:20:14 AM »
Здравствуйте, по поводу "$time = 0" его надо ставить после вызова подпрограммы или вписать в саму подпрограмму?
По поводу цикла понял
« Last Edit: December 09, 2017, 12:35:02 PM by LLlteйn »

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #23 on: December 09, 2017, 12:50:41 PM »
кажись допёрло так:
Code: (clickermann) [Select]
SUB(моб, $par1,$par2,$par3,$par4,$par5,$par6,$par7)
   $time1 = $_time_t + 2 // таймер на 2 секунды
   WHILE($time > $_time_t)
      GETSCREEN($par1,$par2,$par3,$par4)
      IF_PICTURE_IN ($par1,$par2,$par3,$par4,STRCONCAT("screens\",$par5,".bmp"),75)  //"
         $time1 = 0
         IF($par6= 1) // если  указан  $par6= 1 то делать клик по найденной картинке  0- нет клика
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
         WAITMS($par7) // задержка после клика
      ELSE
         WAITMS(100)
      END_IF
   END_CYC
   IF($time ! 0)
      LCLICK(1214,153)  // 4893149  закрыть окно
      WAITMS(2000)
      GOTO(GO1)
   END_IF
END_SUB



SUB(поиск картинки, $par8,$par9,$par10,$par11,$par12,$par13,$par14) // подпрограмма с параметрами
   $check = 0
   WHILE($check = 0)
      GETSCREEN ($par8,$par9,$par10,$par11)
      IF_PICTURE_IN ($par8,$par9,$par10,$par11,STRCONCAT("screens\",$par12,".bmp"), 75)  //" поиск
         $check = 1
         IF($par13= 1) // если  указан  $par6= 1 то делать клик по найденной картинке  0- нет клика
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
         WAITMS($par14) // задержка после клика
      ELSE
         WAITMS(100)
      END_IF
   END_CYC
END_SUB


/////////////////////////////////////////////////////////////////////////////






GO1:
LCLICK(1277,365)  // 7385053   следующий остров
WAIT(1)

GO2:
LCLICK(619,569)  // 3942955    монстр
WAIT(1)




$time = $_time_t + 1 // таймер на 1 секунды
WHILE($time > $_time_t)
   GETSCREEN
   IF_PIXEL_IN(740,215, 740,215, 0)  //  окно с мобом
      $time = 0
      LCLICK($_return1, $_return2)
      WAITMS(500)
   END_IF
END_CYC
IF($time ! 0)
   GOTO(GO2)
END_IF



моб(785,248, 872,351,"мобы\вилорогий гэ дэ",0, 100)
моб(785,248, 872,351, "мобы\вилорогий гэ дэ", 0, 100)
моб(785,248, 872,351, "мобы\джагга", 0, 100)
моб(785,248, 872,351, "мобы\джегурдарр", 0, 100)
моб(785,248, 872,351, "мобы\злобный нико", 0, 100)
моб(785,248, 872,351, "мобы\курлык", 0, 100)
моб(785,248, 872,351, "мобы\макук", 0, 100)
моб(785,248, 872,351, "мобы\матаззу", 0, 100)
моб(785,248, 872,351, "мобы\низзер", 0, 100)
моб(785,248, 872,351, "мобы\мымра", 0, 100)
моб(785,248, 872,351, "мобы\мясник", 0, 100)
моб(785,248, 872,351, "мобы\счастливая эл", 0, 100)
моб(785,248, 872,351, "мобы\таар маан", 0, 100)
моб(785,248, 872,351, "мобы\бес", 0, 100)
моб(785,248, 872,351, "мобы\бесенок", 0, 100)
моб(785,248, 872,351, "мобы\дитя зла", 0, 100)
моб(785,248, 872,351, "мобы\защитник зла", 0, 100)
моб(785,248, 872,351, "мобы\лорд н глад", 0, 100)
моб(785,248, 872,351, "мобы\порождение зла", 0, 100)
моб(785,248, 872,351, "мобы\служитель зла", 0, 100)
моб(785,248, 872,351, "мобы\сторонник зла", 0, 100)
моб(785,248, 872,351, "мобы\черт", 0, 100)
моб(785,248, 872,351, "мобы\чертенок", 0, 100)
моб(785,248, 872,351, "мобы\солнечная ведьма", 0, 100)


поиск картинки(923,187, 1221,493, "рабочие\напасть", 1, 500)

halt
?
« Last Edit: December 09, 2017, 01:09:15 PM by LLlteйn »

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #24 on: December 09, 2017, 01:03:01 PM »
хм, нет теперь в место того что бы при не нахождении файла он всё равно переходит к "напасть", а должен был к закрыть

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #25 on: December 09, 2017, 01:19:10 PM »
хм, нет теперь в место того что бы при не нахождении файла он всё равно переходит к "напасть", а должен был к закрыть
Забыл единичку поставить

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #26 on: December 09, 2017, 01:44:29 PM »
Скажите пожалуйста, я так понимаю при вызове подпрограммы
Code: (clickermann) [Select]
моб(785,248, 872,351,"мобы\вилорогий гэ дэ",0, 100)нельзя записывать через запятую вызываемые файлы?
или может быть есть возможность в конце данной строки вписать подпрограмму которую нужно вызвать при нахождении данного файла?

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #27 on: December 09, 2017, 01:47:34 PM »
хм, нет теперь в место того что бы при не нахождении файла он всё равно переходит к "напасть", а должен был к закрыть
Забыл единичку поставить
всё равно что то не то :-\

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #28 on: December 09, 2017, 09:39:58 PM »
большое благодарю, Кирил, только у меня вопросы имеются
1. насколько я понимаю все переменные с 1 по 4 из за переноса команды GETSCREEN?
2. насколько я понял в подпрограмме "моб" если находится один из данных файлов, он закрывает окно, хотя он должен был по идее перейти к поиску картинки "напасть", а в случае не нахождения в течении тех двух секунд закрыть окно ()
3.
Code: (clickermann) [Select]
#name"небеса v0.2"что это?
4.
Code: (clickermann) [Select]
$time1=1 это используется в качестве метки? и как используются данные метки?
теперь ответы:
1. да 75% совпадения достаточно
2. да цвет равен нулю
3. отличие моба и монстра (хотя по сути одно и тоже) в том что подпрограмма "моб" проверяется в открытом окне где картинка (которая статична) а так же кнопки напасть, прогнать и закрыть, а клик по монстру это клик в место где находятся все монстры в игре (я нашёл определённую точку)(там картинка не статична и порою перекрыта игровым "туманом"), когда он кликает туда, тогда и открывается окно со статичным изображением
Теперь для ясности, скрипт который я написал (с ошибками) должен делать следующее:
1. кликает на следующий остров
2. кликает на монстра в игре
3. проверяет открылось ли окно нападения, если да то 4ое, если в течении 1й сек. не открылось снова кликает чтобы открылось окно
4. проверяет какой монстр папался, если из списка то 5ое, если нет то закрывает окно нападения и переходит к метке го1
5 ищет кнопку нападения
и так далее поскольку скрипт не закончен (но там прописана команда остановки, чтобы я не отвлекался)
P.S.
и я не злой просто не доходит, если не разжевать  :-\

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #29 on: December 12, 2017, 07:38:32 PM »
Здравствуйте, скажите пожалуйста, а как сделать так что бы кликер запомнил цвет из определённой координаты, а потом (через несколько действий) ожидал данный цвет в этой же координате?