SCAR debugging (SCAR разработка)

(Бета 1. Тестовая. Финальная. Перевод Контекстный с эдементами гипонимического (или какого там :)). Время перевода ~100 минут. Зеленый цвет - возможна ошибка. Прочти оригиналпод ним)

Contents (Содержание)

Introduction (Введение)

Это руководство просветит тебя подсказками и хинтами, которые смогут помочь тебе в разработке любого Скар скрипта. Это ничем тебя не обязывает, но эти предметы должны сделать отлов багов и работу с Скаром гораздо легче.

Debugging SCAR Files (Разработка Скар файлов)

Когда пишишь Скар файл всегда делаешь кучу ошибок и потом отлавливаешь баги. Здесь преведена пара способов, которые могут помочь тебе минимизировать проблемы с ними и облегчить жизнь. Эти способы представлены здесь для того, чтобы ты мог выйти из любой ситуации с которой ты повстречаешься в разработке.

Try and compile using LUA: (Пробовать компилировать используя LUA)

Первым делом ты должен попытаться скомпилировать свой скрипт импользуя Lua компилятор. Это гарантирует тебе, что ты не имеешь синтаксических ошибок в скрипте. Это особенно важно т.к. если есть синтаксические ошибки в LUA игра будет прекращена без какого либо сообщения об ошибке.

Use print to help you debug. ( Использовать печать для помощи в твоей разработки >)

Печатать выражения возможно одна из самых эффективных команд в Скар системе.Так правильно размещенные напечатаные выражения позволят тебе проследить развитие скрипта и позволят определить если где-то ты ошибся. Как бы то ни было быдь осторожен т. к. начальные правила вызываются регулярными интервалами неправильно размещеных выражений может значить, что консоль будет зафлужена сообщениями от твоего напечатаного выражения.

The print statement is probably one of the more useful commands in the scar system. As correctly placed print statements will allow you to trace the progress through the scripts, and allow you to determine if they're acting in the way you expected them to. Be careful however, since rules are called on a regular intervals a wrongly placed print statement may mean that the console will get flooded with messages from your print statement.


Check the console for errors. (Проверять консоль для поиска ошибок)

Консоль будет твоим главным инструментом для проверки скар скриптов так же, как и для разработки в целом. Когда ты увидишь “Fatal Scar Error”, то вызвав консоль ты сможешь увидеть номер, место и причину ошибки. Консоль вызывается ctrl+alt+~.

Lua Watcher & Rule Profiler (Lua глядельщик и Правило профилизатор)

Lua глядельщик и Правило профилизатор это замечательные инструменты разработчика, которые были портированы с Homeworld2 и его продолжений .

Lua Watcher (Lua глядельщик)

Lua глядельщик позволяет посмотреть выражение и связанные значения, которые объявляются в игре (в данной миссии, разумеется!). Lua глядельщик может быть использован так:


Rules Profiler (Правило профилизатор)

Правило профилизатор это замечательный инструмент, который может показать тебе какие правила существуют, и какие запущены. И показывает когда правила которые ты хотел запустить незапущены, съедаемые правилами ресурсы, или какое правило запущено дольше, чем тебе надо.

The rules profiler is an excellent tool that can give you an idea of what rules exist, and are running, when rules that you expect to be running aren't running and if any particular rule is eating up resources, or taking longer to execute then you would expect.


Используй эти функции. Они свяжут кнопки клавиатуры для быстрого использования инструментов описаых в данном руководстве :

-- debug key bindings for scar profiler and scar watcher --

-- bind scar watcher --

-- show/hide the watcher.  automatically adds the showall filter for you.
toggle_scar_watcher = "LCWatcher_SelectState('SCAR'); LCWatcher_AddFilter('SCAR',''); LCWatcher_Activate(not LCWatcher_IsActive());";

-- use this to quickly add/remove the showall filter
toggle_all_vars = "if LCWatcher_FilterExists('SCAR', '') then LCWatcher_RemoveFilter('SCAR','') else LCWatcher_AddFilter('SCAR','') end";

bind("Shift+W", toggle_scar_watcher);
bind("Shift+A", toggle_all_vars);


-- bind scar profiler --
toggle_scar_profiler = "RulesProfiler_Activate(not RulesProfiler_IsActive())";

bind("Shift+P", toggle_scar_profiler);


-- nislet debug bindings --
bind("Shift+U", [[Scar_DoString("W40k_UnlockInputOnLetterBox()")]] );


Ты можешь захотеть разместить их в специальной папочке, для примера в Dev/ScarDebugBindings.lua. Если ты хочешь использовать их, то просто добавь следующую строчку к твоему localexec.lua файлу:

dofile("Dev/ScarDebugBindings.lua")

Эти привязки очень удобны и сделаны не зря.

Conclusions (Заключение)

С этими хинтами, подсказками и инструментами тебе будет гораздо легче разработать твой Скар скрипт.

End of Page (Конец)

Сайт управляется системой uCoz