Author Topic: Написание кликера  (Read 3840 times)

0 Members and 1 Guest are viewing this topic.

Джек Водогрей

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Написание кликера
« on: December 22, 2016, 10:28:05 AM »
Добрый день. Подскажите как сделать так чтобы кликер по происшествии заданного события перемещался в заданный раздел кода, а затем в заданном разделе кода по происшествии события описанного в этом куске кода, перемещался в следующий заданный кусок кода? Таких кусков будешь штук 30.
С while пробовал, но там я так понял прикрутить дополнительные переходы либо нельзя, либо я не знаю как.
Спасибо за ответы)

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
Re: Написание кликера
« Reply #1 on: December 22, 2016, 06:38:51 PM »
закрываешь свои участки кода в вот такие условия
$f=1
while($f)
твой код
if(условие)
выполнено
$f=0
end_if
end_cyc

это пример с ожиданием картинки, можно написать включение кода по флагу $f можно повторение до отключения флага
главное не ищи легких путей с метками, это путь к хаосу

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Написание кликера
« Reply #2 on: December 22, 2016, 06:41:04 PM »
твой вопрос так и напрашивает использвание GOTO

но лучше ненадо, постарайся даже не читать что это такое. а скинь сюда сваи наработки, побольше опиши свою задачу, и с помощью циклов и условий все получится.

Джек Водогрей

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Написание кликера
« Reply #3 on: December 23, 2016, 12:07:50 AM »
Поздно ребят) я уже нашел goto)))))) пути назад видимо нет)

Джек Водогрей

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Написание кликера
« Reply #4 on: December 23, 2016, 12:12:56 AM »
а вообще вопрос:

1:
GETSCREEN
IF_PIXEL_IN (686,537, 756,554, 16449279,15528177,14672611)  //
WAITMS(700)
LCLICK($_return1, $_return2)  //
WAITMS(1000)
goto(2)
else
LCLICK(409,175)  //
WAITMS(700)
LCLICK(638,512)  //
goto(1)
END_IF
END_IF

2:
GETSCREEN   
IF_PIXEL_IN (308,416, 411,433, 16449279,15528177,14672611)  //
WAITMS(1000)
LCLICK($_return1, $_return2)  //
goto(2)
ELSE
LCLICK(505,424) //
WAITMS(1500)
goto(1)
END_IF
END_IF   

У меня проблема с куском 2:
Выполняется действие когда находит пиксель, но затем делает действие которое забиндено на else
Я что-то не так сделал или goto не возвращается вверх кода для повтора куска?)

Джек Водогрей

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Написание кликера
« Reply #5 on: December 23, 2016, 12:17:40 AM »
Вообще если вы говорите циклы лучше я попробую по циклам все переписать. Но всеравно интересно почему у меня с goto не заработало как я хотел)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Написание кликера
« Reply #6 on: December 23, 2016, 09:07:55 AM »
У тебя там лишние END_IF
Вот верный код, за одно выкинул бессмысленные переходы гото

Code: (clickermann) [Select]
a:
GETSCREEN
IF_PIXEL_IN (686,537, 756,554, 16449279,15528177,14672611)
   WAITMS(700)
   LCLICK($_return1, $_return2)
   WAITMS(1000)
else
   LCLICK(409,175)
   WAITMS(700)
   LCLICK(638,512)
   goto(a)
END_IF

b:
GETSCREEN
IF_PIXEL_IN (308,416, 411,433, 16449279,15528177,14672611)
   WAITMS(1000)
   LCLICK($_return1, $_return2)
   goto(b)
ELSE
   LCLICK(505,424)
   WAITMS(1500)
END_IF

То же самое через циклы
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN (686,537, 756,554, 16449279,15528177,14672611)
      WAITMS(700)
      LCLICK($_return1, $_return2)
      WAITMS(1000)
      $check = 1
   else
      LCLICK(409,175)
      WAITMS(700)
      LCLICK(638,512)
      WAITMS(100)
   END_IF
END_CYC

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN (308,416, 411,433, 16449279,15528177,14672611)
      WAITMS(1000)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      LCLICK(505,424)
      WAITMS(1500)
      $check = 1
   END_IF
END_CYC

Джек Водогрей

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Написание кликера
« Reply #7 on: December 23, 2016, 10:01:35 AM »
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN (308,416, 411,433, 16449279,15528177,14672611)
      WAITMS(1000)
      LCLICK($_return1, $_return2)
      WAITMS(100)

   ELSE
      LCLICK(505,424)
      WAITMS(1500)
      $check = 1
   END_IF

END_CYC

Красный кусок не очень понимаю. За что отвечает $check и почему в первой части кода он до else, а здесь после?
Хотелось бы бесконечное повторение зеленого куска до тех пор пока не произойдет потеря пикселя
« Last Edit: December 23, 2016, 10:06:39 AM by Джек Водогрей »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Написание кликера
« Reply #8 on: December 23, 2016, 10:20:13 AM »
$check это переменная, имя может быть любым. И если в цикл вложен еще цикл с подобным "ожиданием" то имя естественно должно быть другим

Code: (clickermann) [Select]
$check = 0 // присваиваем значение 0 переменной $check
WHILE($check = 0) // цикл выполняется если $check равна 0

      $check = 1 // если по условию значение $check изменится то цикл перестанет повторяться

END_CYC

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Написание кликера
« Reply #9 on: December 23, 2016, 01:05:34 PM »
Поздно ребят) я уже нашел goto)))))) пути назад видимо нет)

 ;D ;D ;D
Мы его потеряли...