Что нового

[Мышь, клавиатура] одновременное выполнение нескольких условий

Safron9999

Новичок
Сообщения
42
Репутация
0
Подскажите пожалуйста как сделать так, чтобы действие выполнялось при одновременном совпадении нескольких условий? (2-х и более)
Мышь кликала по координатам при одновременном совпадении 2-х и более цветов и только при совпадении всех одновременно, а не одного из...
Код:
If "0x" & Hex(PixelGetColor(1019, 552),6) = 0x181411 Then ;тут еще несколько условий
MouseClick("left",1155,538,1)
EndIf


заранее спасибо.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
Код:
If "0x" & Hex(PixelGetColor(1019, 552),6) = 0x181411 Then ;тут еще несколько условий
	If "0x" & Hex(PixelGetColor(pew pew 1),6) = 0x181411 Then
		If "0x" & Hex(PixelGetColor(pew pew 2),6) = 0x181411 Then
			MsgBox(0,0,1)
		Else
			;
		EndIf
	Else
		;
	EndIf
Else
	;
EndIf

6 условий
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
спасибо )
Код:
If "0x" & Hex(PixelGetColor(pew pew 2),6) = 0x181411 Then

pew на сколько я понимаю координата? а цифра 2 - это "порядковый номер"? в следующем условии надо ставить 3?
и еще вопрос возник есть ли какое-либо ограничение по использованию PixelGetColor? не будет большое их количество тормозить работу скрипта?
и еще ) с какой периодичностью PixelGetColor считывает цвет? ))
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
624
используй AND между условиями
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
pew pew 1 и 2 это просто то место куда ты должен подставить свои координаты.
PGC считывает цвет за то время которое проходит после инициализации команды и до ее выполнения. Узнать ее для своего компьютера ты можешь приладив соответствующие таймеры.
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
не получается :( одно из условий используется и в первом и во втором случае... когда оно используется одно то действие должно быть одно, а когда в связке с другим условием то действие должно быть другое... а в этом случае всегда выполняется 1 действие... (

Код:
If "0x" & Hex(PixelGetColor(1019, 552),6) = 0x181411 Then
MouseClick("left",848,537,1)
Sleep(Random(450, 600, 1))
EndIf
If "0x" & Hex(PixelGetColor(1019, 552),6) = 0x181411 Then 
"0x" & Hex(PixelGetColor(734, 631),6) = 0xF99B01 Then
MouseClick("left",1013,505,1)
Sleep(Random(450, 600, 1))
EndIf
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
Как вариант
Код:
If "0x" & Hex(PixelGetColor(1019, 552),6) = 0x181411 And "0x" & Hex(PixelGetColor(734, 631),6) <> 0xF99B01 Then
    MouseClick("left",848,537,1)
    Sleep(Random(450, 600, 1))
EndIf
If "0x" & Hex(PixelGetColor(1019, 552),6) = 0x181411 And "0x" & Hex(PixelGetColor(734, 631),6) = 0xF99B01  Then
    MouseClick("left",1013,505,1)
    Sleep(Random(450, 600, 1))
EndIf



Добавлено:
Сообщение автоматически объединено:

Как более оптимальный вариант:
Код:
Local $test1 = "0x" & Hex(PixelGetColor(1019, 552),6), $test2 = "0x" & Hex(PixelGetColor(734, 631),6)
If $test1 = 0x181411 And $test2 <> 0xF99B01 Then
    MouseClick("left",848,537,1)
    Sleep(Random(450, 600, 1))
ElseIf $test1 = 0x181411 And $test2 = 0xF99B01 Then
    MouseClick("left",1013,505,1)
    Sleep(Random(450, 600, 1))
EndIf
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Код:
Switch
	Case ...
	...
EndSwitch

Это быстрее работает... :smile:
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
последний вариант работает идеально! )) спасибо Belfigor !! )
 
Верх