Как сделать коды в роблокс студио
Перейти к содержимому

Как сделать коды в роблокс студио

  • автор:

Скрипт

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

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

  • 1 Особенности Скрипта
  • 2 Пример
    • 2.1 Свойства Скрипта
    • 3.1 Серверные Скрипты (Server Script)
    • 3.2 Локальные Скрипты (Local Script)
    • 3.3 Модульные Скрипты (Module Script)
      • 3.3.1 Пример

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

      Скрипт имеет бесконечное количество строк, которые он может держать в данный момент времени. Отступ каждой строки заранее определяется ее предыдущими строками. Например, если предыдущая строка состоит из 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() 

      Как сделать выбор команды в Роблокс студио

      В этом уроке будем делать интерфейс выбора команды в Роблокс студио. Вы можете использовать его в начале игры для распределения по командам, полу, ролям и т.д. Вам понадобятся лишь иконки (заранее подготовленные изображения) и небольшой скрипт. Давайте более подробно рассмотрим процесс создания команды распределения.

      Пошаговая инструкция

      1. Подготавливаем изображения в формате png. Можете не тратить время и скачать эти.

      Мальчик аниме Девочка аниме Фон
      СКАЧАТЬ СКАЧАТЬ СКАЧАТЬ

      2. Перейдите в раздел Create на сайте Роблокс и загрузите изображения в раздел DEVELOPMENT ITEMS — DECALS

      загрузите изображения в раздел DEVELOPMENT ITEMS - DECALS загрузите изображения в раздел DEVELOPMENT ITEMS - DECALS

      3. Запустите Роблокс Студио и перейдите на карту где необходимо сделать команду выбора.

      Запустите карту

      4. Перейдите в раздел MODEL и нажмите кнопку Insert Object. После чего кликните по пункту Decal в появившемся меню Insert Basic Object что бы создать папку Teams в окне Explorer

      Создайте папку teams

      5. В окне Explorer наведите курсор на папку StarterGui и проверьте есть ли внутри StarterGui пункт ScreenGui, если его нет, необходимо нажать на + и добавить ScreenGui. После чего создайте внутри области ScreenGui три кнопки ImageButton, при этом две из них должны находиться внутри другой (должно получиться как то так, если не понял смотри урок по кнопкам).

      Создание кнопок в роблокс студио

      6. Выровняйте кнопки и вставьте внутрь них изображения. Для этого вернитесь на сайт Роблокс — Create в раздел DEVELOPMENT ITEMS — DECALS и нажмите на три точки на загруженном изображении, после чего нажмите COPY ASSET ID что бы скопировать ID картинки. Далее вернитесь в Роблокс Студио, нажмите на изображение и в окне Properties найдите пункт image и вставьте туда скопированный ранее ID.

      Выровняйте кнопки и вставьте внутрь них изображения

      7. Внутри StarterGui — ScreenGui — ImmageButton создаем LocalScript и вставляем в него следующий код

      local Red = script.Parent:WaitForChild(«Red»)
      local Blue = script.Parent:WaitForChild(«Blue»)
      local REvent = game:GetService(«ReplicatedStorage» ) :WaitForChild(«SelectTeam»)
      Red.MouseButton1Click:Connect(function()
      REvent:FireServer(«Red»)
      wait()
      script.Parent.Parent:Destroy()
      end)
      Blue.MouseButton1Click: Connect (function()
      REvent: FireServer(«Blue»)
      wait()
      script.Parent.Parent:Destroy()
      end)

      Внутри StarterGui создаем LocalScript и вставляем в него следующий код

      8. Внутри ServerScriptService создаем Script и вставляем в него следующий код

      local REvent = game:GetService («ReplicatedStorage») :WaitForChild («SelectTeam»)
      REvent .OnServerEvent :Connect (function (player, Team)
      if game:GetService («Teams») :FindFirstChild(Team) then
      player.Team = game:GetService («Teams») :WaitForChild (Team)
      end
      player:LoadCharacter ()
      end)

      Внутри ServerScriptService создаем Script

      9. В окне VIEW отключаем видимость интерфейса нажав на кнопку UI Visibility

      Отключаем видимость интерфейса

      10. Переходим во вкладку Model и создаем два спавнера нажав соответствующую кнопку в верхнем меню.

      Создание спавнеров

      11. В окне Explorer выберите один из спавнеров. После чего в окне Properties найдите и измените параметр BrickColor в разделе Appearance и TeamColor в разделе Teams на Red для одного спавнера и Blue для другого спавнра.

      Изменение цвета спавнеров Изменение цвета спавнеров

      12. Нажимаем + на папке Teams и создаем две команды Teams и переименовываем их в Red и Blue. После чего для каждой из них меняем TeamColor на соответствующий цвет.

      Создаем команды

      13. Внутри ReplicatedStorage создайте RemoteEvent и переименуйте его в SelectTeam

      14. Что бы при каждом респавне у Вас не появлялась табличка выбора, необходимо выбрать ScreenGue и в окне Properties отключить пункт ResetOnSpawn.

      Что бы при каждом респавне у Вас не появлялась табличка выбора, необходимо выбрать ScreenGue и в окне Properties отключить пункт ResetOnSpawn.

      15. Переименуйте кнопки ImageButton созданные на шаге 5 на соответствующие цвета Red и Blue

      Как сделать магазин в Роблокс Студио

      Программирование игр в Роблокс Студио — увлекательное направление для детей и подростков, которые хотят создавать игры онлайн. Мы в школе “Пиксель”публикуем небольшие уроки Роблокс, чтобы познакомить как можно больше ребят с разработкой игр и программированием на языке Lua. В этом уроке расскажем, как строить магазин в Roblox Studio. Мы создадим интерфейс магазина и систему покупок.

      Интерфейс

      Давайте узнаем, как в Роблокс строить магазин оружия. Для начала создадим интерфейс. Для этого в компоненте StarterGui создаем ScreenGui, называем его «ShopGui» и к нему добавляем Frame. Далее растягиваем его. Это и будет наше окно магазина.
      Создаем кнопки (TextButton), задаем нужный им размер и пишем какой товар мы получим, если нажмем на нее. Добавим еще одну кнопку, покрасим в красный цвет и напишем X, это будет кнопка закрытия окна магазина. Добавим TextLable, назвав его «Cash», на нем будет отображаться количество денег у персонажа.
      Все кнопки нужно переименовать в соответствии с их значением. Также можете с помощью TextLable ниже кнопки написать стоимость товаров.

      Добавим TextButton к ScreenGui. Это кнопка открытия интерфейса магазина.
      К ней добавляем LocalScript и пишем следующий код:

      local plr = game.Players.LocalPlayer — записываем игрока

      script.Parent.MouseButton1Click:Connect(function() — при нажатии на кнопку, показываем интерфейс магазина
      plr.PlayerGui.ShopGui.Frame.Visible = true
      end)
      Теперь копируем этот скрипт и вставляем его в кнопку закрытия окна магазина. Нужно поменять только значение true на false.
      Проверьте работу открытия-закрытия окна магазина. Для того чтобы окно магазина сразу не открывалось при входе в игру, снимите галочку Visible в компоненте Frame.

      Добавляем оружие

      Переходим в ToolBox и выбираем любое понравившееся оружие. Его мы и будем продавать в магазине. Добавлять в Starter Pack не надо. Нужно его перенести в службу ServerStorage, предварительно создав в ней папку с названием «Tools».


      Теперь нам нужно создать события. Находим службу ReplicatedStorage, в ней создаем папку с названием «ToolEvents» и к ней добавляем RemoteEvent. Добавляем столько, сколько у вас позиций в магазине. Для удобства, назовем каждое событие следующим образом:

      Пишем скрипты

      Система денежного оборота

      Создадим денежную систему. В службе ServerScriptService добавляем скрипт и называем его «CashStats».

      game.Players.PlayerAdded:Connect(function(plr) — для каждого игрока при заходе в игру сработает следующий скрипт:
      local CashStats = Instance.new(«Folder», plr) — создаем папку
      CashStats.Name = «CashStats» — даем название папки
      local cash = Instance.new(«NumberValue»,CashStats) — создаем переменную внутри папки, которая будет кранить значение денег у игрока
      cash.Name = «Cash» — название переменной
      cash.Value = 500 — начальная сумма
      end)
      Возвращаемся к интерфейсу, для TextLable «Cash» добавляем LocalScript и пишем код:

      while wait(0.01) do
      script.Parent.Text = game.Players.LocalPlayer.CashStats.Cash.Value..» $»
      end
      Запускаем и проверяем.

      Система покупок

      В службе ServerScriptService добавляем скрипт и называем его «BuyTools» и пишем:

      game.ReplicatedStorage.ToolEvents.**SwordEvent**.OnServerEvent:Connect(function(plr)
      if plr.CashStats.Cash.Value >= 100 then — если у игрока больше заданной суммы, то
      plr.CashStats.Cash.Value -= 100 — вычитаем ее
      game.ServerStorage.Tools.Sword:Clone().Parent = plr.Backpack — добавляем оружие в его инвентарь
      end
      end)
      — аналогично предыдущему, только другое оружие и сумма
      game.ReplicatedStorage.ToolEvents.**PistolEvent**.OnServerEvent:Connect(function(plr)
      if plr.CashStats.Cash.Value >= 200 then
      plr.CashStats.Cash.Value -= 200
      game.ServerStorage.Tools.Pistol:Clone().Parent = plr.Backpack
      end
      end)
      Снова возвращаемся к интерфейсу и для кнопок с позициями товаров пишем следующий скрипт:

      script.Parent.MouseButton1Click:Connect(function()
      game.ReplicatedStorage.ToolEvents.**PistolEvent**:FireServer() — запускаем конкретное событие
      end)
      Для каждой кнопки отличие будет только в названии ивента.

      Если вы хотите создавать и совершенствовать свои игры в Роблокс Студио, смотрите наши видеоуроки на YouTube. Мы уже рассказали, как сделать гонки, игру Zombie Mod, симулятор копателя, световой меч и многое другое. А если вы хотите поглубже изучить Роблокс, создать большие проекты вместе с наставником, то записывайтесь на курсы в школу “Пиксель”. Будем вместе покорять Роблокс!

      Создание компонентов GUI в Roblox

      Наши Roblox studio уроки всегда начинаются с приветствия! Всем добрый день. От создания диалогов, которые практиковали на прошлом уроке, мы плавно двигаемся по нашему виртуальному миру. Сегодня мы поймем, как сделать меню в Roblox studio и продолжим работать с графическим интерфейсом или GUI.

      Давайте начинать? В Roblox studio, программирование представляет собой увлекательный мир, где с помощью кода он оживает, превращается в реальность. Если хотите полностью освоить вселенную роблокс, то записывайтесь на курсы, которая проводит наша школа программирования «Пиксель».

      Создаем первое меню

      В Roblox программировании нам часто приходится обращаться к окошку «explorer». Находим команду «StarterGui». Компоненты GUI нужны для создания интерфейса (меню в играх). Давайте попробуем. Нажимаем на + около StarterGui, и из выпавшего списка выбираем компонент «screenGui». Он является заготовкой для меню, и упрощает систематизацию, расположение прочих объектов и скриптинг.

      Теперь добавим основную цветовую заготовку. На нее мы будем помещать надписи и кнопки. Нажимаем на + рядом с компонентом screenGui. Напоминаем, что эти и другие Roblox уроки находятся в бесплатном доступе на нашем ютуб канале. Выбрали компонент? Теперь добавим «frame». Он появится в верхнем левом углу экрана в виде белого квадрата. Его можно перетаскивать и менять размер с помощью properties (правое нижнее окошечко). Понадобится команда «size», где мы поменяем координаты, а именно расположение углов нашего окна.

      Теперь поменяем цвет «frame» также в окошке properties. Выбираем «Backgroundcolor3». Кликаем на квадратик левой кнопкой мыши и выбираем любой цвет. Меню Roblox практически готово. Цвета можно сохранить, если нажать на кнопку «Add to custom colors». Кликаем ОК, и заготовка меню стала цветной.

      Нажимаем левой кнопкой мыши на + рядом с frame. Теперь добавим следующий компонент — «TextLabel». Программирование в роблокс с помощью наших уроков становится еще понятнее. Кликнули и видим, что появился белый прямоугольник вверху заготовки с надписью Label. Мы будем растягивать надпись и менять цвет. Займемся прозрачностью фона. Обратимся к окну properties и кликнем на свойство «Backgroundtransparency». Выставляем цифру 1 и меняем цвет (Backgroundcolor3). Готово.

      В окне properties ищем строчку «text» и меняем Label на Menu. Как видите, программирование в роблокс студио абсолютно понятно, если следовать за куратором. В нашей онлайн школе «Пиксель» вы получите объемную информацию, и сможете вдоволь практиковать язык программирования Lua в роблокс студио.

      Поменяли надпись. Мы можем изменить размер шрифта (textsize). Поставим значение 30. Можно изменить шрифт (font). Выберем «arcade». И изменим цвет (textcolor3).

      Начнем делать кнопку
      Продолжаем уроки роблокс. Переходим в окно explorer и левой кнопкой мыши нажимаем на поле справа от frame. Добавляем компонент — «textbutton». Получилось? Перетащим его куда нам нужно, например, поставим в центр.

      В окне properties находим «text» и поменяем на play. Изменим шрифт (font). Так же выставим «arcade». И поменяем размер «textsize». У нас получилась кнопка. Будем ее скриптовать. Без написания кода не обходятся наши уроки роблокс студио.

      Пишем скрипт

      Кликаем на + рядом с textbutton и выбираем script. Пишем следующее:
      1. Script.Parent.MouseButton1Click:connect (function()
      2 Script.Parent.Parent:Destroy()
      3 end)
      Мы написали, что при нажатии на кнопку, необходимо выполнить следующие команды. А она у нас одна. Команда говорит компьютеру уничтожить (Destroy) компонент Gui. А Parent.Parent относят нас из Script в textbutton на frame и так же на screenGui. Если удалится этот компонент, то соответственно пропадет и все меню, которое мы создали. Продолжится игра. Строчка end означает конец функции. Мы описали функцию нажатия на кнопку.

      Попробуем запустить
      Когда мы нажмем на кнопку «play» в меню, оно должно пропасть. Так и вышло! Мы можем играть, управляя персонажем.
      Важный момент. При разработке игры может мешать «screenGui». Нужно в разделе properties, у «frame» найти компонент «vizible» и снять галочку. Тогда «frame» пропадет, и вы сможете настраивать игру так, как хочется.

      Чтобы заново вернуться к меню, нужно выбрать «frame». Опять найти в окошке properties — «vizible» и активировать галочку. Меню снова появится. Обратите внимание, что у всех объектов меню есть рамка, которую можно убрать, изменить цвет или толщину. Это делается с помощью команд в properties: bordercolor3 (цвет) и bordersizepixel (толщина).

      Спасибо за внимание. Мы изучаем самые основы. Сегодня у нас получилось создать интерфейс в игре. Мы сделали самое простое меню, научились заскриптовывать кнопку, удаляющую компонент. На следующем уроке продолжим штурмовать Роблокс и создадим новую игру.

      Всех ждем на курсах Роблокс в нашей онлайн школе «Пиксель»!
      Вы получите помощь, поддержку от нашей команды. Мы не только учим, но и поощряем в виде призов. Учиться в «Пиксель» — это не только глубокие познания в среде программирования Роблокс, но и настоящее приключение!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *