Author Topic: помогите мне вылечиться от goto  (Read 35586 times)

0 Members and 5 Guests are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #30 on: September 10, 2014, 06:26:17 PM »
Да ты на имя то не смотри, переменную можно как хочешь обозвать, главное английскими буквами и без пробелов. Обычно им пишут осмысленные названия чтоб не запутаться и знать что она делает.
Сорри - пока ничего не отвечу...
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #31 on: September 10, 2014, 06:29:36 PM »
вот блин я тебе даже нарисовал если так не поймешь то это трындец хотя может мои художества будут не понятны )

Открыл картинку... Сразу температура подскочила до предела от слов:

Инициализация:
- установка параметров по умолчанию
- выбор изменяемых парамеиров

На остальных картинках хоть слова знакомые... Изучаю дальше...

Далее дошел до - "проверяем флаг маны" и всё... Пошел опять курить... Хотя по состоянию за пузырем бежать давно пора... Что за флаг манны...? Как мы его проверяем...? Можете не отвечать уже наверно - это мысли в слух...
« Last Edit: September 10, 2014, 06:31:31 PM by Hito »
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #32 on: September 10, 2014, 06:38:09 PM »
вот блин я тебе даже нарисовал если так не поймешь то это трындец хотя может мои художества будут не понятны )

Открыл картинку... Сразу температура подскочила до предела от слов:

Инициализация:
- установка параметров по умолчанию
- выбор изменяемых парамеиров

На остальных картинках хоть слова знакомые... Изучаю дальше...

Далее дошел до - "проверяем флаг маны" и всё... Пошел опять курить... Хотя по состоянию за пузырем бежать давно пора... Что за флаг манны...? Как мы его проверяем...? Можете не отвечать уже наверно - это мысли в слух...

А каим образом мы увеличиваем счетчик убитых мобов и где это отобразится?
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #33 on: September 10, 2014, 06:42:32 PM »
И еще вот вопрос, ребят... Почему выпрыгивать из подпрограммы по GOTO плохо, если кликер это умеет?
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #34 on: September 10, 2014, 06:48:16 PM »
.... Понимаю - устали от меня...) Ладно - пойду в игру, займусь пока скриптами так, как я пока понимаю )) Всем большая благодарность за внимание и терпение ))
Я не ду... Потому и не бу...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #35 on: September 10, 2014, 07:09:58 PM »
И еще вот вопрос, ребят... Почему выпрыгивать из подпрограммы по GOTO плохо, если кликер это умеет?

Раньше в справке было написано что выпрыгивание приведет к ошибке.

Запустим вот такой скрипт, после выполнения подпрограммы переменные $par1, $par2 обнуляются, но если выпрыгнуть из подпрограммы этого не произойдет.

Code: (clickermann) [Select]
SUB(имя, $par1, $par2) // подпрограмма с параметрами   
   LOGWRITE ("Переменная 1: ",$par1, " Переменная 2: ",$par2)
   GOTO(skip)   
END_SUB

имя(1,2) // вызов и передача параметров

skip:
LOGWRITE ("Переменная 1: ",$par1, " Переменная 2: ",$par2)

HALT

Что там еще "не так" завершится знает только разработчик кликера

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #36 on: September 10, 2014, 07:14:17 PM »
И еще вот вопрос, ребят... Почему выпрыгивать из подпрограммы по GOTO плохо, если кликер это умеет?

Раньше в справке было написано что выпрыгивание приведет к ошибке.

Запустим вот такой скрипт, после выполнения подпрограммы переменные $par1, $par2 обнуляются, но если выпрыгнуть из подпрограммы этого не произойдет.

Code: (clickermann) [Select]
SUB(имя, $par1, $par2) // подпрограмма с параметрами   
   LOGWRITE ("Переменная 1: ",$par1, " Переменная 2: ",$par2)
   GOTO(skip)   
END_SUB

имя(1,2) // вызов и передача параметров

skip:
LOGWRITE ("Переменная 1: ",$par1, " Переменная 2: ",$par2)

HALT

Что там еще "не так" завершится знает только разработчик кликера
ААаа... То есть - если переменных в подпрограмме нет, то можно прыгать? ))
Я не ду... Потому и не бу...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #37 on: September 10, 2014, 07:47:24 PM »
Кароче считай это нарушением но не критическим. Действительно сильно недостает команды перезапуска скрипта.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #38 on: September 11, 2014, 01:40:10 PM »
$Time_Out = 1 Переменная переключатель, в подпрограмме $Time_Out присвоится 1 и по гото произойдет переход в конец подпрограммы, далее она завершится и выполнение перейдет на следующую строчку после вызова а там у нас серия условий
Code: (clickermann) [Select]
   boy()  // Если висит, то отправляем в boy
  IF($begin = 1)
     $begin = 0
     GOTO(1)
  END_IF
  IF($Time_Out = 1)
     $Time_Out = 0
     GOTO(Time Out)
  END_IF
