Отладчик
Продолжение темы на qsp#borda в помощь тестировщику
Создана статья
Предлагаю обсудить опыт использования отладчика и пожелания на дальнейшее развитие.
Статья не опубликована.
Byte,
Исправилось
хорошо бы добавить к мониторингу переменных возможность просматривать логические выражения
опубликована новая версия библиотеки
подробности в обновленной статье
Почему-то не включается.
в описании ошибка: addqst ‘lib/debugger.qsp’
все вроде сделал
даже это вписал в ONOBJSEL
if $selobj = ‘Отладчик’: menu ‘$visual_main’
ничего
на это
*addVar *
пишет Неизвестное действие.
Хотя на это GS ‘debugger_init’ не ругается
Добавил “Отладчик” в меню, меню появилось, но как это должно работать не понятно, переменные вписал - переменные меняются, никаких признаков отслеживания не заметил. Режим на pl не меняется, я переключаю, а он остается как был.
Переменные -> вывести - тоже ничего, помощь - оставить поле пустым - тоже ничего.
Что я не так делаю?
GarniZone,
читай инструкцию.
Все команды отладчика, такие как “addvar” и так далее, насколько я вижу по инструкции, передаются параметром при вызове “debugger_process”.
gs 'debugger_process', 'addvar название_переменной'
Вообще, конечно, было бы неплохо к отладчику демонстрационную игру приложить, со всеми настройками и обучением.
Попробовал, поковырялся еще, ничего не выводится.
Решил не тратить на это время и дебаггить своими методами.
GarniZone,
я проверил - работает. Ты что-то делаешь не так.
Сравни мой тест со своим кодом, тогда поймёшь, что делаешь неправильно.
Nex:
GarniZone,
я проверил - работает. Ты что-то делаешь не так.
Сравни мой тест со своим кодом, тогда поймёшь, что делаешь неправильно.
Да, работает. Добавил меню, ввел и вывел переменные и оттуда. (Удобно через меню переменные выводить.) Наверно в тот раз в моем коде ошибки были, не успевал дебаггер срабатывать.
Спасибо.
Вот эту картинку, которую Nех демонстрирует в зипе, стоило бы привесить на страницу с описанием дебаггера - сэкономили бы людям кучу времени. И видеоурок совсем не помешал бы - я пока добился того, что вижу значения переменных, но как и на какой строке кода они меняются, для меня пока остаётся зелёной тайной.
Талер,
напиши разработчику, может сделает.
Талер:
но как и на какой строке кода они меняются,
это вообще возможно отследить стандартными средствами плеера? По-моему нет.
werewolf,
огромное тебе спасибо за то, что ты сделал такой замечательный отладчик! Я начал его использовать, и он мне очень понравился! Правда, я разобрался пока ещё далеко не во всех командах отладчика.
На странице отладчика werewolf написал:
добавлен “визуальный” режим для тех, кто не хочет учить команды:)
Я попробовал использовать некоторые команды отладчика в «визуальном» режиме и пришёл к выводу, что «визуальный» режим будет полезен для всех авторов игр и тестеров, а не только для тех, кто не хочет учить команды.
Порядок действий для включения отладчика в «визуальном» режиме и его использования в игре:
1. Распаковать архив в папку с игрой. Т.е. в игру добавятся папки lib (файл debugger.qsp) и res (файлы nok.png и ok.png). 2. Добавить в первую локацию игры команду
addqst 'lib/debugger.qsp'
для загрузки отладчика.
3. Включить отладочный режим:
debug = 1
для плеера.
4. Добавить команду
gs 'debugger_init', 1
для включения отладчика в «визуальном» режиме.
5. Нам понадобятся окна дополнительного описания и инвентаря, поэтому нужно указать:
SHOWSTAT 1
SHOWOBJS 1
6. В локацию-обработчик выбора предмета (желательно в её начало) добавить
if $selobj = 'Отладчик': menu '$visual_main' & unsel
Для удаления отладчика из игры проделайте обратные действия:
1. Удалить из папки с игрой подпапки lib (файл debugger.qsp) и res (файлы nok.png и ok.png).
2. Из первой локации игры удалить команды addqst ‘lib/debugger.qsp’ и gs ‘debugger_init’, 1
А команду debug = 1 всё же лучше оставить.
3. Отключить ненужные окна:
SHOWSTAT 0 (если не нужно окно дополнительного описания)
SHOWOBJS 0 (если вдруг в игре не нужно окно инвентаря)
4. Из локации-обработчика выбора предмета удалить строку
if $selobj = 'Отладчик': menu '$visual_main' & unsel
Как я понял, если в каком-нибудь месте игры (не в самом начале) используется команда killobj либо killall, и все предметы удаляются, то, чтобы использовать «визуальный» режим отладчика, нужно эту команду закомментировать, но внимательно следить, чтобы это не привело к нарушению нормальной работы игры. Либо тогда вообще отказаться от использования «визуального» режима отладчика и использовать его в обычном (парсерном) режиме, не забыв указать
SHOWINPUT 1
Я написал небольшой файл debugger_commands.html, в котором указаны команды отладчика в «визуальном» режиме. Вообще-то, сначала я делал этот файл для себя, но потом немного его доработал и теперь представляю широкой публике. Можете его скачать. Возможно, кому-нибудь он будет полезен.