RU

Отладчик

Ntropy Moderator 05.04.2010 11:16 13 comments 14915 views

Продолжение темы на qsp#borda в помощь тестировщику
Создана статья
Предлагаю обсудить опыт использования отладчика и пожелания на дальнейшее развитие.

Edited at 19.01.2014 08:24 (12 years ago)

Статья не опубликована.

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,
я проверил - работает. Ты что-то делаешь не так.
Сравни мой тест со своим кодом, тогда поймёшь, что делаешь неправильно.

debugger-demo-20.zip

Nex:

GarniZone,
я проверил - работает. Ты что-то делаешь не так.
Сравни мой тест со своим кодом, тогда поймёшь, что делаешь неправильно.

debugger-demo-20.zip

Да, работает. Добавил меню, ввел и вывел переменные и оттуда. (Удобно через меню переменные выводить.) Наверно в тот раз в моем коде ошибки были, не успевал дебаггер срабатывать.
Спасибо.

Вот эту картинку, которую Nех демонстрирует в зипе, стоило бы привесить на страницу с описанием дебаггера - сэкономили бы людям кучу времени. И видеоурок совсем не помешал бы - я пока добился того, что вижу значения переменных, но как и на какой строке кода они меняются, для меня пока остаётся зелёной тайной.

Талер,
напиши разработчику, может сделает.

Aleks Versus Moderator 29.01.2014 09:55 (12 years ago)

Талер:

но как и на какой строке кода они меняются,

это вообще возможно отследить стандартными средствами плеера? По-моему нет.

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, в котором указаны команды отладчика в «визуальном» режиме. Вообще-то, сначала я делал этот файл для себя, но потом немного его доработал и теперь представляю широкой публике. Можете его скачать. Возможно, кому-нибудь он будет полезен.

Log in or Register to post comments.