Что нового

Update #1. Не работает "OR".

StarWash

Новичок
Сообщения
27
Репутация
0
Не работает "OR". Hex - не помогает...

Код:
$Check = PixelGetColor(599, 222)
					If $Check = 0xFFFFFF or $Check = 0x585B5E Then
						$Unstuck1 = 0
						...
						EndIf
					Else
						$Unstuck1 = $Unstuck1 + 1
						If $Unstuck1 > 10 Then
							$Unstuck1 = 0
							MouseClick("left", 95, 395, 1, 0)
							Sleep (500)
							MouseClick("left", 95, 305, 1, 0)
							Sleep (500)
						EndIf
						Sleep (500)
					EndIf
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Re: Не работают and, elseif, not.

StarWash
Попробуйте удалить строку 27
Код:
$Unstuck1 = 0
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Re: Не работают and, elseif, not.

StarWash
Попробуйте
Код:
PixelGetColor

"возвращать" не в десятиричном значении цвета пикселя, а в "Hex"... т.к. у Вас условие стоит:
Код:
If $Check = 0xFFEEBB Then

т.е. Вы проверяете десятиричное значение с "Hex"

Пример 1:
Код:
$Check = Hex(PixelGetColor(170, 90))
If $Check = 0xFFEEBB Then


Пример 2:
Код:
$Check = PixelGetColor(170, 90))
If Hex($Check) = 0xFFEEBB Then
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Не работают and, elseif, not.

---Zak---,
Вы не правы:
Код:
Local $iCheckBin = 0xFFEEBB, $iCheckDec = 16772795
ConsoleWrite('Hex: ' & Hex($iCheckBin, 6) & @TAB & 'CheckBin = Hex: ' & ($iCheckBin = Hex($iCheckBin, 6)) & @LF)
ConsoleWrite('CheckBin = CheckDec: ' & ($iCheckBin = $iCheckDec) & @LF)
 
Автор
S

StarWash

Новичок
Сообщения
27
Репутация
0
Re: Не работают and, elseif, not.

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

erlik

Продвинутый
Сообщения
317
Репутация
84
Re: Не работают and, elseif, not.

Да, madmasles прав - сравнение десятичных и hex -значений абсолютно законно.
У вас StarWash просто жутко сложный алгоритм, в котором вы сами запутались, вот условия (как вам нужно) и не срабатывают. Работать с таким числом вложенных операторов сравнения - это не good. Нужно как то упростить логику - тогда все и станет на свои места.
Операторы Switch или Select гораздо более удобны для построения разветвленной логики.
 
Автор
S

StarWash

Новичок
Сообщения
27
Репутация
0
Re: Не работают and, elseif, not.

Код:
$Check = PixelGetColor(599, 222)
If ($Check = 0xFFFFFF) or ($Check = 0x585B5E) Then


Вот это помогло действительно. Просто скобочки!


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

erlik, я алгоритм со времени публикации доработан, других операторов не знаю. Если вы можете помочь мне - буду рад в скайпе maxpower2525.

Осталось совсем чуть-чуть... Эту тему можно считать пока что закрытой.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Re: Не работают and, elseif, not.

StarWash [?]
Просто скобочки
Скобочки тут не при чём. Просто вы изменили алгоритм.
Проблема у вас в том, что вы в строке 27 принудительно обнуляете $Unstuck1, а затем в строке
Код:
If $Check = 0xFFFFFF And $Unstuck1 < 2 Then
делаете проверку. Ноль всегда меньше двух и всё зависит только от цвета.
Ну и далее. Условие
Код:
ElseIf $Unstuck1 > 2 Then
никогда не выполнится, т.к. $Unstuck1 у вас обнуляется перед условием (в той же строке 27).
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Re: Не работают and, elseif, not.

madmasles
OffTopic:
к сожалению не знал - думал это разное значение. Спасибо - буду знать
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
StarWash
И что, теперь все должны редактировать свои сообщения, чтобы соответствовать вашему обновлению?
Возвращайте всё назад и создавайте новую тему.
 
Верх