Что нового

[Автоматизация] Как сделать срабатывание второго цикла после первого?

f1end4

Новичок
Сообщения
6
Репутация
0
Код:
HotKeySet("{F6}","_Exit")
  WinActivate("-= Minecraft Galaxy =-")
  _main()
Func _main()
   While 1 ;
       $redpix = PixelSearch(185, 54 , 185, 54 , 0x650000)
       If IsArray($redpix) = False Then
           Send("E")
           Sleep(65)
           MouseMove( 686, 482, 0)
           MouseClick("LEFT")
           MouseMove(962, 437, 0)
           MouseClick("LEFT")
        EndIf
   
       $bluepix = PixelSearch(919, 449 , 1002, 523 , 0xFFE1D4)
       If IsArray($bluepix) = False Then
       MouseMove(942, 458, 0)
       MouseDown("left")
       Sleep(55)
       MouseMove(977, 479, 0)
       Sleep(55)
       MouseUp("left")
       Sleep(55)
       MouseMove( 1040, 747, 0)
       MouseClick("left")
       EndIf
 WEnd
 EndFunc

  Func _Exit()
    Exit
    EndFunc
 
A

Alofa

Гость
Re: [Автоматизация] Не работает 2 часть скрипта

Код:
Do 
    ; ...
Until 0 ; False

; Что объединяет два этих цикла?

While 1 ; True
	; ...
WEnd
 
Автор
F

f1end4

Новичок
Сообщения
6
Репутация
0
Re: [Автоматизация] Не работает 2 часть скрипта

Код:
HotKeySet("{F6}","_Exit")
  WinActivate("-= Minecraft Galaxy =-")
  _main()
Func _main()
   While 1 ;
       $redpix = PixelSearch(185, 54 , 185, 54 , 0x650000)
	   If IsArray($redpix) = False Then
		   Send("E")
	       Sleep(65)
		   MouseMove( 686, 482, 0)
		   MouseClick("LEFT")
		   MouseMove(962, 437, 0)
		   MouseClick("LEFT")
		EndIf
   
	   $bluepix = PixelSearch(919, 449 , 1002, 523 , 0xFFE1D4)
	   If IsArray($bluepix) = False Then
	   MouseMove(942, 458, 0)
	   MouseDown("left")
	   Sleep(55)
	   MouseMove(977, 479, 0)
	   Sleep(55)
	   MouseUp("left")
	   Sleep(55)
	   MouseMove( 1040, 747, 0)
	   MouseClick("left")
	   EndIf
 WEnd
 EndFunc

  Func _Exit()
	Exit
	EndFunc

Как сделать что бы функция $bluepix срабатывала только после срабатывания функции $redpix?
 
A

Alofa

Гость
Re: [Автоматизация] Не работает 2 часть скрипта

f1end4 сказал(а):
... Как сделать что бы функция $bluepix срабатывала только после срабатывания функции $redpix?
Почитать справку и для себя ответить на мой вопрос в предыдущем посте.
После того как вы на него ответите, у вас появится следующий вопрос. Вот на него ответ:
Код:
ContinueLoop
ExitLoop
Return


P.s: Это не издевка - это основы, без которых вам дальше не сдвинуться.
 
Автор
F

f1end4

Новичок
Сообщения
6
Репутация
0
Re: [Автоматизация] Не работает 2 часть скрипта

Alofa,пожалуйста просто помогите мне нужно по быстрее дописать скрипт,я не собираюсь работать с кодом в масштабах,мне нужен этот скрипт.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: [Автоматизация] Не работает 2 часть скрипта

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Автоматизация] Не работает 2 часть скрипта" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
A

Alofa

Гость
Re: [Автоматизация] Не работает 2 часть скрипта

f1end4 сказал(а):
... просто помогите...
Тема: "[Автоматизация] Как сделать срабатывание второго цикла после первого?"
У вас там всего один цикл, не понятно чего вы хотите. Опишите словами что делает скрипт.
 
Автор
F

f1end4

Новичок
Сообщения
6
Репутация
0
Смотрите $redpix ищет иконку молотка на так сказать"привате в игре" если молоток пропадает,срабатывает скрипт на установку зоны и доходит до гуи с выделением,а $bluepix так сказать "выделяет зону",мне надо что бы оно выделяло только после срабатывание скрипта на установку.
 
A

Alofa

Гость
Так что ли?
Код:
HotKeySet("{F6}", "_Exit")
WinActivate("-= Minecraft Galaxy =-")

While Sleep(100)
	PixelSearch(185, 54, 185, 54, 0x650000) ; Ищем пиксель 0x650000
	If Not @error Then ; Если находим - 2 раза MouseClick()
		Send("E")
		Sleep(65)
		MouseMove(686, 482, 0)
		MouseClick("LEFT")
		MouseMove(962, 437, 0)
		MouseClick("LEFT")
	Else
		Do ; Ждем появления пикселя 0xFFE1D4
			$bluepix = PixelSearch(919, 449, 1002, 523, 0xFFE1D4)
			Sleep(200)
		Until IsArray($bluepix)

		MouseMove(942, 458, 0) ; Ну и т.д.
		MouseDown("left")
		Sleep(55)
		MouseMove(977, 479, 0)
		Sleep(55)
		MouseUp("left")
		Sleep(55)
		MouseMove(1040, 747, 0)
		MouseClick("left")
	EndIf
WEnd

Func _Exit()
	Exit
EndFunc   ;==>_Exit

f1end4 сказал(а):
... мне нужно по быстрее дописать скрипт,я не собираюсь работать с кодом в масштабах...
В следующий раз с подобными заявками обращайтесь в Стол заказов.

OffTopic:
В свое время наткнулся на Autoit именно потому, что мне тоже нужно было побыстрей написать "костыль", не вдаваясь в подробности и не обдумывая код. И как вы думаете, что из этого вышло? Да ничего путного.
 
Автор
F

f1end4

Новичок
Сообщения
6
Репутация
0
Оно не детектит на пропадение "молотка"(первый пиксель серч).
 
A

Alofa

Гость
f1end4 сказал(а):
Первым делом измените название темы.
Alofa сказал(а):
... Тема: "[Автоматизация] Как сделать срабатывание второго цикла после первого?"
У вас там всего один цикл...

Вторым - запаситесь терпением и читайте: Документация AutoIt.

Изменил скрипт выше - далее я пас. Не люблю бить наугад.
 
Верх