Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Adlet_Veltman

Pages: [1]
1
безумный квест от фаната GOTO?
а ничего, что у вас в коде 
start02: - двэ метка
start03: - чэтырэ штук!
зачем  сокращать код заведомо кривого скрипта?

Простите за глупейшие ошибки. Я ещё только изучаю Clickermann. Я кажется исправил скрипт, но теперь он срабатывает когда как... Первый раз работал, как и должен был, а потом опять застрял на 1 цикле после повторного запуска позже. Может быть вы найдёте ещё какие-то ошибки. Если я опять неправильно сделал, пожалуйста, укажите на мои ошибки.
Code: (clickermann) [Select]

DEFINE($aa,0)

start:
GETSCREEN
IF_PIXEL_IN(628,526,662,552, 0)
   LCLICK(500,896)
   WAIT(35)
   INC($aa, 1)
   IF($aa = 14)
      DEFINE($ff, 0)
      LCLICK(688,752)
      start02:
      GETSCREEN
      IF_PIXEL_IN(628,526,662,552, 0)
         LCLICK(500,896)
         WAIT(35)
         INC($ff, 1)
         IF($ff = 7)
            DEFINE($dd, 0)
            LCLICK(688,752)
            start03:
            GETSCREEN
            IF_PIXEL_IN(628,526,662,552, 0)
               LCLICK(500,896)
               WAIT(35)
               INC($dd, 1)
               IF($dd = 7)
                  HALT
               END_IF
               GOTO(start03)
            ELSE
               IF_PIXEL_IN(628,526,662,552, 1710844)
                  LCLICK(500,896)
                  WAIT(35)
                  INC($dd, 1)
                  IF($dd = 7)
                     HALT
                  END_IF
                  GOTO(start03)
               ELSE
                  IF_PIXEL_IN(628,526,662,552,1551428)
                     LCLICK(623,743)
                     LCLICK(623,743)
                     WAIT(35)
                     INC($dd = 0)
                     INC($ff = 0)
                     INC($aa = 0)
                     GOTO(start)
                  END_IF
               END_IF
            END_IF
         END_IF
         GOTO(start02)
      ELSE
         IF_PIXEL_IN(628,526,662,552, 1710844)
            LCLICK(500,896)
            WAIT(35)
            INC($ff, 1)
            IF($ff = 7)
               DEFINE($dd, 0)
               LCLICK(688,752)
               GOTO(start03)
            END_IF
            GOTO(start02)
         ELSE
            IF_PIXEL_IN(628,526,662,552,1551428)
               LCLICK(623,743)
               WAIT(35)
               INC($ff = 0)
               INC($aa = 0)
               GOTO(start)
            END_IF
         END_IF
      END_IF
   END_IF
   GOTO (start)
ELSE
   IF_PIXEL_IN(628,526,662,552, 1710844)
      LCLICK(500,896)
      WAIT(35)
      INC($aa, 1)
      IF($aa = 14)
         DEFINE($ff, 0)
         LCLICK(688,752)
         GOTO(start02)       
      END_IF
      GOTO (start)
   ELSE
      IF_PIXEL_IN(628,526,662,552,1551428)
         WAIT(35)
         $aa = 0
         GOTO (start)
      END_IF
   END_IF
END_IF

HALT


