Author Topic: помогите найти ошибку  (Read 3436 times)

0 Members and 1 Guest are viewing this topic.

DimonNT

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
помогите найти ошибку
« on: February 13, 2020, 12:43:15 PM »
помогите отловить ошибку. бот работал нормально но иногда при редактировании нажимаю применить а он нелепую ошибку выдаёт - то скобки нет, то имя не то, причём в том месте где я не редактировал ни чего. а сегодня просто при запуске выдаёт кучу ошибок.  открывать даёт только в редакторе скрипта причём если в редакторе запустить скрипт то ошибок нет. Если редактор закрыть и запустить, обрезает большую половину кода ну и соответственно выдаёт кучу ошибок.
« Last Edit: February 19, 2020, 06:31:42 PM by DimonNT »

DimonNT

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: помогите найти ошибку
« Reply #1 on: February 13, 2020, 01:54:24 PM »
какой смысл искать, если после нажатия кнопки " расставить отступы" хорошо видно, что скрипт не полный и нижняя часть обрезана?
и ставить директиву автозапуска в заведомо бажный скрипт  подло ведь тому кто захочет вам помочь неизвестно какие вредоносные действия ваш скрипт может нанести компу, как минимум заблокировать нормальное использование, когда выдаёт кучу ваших ошибок.

 Чтоб обрезания кода не происходило Нажимайте кнопки  применить и сохранить, а когда программа вместо сохранения выдаёт сообщение об ошибке, по превращайте сомнительные группы строк в комментарии , а когда все ошибки исчезнут, удаляйте поочерёдно символ комментария из строк и жмите кнопки  применить-сохранить и таким способом точно найдёте все строки с ошибками.
если я нажму применить и сохранить то  сохранится видимая часть кода. т.е. 2\3 части кода я потеряю - это ни как не поможет мне в поиске ошибок , это так же как заного его написать.
 скрипт режет, открой внутри редактора этот же скрипт и всё видно станет.  я весь скрипт "удалял" по 500 строк. дошел до низа и... вроде нашел после кокого отрывка он перестал ошибку выдовать, но при удалении этого места из целого (не вырезаного) кода  он опять выдал ошибку. так я поудалял несколько раз. и каждый раз новое место выходило без которого ошибка пропадала но при удалении её в основном коде ошибка возвращилась. поэтому и прошу помощи.
« Last Edit: February 13, 2020, 02:48:38 PM by DimonNT »

DimonNT

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: помогите найти ошибку
« Reply #2 on: February 13, 2020, 02:06:30 PM »
причём я даже в блокнот не могу скопировать ту часть кода который обрезает но когда открываешь этот же скрипт внутри редактора он виден.  удалось это сделать только сохранив  в самом редакторе исзменив расширение с .cms  на .txt
« Last Edit: February 13, 2020, 02:16:11 PM by DimonNT »

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: помогите найти ошибку
« Reply #3 on: February 13, 2020, 04:04:45 PM »
Слишком большой скрипт, реж на условно самостоятельные части и сохраняй по разным файлам. Подключай последовательно и тестируй.
Если у тебя всего 1 поток. Его можно не объявлять.

Code: (clickermann) [Select]
SUB(вход в город) // подпрограмма

Попробуй заменить русские названия на английские, а пробелы на _.
То что интерпретатор Кликермана не ругается, не значит, что он их правильно распознает.
Если где либо в строковых переменных присутствует символ с кодом 39, то сравнение строк приводит к ошибке.
« Last Edit: February 13, 2020, 04:23:17 PM by ya12 »

DimonNT

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: помогите найти ошибку
« Reply #4 on: February 13, 2020, 05:08:54 PM »
спасибо, разобью все субы на инклюды. попробую отпишусь . обидно что не ругался - боту уже третий год пошёл (конечно не в таком виде) а теперь вот подстава.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: помогите найти ошибку
« Reply #5 on: February 14, 2020, 09:45:10 AM »
В нескольких местах нулевые байты. Или вставлено откуда-то или файл был битый на диске. См. скрины.
В txt эти нулевые байты заменены пробелами. Что перестаёт ломать файл, но по прежнему ломает скрипт.

Правила имён не соблюдаются, как уже говорили, пробелы в именах. Ещё начало имён не с букв и присутствуют символы +-  См. скрин
Хоть обычно это и не влияет, но лучше так не делать, особенно проблемы и +-

Второй файл (.txt) в кодировке UTF-8 без BOM
« Last Edit: February 14, 2020, 09:48:41 AM by Vint »


DimonNT

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: помогите найти ошибку
« Reply #6 on: February 14, 2020, 07:26:23 PM »
спасибо всем за советы!  не пойму откуда нулевые байты у меня их нет , даже заново скачал бот.txt нет ни чего и по строкам не совпадает это место на скринах. -+  и цифры уберу обязательно не знал что нельзя.  заменил я sub на инклюды (соответственно все #include вынес наружу, не помогло.  бот начал зацикливатся.  самое интересное тот файл который я сохранил из редактора в txt формат (вместо .cms) скопировал и вставил обратно и о чудо  кликер ругнулся пару раз (я исправил) и бот заработал. !!!
P.S.  выложу скрипт без ошибок может у кого есть желание подсказать как улучшить скрипт или уменьшить . знаний в программировании не хватает .   это бот от игры war and magic
« Last Edit: February 15, 2020, 03:28:16 PM by DimonNT »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: помогите найти ошибку
« Reply #7 on: February 17, 2020, 01:28:59 PM »
спасибо всем за советы!  не пойму откуда нулевые байты у меня их нет , даже заново скачал бот.txt нет ни чего и по строкам не совпадает это место на скринах.
Это в файле 1.cms? на скрине видно.
И я же говорил
В txt эти нулевые байты заменены пробелами. Что перестаёт ломать файл, но по прежнему ломает скрипт.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: помогите найти ошибку
« Reply #8 on: February 17, 2020, 01:39:36 PM »
Вынеси однотипные участки в подпрограммы.
Вижу кучу одинаковых мест
Code: (clickermann) [Select]
SWITCH($nd)
    CASE(0)
       PRINT("Четверг")
    CASE(1)
       PRINT("Пятница")
    CASE(2)
       PRINT("Суббота")
    CASE(3)
       PRINT("Воскресенье")
    CASE(4)
       PRINT("Понедельник")
    CASE(5)
       PRINT("Вторник")
    CASE(6)
       PRINT("Среда")
END_SWITCH


DimonNT

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: помогите найти ошибку
« Reply #9 on: February 17, 2020, 04:09:17 PM »
да вот этот только участок не вынесен.  так то старался чтоб код не повторялся. но не всегда sub работает (в цикле например) из за этого не всё вынес.
Из-за чего всё это случилось интересно, ладно бы ошибку выдал , он начал стирать код.   Причём тот же код при сохранении в txt  и обратно всё исправил (почти всё) .
« Last Edit: February 17, 2020, 04:19:26 PM by DimonNT »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: помогите найти ошибку
« Reply #10 on: February 17, 2020, 04:12:55 PM »
Что значит "не всегда работает"? Пример есть?
Никогда не было проблем с подпрограммами.


DimonNT

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: помогите найти ошибку
« Reply #11 on: February 17, 2020, 04:21:00 PM »
отловлю скину. по памяти он в цикле поиска цвета\картинки не всегда работал или через раз. но там суб был тоже с циклом.