Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: schaft on May 27, 2014, 12:28:27 AM
-
С 28 строки начинается этот цикл, но на 6 итерацию уходит на sub(voskres). Почему на 6-ой?
Сори за длинный код.
$summ_glav=38
$count_glav=1
$day=1
$glava=22
$shet_glava=1
$chast=2
$shet_chast=1
$chast_dva=1
$abzac=1
$shet_abzac=1
$abzac_dva=3
$abzac_tri=4
$abzac_chetyr=3
$abzac_pyat=14
$screen=0
while($screen<1)
getscreen
IF_PICTURE_IN(0,0,$_xmax,$_ymax, "day1.bmp")
$screen=1
$xtemp=$_return1+10
$xday=$_return1+10 //1
$yday=$_return2+10 //1
END_IF
gosub(budni)
end_cyc
sub(budni)
for($day, $day<8)
if($count_glav=38)
traysay("Все главы записаны!")
halt
end_if
if($day=7)
$day=1
gosub(voskres)
end_if
dblclick($xday,$yday) // on day
$xday=$xday+23
wait(3)
vvod:
if((shet_glava=29)|(shet_glava=30)|(shet_glava=31)|(shet_glava=32)|(shet_glava=33)|(shet_glava=34)|(shet_glava=35)|(shet_glava=36)|(shet_glava=37)|(shet_glava=38))
inc($chast)
KEYSTRING($glava, 100)
keypress(190) // .
keystring($chast)
goto(no_abzac)
end_if
if((shet_glava=25)|(shet_glava=26)|(shet_glava=27)|(shet_glava=28))
inc($chast)
KEYSTRING($glava, 100)
keypress(190) // .
keystring($chast)
goto(no_abzac)
end_if
KEYSTRING($glava, 100)
keypress(190) // .
keystring($chast)
keypress(190) // .
keypress($abzac)
inc(abzac)
wait(1)
no_abzac:
KEYSTRING(" Харви", 100)
wait(1)
keypress(#enter)
wait(3)
if($shet_glava=28) //perehod na 23 glavu
inc($glava)
end_if
if($shet_glava=3) //22.3.1
inc(chast)
$abzac=1
end_if
if($shet_glava=7) //22.4.1
inc(chast)
$abzac=1
end_if
if($shet_glava=10) //22.5.1
inc(chast)
$abzac=1
end_if
$count_glav=$count_glav+1
inc($shet_glava)
end_cyc
end_sub
sub(voskres)
rclick($xday,$yday)
wait(2)
getscreen
IF_PICTURE_IN(0,0,$_xmax,$_ymax, "new_event.bmp")
lclick($_return1,$_return2)
END_IF
wait(3)
$xday=$xtemp
$yday=$yday+23
goto(vvod)
end_sub
-
Версия кликера какая? подозреваю что до 4.9 судя по сабам. Поэтому всё правильно, там цикл For наращивал переменную до выполнения цикла.
Из справки:
Примечания
...
Порядок действий цикла таков. Сначала проверяется условие выполнения. Если оно истинно, то происходит наращивание параметра цикла и только затем выполняется само тело цикла.
У тебя входящее $day=1
Значит тело цикла будет идти по переменным
2,3,4,5,6,7
итого по шести... на что ты и жалуешься.
В твоём случае в цикл нужно входить с нулём $day=0, тогда как раз будет итерация по дням недели 1-7
В версии от 4.9 цикл наращивает переменную после прохождения тела цикла (когда встретит END_CYC), поэтому там тебе нужно бы было сделать, как у тебя.
P.S. Зачем вот такое условие?
if((shet_glava=29)|(shet_glava=30)|(shet_glava=31)|(shet_glava=32)|(shet_glava=33)|(shet_glava=34)|(shet_glava=35)|(shet_glava=36)|(shet_glava=37)|(shet_glava=38))
почему не сделать аккуратней и наглядней
if(($shet_glava>28) & ($shet_glava<39))
-
версия кликера сначала была 4.5, потом скачал 10, и в обеих версиях цикл так себя ведет .
Хотя может быть и вру. Я и ту и ту версию пробовал, и поэтому не вспомню уже, а задачу уже выполнил.
А насчет сабов, то они в 4.5 и в 10.
почему не сделать аккуратней и наглядней
Код: Clickermann
if((shet_glava>28) & (shet_glava<39))
да, это лучше будет, спасибо.
-
if((shet_glava>28) & (shet_glava<39))
Где знак доллара $ ??
Вот переделал, теперь будет работать на последней 4.10 версии.
Избавился от гото и подпрограмм. это все только усложняло читаемость кода
$summ_glav=38
$count_glav=1
$day=1
$glava=22
$shet_glava=1
$chast=2
$shet_chast=1
$chast_dva=1
$abzac=1
$shet_abzac=1
$abzac_dva=3
$abzac_tri=4
$abzac_chetyr=3
$abzac_pyat=14
$screen=0
start:
getscreen
IF_PICTURE_IN(0,0,$_xmax,$_ymax, "day1.bmp")
$screen=1
$xtemp=$_return1+10
$xday=$_return1+10 //1
$yday=$_return2+10 //1
END_IF
for($day, $day<8)
if($count_glav=38)
HINTPOPUP("Все главы записаны!")
halt
end_if
if($day=7)
$day=1
rclick($xday,$yday)
wait(2)
getscreen
IF_PICTURE_IN(0,0,$_xmax,$_ymax, "new_event.bmp")
lclick($_return1,$_return2)
wait(3)
END_IF
$xday=$xtemp
INC($xday,23)
ELSE
dblclick($xday,$yday) // on day
INC($xday,23)
wait(3)
end_if
if(($shet_glava>24)&($shet_glava<29))
inc($chast)
KEYSTRING($glava, 100)
keypress(190) // .
keystring($chast)
ELSE
if(($shet_glava>28)&($shet_glava<39))
inc($chast)
KEYSTRING($glava, 100)
keypress(190) // .
keystring($chast)
ELSE
KEYSTRING($glava, 100)
keypress(190) // .
keystring($chast)
keypress(190) // .
keypress($abzac)
inc(abzac)
wait(1)
end_if
end_if
KEYSTRING(" Харви", 100)
wait(1)
keypress(#enter)
wait(3)
if($shet_glava=28) //perehod na 23 glavu
inc($glava)
end_if
if($shet_glava=3) //22.3.1
inc($chast)
$abzac=1
end_if
if($shet_glava=7) //22.4.1
inc($chast)
$abzac=1
end_if
if($shet_glava=10) //22.5.1
inc($chast)
$abzac=1
end_if
INC($count_glav,1)
inc($shet_glava)
end_cyc
GOTO(start)
-
Я против доллара :) ;D ;D. Долой Америку.
Даёшь переменную со знаком рубля.
Это сказывается путаница. Пишу всякую мелочь на питоне, там переменные без знаков. Уже в глазах рябит...
версия кликера сначала была 4.5, потом скачал 10, и в обеих версиях цикл так себя ведет .
Хотя может быть и вру. Я и ту и ту версию пробовал, и поэтому не вспомню уже, а задачу уже выполнил.
А насчет сабов, то они в 4.5 и в 10.
Точно ошибаешься, циклы работают по разному.
Сабы есть и там и там, но выглядят и вызываются тоже по разному.