| 
		
	
	
	
	
	   findimage Lua., Помощь написание скрипта.  | 
	 
	    
	  | 
	           | 
	 
   
	 
  
 
	
		| Санёк.R. | 
		
			
			
				   6.11.2022, 10:22
			 
			
			
		 | 
	 
	
		
        	
  
        		  
  
        		Neophyte 
        		Сообщений: 11 
        		Регистрация: 3.9.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.330 
Возраст: 21
  
        		 
        	 
        	   
        | 
       
			
			Добрый день. Хочу написать скрипт с 0. Кто сможет помогите пожалуйста. Буду писать по очериди что надо. Это есть. Код  --lua math.randomseed(os.clock()) local handle = findwindow('кнут') if handle then   workwindow(handle[1][1])   showwindow(handle[1][1])   windowpos(1, 1, 1366, 768) else   log('Окно не найдено') end log 'clear' log 'mode compact' log ("open", 10, 563, 290, 190) -- открыть окно лога в координатах , с размером log ("АС")
  --есть: Работает не очень как хочу но это ПОТОМ. local startX, startY, endX, endY = 0, 0, 1366, 768  -- координаты поиска local path = [[C:\Newfindi]] -- путь к картинкам
  local image = {"Сундук", "Красный", "Синий", "Зелёный", "Отдать", "Забрать"}   -- Именами картинок hint ("Всего картинок для поиска " .. #image) for i= #image, 1, -1  do   --  for i=1, #image do  -- цикл для поиска картинок     local arr, a = findimage (startX, startY, endX, endY, {path .. "\\" .. image[i] .. ".bmp"}, 2)  -- поиск картинки     if a > 0 then    -- if  arr then        kleft (arr[1][1], arr[1][2])        wait (310 + math.random (100))     end end
 
 НАДО: Сделать Ждал появления Красной картинки на экране и нашёл её в папке где картинки. Это как пример while color(639, 165,"abs") ~= 1331506 do -- ЖДАТЬ Это первое что надо решить. Потом всё остальное.Спасибо. Сообщение отредактировал DarkMaster - 6.11.2022, 10:54 
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| DarkMaster | 
		
			
			
				   6.11.2022, 11:03
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			Цитата for i= #image, 1, -1  do   --  for i=1, #image do  -- цикл для поиска картинок Обратный порядок чем-то обусловлен? Закоменченное for i=1, #image do пробще и как-то логичнее. Цитата НАДО: Сделать Ждал появления Красной картинки на экране и нашёл её в папке где картинки. Что есть нашел картинку в папке? Ну если мы ищем на экране "ваза.bmp", то в папке будет "ваза.bmp". По ожиданию: Код  while color(x, y) ~= your_color do     wait(100) end
 
 Если задача стоит в случае верного цвета дополнительно проверить наличие картинки (так делать не рекоменду., т.к. только замедлите скрипт, обычно проще по ресурсам сразу искать конечную картинку за исключением случаев очень большой зоны поиска и большой картинки): Код  while not (color(x, y) == your_color and findimage(...)) do     wait(100) end
 
  Сообщение отредактировал DarkMaster - 6.11.2022, 11:08 
			
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Санёк.R. | 
		
			
			
				   6.11.2022, 12:02
			 
			
			
		 | 
	 
	
		
        	
  
        		  
  
        		Neophyte 
        		Сообщений: 11 
        		Регистрация: 3.9.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.330 
Возраст: 21
  
        		 
        	 
        	   
        | 
       
			
			Цитата(Demych1 @ 6.11.2022, 11:47)    Аналогичная проблема: нужно дождаться появления определенной картинки на экране и кликнуть по ней, и ждать ее снова. Сделал так:
  while_not   #a > 0 wait 2000 set #a FindImage (100 100 1920 1080 (E:\Картинки\Нашход.bmp) %arr 2 50 20 15) end_while Kleft %arr [1 1] %arr [1 2]
  Все нормально-ждет потом ее нажимает, если скрипт остановить и снова запустить, тоже ждет и только потом жмет. Проблема кода скрипт без остановки повторяется то ожидания нет, идет исполнение каждой строки и клик в ранее установленные координаты. Как сделать чтоб в зацикленном скрипте тоже работало.
 
 Не знаю сам только учусь. А так while_not   #a > 0 wait 2000 end_while set #a FindImage (100 100 1920 1080 (E:\Картинки\Нашход.bmp) %arr 2 50 20 15) Kleft %arr [1 1] %arr [1 2] end_while  
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Demych1 | 
		
			
			
				   6.11.2022, 12:31
			 
			
			
		 | 
	 
	
		
        	
  
        		 
  
        		Registred 
        		Сообщений: 6 
        		Регистрация: 6.11.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.405 
Возраст: 45
  
        		 
        	 
        	   
        | 
       
			
			Цитата(Санёк.R. @ 6.11.2022, 12:02)    Не знаю сам только учусь. А так while_not   #a > 0 wait 2000 end_while set #a FindImage (100 100 1920 1080 (E:\Картинки\Нашход.bmp) %arr 2 50 20 15) Kleft %arr [1 1] %arr [1 2] end_while
 
 нет не работает: Не могу найти начало цикла: 'While  
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Demych1 | 
		
			
			
				   6.11.2022, 13:44
			 
			
			
		 | 
	 
	
		
        	
  
        		 
  
        		Registred 
        		Сообщений: 6 
        		Регистрация: 6.11.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.405 
Возраст: 45
  
        		 
        	 
        	   
        | 
       
			
			Цитата(Demych1 @ 6.11.2022, 11:47)    Аналогичная проблема: нужно дождаться появления определенной картинки на экране и кликнуть по ней, и ждать ее снова. Сделал так:
  while_not   #a > 0 wait 2000 set #a FindImage (100 100 1920 1080 (E:\Картинки\Нашход.bmp) %arr 2 50 20 15) end_while Kleft %arr [1 1] %arr [1 2]
  Все нормально-ждет потом ее нажимает, если скрипт остановить и снова запустить, тоже ждет и только потом жмет. Проблема кода скрипт без остановки повторяется то ожидания нет, идет исполнение каждой строки и клик в ранее установленные координаты. Как сделать чтоб в зацикленном скрипте тоже работало.
 
 Решил: требуется добавить шестую строку строку: set  #a  0 Все работает и в цикле теперь.  
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Санёк.R. | 
		
			
			
				   6.11.2022, 20:51
			 
			
			
		 | 
	 
	
		
        	
  
        		  
  
        		Neophyte 
        		Сообщений: 11 
        		Регистрация: 3.9.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.330 
Возраст: 21
  
        		 
        	 
        	   
        | 
       
			
			while not (color(x, y) == your_color and findimage(...)) do 	wait(100) end Куда не ставлю не выходит у меня. Вот написал простой скрипт чтоб понятней было что хочу . Всё по парядку работает как надо.только надо сократить и правельно сделать всё в findimange.Если не трудно помогите или отавлю таким рабочим но не красивым. Код  ::start:: local startX, startY, endX, endY = 0, 0, 1366, 768  -- координаты поиска  local path = [[C:\Newfindi]] -- путь к картинкам
  while color(715, 396,"abs") ~= 1914709 do -- ЖДАТЬ  НАДО Что бы findimange Было.  wait(500 + math.random(150)) end
   -- БЛОК КАРТИНОК ПРЕДМЕТОВ. local image = {"книга", "клыки", "коты"} -- ИМЕНА КАРТИНОК.   hint ("Всего картинок для поиска " .. #image)     for i=1, #image do  -- цикл для поиска картинок local arr, a = findimage (startX, startY, endX, endY, {path .. "\\" .. image[i] .. ".bmp"}, 2)  -- поиск картинки     if  arr then kleft (arr[1][1], arr[1][2])    wait (230 + math.random (100)) end end
  После клика по картинки выезжает табло со словами.  -- БЛОК КАРТИНОК НАДПИСЕЙ.    wait (230 + math.random (100)) local image = {"открыть", "опусташить", "вскрыть"} -- ИМЕНА СЛОВ.   hint ("Всего картинок для поиска " .. #image)     for i=1, #image do  -- цикл для поиска картинок local arr, a = findimage (startX, startY, endX, endY, {path .. "\\" .. image[i] .. ".bmp"}, 2)  -- поиск картинки     if  arr then kleft (arr[1][1], arr[1][2])    wait (1110 + math.random (170)) end end
  local image = {"череп"} --    hint ("Всего картинок для поиска " .. #image)     for i=1, #image do  -- цикл для поиска картинок local arr, a = findimage (startX, startY, endX, endY, {path .. "\\" .. image[i] .. ".bmp"}, 2)  -- поиск картинки     if  arr then    wait (210 + math.random (100)) log('Череп') goto start end end while color(715, 396,"abs") ~= 1914709 do -- ЖДАТЬ  НАДО Что бы findimange Было.  wait(500 + math.random(150)) end Ниже бругие блоки срипта. goto start
 
  Сообщение отредактировал DarkMaster - 7.11.2022, 23:13 
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Санёк.R. | 
		
			
			
				   7.11.2022, 11:06
			 
			
			
		 | 
	 
	
		
        	
  
        		  
  
        		Neophyte 
        		Сообщений: 11 
        		Регистрация: 3.9.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.330 
Возраст: 21
  
        		 
        	 
        	   
        | 
       
			
			Цитата(Madeus @ 7.11.2022, 10:53)   Если правильно понял что ты хочешь  Код repeat   image1 =  findimage(startX, startY, endX, endY, {path .. "\\" .. your_image .. ".bmp"}, 2)   until image1 Спасибо. Попробую.  
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Санёк.R. | 
		
			
			
				   8.11.2022, 9:20
			 
			
			
		 | 
	 
	
		
        	
  
        		  
  
        		Neophyte 
        		Сообщений: 11 
        		Регистрация: 3.9.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.330 
Возраст: 21
  
        		 
        	 
        	   
        | 
       
			
			 Спасибо Всем. Ошибка найдена, проблема решена, всё работает как надо. По подсказке Cirus я выбрал этот вариант кода  может кому пригодится.
  local startX, startY, endX, endY = 0, 0, 1366, 768 -- координаты поиска local path = [[W:\Картинки\Зелёный.bmp]] -- путь к картинкам   
  while findimage(startX, startY, endX, endY, {path}, 2) == nil do     wait (300 + math.random (200)) log('Ждать') end 
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Остап Бендер | 
		
			
			
				   3.12.2022, 8:26
			 
			
			
		 | 
	 
	
		
        	
  
        		 
  
        		Registred 
        		Сообщений: 3 
        		Регистрация: 29.11.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.430
  
        		 
        	 
        	   
        | 
       
			
			Цитата(Zenogiasu @ 3.12.2022, 5:22)    Блин, ошибся)) я имел в виду Финдколор. Финдколор это замечательно и это спасение, если комп не тянет поиск мощных картинок в играх с норм графой. Интересует именно поиск цвета в области с возможностью указать погрешность и кол-во пикселей, а не просто ИФ-Цвет.
 
 Читай темы тут много таких образцов для Колор. А про findimage старинный, слабый  бук всё тянет тестирую на таком.  
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| DarkMaster | 
		
			
			
				   3.12.2022, 11:34
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			там есть "фишки" Код  close = {} -- Обязательно дожен быть глобальын. НЕ local local stat = findcolor(303, 291, 417, 392, 1, 1, "(0xC0E9F0-0xC0E9F9)", '%close',2,100,100)
  
			
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Санёк.R. | 
		
			
			
				   3.12.2022, 15:27
			 
			
			
		 | 
	 
	
		
        	
  
        		  
  
        		Neophyte 
        		Сообщений: 11 
        		Регистрация: 3.9.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.330 
Возраст: 21
  
        		 
        	 
        	   
        | 
       
			
			 Может кому пригодится новичкам как я. Подсказка cirus.
  --lua log 'clear' log 'mode compact' log ("open", 10, 593, 290, 185) log ("Бои")
  local startX, startY, endX, endY = 387, 40, 838, 282 -- координаты ТАБЛО ПОБЕДА.  local path = [[W:\Надписи\победа.bmp]] --  надпись ПОБЕДА. 
  local startX2, startY2, endX2, endY2 = 422, 490, 1065, 621 -- СУНДУК  с ОРУЖИЕМ.  local path2 = [[W:\Картинки]]     local image = {"блок","нож","щит","топор"} -- ИМЕНА КАРТИНОК: УДАРЫ. 
  local Win = 0 while Win == 0 do  -- пока значение переменной равно 0     for i=1, #image do         local arr, a = findimage (startX, startY, endX, endY, {path}, 2)       -- поиск картинки победа         if arr then    -- если найдена             log ("Победа!!!")             Win = 1    -- присвоить переменной значение 1             break      -- выход из цикла поиска картинок         end
          local arr, a = findimage (startX2, startY2, endX2, endY2, {path2 .. "\\" .. image[i] .. ".bmp"}, 2, 80, 1, 3)         if arr then             kleft (arr[1][1], arr[1][2])                wait (930 + math.random (300))         end     end
      if Win == 1 then break end    -- если значение переменной равно 1, то выход из цикла while         wait (310 + math.random (300)) end 
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Zenogiasu | 
		
			
			
				   13.12.2022, 23:27
			 
			
			
		 | 
	 
	
		
        	
  
        		   
  
        		Novice 
        		Сообщений: 59 
        		Регистрация: 3.12.2022         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 20.434 
Возраст: 28
  
        		 
        	 
        	   
        | 
       
			
			Цитата(Остап Бендер @ 3.12.2022, 8:26)    Читай темы тут много таких образцов для Колор. А про findimage старинный, слабый  бук всё тянет тестирую на таком.
 
 финдимаге может больше чем сама игра жрать при поиске банального поплавка для рыболовного бота поэтому приходится финдколором выкручиваться по умному  
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
 
	1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0) 
	Пользователей: 0  
 
        				  
  | 
 |