Roblox GuidebookБаза знаний
Русский ⌄
Все руководства

Разработка / ROBLOX

Первый скрипт на Luau: от трёх строк до понятной проверки

Создаём Script, разбираем числа и строки, выполняем три упражнения и учимся находить ошибку в Output. С кодом, схемами и ожидаемыми результатами.

Путь к учебному скрипту TrainingMessage в ServerScriptService
Оригинальная схема: обычный Script лежит в ServerScriptService. Это иллюстрация, а не снимок Studio.
Обновлено:

Что получится в конце урока #

Мы создадим учебный скрипт, который сообщает название маршрута и количество запланированных контрольных точек. Он не ставит точки на карту и не сохраняет прогресс игрока: переменная здесь нужна, чтобы научиться хранить и проверять значение. Сначала важно увидеть связь между написанной строкой и результатом её выполнения.

После урока вы сможете найти скрипт в Explorer, объяснить каждую строку примера, изменить число и проверить результат. Для работы нужен установленный Studio и отдельный учебный проект. Сохраните проект перед экспериментами. Не добавляйте пример прямо в большую игровую систему: посторонние сообщения и ошибки осложнят первые проверки.

1. Создайте Script в ServerScriptService #

Откройте Explorer, найдите ServerScriptService и добавьте в него обычный Script через кнопку добавления объекта. Назовите его TrainingMessage. Мы выбрали это имя для упражнения: оно объясняет назначение и помогает отличить файл от других скриптов. Проверьте, что выбрали Script, а не LocalScript или ModuleScript.

Откройте созданный файл двойным щелчком. В учебном файле замените стартовое содержимое нашим примером ниже. Не удаляйте неизвестные скрипты из существующей игры. Если Explorer или редактор закрыты, сначала верните нужную панель, а затем продолжайте. На схеме показано, где находится учебный файл.

2. Введите код и прочитайте его по строкам #

Первая строка создаёт локальную переменную checkpointCount со значением 3. Вторая создаёт message со строкой Training course. Третья передаёт оба значения функции print. Число пишется без кавычек, текст — в кавычках. Запятая разделяет два аргумента print.

Скопируйте три строки целиком, включая скобки и кавычки. Названия переменных должны совпадать в местах объявления и использования: checkpointCount и checkpointcount — разные написания. Здесь число 3 означает только учебное значение. Не ожидайте, что на карте автоматически появятся три платформы или начнут работать настоящие контрольные точки.

local checkpointCount = 3
local message = "Training course"
print(message, checkpointCount)

3. Запустите тест и найдите сообщение #

Откройте Output через Window или соответствующий инструмент Studio. Запустите тест игры и найдите сообщение с Training course и числом 3. Рядом могут быть время, имя скрипта и сведения о контексте. Эти служебные детали зависят от настроек вывода, поэтому сравнивайте сами значения, а не весь вид строки.

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

Код передаёт значения в print, а сообщение появляется в Output
Код → выполнение → журнал. print не создаёт интерфейс для игрока.

4. Измените одно значение #

Замените 3 на 5 в первой строке. До нового запуска сформулируйте ожидаемый результат: название останется прежним, а число станет 5. Запустите тест снова и сравните вывод с ожиданием. Такое предварительное предположение превращает запуск в проверку, а не просто в нажатие кнопки.

Если продолжаете видеть 3, убедитесь, что отредактировали TrainingMessage, остановили прежний тест и смотрите на новое сообщение. Старые строки журнала могут остаться на экране. Не создавайте второй такой же скрипт для исправления первого: два источника вывода только усложнят поиск.

5. Добавьте простой расчёт #

Остановите тест и замените содержимое учебного файла вторым примером. Запланированы три точки, завершена одна, значит осталось две. Вычитание работает с числовыми значениями; print выводит подпись Remaining и результат 2. Сам расчёт не связан с действиями персонажа: все числа пока задаются вручную.

Замените completedCheckpoints с 1 на 2. Сначала посчитайте результат самостоятельно, затем проверьте журнал: должно остаться 1. Теперь попробуйте значение 3 — должно остаться 0. Если ввести 4, получится −1. Это хороший повод заметить, что правильный синтаксис ещё не гарантирует правильные игровые правила.

local plannedCheckpoints = 3
local completedCheckpoints = 1
local remainingCheckpoints = plannedCheckpoints - completedCheckpoints
print("Remaining", remainingCheckpoints)

6. Сделайте осмысленный эксперимент с ошибкой #

В отдельной сохранённой учебной копии временно уберите закрывающую кавычку у Training course в первом примере. Попробуйте запуск и прочитайте сообщение об ошибке. Затем верните кавычку и убедитесь, что рабочий вывод появился снова. Мы намеренно меняем один символ, поэтому знаем, какую причину проверять первой.

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

7. Если в Output ничего нет #

Проверьте по порядку: запущен ли тест; находится ли обычный Script в ServerScriptService; не отключён ли он; нет ли ошибки, мешающей выполнению; не скрыты ли сообщения фильтром Output. Для серверного учебного примера также проверьте фильтр контекста. Поиск по тексту в журнале может скрывать даже исправно работающий вывод.

Если сообщение появляется несколько раз, посмотрите на имя источника. Возможно, существуют две копии TrainingMessage или вы сравниваете несколько запусков. Прежде чем удалять что-либо, найдите обе копии в Explorer и выясните, какую создали для упражнения. Сохраняйте точный текст ошибки при обращении за помощью.

8. Проверка без подсказок #

Создайте ещё один небольшой вариант: переменная courseName содержит название вашей учебной трассы, а stageCount — число 4. Выведите оба значения одним print. Не копируйте предыдущие имена механически: проверьте, что используете именно новые переменные. Затем измените только название и убедитесь, что число осталось прежним.

Объясните результат своими словами: где хранится текст, где число, какая строка отправляет их в журнал. Если объяснить не получается, вернитесь к первой версии и меняйте по одному значению. Для маленького примера понимание трёх строк полезнее, чем вставка большой системы, которую пока нельзя проверить.

Что изучать дальше #

Сохраните рабочую версию и подпишите её понятным именем. Следующий шаг — отдельное упражнение с условием: например, выводить предупреждение, если число завершённых точек превышает число запланированных. Для настоящего маршрута позже понадобятся объекты, события и учёт конкретного игрока. Этот урок не выдаёт учебную переменную за готовую систему прогресса.

Возвращайтесь к Output при каждом новом небольшом изменении. Хорошая привычка состоит из четырёх действий: назвать ожидаемый результат, выполнить код, сравнить значения, изменить одну причину расхождения. Она пригодится и при работе с гораздо более сложными механиками.

Первоисточники

Roblox Creator Hub
Roblox Creator Hub: Output