[[help:txt2gam|Назад: Краткое руководство по TXT2GAM]]
====== Анализатор кода QSP ======
Эта утилита предназначена для анализа кода игры для QSP, записанного в формате **TXT2GAM** (**QSPS**).
Для работы этой программы необходимо установить **.Net Framework** версии не ниже 2.0.
Если при запуске появляется "Ошибка при инициализации приложения (0xc0000135)", значит у вас не установлен **.Net Framework**.
Анализатор выполняет проверку на двух уровнях:
- Проверка синтаксиса. Все ошибки, которые можно однозначно определить по соответствию синтаксическим правилам языка QSP.\\ **Пример:** незакрытые многострочные операторы, незакрытые скобки, неверное количество аргументов функции и т.д.
- Предупреждения. Предположения об ошибках, основанные на анализе структуры игры - переменные, локации, предметы, действия.\\ **Пример:** локации, на которые нет перехода, использование неинициализированных переменных, попытка удалить предмет, который нигде не добавляется, и т.д.
**[[https://code.google.com/archive/p/qsp-analyser/downloads|Скачать анализатор со страницы релизов]]**
Ссылка на проект, для тех, кому интересно: [[http://code.google.com/p/qsp-analyser/|http://code.google.com/p/qsp-analyser/]]
Главная ценность проекта - исходный код, который полностью открыт. Его можно обновлять и дополнять под изменения в QSP.
===== Применение =====
==== При разработке игр посредством qGen ====
Анализатор работает только с файлами формата **TXT2GAM** (**QSPS**). Поэтому, если вы работаете в **Quest Generator**, вам придётся экспортировать игру в **TXT2GAM** для проверки в Анализаторе:
* Открываете меню "Игра → Экспорт → Текстовый файл формата TXT2GAM…"
* Выбираете место сохранения и название файла.
После этого запускаете "''QSP_Analyser.exe''", указываете путь к вашему файлу, и нажимаете кнопку "Перечитать".
Анализатор выводит список ошибок в следующем виде:
Ошибок: 1, предупреждений: 0
Ошибка, локация "Диалог_А", строка #220 : Многострочный IF без END
Номер строки соответствует номеру в текстовом файле, все исправления вносятся в него через любой текстовый редактор. Для быстрого переключения к нужной строке используйте сочетание клавиш **Ctrl+G**.
===== Экспорт текстовых констант в CSV-файл и перевод =====
Сделано для удобства перевода игры на другой язык. Работает так: открываем утилиту, выбираем исходный код квеста. Открываем вкладку "Конвертация". Жмем "Экспорт в CSV". Если в исходном файле нет ошибок, генерируется CSV-файл, в котором записана таблица из четырех колонок. В первой - номер строки таблицы и название локации, из которой взят текст. Во второй - исходный текст. В третьей - нужно вписать перевод. В четвертой можно писать любые комментарии, ее содержимое не учитывается.
CSV-файл можно редактировать во многих офисных программах. Точно он поддерживается программами OpenOffice Calc и MS Excel. Когда перевод готов, нажимаем кнопку "Сделать перевод, используя CSV". Сгенерируется файл с именем таким как у исходного квеста + указанный суффикс(пример: исходный квест "''game.txt''", CSV-файл "''game.csv''", файл перевода "''game_tr.txt''"). Получили переведенную игру.
Для чего это нужно?
Во-первых, наглядное представление не даст пропустить непереведенных строк.
Во-вторых, можно будет поручить перевод человеку, не знакомому с языком QSP.
Ну и еще это может служить удобным средством для проверки орфографии, до тех пор пока она не будет-таки реализована в кугене.
===== F.A.Q. =====
**— Что такое "потерянные локации"?**
Потерянные - те, на которые нет явно заданных переходов.
Пример:
$nextloc = 'Победа'
...
GOTO $nextloc
В такой ситуации, анализатор не засчитает это за переход (обращение к локации). Но можно внести ''"$nextloc"'' в специальный список переменных в панели настроек, тогда присваивание значения будет считаться за переход.
**— Зачем переводить игры?**
Кроме очевидных:
* Увеличение аудитории игры.
* Хорошо оформленную игру на Aero, переведенную на английский, можно собрать в stand-alone swf и продать на рынке flash-игр. При этом весь контент в игре не должен нарушать чьих-либо авторских прав.
* Теоретически можно публиковать игры на **Steam** и других площадках для продажи игр.
===== Ссылки =====
* [[https://qsp.org/index.php?option=com_agora&task=topic&id=365|Обсуждение на форуме.]]
* [[https://mega.nz/folder/jXwXlSRJ#TF7P-soOJOWIC8MrBA-L1A|Две версии анализатора и другие программы на Mega.nz]]
[[help:limits|Вперёд: Ограничения QSP]]