Author Topic: работа IF_PICTURE_IN, #include  (Read 2883 times)

0 Members and 1 Guest are viewing this topic.

HasTigeR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
работа IF_PICTURE_IN, #include
« on: July 14, 2017, 03:26:36 AM »
Всем привет.
Первый вопрос по IF_PICTURE_IN (IF_PIXEL_IN)
Правильно ли я понимаю что они возвращают 3 значения ($_return1,$_return2 и булевское true/false)
то есть его можно использовать как обычный IF?
И такой код
Code: (clickermann) [Select]
IF_PICTURE_IN($x1,$y1,$x2,$y2,"shot1.bmp",-1,100)
$a = 1
ELSE
$a=0
END_IF
будет искать в указанном диапазоне указанную картинку и если найдёт присвоит переменной а единицу, иначе присвоит 0?
Второй вопрос, работает ли #include при вставке другого скрипта так же, как если бы на месте него был просто код указанный в том скрипте? или там есть ещё какие то закавыки? и еще нормально ли программа реагирует на вложенные #include? то есть если в основном скрипте будет один #include в том вложенном скрипте ещё один и т.д. - всё нормально будет?
« Last Edit: July 16, 2017, 01:33:49 PM by HasTigeR »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #1 on: July 14, 2017, 07:23:23 AM »
Да, это функция условие и работает она точно также как обычное условие.
Да, именно так #include и работает, вставляет за место себя код из файла. Могут быть конечно и #include в #include.

HasTigeR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #2 on: July 14, 2017, 11:31:58 PM »
Да, это функция условие и работает она точно также как обычное условие.
Да, именно так #include и работает, вставляет за место себя код из файла. Могут быть конечно и #include в #include.
Странно что инклуд глючит, скрипт просто не запускается при вставке инклуда, если то что в файле поставить на место инклуда, всё работает как часики. В чём может быть проблема?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #3 on: July 15, 2017, 07:41:10 AM »
Это тебе на битву экстрасенсов надо.... Скрипты где?

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #4 on: July 15, 2017, 11:00:52 AM »
По собственному опыту, проверьте внимательно (построчно) вставляемые файлы (оба инклюда). Убедитесь, что нигде в них в общем коде не срабатывает Halt - большая вероятность, что скрипт запускается, видит его и закрывается.
Думаю, хорошая идея в любых скриптах перед каждым Halt добавлять строчку  "Print("время: ", $_ms-$start)". А в начале  -  "$start=$_ms". Тогда вы будете точно видеть, запускался ли скрипт (да и знать время работы не помешает). 

Ну и заодно, просматривая, проследите за всеми End_sub (End_if,End_cyc) - случайная потеря (при копировании) End_sub приводит ну к очень неожиданным глюкам ;D

HasTigeR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #5 on: July 16, 2017, 06:36:41 AM »
Quote from: Oraven
Это тебе на битву экстрасенсов надо.... Скрипты где?

Скрипт весьма объёмный) более 1000 строк) все инклуды удалил, просто там где раньше стояли инклуды, подставил то, что в них содержалось, иначе скрипт просто не запускался, даже в первую строку перед всем скриптом ставил
Code: (clickermann) [Select]
PRINT("начинаем")
//дальше сам скрипт
в логе при запуске пустота.
При попытке закрыть окно редактора не удалось применить изменения и окно не закрывалось.
Удалил строку с #include, и на её место просто скопировал то, что в нём находилось - всё заработало, тот код к сожалению не сохранился, но могу его воспроизвести.
Quote from: Qwerry
По собственному опыту, проверьте внимательно (построчно) вставляемые файлы (оба инклюда). Убедитесь, что нигде в них в общем коде не срабатывает Halt - большая вероятность, что скрипт запускается, видит его и закрывается.
Думаю, хорошая идея в любых скриптах перед каждым Halt добавлять строчку  "Print("время: ", $_ms-$start)". А в начале  -  "$start=$_ms". Тогда вы будете точно видеть, запускался ли скрипт (да и знать время работы не помешает). 

