Author Topic: HELP ME  (Read 1898 times)

0 Members and 2 Guests are viewing this topic.

Limon4ik

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
HELP ME
« on: May 05, 2019, 02:25:44 PM »
Здравствуйте, в программе я прошаренный новичок, вот написал скрипт:
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 6940927,782924,165512,14514161,5525233)
MOVE($_return1, $_return2)
WAITMS(100)
END_IF

Он ищет разные цвета(назову объекты) и наводит мышку на них
Суть в том что, он наводит мышку на самые дальние объекты от середины экрана.
Можно ли сделать так чтобы наводил мышкой по самым ближним объектам от середины экрана, до его конца?

Limon4ik

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: HELP ME
« Reply #1 on: May 05, 2019, 02:45:15 PM »
А и еще, есть несколько объектов в игре, можно сделать приоритет?
Тоесть есть в игре квадрат и треугольник, я хочу чтобы скрипт наводил курсор мышки сначало на треугольник а потом на квадрат

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: HELP ME
« Reply #2 on: May 05, 2019, 04:47:16 PM »
Code: (clickermann) [Select]
SUB(search, $x_1,$y_1,$x_2,$y_2,$proc)
   $ct_x=$x_1+int(($x_2-$x_1)/2)
   $ct_y=$y_1+int(($y_2-$y_1)/2)
   LOGWRITE ("Центр: ", $ct_x,",",$ct_y)
   $count_x=int((($x_2-$x_1)/100)*$proc)
   $count_y=int((($y_2-$y_1)/100)*$proc)
   LOGWRITE ("Расширение: ", $count_x,",",$count_y, " пикселов")
   $x = $ct_x
   $y = $ct_y
   $x2 = $ct_x
   $y2 = $ct_y
   $check = 0
   WHILE(($x>$x_1)&($y>$y_1)&($check=0))
      IF_PIXEL_IN($x,$y, $x2,$y2, 6940927,782924,165512,14514161,5525233)
         $check=1
         LCLICK($_return1, $_return2)
      ELSE
         INC($x,-$count_x)
         INC($y,-$count_y)
         INC($x2,$count_x)
         INC($y2,$count_y)
         WAITMS(1)
      END_IF
   END_CYC
END_SUB

// поиска из центра области 0,0, $_xmax,$_ymax с процентом расширения 0.5%

GETSCREEN
search(0,0, $_xmax,$_ymax, 0.5)
WAITMS(100)

HALT

Limon4ik

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: HELP ME
« Reply #3 on: May 05, 2019, 05:01:56 PM »
Спасибо 8)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: HELP ME
« Reply #4 on: May 13, 2019, 03:00:08 PM »
Ближайшая к заданным координатам/центру картинка:
http://crapware.aidf.org/forum/index.php?topic=33.msg20114#msg20114


Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: HELP ME
« Reply #5 on: May 13, 2019, 07:03:17 PM »
Не сдержался  :D

Code: (clickermann) [Select]
SUB(search, $x_1,$y_1,$x_2,$y_2,$proc)
   $ct_x=$x_1+int(($x_2-$x_1)/2)
   $ct_y=$y_1+int(($y_2-$y_1)/2)
   LOGWRITE ("Центр: ", $ct_x,",",$ct_y)
   $count_x=int((($x_2-$x_1)/100)*$proc)
   $count_y=int((($y_2-$y_1)/100)*$proc)
   LOGWRITE ("Расширение: ", $count_x,",",$count_y, " пикселов")
   $x = $ct_x
   $y = $ct_y
   $x2 = $ct_x
   $y2 = $ct_y
   $check = 0
   WHILE(($x>$x_1)&($y>$y_1)&($check=0))
      IF_PIXEL_IN($x,$y, $x2,$y2, 6940927,782924,165512,14514161,5525233)
         GETSCREEN($x,$y, $x2,$y2)
         SCANPXL($scan, $x,$y, $x2,$y2, 6940927)
         SCANPXL($scan, $x,$y, $x2,$y2, 782924)
         SCANPXL($scan, $x,$y, $x2,$y2, 165512)
         SCANPXL($scan, $x,$y, $x2,$y2, 14514161)
         SCANPXL($scan, $x,$y, $x2,$y2, 5525233)
         
         $dist = 10000
         $scan_size = ARRSIZE($scan)
         FOR($i=0, $i < $scan_size, 2)
            $X = $scan[$i]
            $Y = $scan[$i+1]
            $d_temp = DIST($ct_x, $ct_y, $X, $Y)
            IF($d_temp < $dist)
               $dist = $d_temp
               $Xdot_target = $X
               $Ydot_target = $Y
            END_IF
            IF($Y > ($ct_y + $dist))
               $i = $scan_size
            END_IF
         END_CYC
         UNDEFINE($scan)
         
         IF($dist ! 10000)
            LCLICK($Xdot_target, $Ydot_target)
            $check=1
         END_IF         
      ELSE
         INC($x,-$count_x)
         INC($y,-$count_y)
         INC($x2,$count_x)
         INC($y2,$count_y)
         WAITMS(1)
      END_IF
   END_CYC
END_SUB

GETSCREEN
search(0,0, $_xmax,$_ymax, 5.0)
WAITMS(100)

HALT



« Last Edit: May 13, 2019, 09:11:55 PM by Космич »
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»