![]() |
Script Debuger - Версия для печати +- Город Джунов (https://www.gipat.ru/forum) +-- Форум Аддон для Проклятых Земель (https://www.gipat.ru/forum/forum-20.html) +--- Форум Программирование (https://www.gipat.ru/forum/forum-6.html) +--- Темы: Script Debuger (/thread-3168.html) |
Script Debuger - KnightL - 06.08.2007 Первый файл -библиотека для текстового окна. Тому, кто загружал и работал с предыдущей версией их скачивать не надо. Второй файл - библиотека для открытия диалоговых окон. У меня возникли какие-то проблеммы с API(программа просто вылетала при любых действиях после диалога). Раньше этот файл не использовался Третий файл - сама программа. Script Debuger - KnightL - 06.08.2007 Они действительно оказались там. Значит необходимо будет добавить после загрузки просьбу открыть mob зоны. Script Debuger - Sagrer - 06.08.2007 Цитата:ActiveX TextBox для Visual Basic какой ужосс 0_0 И кста, по поводу "Script Debuger" - это действительно дебугер? %). В смысле что отслеживает выполнение скрипта во время работы ПЗ? ![]() Script Debuger - Durane - 06.08.2007 имхо, просто проверка синтаксиса + проверка обьявлены переменные или нет, типа пре-линковка, или хз как назвать... сделать дебаг во время выполнения, это ппц еще та работа )) Script Debuger - KnightL - 06.08.2007 2Sagrer Вообще-то debuger - это слишком громко сказано. Но на самом деле, кроме ошибок, заложенных в самом начале скрипта, других причин для этих самых ошибок нет (кроме работы с глобальными переменными, добавлением предметов, т.е всего того, что указывает пользователь. Я это понимаю. Но просто со скриптами есть такая противная проблема: если есть хоть какая-то ошибка, то он без вопросов не выполняет весь скрипт. И попробуй в таких условиях исправит ошибку. Я написал программу, которая делает предварительную проверку текста для выявления таких вот ошибок. Другое название, кроме как "debuger" я не смог подобрать в отношении своей программы Цитата:какой ужоссСогласен, но я никак не соберусь начать изучать C (хотя вроде уже собрался) Script Debuger - SnAIper - 06.08.2007 А заценить мона? ![]() Script Debuger - KnightL - 06.08.2007 Элемент я уже нашёл в стандартном комплекте программы ![]() Script Debuger - SnAIper - 07.08.2007 Эм... Можно багрепорты постить сюда? ![]() Короче вот что мне наобум пришло в голову: Код: //Превед! Что я ожидал увидеть: Код: Строка 7: Неправильное название скрипта. Имя скрипта типа "Стандартная функция"+"Некий текст" запрещено. Что я увидел: Код: Строки 2-14: "Вместо GlobalVars найдено %s". То есть небольшая доработка всё-же нужна, не так ли? ![]() Edit: Поменял первые 2 строчки на одну "GlobalVars (". Ошибок осталось всего две: Строка 14: ожидалось выражение типа float Строка 14: непонятное выражение "HeloMoto" Edit 2: После удаления нафиг всех переменных и условия скрипта, я удалил из ворлдскрипта киллскрипт, и сделал вызов Walker(1) (тогда как в декларации переменных не было). Программа вылетела с Run Time Error 9: subscript out of range. На этом пока прекращаю тестирование... Edit 3: Да, и ещё. Первая версия валидатора работала по такому же принципу: шла по тексту, шота искала... Короче она была менее, конечно, завершена, чем этот Debugger - но тем не менее. Меня Сагрер вовремя предупредил, что нужно работать по другому принципу - считывание по символам и отслеживание своей позиции в коде... Ну не знаю, я сейчас вижу, что он прав... Script Debuger - Sagrer - 07.08.2007 Цитата:Строка 18: КиллСкрипт может быть только на 1й строчке насколько помню - может, может. Мну в Весне вроде писал пару скриптов таких - когда скрипт убивался не просто так а опционально, а так висел и свою работу делал что и было задумано. Script Debuger - SnAIper - 08.08.2007 Jet, фокус работает, спасибо ![]() Сагрер, нет, я имел ввиду не написание сей строки в первом if'е скрипта, а то, что киллскрипт может идти сразу после Then'а. И никак иначе. А то игра вылетит. Script Debuger - Sagrer - 08.08.2007 Цитата:а то, что киллскрипт может идти сразу после Then'а. И никак иначе. А то игра вылетит. гхм, не помню такого.... Уверен? Script Debuger - KnightL - 08.08.2007 Я смотрю, баги находятся. В таком случае я думаю, что я лучше выложу свою программу, а те кто ей будут пользоваться отпишутся здесь по поводу некоторых ошибок. Сразу предупрежу, что не работают пункты меню Сохранить, Загрузить, Шрифт и Справка. А теперь по поводу найденых ошибок... О том, что нельзя использовать переменные и процедур в начале имена стандартных, я не знал. Как и о том, что нельзя писать KillScript не на первой строке процедуры (игра просто вылетает с ошибкой). Ту ошибку я еще в самом начале работы сделал. При работе я постоянно добавлял в функции опциональные параметры, чтоб не исправлять старых. Но теперь эта ошибка убрана. Сообщение на строке 14 так и предполагалось. Лично я это сообщение ошибкой не считаю. Теперь о предположительных предупреждениях: Цитата:Предупреждение: Скрипт "Walker" объявлен, но не вызван ни разу.Если ты отнес эту ошибку к предупреждениям, то она не критична. Может быть я добавлю ее позже. Цитата:Предупреждение: Скрипт "Walker" не содержит переменных, а это не всегда работаетА ты в этом уверен. Выложи мне хоть один скрипт, где были проблемы из-за отсутствия параметров у процедуры, предварительно проверив его моей программой. Могу тебя заверить, что ты увидишь в этом скрипте ошибку типа "найдено непонятное выражение 'this'" и "ожидалось увдеть переменную типа object" 2 SnAIper а ты точно уверен, что моя программа идет по строкам. Наверное ты просто так подумал из-за отсортированности списка. На самом деле программ идет отнюдь не по прямой. Script Debuger - Serж - 08.08.2007 В общем скачал, затестил. Скажу сразу, что я использовал 100% рабочий скрипт. Цитата:Строка ¹127. На строке найдено непонятное выражение : 'ConsoleString("<---|||==|||--->")'Странно, но это вполне нормальное 'выражение' Цитата:Строка ¹145. Слишком много параметров у процедуры. Но на сторке 145 мы видим это: ConsoleString("Vy uvideli ubitogo ohrannika, provalivaem podzadaniya") Цитата:Строка ¹513. Использование процедуры в самой себе Строка 513 выглядит так: dormidont_zone(zakl,0) Полный код: Код: DeclareScript dormidont_zone(zakl : string, ttt : float) Тоже странно. Здесь обнуляется скрипт, что бы каждый раз при выполнении условия выполнялось действие. На строке 593 аналогичные сообщения. На этом "ошибки" закончились. Дебаггер в принципе хорош, но все же требует доработки. [UPDATE] А теперь я вбил туда заведомо подпорченый скрипт. Как ни странно, но практически все ошибки он выявил правильно . Это хорошо ![]() ![]() Script Debuger - KnightL - 08.08.2007 Я буду исправленную версию выкладывать без dll. Слишком они много весят. Поэтому программу надо класть к предыдущей. 2 Sarger. Не мог бы ты выложить строку ¹127. Интересно было бы на нее посмотреть. С вызовом своей процедуры я перестарался. Я просто забыл, что как раз на этом могут работать скрипты. Ошибку с запятой я забыл исправить в отношении кавычек. Теперь все нормально. P.S Двойное нажатие на ошибку выделит строку с этой ошибкой Script Debuger - Sagrer - 08.08.2007 Цитата:2 Sarger. Не мог бы ты выложить строку ¹127. какую ще строку? 0_0 %). Имхо ты во-первых ошибся ником, во вторых там в цитате так и написана та самая строка... З.Ы. просто требуй у аффторов сообщений про баги полный текст скрипта - и отлаживай уже именно его у себя. Script Debuger - KnightL - 08.08.2007 Да, точно ошибся. Да этот скрипт и не очень сложно отлаживать без скрипты, если знаешь причины вызова тех или иных ошибок. Script Debuger - Serж - 08.08.2007 KnightL, отлично, теперь прога работает нормально. Осталось поправить баг 127 строки %) . Спасиб, за нужную прогу) Пойду еще потестю. [UPDATE] Попробовал вбить в прогу скрипт Весны ( из файла SuslPrtlGip.mob )... Появилось множество сообщений об ошибке команды GroupAdd и выскачила мессага: Script Debuger - KnightL - 08.08.2007 А можно мне посмотреть эту строчку Script Debuger - Serж - 08.08.2007 Вот, в текстовике полный скрипт из моба SuslPrtlGip Script Debuger - KnightL - 08.08.2007 Ошибки исправил. Теперь буду цеплять новые версии к первому посту темы. |