Ну и заодно, просматривая, проследите за всеми End_sub (End_if,End_cyc) - случайная потеря (при копировании) End_sub приводит ну к очень неожиданным глюкам ;D
На тот момент Halt'ом не пользовался, да и сейчас без надобности почти (вставил его только раз в скрипт). End'ы меня тоже помучить успели ;D, учу с++, там конец операторов другой) часто ловлю себя на точке с запятой где нибудь вставленной ;D. А вот с переменными вроде $_time не очень дружу, так как не понимаю их. Проще поток левый сделать который WAITMS считать будет (мне проще, так как понятнее). Вообще то что не понимаю как работает стараюсь не использовать, чтобы избежать ошибок которые потом не исправишь.

Кстати говоря #include файлы, хотел сделать как альтернативу void() функциям в с++. То есть чтобы не вставлять тонны текста который повторяется вставлять просто #include. Как я понял, это лучше делает SUB) жаль что он значения не возвращает, но да ладно потихоньку вникаю.

HasTigeR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #6 on: July 16, 2017, 01:33:10 PM »
Рановато вам ещё с++ учить, если в трёх соснах Clickermann так плутаете.
Как то с++ попроще кликермана для меня) там как-то есть где развернуться) просто я не могу пока им полноценно пользоваться, поэтому параллельно разбираю КМ. Учитывая что я кроме с++ (который мне очень нравится, хоть я его и не выучил до конца) учил только HTML, переход на новый синтаксис на мне естественно сказался, + тут язык сценариев процедурный, чем отличается от С++ с его гибкостью (хотя и тут изворачивайся не хочу ;D). И не знаю хороший ли это результат после недели работы с Кликером (с перерывами естественно ::)) но вот такой сыроватый бот для игры у меня получился. Функционал у него пока не ахти. Зато работать будет пока комп не повиснет. И на любом разрешении (моя гордость :) ). Засуну в спойлер, пишет превышает максимально допустимую длину. Файл прикреплю. Конечно его ещё во многом надо дорабатывать, но тут уже много сократил. Если укажете мне какие то логические ошибки или методы которые лучше бы смотрелись и работали с подробным разбором, буду благодарен) а так просто для ознакомления и возможно оценки ::). Критика принимается) Насчёт #include вспомнил, в самом файле тогда была логическая ошибка, долго потом думал почему не работает пока не дошло, учитывая что шанс проверить что же скрипт делает в том куске кода попадался не часто) сонный тогда писал) ошибка была типа
Code: (clickermann) [Select]
FOR($t=0, $t = 20)
END_CYC
Вот и такие реально тупые смешные казусы бывают, сам с себя в шоке)
Не знаю может ли из-за такой ошибки скрипт вообще не запуститься, что и происходило.
« Last Edit: July 16, 2017, 01:37:53 PM by HasTigeR »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #7 on: July 16, 2017, 04:08:32 PM »
В этом цикле нет ошибок. Просто он никогда не выполнится потому что $t изначально не равна 20
Что по твоему скрипту то там сходу ошибки в окончаниях. Ну неужели так сложно, нажимаешь волшебную палочку в редакторе и сразу видны лишние окончания.
Строки 224 и 984
Не удивительно что у тебя инклуды повисли, они не терпят таких ошибок.

HasTigeR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #8 on: July 16, 2017, 07:46:31 PM »
В этом цикле нет ошибок. Просто он никогда не выполнится потому что $t изначально не равна 20
Это логическая ошибка, я сразу указал.
Что по твоему скрипту то там сходу ошибки в окончаниях. Ну неужели так сложно, нажимаешь волшебную палочку в редакторе и сразу видны лишние окончания.
Строки 224 и 984
Не удивительно что у тебя инклуды повисли, они не терпят таких ошибок.
Хмм 224 убрал лишнее, спасибо, а как END_THREAD в 984 лишним может быть?
« Last Edit: July 16, 2017, 07:48:42 PM by HasTigeR »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #9 on: July 16, 2017, 08:09:23 PM »
В обоих случаях речь идет о END_CYC.

HasTigeR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: работа IF_PICTURE_IN, #include
« Reply #10 on: July 16, 2017, 09:56:35 PM »
В обоих случаях речь идет о END_CYC.
Нашёл) спасибо)