Скрипт — это экземпляр базового класса, который представляет собой часть плейса, написанную на языке Lua с некоторыми расширениями. Скрипты автоматически запускаются после выполнения и имеют доступ к событиям и свойствам плейса. Работать они могут как в Workspace, так и в ServerScriptService.
В Roblox Studio скрипты занимают ключевое место и являются незаменимыми при создании плейсов. Благодаря скриптам, плейсы запускаются и могут управлять различными объектами.
Скрипт может содержать сколько угодно строк, и их отступ регулируется предыдущими строками. Например, если строка начинается с function, Lua автоматически создаст отступ в следующей строке для облегчения чтения скрипта после его перезагрузки. Заканчивается скрипт добавлением «end» на новой строке.
Типы скриптов
Серверные Скрипты (Server Script): Они обрабатывают серверные события, такие как работа с таблицами лидеров. Эти скрипты имеют доступ только к серверным событиям и свойствам, то есть не могут взаимодействовать с пользовательским интерфейсом клиента или самим клиентом. За взаимодействие с игроком отвечают удаленные события и функции, которые позволяют серверным скриптам связаться с локальными скриптами.
Локальные Скрипты (Local Script): Эти скрипты работают с клиентскими данными, что позволяет им манипулировать локальным игроком и обращаться к его событиям и свойствам. Локальные скрипты часто используются для управления элементами, связанными с игроком, такими как камера. Связь с серверными скриптами осуществляется через RemoteEvents для доступа к серверным событиям.
Модульные Скрипты (Module Script): Они помогают структурировать код, разделяя его на классы. Модульные скрипты вызываются через метод require(), который возвращает таблицу с данными, описанными в модуле.
Основы Lua в Roblox
Переменные: Хранят данные (числа, строки, объекты).
local health = 100
local playerName = "User123"
Функции: Выполняют действия.
function healPlayer(player)
player.Health += 10
end
События: Реагируют на действия игрока (например, клик по объекту).
script.Parent.Touched:Connect(function(hit)
print("Объект коснулся: " .. hit.Name)
end)
Примеры скриптов
Движение объекта:
local part = script.Parent
part.Anchored = false -- Отключаем "якорь" для движения
part.Velocity = Vector3.new(0, 50, 0) -- Движение вверх
Телепорт игрока:
local teleportPart = script.Parent
local destination = workspace.DestinationPoint
teleportPart.Touched:Connect(function(hit)
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player then
player.Character.HumanoidRootPart.CFrame = destination.CFrame
end
end)
Полезные ресурсы
Roblox Developer Hub: developer.roblox.com (официальная документация по скриптингу).
Уроки
Как создать первую игру
Видеоуроки на YouTube (каналы AlvinBlox, TheDevKing).
Инструменты
Roblox Studio: Встроенный редактор для создания игр.
Plugin Script Editor: Удобный плагин для написания кода.