2
Я уже просил о помощи (http://crapware.aidf.org/forum/index.php?topic=3633.0) . Мне попытались помочь, но скрипт работал некорректно. Потом я заменил пару команд и всё заработало, как надо, но появилась новая проблема. Для того, чтобы вы поняли о чём речь, зайдите в тему, которую я прикрепил выше.  При добавлении третьего цикла, который должен выполняться после семиразового выполнения второго цикла, но программа перестала справляться. Т.е. если программе не попадается цвет1(0) сразу, то она долго спускается по скрипту вниз и встаёт(ничего не делает). Как я понял больше 2 уровней условий она не выдерживает. Помогите мне обратно правильно сделать всё с командами "FOR_($a, $a < 9)......END_CYC", либо подскажите, как сделать так, чтобы программа выдержала объём трёх уровней(циклов). Может третий уровень записать иначе или в другом месте?..

Вот как у меня всё получилось с 3 уровнями(невероятно громоздко):
Code: (clickermann) [Select]

DEFINE($aa,0)

start:
GETSCREEN
IF_PIXEL_IN(628,526,662,552, 0)
   LCLICK(500,896)
   WAIT(35)
   INC($aa, 1)
   IF($aa = 14)
      DEFINE($ff, 0)
      LCLICK(688,752)
      start02:
      GETSCREEN
      IF_PIXEL_IN(628,526,662,552, 0)
         LCLICK(500,896)
         WAIT(35)
         INC($ff, 1)
         IF($ff = 7)
            DEFINE($dd, 0)
            LCLICK(688,752)
            start03:
            GETSCREEN
            IF_PIXEL_IN(628,526,662,552, 0)
               LCLICK(500,896)
               WAIT(35)
               INC($dd, 1)
               IF($dd = 7)
                  HALT
               END_IF
               GOTO(start03)
            ELSE
               IF_PIXEL_IN(628,526,662,552, 1710844)
                  LCLICK(500,896)
                  WAIT(35)
                  INC($dd, 1)
                  IF($dd = 7)
                     HALT
                  END_IF
                  GOTO(start03)
               ELSE
                  IF_PIXEL_IN(628,526,662,552,1551428)
                     LCLICK(623,743)
                     WAIT(35)
                     INC($dd = 0)
                     INC($ff = 0)
                     INC($aa = 0)
                     GOTO(start)
                  END_IF
               END_IF
            END_IF
         END_IF
         GOTO(start02)
      ELSE
         IF_PIXEL_IN(628,526,662,552, 1710844)
            LCLICK(500,896)
            WAIT(35)
            INC($ff, 1)
            IF($ff = 7)
               DEFINE($dd, 0)
               LCLICK(688,752)
               start03:
               GETSCREEN
               IF_PIXEL_IN(628,526,662,552, 0)
                  LCLICK(500,896)
                  WAIT(35)
                  INC($dd, 1)
                  IF($dd = 7)
                     HALT
                  END_IF
                  GOTO(start03)
               ELSE
                  IF_PIXEL_IN(628,526,662,552, 1710844)
                     LCLICK(500,896)
                     WAIT(35)
                     INC($dd, 1)
                     IF($dd = 7)
                        HALT
                     END_IF
                     GOTO(start03)
                  ELSE
                     IF_PIXEL_IN(628,526,662,552,1551428)
                        LCLICK(623,743)
                        WAIT(35)
                        INC($dd = 0)
                        INC($ff = 0)
                        INC($aa = 0)
                        GOTO(start)
                     END_IF
                  END_IF
               END_IF
            END_IF
            GOTO(start02)
         ELSE
            IF_PIXEL_IN(628,526,662,552,1551428)
               LCLICK(623,743)
               WAIT(35)
               INC($ff = 0)
               INC($aa = 0)
               GOTO(start)
            END_IF
         END_IF
      END_IF
   END_IF
   GOTO (start)
ELSE
   IF_PIXEL_IN(628,526,662,552, 1710844)
      LCLICK(500,896)
      WAIT(35)
      INC($aa, 1)
      IF($aa = 14)
         DEFINE($ff, 0)
         LCLICK(688,752)
         
         start02:
         GETSCREEN
         IF_PIXEL_IN(628,526,662,552, 0)
            LCLICK(500,896)
            WAIT(35)
            INC($ff, 1)
            IF($ff = 7)
               DEFINE($dd, 0)
               LCLICK(688,752)
               start03:
               GETSCREEN
               IF_PIXEL_IN(628,526,662,552, 0)
                  LCLICK(500,896)
                  WAIT(35)
                  INC($dd, 1)
                  IF($dd = 7)
                     HALT
                  END_IF
                  GOTO(start03)
               ELSE
                  IF_PIXEL_IN(628,526,662,552, 1710844)
                     LCLICK(500,896)
                     WAIT(35)
                     INC($dd, 1)
                     IF($dd = 7)
                        HALT
                     END_IF
                     GOTO(start03)
                  ELSE
                     IF_PIXEL_IN(628,526,662,552,1551428)
                        LCLICK(623,743)
                        WAIT(35)
                        INC($dd = 0)
                        INC($ff = 0)
                        INC($aa = 0)
                        GOTO(start)
                     END_IF
                  END_IF
               END_IF
            END_IF
            GOTO(start02)
         ELSE
            IF_PIXEL_IN(628,526,662,552, 1710844)
               LCLICK(500,896)
               WAIT(35)
               INC($ff, 1)
               IF($ff = 7)
                  DEFINE($dd, 0)
                  LCLICK(688,752)
                  start03:
                  GETSCREEN
                  IF_PIXEL_IN(628,526,662,552, 0)
                     LCLICK(500,896)
                     WAIT(35)
                     INC($dd, 1)
                     IF($dd = 7)
                        HALT
                     END_IF
                     GOTO(start03)
                  ELSE
                     IF_PIXEL_IN(628,526,662,552, 1710844)
                        LCLICK(500,896)
                        WAIT(35)
                        INC($dd, 1)
                        IF($dd = 7)
                           HALT
                        END_IF
                        GOTO(start03)
                     ELSE
                        IF_PIXEL_IN(628,526,662,552,1551428)
                           LCLICK(623,743)
                           WAIT(35)
                           INC($dd = 0)
                           INC($ff = 0)
                           INC($aa = 0)
                           GOTO(start)
                        END_IF
                    END_IF
                 END_IF
               END_IF
               GOTO(start02)
            ELSE
               IF_PIXEL_IN(628,526,662,552,1551428)
                  LCLICK(623,743)
                  WAIT(35)
                  INC($ff = 0)
                  INC($aa = 0)
                  GOTO(start)
               END_IF
            END_IF
         END_IF
      END_IF
      GOTO (start)
   ELSE
      IF_PIXEL_IN(628,526,662,552,1551428)
         WAIT(35)
         $aa = 0
         GOTO (start)
      END_IF
   END_IF
END_IF

HALT

3
Помощь теперь не нужна. Я решил сделать повторение другим способом. Заменил "FOR ($i, $i<30)...END_CYC" на
Code: (clickermann) [Select]
DEFINE($aaa,0) //  вводим переменную  для подсчета циклов
 
start:
 
 
 
 
 
INC ($aaa, 1) // после цикла переменная увеличивается на 1
IF($aaa = 30) // если счет циклов стал равен 30 , останавливаем выполнение скрипта
 HALT
END_IF
GOTO (start) // если счет циклов не равен 30,  возвращаемся к start: 

Скрипт стал довольно громоздким и теперь для добавления новых циклов(что я и собираюсь сделать) нужно много работы и точности, но зато теперь всё работает исправно, без зацикливания и остановок раньше времени.
Если кому интересно, то теперь скрипт выглядит так:
Code: (clickermann) [Select]

DEFINE($aa,0)

start:
GETSCREEN
IF_PIXEL_IN(628,526,662,552, 0)
   LCLICK(500,896)
   WAIT(35)
   INC($aa, 1)
   IF($aa = 14)
      DEFINE($ff, 0)
      LCLICK(688,752)
      start02:
      GETSCREEN
      IF_PIXEL_IN(628,526,662,552, 0)
         LCLICK(500,896)
         WAIT(35)
         INC($ff, 1)
         IF($ff = 7)
            HALT
         END_IF
         GOTO(start02)
      ELSE
         IF_PIXEL_IN(628,526,662,552, 1710844)
            LCLICK(500,896)
            WAIT(35)
            INC($ff, 1)
            IF($ff = 7)
               HALT
            END_IF
            GOTO(start02)
         ELSE
            IF_PIXEL_IN(628,526,662,552,1551428)
               LCLICK(623,743)
               WAIT(35)
               INC($ff = 0)
               INC($aa = 0)
               GOTO(start)
            END_IF
         END_IF
      END_IF
   END_IF
   GOTO (start)
ELSE
   IF_PIXEL_IN(628,526,662,552, 1710844)
      LCLICK(500,896)
      WAIT(35)
      INC($aa, 1)
      IF($aa = 14)
         DEFINE($ff, 0)
         LCLICK(688,752)
         
         start02:
         GETSCREEN
         IF_PIXEL_IN(628,526,662,552, 0)
            LCLICK(500,896)
            WAIT(35)
            INC($ff, 1)
            IF($ff = 7)
               HALT
            END_IF
            GOTO(start02)
         ELSE
            IF_PIXEL_IN(628,526,662,552, 1710844)
               LCLICK(500,896)
               WAIT(35)
               INC($ff, 1)
               IF($ff = 7)
                  HALT
               END_IF
               GOTO(start02)
            ELSE
               IF_PIXEL_IN(628,526,662,552,1551428)
                  LCLICK(623,743)
                  WAIT(35)
                  INC($ff = 0)
                  INC($aa = 0)
                  GOTO(start)
               END_IF
            END_IF
         END_IF
      END_IF
      GOTO (start)
   ELSE
      IF_PIXEL_IN(628,526,662,552,1551428)
         WAIT(35)
         $aa = 0
         GOTO (start)
      END_IF
   END_IF
END_IF

HALT

4
Общие вопросы / Re: Пожалуйста помогите)
« on: November 17, 2017, 11:28:56 PM »
Cам я не очень много знаю, поэтому могу ошибаться. Точно не знаю, но по-моему правильно должно выглядеть так. И я не понял почему в конце ты сделал два действия отдельно(ещё два раза "GETSCREEN" и "IF(PXL)" отдельно). И сразу скажу, что данный цикл предназначен для одноразового использования.

