Roblox вики
Advertisement
Roblox вики
2049
страниц
Oldscriptimage

Старая иконка скрипта в Roblox Studio

Скрипт — это экземпляр базового класса, который содержит раздел плейса. Он кодируется на языке Lua, но с дополнительными изменениями. После выполнения скрипты обычно запускаются автоматически и имеют доступ к событиям и свойствам плейса. Скрипты имеют возможность работать внутри Workspace или ServerScriptService

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

Особенности Скрипта[]

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

Пример[]

Серверный скрипт, который если вставить в деталь, игрок, который прикоснётся к этой детали, умрёт.

script.Parent.Touched:Connect(function(hit : Model?)
    if hit.Parent:FindFirstChildWhichIsA("Humanoid") then
        hit.Parent:FindFirstChildWhichIsA("Humanoid"):TakeDamage(100)
    end
end)

Свойства Скрипта[]

  • Отключено определяет, будет ли выполняться скрипт или нет.
  • LinkedSource используется для хранения URL-адреса, указывающего на источник онлайн-скрипта.
  • CurrentEditor возвращает игрока, который в данный момент редактирует скрипт.

Типы Скриптов[]

Серверные Скрипты (Server Script)[]

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

Локальные Скрипты (Local Script)[]

Локальные скрипты работают на внутренних данных. То есть локальные скрипты имеют возможность манипулировать локальным игроком, а также получать доступ к событиям и свойствам клиента. Таким образом, локальные скрипты в основном используются при работе с игроком, например с камерой. Однако они могут иметь возможность взаимодействовать с серверными скриптами. Чтобы получить доступ к событиям сервера через связь RemoteEvents.

Модульные Скрипты (Module Script)[]

Модульные скрипты используются для удобной организации кода по классам. Модульные скрипты вызываются с помощью метода require(), который возвращает таблицу, возвращённую в самом модуле.

Пример[]

-- пусть данный модульный скрипт будет находиться в ReplicatedStorage
local m = {} -- все модули - переменные в виде таблиц
m.__index = m

function m.new() -- конструктор класса
    local self = setmetatable({}, m) -- присваиваем метатаблицу к таблице m, self - и есть наш m
    return self
end

function m.test()
    print("это работает")
end

return m -- возвращает наш модуль
local module = require(game:GetService("ReplicatedStorage").myModule)

local test = module.new()
test.test()
Advertisement