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

Pages: 1 [2] 3
16
Что-то подобное, но не то у одноклассников заголовок, может несколько вариантов.

Вот набросал начальный код заново
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "0000.bmp", -1, 100)  // ищет картинку нашол значит и есть начальные координаты
      $check = 1
      LOGWRITE ("1")
      $X = $_return1+999
      $Y = $_return2+597
     
      $X00 = $_return1
      $Y00 = $_return2
      WHILE(PXL ($X, $Y) ! 1653112)  // проверка что вся область которая нужна видна
         WAITMS (100)
      END_CYC
      WAITMS(100)
   ELSE
      WAITMS(50)
// след код корректировки     
   END_IF
END_CYC
HALT

// от этого чтоб все остальное работало снимки поиски выполнения итд, как сделать
$X00     
$Y00
до остального думаю додумаюсь сам

17
Чтобы я мог перенести на любой комп, передвинуть окно, итд
Надо нашёл картинку перевести координаты переменную $XY00 =  $_return1, $_return2
И чтобы плясал весь поиск и выполнения (Скрипт) от переменной $XY00
Хотя эта переменная находится X600,Y100. я чтоб писал , якобы она находится X0,Y0
Как написать эту переменную так чтобы работал на весь код или вписать


И это просил как правильно написать IF_PIXEL_IN ($X1-96,$Y1-8, $X2+120,$Y2+19, 4145895) может понял бы как то все написать


18
Давай по другому объясню. Нужна полноценная привязка, привязка к игре запрещена то есть черный экран.
Чтобы работало как полагается да и остальные мелочи доделать нужна виртуальная привязка.
Чтоб некоторые вещи убрать из скрипта в первую очередь картинки много, можно заменить на пиксели, да и поиск можно на ожидание менять спокойно. Проблема одна малейший сдвиг грубо говоря не работает. поэтому пака написан па простому код время выполнения дольше да и ошибки есть

пример прошу на всякий случай вдруг не пойму как писать с этим кодом
сейчас для хроников почти написал
еще не думал ка там сборку делать
осталось в хрониках дирижабль сделать

с привязкой это бы лоб легче на много

19
Нужно задать зону выполнения для скрипта, то есть все выполнялось в той зоне

1) поиск  будет картинка "1"это будущий 0,0 .проверить виден пиксель от картинки на 900,600. это зона выполнения скрипта будет

2) не находит картинку или пиксель
   2.1) Не находит картинку этот шанс мал но может быть, ск прикрыта другим(и) окном пусть по ищет другую картинку "2" которая находится с права если по координаторам то будущий 900,0 и кликнет, выведет окно на передний план (если искать пиксель есть большой шанс что найдет другое ?)
   2.2) не  находит нижний пиксель, пусть пои щит картинку "2" которая указывала 900,0 нашлась, значит полосу прокрутки прокрутить вниз надо, найти и опустить на 20пх в низ. И повтор с пункта (1)
После повторов раз 10, стоп и сообщение не магу вывести зону, или что-то подобное

Конечно не плохо бы реализовать нижнюю прокрутку и расширения окна в лево

И приведите пару примеров поиска и клика.
Пожалуйста комментируйте строки

20
если не возможно написать по другому так и сказали бы
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)

21
появился еще вопросик

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

22
спасибо огромное
ты как палочка выручалочка

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

23
Помогите еще с одним всю голову переломал, может просто устал поэтому не доходит
Магу сам попробовать сделать по другому но получается большоват


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



24
проверьте так можно хуже не будет. после  обеда буду пробовать

ошибка черному по белому не вижу пака впрытык
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")

--\\--

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

25
Спасибо огромное жалко что нельзя оставить свои имина у картинок, если изменится картинка будет не большая путаница

если правильно понял
1я группа   FOR($i=1,($i<6)&($check = 0))
2я группа   FOR($i=6,($i<11)&($check = 0))
-\\-

file1...file10...

26
а да мне самому было интересно сколько времени пройдет и записал

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

27
ты свой выбрось проц. мой справляется на ура оперативы маловато уже 6гиг,
сейчас мозал работает открыто 2 окна 54 вкладки, и куча дополнений стоит, и ты говоришь мой проц говно
я с этими скриптами уже неделю мучаюсь пишу для 2х игр одновременно и прочитал здесь кучу всего большинство пролистал

28
не обращал внимания
извини постараюсь не допускать эту ошибку


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

не работает ?????? или это на оборот поиск всех кортинок
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

29
ДА
Code: (clickermann) [Select]
    GETSCREEN
    COLORMODE(7)
    $check_time=$_ms
    IF_PICTURE_IN (1041,308, 1192,432, "KRS_10х10.bmp", -1, 90)  // Где искать примерно и процент точности размер картинки
     
    END_IF
    LOGWRITE ($_ms-$check_time)
     
    HALT

LCLICK(1041,308)  // Alt+Q
LCLICK(1191,432)  // Alt+Q

1041,308, 1191,432,   

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

экран сам 1680х1050  = 0,0, $_xmax,$_ymax     
зона поиска 1680х1050 картинка 107х106 %точности 50 вышло   432989  7-8минут    БОЮСЬ НОВЫЙ ГОД ПРОЙДЕТ     да и процессор подгружает не плохо
зона поиска 647х227 картинка 107х106 %точности 50 вышло    18408   замучаюсь ждать
зона поиска 647х227 картинка 20х20 %точности 50 вышло       1091   так себе
зона поиска 647х227 картинка 20х20 %точности 90 вышло        315   пойдет
зона поиска 647х227 картинка 20х20 %точности 100 вышло        98   хорошо
зона поиска 647х227 картинка 10х10 %точности 100 вышло        52   еще лучше
зона поиска 151х124 картинка 10х10 %точности 90 вышло         12   класс
зона поиска 151х124 картинка 10х10 %точности 100 вышло         7   супер

зона поиска 1680х1050 картинка 10х10 %точности 100 вышло         625   хорошо для всего экрана



сам решай что тебе надо

30
Вот накидал простенький код

Рандом работает
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

Pages: 1 [2] 3