Code: (clickermann) [Select]
GETSCREEN
IF(PXL(1443,824) = 8583929)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
ELSE
  IF(PXL(1547,888) = 8583929)
    LCLICK(942,712)
    WAIT(0.5)
    LCLICK(1191,445)
  ELSE
    IF(PXL(1513,945) = 15856113)
        LCLICK(942,712)
        WAIT(0.5)
        LCLICK(1191,445)
    ELSE
      IF(PXL(1514,823) = 8518136)
          LCLICK(942,712)
          WAIT(0.5)
          LCLICK(1191,445)
      END_IF
    END_IF   
  END_IF         
END_IF
GETSCREEN
IF(PXL(1384,747) = 7392945)
LCLICK(1421,737)
WAIT(0.5)
LCLICK(946,719)
WAIT(0.5)
LCLICK(1204,526)
END_IF
GETSCREEN
IF(PXL(1204,254) = 15526380)
LCLICK(1411,819)
WAIT(0.5)
LCLICK(946,719)
WAIT(0.5)
LCLICK(1204,526)
END_IF

5
Code: (clickermann) [Select]
$check = 999
WHILE($check = 999)

   FOR($check=0, $check<15)
      GETSCREEN
      IF_PIXEL_IN(628,526,662,552, цвет1)
         LCLICK(500,896)
         WAIT(35)
      ELSE
         IF_PIXEL_IN(628,526,662,552, цвет2)
            LCLICK(500,896)
            WAIT(35)
         ELSE
            IF_PIXEL_IN(628,526,662,552,цвет3)
               WAIT(35)
               $check = 0
            END_IF
         END_IF
      END_IF
   END_CYC
   
   FOR($check=0, $check<8)
      LCLICL(688,752)
      GETSCREEN
      IF_PIXEL_IN(628,526,662,552, цвет1)
         LCLICK(500,896)
         WAIT(35)
      ELSE
         IF_PIXEL_IN(628,526,662,552, цвет2)
            LCLICK(500,896)
            WAIT(35)
         ELSE
            IF_PIXEL_IN(628,526,662,552,цвет3)
               LCLICK(623,743)
               WAIT(35)
               $check = 999
            END_IF
         END_IF
      END_IF
   END_CYC
   
