Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Iblue2d2bida on May 31, 2014, 05:09:05 AM

Title: while-for в sub'е
Post by: Iblue2d2bida on May 31, 2014, 05:09:05 AM
Code: [Select]
sub(g)
while($mymper5 = 0)
keydown(57)
waitms(100)
keyup(57)
print("2")
waitms(200)
end_cyc
 end_sub
sub(mp)
chick()
print("!")
if($mymper5 = 1)
print("@")
g()

end_if
end_sub

mp()
halt
так в не принтует "2",т.е. не заходит в while?
Code: [Select]
sub(g)
for($q3,$q3 < 3)
KEYDOWN(57)
print("2")
Waitms(1500)
KEYUP(57)
end_CYC
 end_sub
sub(mp)
chick()
print("!")
if($mymper5 = 1)
print("@")
g()

end_if
end_sub

mp()
halt
и так не работает.

Code: [Select]
sub(g)
if($mymper5 = 0)
else
keydown(57)
waitms(100)
keyup(57)
print("2")
waitms(200)
end_if
 end_sub
sub(mp)
chick()
print("!")
if($mymper5 = 1)
print("@")
g()

end_if
end_sub

mp()
halt
так все в порядке. v4.10,win 8.1.у всех так?или где-то ошибся?
Title: Re: while-for в sub'е
Post by: aden on May 31, 2014, 10:30:29 AM
Обьяви переменную передд вызовом саба и внутри саба выведи в лог значение переменной
И понятно будет
Title: Re: while-for в sub'е
Post by: Vint on May 31, 2014, 10:34:09 AM
g() вызывается при $mymper5 = 1
А while внутри выполняется только при $mymper5 = 0
А что ты ожидал?
Title: Re: while-for в sub'е
Post by: Iblue2d2bida on June 01, 2014, 04:20:29 AM
под состоянием аффекта писал.

Code: (clickermann) [Select]
$dol = pxl(111,111)
$pd = 1111111
$dolper = 0
SUB(c)
GETSCREEN
waitms(100)
IF($dol = $pd) //  заменил на IF_PIXEL_IN(111,111,111,111, $pd)
 $dolper = 1
 ELSE //ecли нет
 $dolper = 0
 end_if
END_SUB

start:
cHICK()

