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 - cheremburum

Pages: [1]
1
Общие вопросы / Re: Как сделать цикл
« on: May 20, 2018, 08:06:21 AM »
К слову, если инклюдом вы пытались вставить повторяющийся в разных местах код, то проще было бы использовать подпрограмму (SUB). Сам текст подпрограммы пишется 1 раз (выше всех вызовов - например сразу в начале скрипта), а вызов ее пишется всякий раз, когда нужно.
И про подпрограммы я читал, но пока оставил на потом. Хочу хотя бы то что понял освоить по человечески. А вот #include есть несколько файлов. Код практически одинаковый но везде разные координаты. Поэтому и использую его.

2
Общие вопросы / Re: Как сделать цикл
« on: May 18, 2018, 10:30:19 AM »
P.S. Вот  как так получается, что базовую вещь как цикл ты не знаешь, зато #include уже всунул. Откуда блин? Где написано что с этого нужно начинать. Если сдесь на форуме, то покажи, вымараем ту тему.
Я читаю справку  :( Но беда в том, что там написано видимо для людей которые уже знакомы с основами программирования. Я же с нуля пытаюсь разобраться. Так вот прочитав справку #include до меня сразу дошло, да и то видимо не так как надо. А вот For ни как в голову не влазит, 15 раз перечитывал и методом тыка пробовал  :-[ Вот и спросил когда терпение кончилось. 

3
Общие вопросы / Как сделать цикл
« on: May 18, 2018, 09:40:54 AM »
Подскажите пожалуйста. Есть кусок кода
Code: (clickermann) [Select]
LDOWN(2087,222)
WAITMS(300)
#include "send food Bbur.cms"
LUP(2289,221)
WAITMS(300)
LCLICK(2399,929)     //отправка Bbur-->Dob
WAIT(2)
как сделать так, что бы этот кусок отработал 5 раз и потом продолжил работать весь скрипт. Просто что бы не писать 5 раз одно и то же.
Скрипт и так огромный получился.

4
Спасибо. все заработало. Так и знал что все решается просто. Вот только теперь прийдется все координаты переписать. Но главное что работает.

5
Люди помогите, ломаю голову уже несколько дней. У меня ноутбук и к нему подключен обычный монитор. На обоих запущены несколько идентичных окон. Нужно определить цвет пикселя и при совпадении сделать клик. Так вот на обычном мониторе все отлично срабатывает, а на мониторе ноутбука не находит нужный цвет. Пробовал и  пиксель искать, и скрин картинки делать, и цветокоррекцию ни чего не помогает. Вообще заметил, что когда водишь курсором по монитору ноутбука, цвета определяются не правильно. Наводишь на красный, показывает синий, наводишь на синий показывает какой то коричневый.  Не пойму в чем прикол.

Для поиска использовал код шаблона. Как уже писал на обычном мониторе находит цвет, на ноутбуке нет.
Code: [Select]
GETSCREEN

SCANPXL($ARR_SCAN, 78,282, 120,333, 10211046)

$ARR_NUM = 0
$SHIFT_X = 1 // смещение (кол-во игнор пикселов после найденного)
$SHIFT_Y = 1
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   IF(($X > $X2) | ($Y > $Y2))
      $X2 = $X + $SHIFT_X
      $Y2 = $Y + $SHIFT_Y
      MOVE($X, $Y) // перемещаем курсор
      INC($SCAN_COUNT,1)
      LOGWRITE ("X: ", $X, " Y: ", $Y)
      WAITMS(100)
   END_IF
END_CYC

UNDEFINE($ARR_SCAN)

LOGWRITE ("=====================")
LOGWRITE ("Всего найдено: ", $SCAN_COUNT)

HALT

6
спасибо все отлично работает. вот только ещё пару вопросов. Я задал координаты начала движения курсора вот здесь
Code: (clickermann) [Select]
 
   $MOVE_Start_X = -1727
   $MOVE_Start_Y = 170
правильно ли это?
Второе. мне нужно что бы эта подпрограмма отработала 3 раза и потом работал другой код. Как это реализовать? нужно 3 раза использовать #include или есть другой способ?
пример
Code: (clickermann) [Select]
LCLICK(-1428,78)      //закр банк
WAIT(2)
LCLICK(-1430,517)     //откр базар
WAIT(2)
LCLICK(-1515,155)     //вкладка "помощь"
WAIT(2)
LCLICK(-1470,418)     //выбрать Dob
WAIT(2)

#include "send food.cms"
WAIT(2)

#include "send food.cms"
WAIT(2)

#include "send food.cms" 
WAIT(2)

LCLICK(-1822,78)      //возврат к списку
WAIT(2)
LCLICK(-1468,635)     //выбрать Bb
и ещё вопрос, строка HALT останавливает работу всего следующего за подпрограммой кода, можно ли её убрать?

7
Всем привет. Я только начал пользоваться программой. Подскажите, есть код перемещения курсора. Но нужно замедлить скорость перемещения. У меня не срабатывает.
Code: (clickermann) [Select]
$S_CORR = 0

SUB (m-move, $MOVE_END_X, $MOVE_END_Y)   
   $MOVE_SPEED = 25
   $MOVE_Start_X = -1727
   $MOVE_Start_Y = 170
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
   $MOVE_END_X = -1560
   $MOVE_END_Y = 170
 
   $dist= DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
 
   $MOVE_SPEEDVAR= INT((SQRT($dist))/$MOVE_SPEED)   
   IF($MOVE_SPEEDVAR < 1)
      $MOVE_SPEEDVAR = 1
   END_IF
         
   $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step       
 
   FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
      $MOVE_X = $MOVE_X+$MOVE_X_step
      $MOVE_Y = $MOVE_Y+$MOVE_Y_step
      MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
      WAITMS(1)
   END_CYC
 
   MOVE($MOVE_END_X, $MOVE_END_Y)
END_SUB
 
SUB (m-lclick, $MOVE_END_X, $MOVE_END_Y)
   $LC1 = $MOVE_END_X
   $LC2 = $MOVE_END_Y
   m-move($MOVE_END_X, $MOVE_END_Y)
   WAITMS(20)
   LDOWN($LC1, $LC2)
   WAITMS(30)
   LUP($LC1, $LC2)
   WAITMS(30)
END_SUB
 
m-lclick(-1480,735)

код взял тут же на форуме. скорость меняю вот в этой строке
Code: (clickermann) [Select]
$MOVE_SPEED = 25
и ещё вопрос в конце кода происходит клик мышью
Code: (clickermann) [Select]
m-lclick(-1480,735)мне этот клик не нужен, но если убрать эту строку тогда вообще ни чего не работает. Если не возможно его убрать то нужно сделать перед кликом паузу минимум 2 сек. тож не получается.

Pages: [1]