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

Основной раздел => Общие вопросы => Topic started by: ofig on August 04, 2023, 05:46:14 AM

Title: помощь с goto и возвратом к нему
Post by: ofig on August 04, 2023, 05:46:14 AM
делаю бота для игры, часть "А" игрок появляется на 1 из примерно 70 точек, встаёт на позицию и смотрит в сторону где может быть враг, но он может быть и со спины, для чего хочется сделать поочерёдный поворот из стороны в сторону для проверки на наличие врага, но не знаю как сделать что бы при активации одного из тригеров после выполнения части "Б" скрипт возвращался тому GOTO, от которого ушёл

Code: (clickermann) [Select]
// ЧАСТЬ А
$pxl = pxl(111,111)
IF($pxl = 11) //проверка позиции
LOGWRITE("1") // запись в лог какая из частей сработала
   KEYPRESS(#O)
   WAITMS(100)
   MOVER(111,111) // поворот в сторону с которой может выйти враг
   WAIT(1)
   RCLICK($_xmouse,$_ymouse)
   WAIT(1)
   GOTO(trgr)
   // хочу   добавить дополнительный MOVER и GOTO
END_IF
// таких порядка 70

// ЧАСТЬ Б
// проверка на изменение пикселя (тригербот)
IF($affa = 404)
   trgr:
   $s = 0
   GETSCREEN(640,508,644,512)
   $a = pxl(642,511)
   $a2 = colorG($a)
   $a3 = colorB($a)
   2:
// тут в дальнейшем так же добавлю выход из тригербота на случай смерти
   GETSCREEN(640,508,644,512)
   $b = pxl(642,511)
   $b2 = colorG($b)
   $b3 = colorB($b)
   IF( ($a2+20 < $b2) or ($a2-20 > $b2) )
      INC($s , 1)
   END_IF
   IF( ($a3+20 < $b3) or ($a3-20 > $b3) )
      INC($s , 1)
   END_IF
   if($s > 1)
      LCLICK($_xmouse,$_ymouse)
      WAIT(3)
      // кликает и нужно что бы перешёл обратно к части а с дополнительным MOVER и GOTO
   ELSE
      GOTO(2)
      // мотает по кругу пока не будет изменён пиксель
   END_IF
END_if
Title: Re: помощь с goto и возвратом к нему
Post by: Vint on August 04, 2023, 12:40:26 PM
делаю бота для игры, часть "А" игрок появляется на 1 из примерно 70 точек, встаёт на позицию и смотрит в сторону где может быть враг, но он может быть и со спины, для чего хочется сделать поочерёдный поворот из стороны в сторону для проверки на наличие врага, но не знаю как сделать что бы при активации одного из тригеров после выполнения части "Б" скрипт возвращался тому GOTO, от которого ушёл
Так это не GOTO, тебе подпрограмма нужна.

Code: (clickermann) [Select]
SUB(trgr)  // ЧАСТЬ Б  проверка на изменение пикселя (тригербот)
    $s = 0
    GETSCREEN(640, 508, 644, 512)
    $a = PXL(642, 511)
    $a2 = colorG($a)
    $a3 = colorB($a)
   
    $trigger_loop = 1
    WHILE($trigger_loop = 1)
        // тут в дальнейшем так же добавлю выход из тригербота на случай смерти
        GETSCREEN(640, 508, 644, 512)
        $b = PXL(642, 511)
        $b2 = colorG($b)
        $b3 = colorB($b)
        IF(($a2+20 < $b2) | ($a2-20 > $b2))
            INC($s, 1)
        END_IF
        IF(($a3+20 < $b3) | ($a3-20 > $b3))
            INC($s, 1)
        END_IF
        IF($s > 1)
            LCLICK($_xmouse, $_ymouse)
            WAIT(3)
            $trigger_loop = 0
            // обратно к части а
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
END_SUB

// ЧАСТЬ А
$pxl = pxl(111,111)
IF($pxl = 11) //проверка позиции
    LOGWRITE("1") // запись в лог какая из частей сработала
    KEYPRESS(#O)
    WAITMS(100)
    MOVER(111, 111) // поворот в сторону с которой может выйти враг
    WAIT(1)
    RCLICK($_xmouse, $_ymouse)
    WAIT(1)
    trgr()
    // хочу   добавить дополнительный MOVER и GOTO
END_IF

Выкинул условие IF($affa = 404) т.к. ты через него перепрыгиваешь всё равно, если нужно сам добавь.
Title: Re: помощь с goto и возвратом к нему
Post by: kiril on August 06, 2023, 10:39:28 AM
// ЧАСТЬ А
$pxl = pxl(111,111)
IF($pxl = 11) //проверка позиции
11 для цветового канала нормальное значение, а вот для проверяемого цвета необычное.
Title: Re: помощь с goto и возвратом к нему
Post by: kiril on August 06, 2023, 10:52:49 AM
Code: (clickermann) [Select]
// ЧАСТЬ А
$pxl = pxl(111,111)
IF($pxl = 11) //проверка позиции
   LOGWRITE("1") // запись в лог какая из частей сработала
   KEYPRESS(#O)
   WAITMS(100)
   MOVER(111, 111) // поворот в сторону с которой может выйти враг
   WAIT(1)
   RCLICK($_xmouse, $_ymouse)
   WAIT(1)
   // ЧАСТЬ Б  проверка на изменение пикселя (тригербот)
   GETSCREEN(640, 508, 644, 512)
   $a2 = colorG(PXL(642, 511))
   $a3 = colorB(PXL(642, 511))
   $trigger_loop = 1
   WHILE($trigger_loop = 1)
      // тут в дальнейшем так же добавлю выход из тригербота на случай смерти
      GETSCREEN(640, 508, 644, 512)
      IF(($a2+20 < colorG(PXL(642, 511))) | ($a2-20 > colorG(PXL(642, 511))))
         IF(($a3+20 < colorB(PXL(642, 511))) | ($a3-20 > colorB(PXL(642, 511))))
            LCLICK($_xmouse,$_ymouse)
            WAIT(3)
            $trigger_loop = 0   // обратно к части а
         END_IF
      END_IF
      WAITMS(50)
   END_CYC
   // хочу   добавить дополнительный MOVER и GOTO
END_IF
Title: Re: помощь с goto и возвратом к нему
Post by: kiril on August 06, 2023, 11:10:22 AM
Code: (clickermann) [Select]
// ЧАСТЬ А
$pxl = pxl(111,111)
IF($pxl = 11) //проверка позиции
   LOGWRITE("ЧАСТЬ А") // запись в лог какая из частей сработала
   KEYPRESS(#O)
   WAITMS(100)
   MOVER(111, 111) // поворот в сторону с которой может выйти враг
   WAIT(1)
   RCLICK($_xmouse, $_ymouse)
   WAIT(1)
   // ЧАСТЬ Б  проверка на изменение пикселя (тригербот)
   LOGWRITE("ЧАСТЬ Б")
   GETSCREEN(640, 508, 644, 512)
   $a2 = colorG(PXL(642, 511))
   $a3 = colorB(PXL(642, 511))
   // цикл мотает по кругу пока не будут изменёны одновременно зелёный и синий каналы пикселя
   WHILE(($a2=colorG(PXL(642,511)|($a3=colorB(PXL(642,511))
      // тут в дальнейшем так же добавлю выход из тригербота на случай смерти
      GETSCREEN(640,508,644,512)
      WAITMS(50)
   END_CYC
   LCLICK($_xmouse,$_ymouse)
   WAIT(3) // обратно к части а
   // хочу   добавить дополнительный MOVER и GOTO
END_IF