while($dolper = 0)
waitms(100)
keypress(#1)
waitms(200)
c()
end_cyc

halt
goto(start)
Всем спасибо,решил сам.IF не корректно работал, и даже при самостоятельной проверки на наличия пикселя нужного цвета,IF отказывался менять переменную.
Изменил на IF_PXEL_IN и все работает на ура.
Title: Re: while-for в sub'е
Post by: Oraven on June 01, 2014, 12:45:08 PM
pxl(111,111) до GETSCREEN вызывает а потом в цикле два числа в двух переменных ($dol = $pd) пытается "гетскренить"  ;D

Зачем все так усложнять этими подпрограммами ?!
Code: (clickermann) [Select]
$pd = 1111111
$dolper = 0

while($dolper = 0)
   keypress(#1)
   waitms(200)
   GETSCREEN
   IF(pxl(111,111) = $pd)
      $dolper = 1
   ELSE
      $dolper = 0
   end_if
end_cyc

halt
Title: Re: while-for в sub'е
Post by: Vint on June 02, 2014, 08:24:32 AM
Да уж... А потом "IF не корректно работал".
Ну вот зачем сразу валить на программу. Прочитает посетитель такие посты и подумает, что простые условия невозможно заставить корректно работать. В программе есть баги, но не нужно вешать всех собак. В первую очередь пересмотреть скрипт.
Title: Re: while-for в sub'е
Post by: Iblue2d2bida on June 03, 2014, 09:38:57 AM
уважаемые.раз использовал sub,значит задумывалось сократить скрипт и сделать более читабельным.однако,уже понял,что лучше использовать то,что проверенно.
Title: Re: while-for в sub'е
Post by: Vint on June 03, 2014, 09:54:22 AM
Да используй, кто же спорит. Только ты не правильно делаешь. Проверенность здесь не при чём.

pxl  это функция, она получает цвет пиксела во время своего вызова. В том месте, где написана. У тебя это первая строка
Code: (clickermann) [Select]
$dol = pxl(111,111)
Вот перед ней как минимум должен быть GETSCREEN.
Это одно.
В этой же 1 строке $dol  получила значение цвета и всё..., больше ты её нигде не меняешь.
А ждать и проверять IF-ом хоть в сабе, хоть без саба бесполезно.
Ну вот оно же в SUB-е
Code: (clickermann) [Select]
$pd = 1111111
$dolper = 0
SUB(c)
   GETSCREEN
   waitms(100)
   IF(pxl(111,111) = $pd)
      $dolper = 1
   ELSE //ecли нет
      $dolper = 0
   end_if
END_SUB
Title: Re: while-for в sub'е
Post by: Iblue2d2bida on June 03, 2014, 10:40:03 AM
еще раз ,пожалуйста,для особо отрешенных. По моей задумке в переменной ($dol) просто задается фиксированный координат,который потом будет вызывать в условии while или if для последующего сравнения с заданным цветом в другой переменной($pd).
Title: Re: while-for в sub'е
Post by: aden on June 03, 2014, 10:46:32 AM
еще раз ,пожалуйста,для особо отрешенных. По моей задумке в переменной ($dol) просто задается фиксированный координат,который потом будет вызывать в условии while или if для последующего сравнения с заданным цветом в другой переменной($pd).
я понимаю почему у вас не получается написать скрипт рабочий, ваши мысли стольже сумбурны как и логика скрипта.

перефразируйте нифига не понятно
Title: Re: while-for в sub'е
Post by: Oraven on June 03, 2014, 11:15:50 AM
еще раз ,пожалуйста,для особо отрешенных. По моей задумке в переменной ($dol) просто задается фиксированный координат,который потом будет вызывать в условии while или if для последующего сравнения с заданным цветом в другой переменной($pd).

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

Code: (clickermann) [Select]
$dol1 = 111
$dol2 = 111

$pd = 1111111
$dolper = 0
SUB(c)
   GETSCREEN
   IF(pxl($dol1,$dol2) = $pd)
      $dolper = 1
   ELSE //ecли нет
      $dolper = 0
   end_if
   waitms(100)
END_SUB

start:
cHICK()

while($dolper = 0)
   waitms(100)
   keypress(#1)
   waitms(200)
   c()
end_cyc

halt
goto(start)
Title: Re: while-for в sub'е
Post by: Iblue2d2bida on June 03, 2014, 11:52:05 AM
еще раз ,пожалуйста,для особо отрешенных. По моей задумке в переменной ($dol) просто задается фиксированный координат,который потом будет вызывать в условии while или if для последующего сравнения с заданным цветом в другой переменной($pd).

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

Code: (clickermann) [Select]
$dol1 = 111
$dol2 = 111

$pd = 1111111
$dolper = 0
SUB(c)
   GETSCREEN
   IF(pxl($dol1,$dol2) = $pd)
      $dolper = 1
   ELSE //ecли нет
      $dolper = 0
   end_if
   waitms(100)
END_SUB

start:
cHICK()

while($dolper = 0)
   waitms(100)
   keypress(#1)
   waitms(200)
   c()
end_cyc

halt
goto(start)

спасибо,этим я пользовался.переоценил возможности кликермана.Вопрос не в кассу: где можно посмотреть полный набор символов,которые понимает кликерман? "умножить","плюс" - это понятно интуитивно,но хотелось бы увидеть рамки применения и примеры, в частности интересны "не равно" и "или".
Title: Re: while-for в sub'е
Post by: aden on June 03, 2014, 12:05:20 PM
Операции сравнения
(a > b) = 1, если a > b (вслучае если a и b строки, сравниваются их длины)
(a < b) = 1, если a < b (вслучае если a и b строки, сравниваются их длины)
(a = b) = 1, если a равно b (поддерживает строки)
(a ! b) = 1, если a неравно b (поддерживает строки)

Логические операторы
На самом деле, битовые операции (см. учебную статью на форуме). Однако в контексте данного параграфа просто позволяют объединять логические выражения и операции сравнения в комплексные условия
Логическое И: (a & b) = 1 если и a = 1 и b = 1
Логическое ИЛИ: (a | b) = 1 если a = 1 или b = 1, или оба
Логическое исключающее ИЛИ: (a ^ b) = 1 если только a = 1 или только b = 1, но не оба


Title: Re: while-for в sub'е
Post by: Vint on June 03, 2014, 01:21:57 PM
еще раз ,пожалуйста,для особо отрешенных. По моей задумке в переменной ($dol) просто задается фиксированный координат,который потом будет вызывать в условии while или if для последующего сравнения с заданным цветом в другой переменной($pd).
"Задумка" у тебя отрешённая как и реализация.
Title: Re: while-for в sub'е
Post by: JacsoN on February 21, 2021, 07:43:58 PM
так я  думаю ету  тему стоит поднять в  верх ! ! !   есть тут   полезное  обьяснение
Title: Re: while-for в sub'е
Post by: dramster on February 21, 2021, 09:24:52 PM
так я  думаю ету  тему стоит поднять в  верх ! ! !   есть тут   полезное  обьяснение

Объяснение чего? Что тут вообще полезного? Тема доисторическая, и ни о чем. Если у тебя конкретно что-то не получается, так и пиши что именно.
Title: Re: while-for в sub'е
Post by: kiril on February 22, 2021, 10:20:12 AM
так я  думаю ету  тему стоит поднять в  верх ! ! !   есть тут   полезное  обьяснение
/
 7 лет тут ничего полезного не находили и вот опять!  ;D
Title: Re: while-for в sub'е
Post by: JacsoN on February 22, 2021, 09:36:51 PM
я  в  теме  увидел пример  представленый   умными  людьм   пощитал нужним  поднять  тему)   а  не  плодить похожие