• Отладчик/Дебагер
→ Проверяет синтаксис скриптов, если в каком то, найдена синтаксическая ошибка, то в Главном Меню будет мигать красным цветом текст "Скрипт (такой-то) содержит синтаксические ошибки!!!”
→ Если в скрипте имеется функция (не локальная) с именем _log_db , то вывод логов этого скрипта можно контролировать(то есть вкл/выкл вывод логов этого скрипта)
→ (только при выкл расширенной автономности) - Проверяет наличие указанного скрипта в секции [scripts_tbl] (о ней я расскажу ниже) в папке scripts.
• Внедренный Повелитель зоны
• Функция вывода логов, которая может выводить лог в консоль, сохранять файл, выдавать в сообщение(в опциях можно включить или отключить тот или иной вид вывода логов)
• Внедренные показы координат и остальная статистика ГГ
• Внедрены: редактор путей и редактор all.spawn
→ Редактор путей – в самой игре можно создавать пути и сохранять их в файл, в итоге мы получаем уже готовый путь, который просто засовываем, куда нам угодно
→ Редактор all.spawn – аналогична функция, как и у редактора путей, только здесь все для all.spawn-а
Особенности:
• Автономность – пытался привести данный набор инструментов к максимальной автономности, то есть что бы конечному пользователю не надо было создавать по N-ному кол-ву разных элементов, строк кода и тп, для настройки его под себя(то есть свел к минимуму гемора так сказать )
• Опциональность(гибкость) – многие параметры отладчика можно настроить как в игровых опциях, так и до начала игры в конфиг-файле
• Управляемость выводом логов – как уже писал ранее, для скриптов, в которых используется функция _log_db, можно вкл и выкл вывод логов.
Использование:
• Во время игры в окне главного меню:
→ Клавиша F1 – вызов окна Повелителя зоны
→ Клавиша F2 – вызов окна Опций/настроек
→ Клавиша F3 – вызов окна редактора путей
→ Клавиша F4 – вызов окна редактора all.spawn
• Лог-функция:
→ Функция выдачи/сохранения лог-текста в консоль/сообщение/лог-файл:(для выдачи лога в консоль обязательно должен быть включен дебаг режим)
Прототип: _log(sName,...)
sName - лог-текст
... - передаваемые переменные
• Пример №1: С методом форматирования строки:(переменные передавать обязательно!):
_log("CSpLauncher:UpdateFuncs:=Func:[%s] diffSec:(%s)", sName, aFnc.oTime:diffSec(game.get_game_time()))
В итоге: "_log:CSpLauncher:UpdateFuncs:=Func:[TimerSleep] diffSec:(-0.35500256)"
:
• Пример №2: без метода форматирования строки:(переменные передавать не обязательно!):
_log("Любой текст")
В итоге: "_log:Любой текст"
• В папке gamedata\configs\ есть конфиг-файл dbg_configs.ltx, внутри которого есть секции, там все расписано и приведены примеры, но все таки поясню, чутка по секциям:
→ Секция [start_flags] – содержит начальные значения параметров опций.
Здесь флаг fAuto - параметр расширенной автономности*
→ Секция [scripts_pref] – используется при вкл расширенной автономности, здесь указывается префикс названия скриптов(для проверки и отладки - функция _log_db). К примеру есть 2 скрипта _s_1 и _s_2, нам нужно проверять их обоих, но что бы не перечислять их всех, указывается их префикс - _s в итоге будут проверяться оба скрипта.
→ Секция [scripts_tbl] – используется при выкл расширенной автономности, здесь указывается полные имена скриптов, которые мы хотим проверять и отлаживать(функция _log_db).
Отладка скриптов
Для отладки/выдачи логов скрипта используется функция _log(sName,...), но если вы хотите управлять выдачей логов определенного скрипта через опции(то есть вкл/выкл их), в скрипте обязательно должен присутствовать ниже приведенный код(функция) :
local sName = script_name()
_log_db = function (sText, ...)
if ReadVar(sName,true) then
_log(sName..":"..sText, ...)
end
end
(пример приведен в скрипте vashe_nazvanie.script)
В итоге, отладку этого скрипта можно будет отключить в опциях.
Внимание! В таком случае для отладки используется не _log(sName,...), а _log_db (sName,...), иначе – результата вкл/выкл отладки этого скрипта не будет заметен.
*расширенная автономность – при вкл параметре используется секция [scripts_pref] ее описание выше
Функции доступные для глобального вызова(их более детальное описание смотрите в _s.script):
→ WriteVar – сохранение переменной в хранилище актора
→ ReadVar – чтение переменной из хранилища актора
→ DelVar – удаление переменной из хранилища актора
→ GetString – получить строку
→ log – функция обработки и выдачи/сейва лог-текста
→ SendTip – выдача сообщения
От автора:
Хх да, забыл, кол-во тегов для вывода списков отладочных скриптов = 10 тоесть, если у вас в списках будет больше 10 скриптов в которых содержится функция _log_db (sName,...) , то будет вылет, проблему легко решить, просто скопировав теги к примеру cap_script_10 и btn_script_10 и вставить их ниже переименовав окончание на 11, 12 и тд (не забудьте про тип монитора. Для широкоформатников – файл ui_sp_options_16.xml, для не широкоформатников - ui_sp_options.xml)
Если нашли вылеты, недочеты и тд, или, если есть пожелания и идеи, по расширению данного набора инструментов, не стесняйтесь, отписывайтесь в этой теме…
Сильно не кричите, не бейте и не ругайте за мануал, кому не понравился)))) не шарю я их писать)
Использовались наработки след. авторов:
Singapur22, Gun12, Xmk – Показ координат и тп.
Shoker – Повелитель Зоны ЗП.
Редакторы путей и all.spawn – хз, авторов не нашел.
Artos – некоторые фишки с кодом.
Отдельное спасибо:
Artos и ColR_iT – за ответ на вопрос о фиче с полями таблиц, на АМК форуме.