END_CYC

HALT
Большое спасибо программа перестала останавливаться, но до сих пор выполняется неправильно.
После выполнения 1 цикла 14 раз программа не переходит ко второму, а продолжает выполнять 1 цикл бесперерывно

6
Здравствуйте знаниями не богат, поэтому не ругайте сильно за ошибки в скрипте. Как я уже сказал, знаний у меня не много, но мне надо написать довольно непростой скрипт.Сначала я опишу что из себя должен представлять этот цикл, а потом покажу, как я попытался это воплотить. Проблема в том, что программа при появление цвета 3 останавливается. Прошу исправить мои ошибки и рассказать, почему мой скрипт неверный в этих местах.
Выглядеть он должен так:
Сначала поиск нужного цвета в определённой области. В этой области может появиться только 3 цвета. При появления цвета 1 или появления цвета 2 нужно сделать левый клик в нужной точке(с этим я быстро справился). Всё это повторяется 14 раз. А при появление цвета 3 пока цикл не выполняется 14 раз, а должен начаться с начала с 0. Если цикл отработал 14 раз ни разу не наткнувшись на цвет 3 он должен закончиться. Дальше программа должна сделать один левый клик в указанной точке. Потом новый тот же цикл с тремя цветами, условия почти те же, только 7 раз, а не 14. И во втором цикле при появлении цвета 3 программа должна вернуться в начало, к циклу 1.

Как я попытался это воплотить(показал всё кроме номеров цветов, вместо них написал "цвет1", "цвет2" и "цвет3"):
Code: (clickermann) [Select]
$cheack = 0
FOR ( ($cheack = 0), ($cheack < 15) )
   GETSCREEN
   IF_PIXEL_IN(628,526,662,552, цвет1)
   LCLICK(500,896)
   WAIT(35)
   ELSE
       IF_PIXEL_IN(628,526,662,552, цвет2)
        LCLICK(500,896)
        WAIT(35)
       ELSE
        IF_PIXEL_IN(628,526,662,552,цвет3)
WAIT(35)
$cheack = 0
END_IF   
     END_IF
   END_IF
END_CYC
$cheak = 15
FOR ( ($cheack < 23) & ($cheack > 14) )
  LCLICL(688,752)
  GETSCREEN
  IF_PIXEL_IN(628,526,662,552, цвет1)
   LCLICK(500,896)
   WAIT(35)
   ELSE
     IF_PIXEL_IN(628,526,662,552, цвет2)
      LCLICK(500,896)
      WAIT(35)
     ELSE
        IF_PIXEL_IN(628,526,662,552,цвет3)
         LCLICK(623,743)
WAIT(35)
$cheack = 0
END_IF   
     END_IF
   END_IF
END_CYC
$cheack = 22
HALT

Pages: [1]