Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Зануда on July 01, 2017, 09:26:03 PM
-
GETSCREEN ($xx+491,$yy-57,$xx+713,$yy+622) //(908,50, 1130,729)
IF_PICTURE_IN ($xx+491,$yy-57,$xx+713,$yy+622, "на ос.bmp", -1, 70)// если нашли то запоминаем где она
LOGWRITE (" на ос")
$x= $_return1
$y= $_return2
GETSCREEN ($x-549,$y-27, $x-501,$y+20)
IF_PICTURE_IN ($x-549,$y-27, $x-501,$y+20, "нек на стр.bmp", -1, 70)// если вот это подтвердилось то все дальше работает а если нет то не работает зависает((( из за того что на страницы эта кнопка может быть несколько раз а кликер ищет с ЛВУ и получаеться что он возвращается искать картинку и о5 натыкаеться на ту же но она не подходит нам как сделать чтоб если не подошла он кординаты запомнил и уже ее пропускал
LOGWRITE ("это то что нам нада")
m_move($x+RND(-5,5),$y+RND(-5,5))
LCLICK($_xmouse,$_ymouse)
m_move($x+500+RND(-5,5),$y+RND(-5,5))
$time1 = $_time_t + 10
WHILE($time1 > $_time_t)
GETSCREEN ($xx+501,$yy+449,$xx+722,$yy+588) //(918,556, 1139,695)
COLORMODE(6, $xx+501,$yy+449,$xx+722,$yy+588)
IF_PICTURE_IN ($xx+501,$yy-449,$xx+722,$yy+588, "нек б.bmp", -1, 70)
$time1 = 0
LOGWRITE ("нашли б")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$time2 = $_time_t + 10
WHILE($time2 > $_time_t)
GETSCREEN ($xx-25,$yy+328,$xx+280,$yy+537)//(399,465, 679,644)
IF_PICTURE_IN ($xx-25,$yy+328,$xx+280,$yy+537, "нап.bmp", -1, 70)
$time2 = 0
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(1500,1700))
ELSE
LOGWRITE ("не нашли нап")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("не нашли б")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("это не нек ")// нужно запомнить кординыты и игнорить
GOTO(skip)
END_IF
-
В данном скрипте не хватает END_IF в конце, но раз это часть большого скрипта возможно ты его просто не скопировал.
Вот например картинка нашлась в координате 500,500
$x = 500
$y = 500
LOGWRITE ($x-549,",",$y-27,", ", $x-501,",",$y+20)
HALT
Лог:
9:46:02 -49,473, -1,520
В этом случаи у тебя область поиска будет задана не верно!
-
$_xm1= 85
$_ym2= 49
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
$MOVE_step = ($dist-1)/INT(SQRT($dist))
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR($MOVE_i=0, $MOVE_i < INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE(INT($MOVE_X) + RND(-2,2), INT($MOVE_Y) + RND(-2,2))
WAITMS($rnwait) // задержка при движении по точкам
END_CYC
END_SUB
SUB(m_move,$M_X,$M_Y)
$rnwait = RND(6,15) // случайная скорость
$MOVE_MID_X = INT(($_xmouse+$M_X)/2)
$MOVE_MID_Y = INT(($_ymouse+$M_Y)/2)
$otx = INT(ABS($_xmouse - $M_X) * 0.12)
$oty = INT(ABS($_ymouse - $M_Y) * 0.12)
mouse_move($MOVE_MID_X+RND(-$otx,$otx), $MOVE_MID_Y+RND(-$oty,$oty))
mouse_move($M_X,$M_Y)
MOVE($M_X,$M_Y) //Передвинуть окончательно в заданную точку
END_SUB
IF($xx1212=0 )
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "в.bmp")
$xx = $_return1
$yy = $_return2
LOGSHOW (1, 49,102)
LOGWRITE ("привязались")
$xx1212=1
$tim23 = $_time_t + 300
ELSE
LOGWRITE ("не привязались")
HALT
$xx1212=1
END_IF
END_IF
IF($tim23 < $_time_t)
m_move($_xm1+RND(-2,2), $_ym2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$tim23 = $_time_t + 300
$t87=1
//
END_IF
GETSCREEN ($xx+547,$yy+519,$xx+598,$yy+610) // (964,626,1015,717)
IF_PICTURE_IN ($xx+547,$yy+519,$xx+598,$yy+610, "череп.bmp", -1, 80)
LOGWRITE ("нашли череп")
IF($t87=1 )
WAITMS(500)
$t87=0
END_IF
$tim23 = 0
$tim23 = $_time_t + 300
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$ti=1
skip1:
$time = $_time_t + 10
WHILE($time > $_time_t)
GETSCREEN ($xx+98,$yy+514,$xx+162,$yy+591) //(515,621,579 ,698)
IF_PICTURE_IN ($xx+98,$yy+514,$xx+162,$yy+591, "мне.bmp", -1, 70)
$time = 0
LOGWRITE ("нашли мне")
IF($ti = 1)
WAITMS(800)
$ti=0
END_IF
GETSCREEN ($xx+491,$yy-57,$xx+713,$yy+622)
SCANPICTURE($ARR_SCAN, $xx+491,$yy-57,$xx+713,$yy+622, "на остров.bmp", -1, 70)
LOGWRITE ("нашли на остров")
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
($X, $Y) // перемещаем курсор
LOGWRITE ("X: ", $X, " Y: ", $Y)
WAITMS(100)
GETSCREEN ($x-549,$y-27, $x-501,$y+20)
IF_PICTURE_IN ($x-549,$y-27, $x-501,$y+20, "то на стр.bmp", -1, 70)
LOGWRITE ("это то жмякаем на остров")
m_move($x+RND(-5,5),$y+RND(-5,5))
LCLICK($_xmouse,$_ymouse)
m_move($x+500+RND(-5,5),$y+RND(-5,5))
$time1 = $_time_t + 10
WHILE($time1 > $_time_t)
GETSCREEN ($xx+501,$yy+449,$xx+722,$yy+588) //(918,556, 1139,695)
COLORMODE(6, $xx+501,$yy+449,$xx+722,$yy+588)
IF_PICTURE_IN ($xx+501,$yy-449,$xx+722,$yy+588, "то.bmp", -1, 70)
$time1 = 0
LOGWRITE ("нашли тыкаем")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$time2 = $_time_t + 10
WHILE($time2 > $_time_t)
GETSCREEN ($xx-25,$yy+328,$xx+280,$yy+537)//(399,465, 679,644)
IF_PICTURE_IN ($xx-25,$yy+328,$xx+280,$yy+537, "напасть.bmp", -1, 70)
LOGWRITE ("нашли напасть")
$time2 = 0
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(1500,1700))
ELSE
LOGWRITE ("не нашли напасть")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("не нашли ")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("это не то след стр")
END_IF
ELSE
LOGWRITE ("не нашли на остров")
GETSCREEN($xx+245,$yy+478,$xx+682,$yy+618) //(662,585, 1099,725)
IF_PICTURE_IN ($xx+245,$yy+478,$xx+682,$yy+618, "след стр.bmp", -1, 70)
LOGWRITE ("след сттр")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
m_move($_xmouse+100,$_ymouse)
WAITMS(rnd(300,500))
UNDEFINE($ARR_SCAN)
GOTO(skip1)
ELSE
GOTO(ski)
END_IF
END_CYC
ELSE
WAITMS(50)
END_IF
END_CYC
END_IF
ski:
SUB(элики,$dname1)
GETSCREEN ($xx+37,$yy+436, $xx+657,$yy+561)
IF_PICTURE_IN ($xx+37,$yy+436, $xx+657,$yy+561, $dname1, -1, 80)
LOGWRITE ("юзаем:" ,$dname1,")
m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(400,600))
END_IF
END_SUB
GETSCREEN($xx+282,$yy+41, $xx+378,$yy+73)
IF_PICTURE_IN ($xx+282,$yy+41, $xx+378,$yy+73, "ход.bmp", -1, 80)
элики("молния.bmp")
элики("плевок.bmp")
WAITMS(rnd(200,250))
END_IF
UNDEFINE($ARR_SCAN)
GETSCREEN ($xx+635,$yy-34,$xx+716,$yy+48)//(1052,73, 1133,155)
IF_PICTURE_IN (1052,73, 1133,155, "крестик.bmp", -1, 90)
LOGWRITE ("нашли крестик")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(2000,4000))
LOGCLEAR
m_move($_return1+100+RND(-2,2), $_return2+RND(-20,20))
END_IF
WAITMS(rnd(50,90))
вот так все работает как нужно но писали что с цыкла нельзя гото а я по другому не могу понять как сделать подправте чтоб было все правильно но работал так же как вот сейчас
-
Ошибка:
Строка 98
($X, $Y) // перемещаем курсор - Куда MOVE делось? Сотри строку полностью если она тебе не нужна
Строка 147
ELSE вне условия посреди цикла WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
Строка 183
LOGWRITE ("юзаем:" ,$dname1,") - лишнее ,"
UNDEFINE($ARR_SCAN) написано не пойми где.
Обнулять массив нужно после цикла WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
либо до SCANPICTURE. Даже если массива еще нет то ошибки не будет.
Для начала разберись с ELSE на 147 строке.
Конечно же выпрыгивать через гото из циклов нельзя.
-
98 строку убрал и в 183 поправил а насчет ELSE Строка 147 я не понял куда его нужно пристроить это дложно делаться если не нашло SCANPICTURE($ARR_SCAN, $xx+491,$yy-57,$xx+713,$yy+622, "на остров.bmp", -1, 70) а удаления масива понапихивал везде :Dот того что если оно только после выхода и цыкла что то не то наврное из за того что в цыкле это если но ян з как исправить а работать и так работает как нада но все равно хотелось бы чтоб все было как нада а не через *опу ;D можете показать где оно должно быть ???
-
Исправил, теперь все корректно. Гото там вообще не нужны все решается логикой.
$_xm1= 85
$_ym2= 49
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
$MOVE_step = ($dist-1)/INT(SQRT($dist))
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR($MOVE_i=0, $MOVE_i < INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE(INT($MOVE_X) + RND(-2,2), INT($MOVE_Y) + RND(-2,2))
WAITMS($rnwait) // задержка при движении по точкам
END_CYC
END_SUB
SUB(m_move,$M_X,$M_Y)
$rnwait = RND(6,15) // случайная скорость
$MOVE_MID_X = INT(($_xmouse+$M_X)/2)
$MOVE_MID_Y = INT(($_ymouse+$M_Y)/2)
$otx = INT(ABS($_xmouse - $M_X) * 0.12)
$oty = INT(ABS($_ymouse - $M_Y) * 0.12)
mouse_move($MOVE_MID_X+RND(-$otx,$otx), $MOVE_MID_Y+RND(-$oty,$oty))
mouse_move($M_X,$M_Y)
MOVE($M_X,$M_Y) //Передвинуть окончательно в заданную точку
END_SUB
IF($xx1212=0 )
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "в.bmp")
$xx = $_return1
$yy = $_return2
LOGSHOW (1, 49,102)
LOGWRITE ("привязались")
$xx1212=1
$tim23 = $_time_t + 300
ELSE
LOGWRITE ("не привязались")
HALT
$xx1212=1
END_IF
END_IF
IF($tim23 < $_time_t)
m_move($_xm1+RND(-2,2), $_ym2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$tim23 = $_time_t + 300
$t87=1
END_IF
GETSCREEN ($xx+547,$yy+519,$xx+598,$yy+610) // (964,626,1015,717)
IF_PICTURE_IN ($xx+547,$yy+519,$xx+598,$yy+610, "череп.bmp", -1, 80)
LOGWRITE ("нашли череп")
IF($t87=1 )
WAITMS(500)
$t87=0
END_IF
$tim23 = 0
$tim23 = $_time_t + 300
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$ti=1
$time = $_time_t + 10
WHILE($time > $_time_t)
GETSCREEN ($xx+98,$yy+514,$xx+162,$yy+591) //(515,621,579 ,698)
IF_PICTURE_IN ($xx+98,$yy+514,$xx+162,$yy+591, "мне.bmp", -1, 70)
$time = 0
LOGWRITE ("нашли мне")
IF($ti = 1)
WAITMS(800)
$ti=0
END_IF
UNDEFINE($ARR_SCAN) // перед поиском обнуляем массив
GETSCREEN ($xx+491,$yy-57,$xx+713,$yy+622)
SCANPICTURE($ARR_SCAN, $xx+491,$yy-57,$xx+713,$yy+622, "на остров.bmp", -1, 70)
LOGWRITE ("нашли на остров")
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
WAITMS(100)
GETSCREEN ($x-549,$y-27, $x-501,$y+20)
IF_PICTURE_IN ($x-549,$y-27, $x-501,$y+20, "то на стр.bmp", -1, 70)
LOGWRITE ("это то жмякаем на остров")
m_move($x+RND(-5,5),$y+RND(-5,5))
LCLICK($_xmouse,$_ymouse)
m_move($x+500+RND(-5,5),$y+RND(-5,5))
$time1 = $_time_t + 10
WHILE($time1 > $_time_t)
GETSCREEN ($xx+501,$yy+449,$xx+722,$yy+588) //(918,556, 1139,695)
COLORMODE(6, $xx+501,$yy+449,$xx+722,$yy+588)
IF_PICTURE_IN ($xx+501,$yy-449,$xx+722,$yy+588, "то.bmp", -1, 70)
$time1 = 0
LOGWRITE ("нашли тыкаем")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$time2 = $_time_t + 10
WHILE($time2 > $_time_t)
GETSCREEN ($xx-25,$yy+328,$xx+280,$yy+537)//(399,465, 679,644)
IF_PICTURE_IN ($xx-25,$yy+328,$xx+280,$yy+537, "напасть.bmp", -1, 70)
LOGWRITE ("нашли напасть")
$time2 = 0
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(1500,1700))
ELSE
LOGWRITE ("не нашли напасть")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("не нашли ")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("это не то след стр")
END_IF
END_CYC
IF(ARRSIZE($ARR_SCAN) = 0) // если массив пуст, значит не нашли на остров.bmp
LOGWRITE ("не нашли на остров")
GETSCREEN($xx+245,$yy+478,$xx+682,$yy+618) //(662,585, 1099,725)
IF_PICTURE_IN ($xx+245,$yy+478,$xx+682,$yy+618, "след стр.bmp", -1, 70)
LOGWRITE ("след сттр")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
m_move($_xmouse+100,$_ymouse)
WAITMS(rnd(300,500))
$time = $_time_t + 10 // продлеваем цикл WHILE($time > $_time_t)
ELSE
$time = 0 // выход из цикла WHILE($time > $_time_t)
END_IF
END_IF
ELSE
WAITMS(50)
END_IF
END_CYC
END_IF
SUB(элики,$dname1)
GETSCREEN ($xx+37,$yy+436, $xx+657,$yy+561)
IF_PICTURE_IN ($xx+37,$yy+436, $xx+657,$yy+561, $dname1, -1, 80)
LOGWRITE ("юзаем:" ,$dname1)
m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(400,600))
END_IF
END_SUB
GETSCREEN($xx+282,$yy+41, $xx+378,$yy+73)
IF_PICTURE_IN ($xx+282,$yy+41, $xx+378,$yy+73, "ход.bmp", -1, 80)
элики("молния.bmp")
элики("плевок.bmp")
WAITMS(rnd(200,250))
END_IF
GETSCREEN ($xx+635,$yy-34,$xx+716,$yy+48)//(1052,73, 1133,155)
IF_PICTURE_IN (1052,73, 1133,155, "крестик.bmp", -1, 90)
LOGWRITE ("нашли крестик")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(2000,4000))
LOGCLEAR
m_move($_return1+100+RND(-2,2), $_return2+RND(-20,20))
END_IF
WAITMS(rnd(50,90))
-
ой спасибо огромное :) просто я вчера сидел это все вобше угадывал методом тыка :-\
-
и все же нет не то :'( код то поправили но смысл теперь не тот он делает не так как нада (((((((((((((((((( :-[
разница в моем кривом варианте после того как он найдет на остров он провиряет то ли это если не то он возвращаеться и уже проверяет следующую картинку из масива если и это не то тогда возвращаеться назад проверять картинку из масива следующую если ее нет то выходит что картинки на остров больше нет значит след стр удаляем преждий масив и по новому если картинка есть проверяем то или не то если не то следующую проверяем а в вашем примере выходит тоже самое что бы просто через условия сдела он ток первую найденую проверяет то ли это если не то то все аминь завис :'(
-
$_xm1= 85
$_ym2= 49
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
$MOVE_step = ($dist-1)/INT(SQRT($dist))
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR($MOVE_i=0, $MOVE_i < INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE(INT($MOVE_X) + RND(-2,2), INT($MOVE_Y) + RND(-2,2))
WAITMS($rnwait) // задержка при движении по точкам
END_CYC
END_SUB
SUB(m_move,$M_X,$M_Y)
$rnwait = RND(6,15) // случайная скорость
$MOVE_MID_X = INT(($_xmouse+$M_X)/2)
$MOVE_MID_Y = INT(($_ymouse+$M_Y)/2)
$otx = INT(ABS($_xmouse - $M_X) * 0.12)
$oty = INT(ABS($_ymouse - $M_Y) * 0.12)
mouse_move($MOVE_MID_X+RND(-$otx,$otx), $MOVE_MID_Y+RND(-$oty,$oty))
mouse_move($M_X,$M_Y)
MOVE($M_X,$M_Y) //Передвинуть окончательно в заданную точку
END_SUB
IF($xx1212=0 )
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "в.bmp")
$xx = $_return1
$yy = $_return2
LOGSHOW (1, 49,102)
LOGWRITE ("привязались")
$xx1212=1
$tim23 = $_time_t + 300
ELSE
LOGWRITE ("не привязались")
HALT
$xx1212=1
END_IF
END_IF
IF($tim23 < $_time_t)
m_move($_xm1+RND(-2,2), $_ym2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$tim23 = $_time_t + 300
$t87=1
END_IF
GETSCREEN ($xx+547,$yy+519,$xx+598,$yy+610) // (964,626,1015,717)
IF_PICTURE_IN ($xx+547,$yy+519,$xx+598,$yy+610, "череп.bmp", -1, 80)
LOGWRITE ("нашли череп")
IF($t87=1 )
WAITMS(500)
$t87=0
END_IF
$tim23 = 0
$tim23 = $_time_t + 300
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$ti=1
$time = $_time_t + 10
WHILE($time > $_time_t)
GETSCREEN ($xx+98,$yy+514,$xx+162,$yy+591) //(515,621,579 ,698)
IF_PICTURE_IN ($xx+98,$yy+514,$xx+162,$yy+591, "мне.bmp", -1, 70)
$time = 0
LOGWRITE ("нашли мне")
IF($ti = 1)
WAITMS(800)
$ti=0
END_IF
UNDEFINE($ARR_SCAN) // перед поиском обнуляем массив
GETSCREEN ($xx+491,$yy-57,$xx+713,$yy+622)
SCANPICTURE($ARR_SCAN, $xx+491,$yy-57,$xx+713,$yy+622, "на остров.bmp", -1, 70)
LOGWRITE ("нашли на остров")
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
WAITMS(100)
GETSCREEN ($x-549,$y-27, $x-501,$y+20)
IF_PICTURE_IN ($x-549,$y-27, $x-501,$y+20, "то на стр.bmp", -1, 70)
LOGWRITE ("это то жмякаем на остров")
m_move($x+RND(-5,5),$y+RND(-5,5))
LCLICK($_xmouse,$_ymouse)
m_move($x+500+RND(-5,5),$y+RND(-5,5))
$time1 = $_time_t + 10
WHILE($time1 > $_time_t)
GETSCREEN ($xx+501,$yy+449,$xx+722,$yy+588) //(918,556, 1139,695)
COLORMODE(6, $xx+501,$yy+449,$xx+722,$yy+588)
IF_PICTURE_IN ($xx+501,$yy-449,$xx+722,$yy+588, "то.bmp", -1, 70)
$time1 = 0
LOGWRITE ("нашли тыкаем")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$time2 = $_time_t + 10
WHILE($time2 > $_time_t)
GETSCREEN ($xx-25,$yy+328,$xx+280,$yy+537)//(399,465, 679,644)
IF_PICTURE_IN ($xx-25,$yy+328,$xx+280,$yy+537, "напасть.bmp", -1, 70)
LOGWRITE ("нашли напасть")
$time2 = 0
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(1500,1700))
ELSE
LOGWRITE ("не нашли напасть")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("не нашли. выход")
WAITMS(50)
END_IF
END_CYC
ELSE
// вот тут как сделать чтоб если картинка на остров есть но это на нужный нам остров потому что картинка острова "то" нам не подходит и нужно вернуться проверки следующей картинки на остров на тей же страницы но пропуская эту что только что проверели и если не провереных картинок на остров уже нет то тогда след страница и удаления масива потому что там о5 нада искать эти картинки
LOGWRITE ("это не то след стр")
END_IF
END_CYC
IF(ARRSIZE($ARR_SCAN) = 0) // если массив пуст, значит не нашли на остров.bmp
LOGWRITE ("не нашли на остров")
GETSCREEN($xx+245,$yy+478,$xx+682,$yy+618) //(662,585, 1099,725)
IF_PICTURE_IN ($xx+245,$yy+478,$xx+682,$yy+618, "след стр.bmp", -1, 70)
LOGWRITE ("след сттр")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
m_move($_xmouse+100,$_ymouse)
WAITMS(rnd(300,500))
$time = $_time_t + 10 // продлеваем цикл WHILE($time > $_time_t)
ELSE
$time = 0 // выход из цикла WHILE($time > $_time_t)
END_IF
END_IF
ELSE
WAITMS(50)
END_IF
END_CYC
END_IF
SUB(элики,$dname1)
GETSCREEN ($xx+37,$yy+436, $xx+657,$yy+561)
IF_PICTURE_IN ($xx+37,$yy+436, $xx+657,$yy+561, $dname1, -1, 80)
LOGWRITE ("юзаем:" ,$dname1)
m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(400,600))
END_IF
END_SUB
GETSCREEN($xx+282,$yy+41, $xx+378,$yy+73)
IF_PICTURE_IN ($xx+282,$yy+41, $xx+378,$yy+73, "ход.bmp", -1, 80)
элики("молния.bmp")
элики("плевок.bmp")
WAITMS(rnd(200,250))
END_IF
GETSCREEN ($xx+635,$yy-34,$xx+716,$yy+48)//(1052,73, 1133,155)
IF_PICTURE_IN (1052,73, 1133,155, "крестик.bmp", -1, 90)
LOGWRITE ("нашли крестик")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(2000,4000))
LOGCLEAR
m_move($_return1+100+RND(-2,2), $_return2+RND(-20,20))
END_IF
WAITMS(rnd(50,90))
-
и все же нет не то :'( код то поправили но смысл теперь не тот он делает не так как нада (((((((((((((((((( :-[
разница в моем кривом варианте после того как он найдет на остров он провиряет то ли это если не то он возвращаеться и уже проверяет следующую картинку из масива если и это не то тогда возвращаеться назад проверять картинку из масива следующую если ее нет то выходит что картинки на остров больше нет значит след стр удаляем преждий масив и по новому если картинка есть проверяем то или не то если не то следующую проверяем а в вашем примере выходит тоже самое что бы просто через условия сдела он ток первую найденую проверяет то ли это если не то то все аминь завис :'(
Казнить нельзя помиловать.
-
и все же нет не то :'( код то поправили но смысл теперь не тот он делает не так как нада (((((((((((((((((( :-[
разница в моем кривом варианте после того как он найдет на остров он провиряет то ли это если не то он возвращаеться и уже проверяет следующую картинку из масива если и это не то тогда возвращаеться назад проверять картинку из масива следующую если ее нет то выходит что картинки на остров больше нет значит след стр удаляем преждий масив и по новому если картинка есть проверяем то или не то если не то следующую проверяем а в вашем примере выходит тоже самое что бы просто через условия сдела он ток первую найденую проверяет то ли это если не то то все аминь завис :'(
Казнить нельзя помиловать.
меня? :-[ или код? ???
-
Да и тебя и твою училку русского языка! Надо знаки препинания писать и не делать ошибок, при том что тот же браузер может проверить ошибки.
Исправлено
$_xm1= 85
$_ym2= 49
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
$MOVE_step = ($dist-1)/INT(SQRT($dist))
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR($MOVE_i=0, $MOVE_i < INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE(INT($MOVE_X) + RND(-2,2), INT($MOVE_Y) + RND(-2,2))
WAITMS($rnwait) // задержка при движении по точкам
END_CYC
END_SUB
SUB(m_move,$M_X,$M_Y)
$rnwait = RND(6,15) // случайная скорость
$MOVE_MID_X = INT(($_xmouse+$M_X)/2)
$MOVE_MID_Y = INT(($_ymouse+$M_Y)/2)
$otx = INT(ABS($_xmouse - $M_X) * 0.12)
$oty = INT(ABS($_ymouse - $M_Y) * 0.12)
mouse_move($MOVE_MID_X+RND(-$otx,$otx), $MOVE_MID_Y+RND(-$oty,$oty))
mouse_move($M_X,$M_Y)
MOVE($M_X,$M_Y) //Передвинуть окончательно в заданную точку
END_SUB
IF($xx1212=0 )
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "в.bmp")
$xx = $_return1
$yy = $_return2
LOGSHOW (1, 49,102)
LOGWRITE ("привязались")
$xx1212=1
$tim23 = $_time_t + 300
ELSE
LOGWRITE ("не привязались")
HALT
$xx1212=1
END_IF
END_IF
IF($tim23 < $_time_t)
m_move($_xm1+RND(-2,2), $_ym2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$tim23 = $_time_t + 300
$t87=1
END_IF
GETSCREEN ($xx+547,$yy+519,$xx+598,$yy+610) // (964,626,1015,717)
IF_PICTURE_IN ($xx+547,$yy+519,$xx+598,$yy+610, "череп.bmp", -1, 80)
LOGWRITE ("нашли череп")
IF($t87=1 )
WAITMS(500)
$t87=0
END_IF
$tim23 = 0
$tim23 = $_time_t + 300
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$ti=1
$time = $_time_t + 10
WHILE($time > $_time_t)
GETSCREEN ($xx+98,$yy+514,$xx+162,$yy+591) //(515,621,579 ,698)
IF_PICTURE_IN ($xx+98,$yy+514,$xx+162,$yy+591, "мне.bmp", -1, 70)
$time = 0
LOGWRITE ("нашли мне")
IF($ti = 1)
WAITMS(800)
$ti=0
END_IF
UNDEFINE($ARR_SCAN) // перед поиском обнуляем массив
GETSCREEN ($xx+491,$yy-57,$xx+713,$yy+622)
SCANPICTURE($ARR_SCAN, $xx+491,$yy-57,$xx+713,$yy+622, "на остров.bmp", -1, 70)
LOGWRITE ("нашли на остров")
$ARR_NUM = 0
$check_ostrov = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
WAITMS(100)
GETSCREEN ($x-549,$y-27, $x-501,$y+20)
IF_PICTURE_IN ($x-549,$y-27, $x-501,$y+20, "то на стр.bmp", -1, 70)
LOGWRITE ("это то жмякаем на остров")
m_move($x+RND(-5,5),$y+RND(-5,5))
LCLICK($_xmouse,$_ymouse)
m_move($x+500+RND(-5,5),$y+RND(-5,5))
$time1 = $_time_t + 10
WHILE($time1 > $_time_t)
GETSCREEN ($xx+501,$yy+449,$xx+722,$yy+588) //(918,556, 1139,695)
COLORMODE(6, $xx+501,$yy+449,$xx+722,$yy+588)
IF_PICTURE_IN ($xx+501,$yy-449,$xx+722,$yy+588, "то.bmp", -1, 70)
$time1 = 0
LOGWRITE ("нашли тыкаем")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$time2 = $_time_t + 10
WHILE($time2 > $_time_t)
GETSCREEN ($xx-25,$yy+328,$xx+280,$yy+537)//(399,465, 679,644)
IF_PICTURE_IN ($xx-25,$yy+328,$xx+280,$yy+537, "напасть.bmp", -1, 70)
LOGWRITE ("нашли напасть")
$time2 = 0
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(1500,1700))
ELSE
LOGWRITE ("не нашли напасть")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("не нашли. выход")
WAITMS(50)
END_IF
END_CYC
$check_ostrov = 1 // помечаем что хотя бы 1 картинка подходит под условия
ELSE
LOGWRITE ("это не то след стр")
END_IF
END_CYC
IF($check_ostrov = 0) // если флаг = 0, значит не нашли "то на стр.bmp"
LOGWRITE ("не нашли на остров")
GETSCREEN($xx+245,$yy+478,$xx+682,$yy+618) //(662,585, 1099,725)
IF_PICTURE_IN ($xx+245,$yy+478,$xx+682,$yy+618, "след стр.bmp", -1, 70)
LOGWRITE ("след сттр")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
m_move($_xmouse+100,$_ymouse)
WAITMS(rnd(300,500))
$time = $_time_t + 10 // продлеваем цикл WHILE($time > $_time_t)
ELSE
$time = 0 // выход из цикла WHILE($time > $_time_t)
END_IF
END_IF
ELSE
WAITMS(50)
END_IF
END_CYC
END_IF
SUB(элики,$dname1)
GETSCREEN ($xx+37,$yy+436, $xx+657,$yy+561)
IF_PICTURE_IN ($xx+37,$yy+436, $xx+657,$yy+561, $dname1, -1, 80)
LOGWRITE ("юзаем:" ,$dname1)
m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(400,600))
END_IF
END_SUB
GETSCREEN($xx+282,$yy+41, $xx+378,$yy+73)
IF_PICTURE_IN ($xx+282,$yy+41, $xx+378,$yy+73, "ход.bmp", -1, 80)
элики("молния.bmp")
элики("плевок.bmp")
WAITMS(rnd(200,250))
END_IF
GETSCREEN ($xx+635,$yy-34,$xx+716,$yy+48)//(1052,73, 1133,155)
IF_PICTURE_IN (1052,73, 1133,155, "крестик.bmp", -1, 90)
LOGWRITE ("нашли крестик")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(2000,4000))
LOGCLEAR
m_move($_return1+100+RND(-2,2), $_return2+RND(-20,20))
END_IF
WAITMS(rnd(50,90))
-
извеняйте у меня не было училки по русском :-X спасибо надеюс теперь будет как нужно работать :) и код красивый будет :D
-
все проверил работает как и нужно да еще и код теперь правильный без косяков спасибо огромное ;) :) кстати кто шарит и у кого есть время рожуйте как для самого чайника ;D по поводу цыкла с масивом хоть там и есть комментарии но я все равно что то не вехал :-\
UNDEFINE($ARR_SCAN) // перед поиском обнуляем массив
GETSCREEN ($xx+491,$yy-57,$xx+713,$yy+622)
SCANPICTURE($ARR_SCAN, $xx+491,$yy-57,$xx+713,$yy+622, "на остров.bmp", -1, 70)
LOGWRITE ("нашли на остров")
$ARR_NUM = 0
$check_ostrov = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
WAITMS(100)
GETSCREEN ($x-549,$y-27, $x-501,$y+20)
IF_PICTURE_IN ($x-549,$y-27, $x-501,$y+20, "то на стр.bmp", -1, 70)
LOGWRITE ("это то жмякаем на остров")
m_move($x+RND(-5,5),$y+RND(-5,5))
LCLICK($_xmouse,$_ymouse)
m_move($x+500+RND(-5,5),$y+RND(-5,5))
$time1 = $_time_t + 10
WHILE($time1 > $_time_t)
GETSCREEN ($xx+501,$yy+449,$xx+722,$yy+588) //(918,556, 1139,695)
COLORMODE(6, $xx+501,$yy+449,$xx+722,$yy+588)
IF_PICTURE_IN ($xx+501,$yy-449,$xx+722,$yy+588, "то.bmp", -1, 70)
$time1 = 0
LOGWRITE ("нашли тыкаем")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
$time2 = $_time_t + 10
WHILE($time2 > $_time_t)
GETSCREEN ($xx-25,$yy+328,$xx+280,$yy+537)//(399,465, 679,644)
IF_PICTURE_IN ($xx-25,$yy+328,$xx+280,$yy+537, "напасть.bmp", -1, 70)
LOGWRITE ("нашли напасть")
$time2 = 0
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
WAITMS(rnd(1500,1700))
ELSE
LOGWRITE ("не нашли напасть")
WAITMS(50)
END_IF
END_CYC
ELSE
LOGWRITE ("не нашли. выход")
WAITMS(50)
END_IF
END_CYC
$check_ostrov = 1 // помечаем что хотя бы 1 картинка подходит под условия
ELSE
LOGWRITE ("это не то след стр")
END_IF
END_CYC
IF($check_ostrov = 0) // если флаг = 0, значит не нашли "то на стр.bmp"
LOGWRITE ("не нашли на остров")
GETSCREEN($xx+245,$yy+478,$xx+682,$yy+618) //(662,585, 1099,725)
IF_PICTURE_IN ($xx+245,$yy+478,$xx+682,$yy+618, "след стр.bmp", -1, 70)
LOGWRITE ("след сттр")
m_move($_return1+RND(-2,2), $_return2+RND(-2,2))
LCLICK($_xmouse,$_ymouse)
m_move($_xmouse+100,$_ymouse)
WAITMS(rnd(300,500))
$time = $_time_t + 10 // продлеваем цикл WHILE($time > $_time_t)
ELSE
$time = 0 // выход из цикла WHILE($time > $_time_t)
END_IF
END_IF