И если одно из них сработает выполнение скаканет либо в начало 1: либо к Time Out:
Так... Хотел бы сказать - "И тут я... Якобы из последних сил..." Но силы у меня новые и я опять пришел вас мучить ))
То есть команда -  $Time_Out = 0 проверяет, как сработает условие после метки Time Out: ? И если в условии положительный результат, то в этой штуке "$Time_Out = 1" будет цифра 1. А если условие не найдет нужный пиксель по своей первичной команде внутри своего условия, то это "$Time_Out = 0"? Я правильно понял?
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #39 on: September 11, 2014, 01:49:22 PM »
$Time_Out = 1 Переменная переключатель, в подпрограмме $Time_Out присвоится 1 и по гото произойдет переход в конец подпрограммы, далее она завершится и выполнение перейдет на следующую строчку после вызова а там у нас серия условий
Code: (clickermann) [Select]
   boy()  // Если висит, то отправляем в boy
  IF($begin = 1)
     $begin = 0
     GOTO(1)
  END_IF
  IF($Time_Out = 1)
     $Time_Out = 0
     GOTO(Time Out)
  END_IF
И если одно из них сработает выполнение скаканет либо в начало 1: либо к Time Out:
Так... Хотел бы сказать - "И тут я... Якобы из последних сил..." Но силы у меня новые и я опять пришел вас мучить ))
То есть команда -  $Time_Out = 0 проверяет, как сработает условие после метки Time Out: ? И если в условии положительный результат, то в этой штуке "$Time_Out = 1" будет цифра 1. А если условие не найдет нужный пиксель по своей первичной команде внутри своего условия, то это "$Time_Out = 0"? Я правильно понял?
Если никто не ответит, я не обижусь. Приму это за - $Pravilniy_otvet = 0,  и буду думать дальше...
Я не ду... Потому и не бу...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #40 on: September 11, 2014, 02:07:29 PM »
Да это те самые "флаги"  :)

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #41 on: September 11, 2014, 02:11:04 PM »
Ё-маё! Вот например:

Code: (clickermann) [Select]
SUB(MYSUB)
   MYSUB:
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255) // Если найдено, то идем на 1:
      $1 = 1
   Else // Если не найдено, то зацикливаем подпрограмму
      GOTO(MYSUB)
   END_IF
END_SUB


1:

GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 366) // Если найдено, то ничего не делаем
   WAITMS(100)
Else
   MYSUB() // Если не найдено, то идем в (MYSUB)
END_IF

Правильно?
« Last Edit: September 11, 2014, 02:33:52 PM by Hito »
Я не ду... Потому и не бу...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #42 on: September 11, 2014, 02:52:21 PM »

Вот ты заморочился.
Вот тебе пример флагов "на пальцах" в терминах скрипта:
Code: (clickermann) [Select]
SUB(бухаем)
   $падения = 0  // это и есть флаг, пока ставим 0 значит не падали
   
   //празднуем
   WHILE($ВРЕМЯ < ПОЗДНО)  //   <<<<<<<<<---------------------------------------!
      // гуляем                                                                 !
      // пьём                                                                   !
      // жрём                                                                   !
      // танцуем                                                                !
      IF(упали?)                                                                !
         $падения = 1    // включаем флаг, раз упали                            !
         $ВРЕМЯ = 999999 // если упали, плевать на время, валим домой досрочно  !
      END_IF                                                                    !
   END_CYC                 // цикл пьянки, ещё по маленькой >>>>>>--------------!
END_SUB



// начало
//сегодня праздник?
бухаем()  // идём бухать
// пришли, поспали, ничерта не помним

// проверяем падали во время пьянки или вернулись потому что было поздно уже?
IF($падения = 1) 
   // ПАдали
GOTO(идём заклеивать синяки)
ELSE
   // Всё нормуль, завтра опять пойдём
END_IF


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #43 on: September 11, 2014, 03:01:42 PM »
Ой зря ты $ВРЕМЯ = 999999 вставил... Я че-то не понял этой команды...
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите мне вылечиться от goto
« Reply #44 on: September 11, 2014, 03:07:19 PM »
Ребят, я живу по минимуму (по финансам), но всех, кто мне в этой теме уделил внимание и пытался помочь, я хотел бы отблагодарить (уж как могу...). У меня на следующей неделе будет пятихатка. Вы мне в приват киньте пожалуйста свои реквизиты - я вам по соточке пришлю. Это от души. Всем большая благодарность за терпение. Уф... Не совсем всё понял, но остальное я уже сам догоню  :)
Я не ду... Потому и не бу...