Author Topic: if не срабатывает  (Read 1995 times)

0 Members and 1 Guest are viewing this topic.

Piglett

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
if не срабатывает
« on: February 08, 2016, 11:10:44 PM »
Доброго времени суток, проштудировал инструкцию, и  понятного там мало для чайника. Накидал простенький скрипт, тычет мышкой как мне надо по кругу, но вот возникла необходимость ввести туда условие if, на этом я упёрся в стенку. Кстати, тут люди каким-то образом свои скрипты в компактное окошечко умещают - подскажите как =), я не хотел бы сюда всю программу пастить, а то ещё бан за огромное сообщение схлопочу.
Пробема вот в чём: у меня if не срабатывает как условие - он его просто прогоняет сперва в 1 варианте, потом во 2, и зацикливается, а выбор между 1 или 2 не делает.
Давным давно в школе был qbasic, там условие вроде писали IF(x,y,цвет)THEN GOTO номер строчки, и так сколько терпелки хватит на все варианты.
В скрипте я гетскрин не использовал, может условие "если" выполняется только из буфера со скриншотом? В общем запутался совсем.
 
« Last Edit: February 08, 2016, 11:33:38 PM by Piglett »

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: if не срабатывает
« Reply #1 on: February 09, 2016, 03:34:56 AM »

Давным давно в школе был qbasic, там условие вроде писали IF(x,y,цвет)THEN GOTO номер строчки, и так сколько терпелки хватит на все варианты.
если делаешь проверк цвета, гескрин обязателен. а еще после каждого иф должен быть ендиф. скрипт в студию

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: if не срабатывает
« Reply #2 on: February 09, 2016, 07:07:35 AM »
Кстати, тут люди каким-то образом свои скрипты в компактное окошечко умещают - подскажите как =), я не хотел бы сюда всю программу пастить, а то ещё бан за огромное сообщение схлопочу.

Перейди в режим "Предварительный просмотр"
Quote
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста.

Piglett

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: if не срабатывает
« Reply #3 on: February 10, 2016, 02:36:19 PM »
Переделал под гетскрин, всё работает как часы. Я боялся, что будет быстро забиваться оперативка, потом допёрло, что можно "щёлкать" всего 1 пиксель, а их уместится в 700000 раз больше полноэкранной фотки.
Старый скрипт смысла нет выкладывать в нём всё то же самое только без команды гетскрин.
Code: (clickermann) [Select]
BOSSCHECK:
PRINT(CHECKING)
MOVE(260,712)
WAIT(1)
GETSCREEN(260,712,260,712)
$CLR1=PXL(260,712)
WAIT(3)
PRINT("COLOR = ",$CLR1)
IF($CLR1=2741958)
GOTO(BOSSSTART)
ELSE
PRINT(GOINGTOBOSSCHECK)
GOTO(BOSSCHECK)
END_IF
BOSSSTART:
PRINT(BOSSSTARTING)
WAIT(10)
LCLICK(260,712) //CLICKBOSSINITIATE
WAIT(10)
LCLICK( 490,680) //ÍÀÏÀÑÒÜ
WAIT(10)
LCLICK(670,80) //CANCELINVITES
WAIT(5)
BOSSHIT:
GETSCREEN(925,147,925,147)
PRINT(SCREEN)
$CLR_HP=PXL(925,147)
IF($CLR_HP=178)  //IF ALIVE
LCLICK(901,150) //HIT
WAITMS(300)
LCLICK(901,150)
WAITMS(950)
LCLICK(901,150)
WAITMS(930)
LCLICK(901,150)
WAITMS(940)
LCLICK(901,150)
WAITMS(500)
PRINT(HITSDONE)
GOTO(BOSSHIT)
ELSE
WAIT(5)
LCLICK(780,215) //CLOSINGSTATES
WAIT(5)
END_IF
GOTO(BOSSCHECK)
PRINT(HALT)
HALT

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: if не срабатывает
« Reply #4 on: February 10, 2016, 03:07:34 PM »
GETSCREEN на оперативку не влияет, ограничение лишь снимает нагрузку с процессора в скриптах с задержкой в несколько миллисекунд или меньше. в твоем случаи никакой пользы для тебя нет. Сроки следует всегда заключать в кавычки.

Пиши скрипт сразу по умному с циклами в место этих гото

Code: (clickermann) [Select]
PRINT("CHECKING")
$check = 0
WHILE($check = 0)
   MOVE(260,712)
   WAIT(1)
   GETSCREEN(260,712,260,712)
   $CLR1 = PXL(260,712)
   PRINT("COLOR CLR1 = ",$CLR1)
   IF($CLR1=2741958)
      $check = 1
   ELSE
      WAIT(3)
   END_IF
END_CYC

PRINT("BOSSSTARTING")
WAIT(10)
LCLICK(260,712) //CLICKBOSSINITIATE
WAIT(10)
LCLICK( 490,680) //IAIANOU
WAIT(10)
LCLICK(670,80) //CANCELINVITES
WAIT(5)

$check = 0
WHILE($check = 0)
   GETSCREEN(925,147,925,147)
   $CLR_HP = PXL(925,147)
   PRINT("COLOR CLR_HP = ",$CLR_HP)
IF($CLR_HP=178)  //IF ALIVE
      LCLICK(901,150) //HIT
      WAITMS(300)
      LCLICK(901,150)
      WAITMS(950)
      LCLICK(901,150)
      WAITMS(930)
      LCLICK(901,150)
      WAITMS(940)
      LCLICK(901,150)
      WAITMS(500)
      PRINT("HITSDONE")
   ELSE
      $check = 1
      WAIT(5)
      LCLICK(780,215) //CLOSINGSTATES
      WAIT(5)
   END_IF
END_CYC