🎮 IT Step by step | GameDev для начинающих 🚀
256 subscribers
67 photos
2 files
31 links
Учись создавать игры, сайты и 3D-модели вместе с весёлой Терри и её приятелем Тимом.
Программирование: Scratch, Roblox, Unity, Frontend
3D в Blender
Компьютерная грамотность
Реальные проекты
Для детей и подростков 6–16 лет

Администратор канала: @E1lena_9
加入频道
🚀 ДЕТСКИЕ КУРСЫ ПО ПРОГРАММИРОВАНИЮ И ТЕХНОЛОГИЯМ
Научу создавать игры, сайты и работать с цифровыми инструментами!

🎯 НАПРАВЛЕНИЯ
1. Scratch (6–10 лет)
Весёлое и простое программирование с помощью блоков — идеальный старт для самых маленьких! Научимся создавать свои первые игры и анимации, развивая логику и творческое мышление.
Особенность:
Интерактивные уроки с яркими персонажами и понятными заданиями, которые делают обучение увлекательным и понятным даже для малышей.
💰 Цена:
1 урок — 800₽
Пакет 10+1 уроков — 8 000₽ (один урок в подарок!)

2. Компьютерная грамотность (6–10 лет)
Основы работы с компьютером, безопасное пользование интернетом, знакомство с программами и файлами. Курс поможет ребёнку уверенно ориентироваться в цифровом мире.
Особенность:
Практические занятия с понятными объяснениями — ребёнок научится быстро и безопасно работать с техникой и программами.
💰 Цена:
1 урок — 1 000₽
Пакет 10+1 уроков — 10 000₽ (один урок в подарок!)

3. Roblox / Blender / Unity (10–16 лет)
Погружение в мир создания игр и 3D-моделирования! Научимся создавать свои игры в Roblox и Unity, а также делать 3D-модели и анимации в Blender.
Особенность:
Практический курс с реальными проектами — от простых игр до сложных 3D-персонажей и сцен. Отличный выбор для тех, кто хочет создавать крутые игры и анимации!
💰 Цена:
1 урок — 1 200₽
Пакет 10+1 уроков — 12 000₽ (один урок в подарок!)

4. Python (от 10 лет)
Изучение одного из самых востребованных языков программирования в мире! Научимся писать простые программы, автоматизировать задачи, работать с данными и создавать свои мини-проекты.
Особенность:
Объясняем сложные вещи простым языком, много практики и интересных задач. Курс отлично подойдёт тем, кто хочет сделать первые шаги в программировании и понять, как работают современные технологии.
💰 Цена:
1 урок - 1 200₽
Пакет 10+1 уроков - 12 000₽ (один урок в подарок!)

5. Frontend-разработка (от 12 лет)
Изучение создания сайтов и веб-приложений — HTML, CSS, JavaScript. Научимся делать красивые и удобные интерфейсы, которые работают в браузере.
Особенность:
Курс ориентирован на практику и реальные проекты — создадим собственный сайт, который можно показать друзьям и использовать в портфолио.
💰 Цена:
1 урок — 1 500₽
Пакет 10+1 уроков — 15 000₽ (один урок в подарок!)

Если хочешь узнать подробнее или подобрать курс под себя — пиши в комментариях или в личные сообщения!
Начни своё IT-путешествие уже сегодня! 🚀

🎁 АКЦИИ И БОНУСЫ

Приведи друга
→ Вы получаете: бесплатный урок!
→ Друг получает: первый урок бесплатно.

Групповые занятия Roblox
→ 2 человека — 800₽ с каждого за урок.
→ 3 человека — 700₽ с каждого за урок.
(Можно перейти на индивидуальные занятия в любой момент)

📌 ЧТО ВКЛЮЧЕНО?
Бесплатная помощь с установкой программ и регистрацией.

Официальный чек после каждой оплаты.

Платформы для занятий: Яндекс.Телемост, Google Meet, Skype, Telegram.

Обратная связь по успехам ученика в WhatsApp/Telegram.

ПРЕИМУЩЕСТВА
→ Индивидуальный подход.
→ Гибкое расписание.
→ Реальные проекты для портфолио.

📩 Пишите в личные сообщения — отвечу на все вопросы!

#Курсы #Обучение #GameDev #Roblox #Unity #Lua #Blender3D #Frontend #Python
👍2🔥1🥰1👏1
На каком языке программируют в Roblox 🎮
Всем привет! Вчера мы обсуждали, какой язык программирования используется в Roblox, и многие из вас правильно ответили — это Lua! Давайте познакомимся с ним поближе. 🌟

Lua — это язык, который был создан в 1993 году в Бразилии. Он очень простой и легкий, что делает его идеальным для начинающих разработчиков. Lua часто используется для создания скриптов, которые говорят игре, что делать.

В Roblox Lua используется для того, чтобы объекты в игре могли двигаться, реагировать на действия игроков и выполнять разные задачи. Например, вы можете написать скрипт, который заставит персонажа прыгать или бежать. В Roblox используется не стандартный Lua, а его модифицированная версия — Luau. Luau — это более быстрый и безопасный язык, который помогает создавать еще более интересные игры. 🎮

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

Lua используется не только в Roblox. Он также популярен в игровой индустрии — например, в играх World of Warcraft и Sim City. В Minecraft на Lua пишут моды, которые добавляют новые функции в игру. Кроме того, Lua используется в различных устройствах, где важна компактность и производительность, и даже в научных вычислениях. 😎

Lua — это отличный язык для начинающих разработчиков, особенно тех, кто любит игры. Если вы только начинаете, изучение Lua через Roblox может стать отличным стартом.
Успехов в ваших проектах и не забывайте делиться своими достижениями в комментариях! ⬇️
#Lua #Roblox
🔥19🎉1413👍10🤓1
🚀 Создаем интерактивные игры в Roblox: подсветка объектов при наведении мыши!

Всем привет! 👋

Хотите, чтобы ваши объекты в игре светились, когда на них наводится мышка? Это супер легко сделать с помощью небольшого скрипта! Сегодня я расскажу, как добавить классную подсветку, которая будет выделять контур объекта зеленым цветом.

Как это работает? 🤔
Этот код заставляет объекты подсвечиваться, когда на них наводится курсор. Давайте разберем его по частям:

-- Импортируем необходимые сервисы
local CollectionService = game:GetService("CollectionService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")

Тут мы подключаем нужные сервисы из Roblox, чтобы управлять объектами, игроком и мышкой.
-- Получаем локального игрока и его мышь
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

Эти строчки помогают нам узнать, кто сейчас играет и где находится его мышка.
-- Удаляем существующие подсветки
for _, obj in pairs(game.Lighting:GetChildren()) do
if obj:IsA("Highlight") then
obj:Destroy()
end
end

Этот код убирает все старые подсветки, чтобы они не мешали нашей новой подсветке.
-- Создаем Highlight для подсветки
local highlight = Instance.new("Highlight")
highlight.Parent = game.Lighting
highlight.OutlineTransparency = 1 -- Полная прозрачность для скрытия
highlight.FillTransparency = 1 -- Сделать заливку прозрачной
highlight.OutlineColor = Color3.new(0, 1, 0) -- Зеленый цвет для контура
highlight.Adornee = nil -- Без объекта для подсветки

Здесь мы создаем новую подсветку, делаем её невидимой (прозрачной), выбираем зеленый цвет для контура (или любой другой на выбор), и говорим, что пока она ни к чему не привязана.
-- Функция для проверки наличия тега у объекта
local function hasHighlightTag(obj)
return CollectionService:HasTag(obj, "Highlight")
end

Эта функция проверяет, есть ли у объекта специальный тег под названием "Highlight".
-- Обработчик движения мыши
Mouse.Move:Connect(function()
-- Проверяем новый Target (объект под курсором)
local target = Mouse.Target
-- Ищем родительскую модель
local model = target:FindFirstAncestorOfClass("Model")
-- Если модель найдена и у нее есть тег "Highlight"
if model and hasHighlightTag(model) then
-- Если у объекта есть тег "Highlight", показываем подсветку
highlight.Adornee = model
highlight.OutlineTransparency = 0 -- Сделать обводку видимой
else
-- Если нет, скрываем подсветку
highlight.OutlineTransparency = 1 -- Сделать обводку прозрачной
highlight.Adornee = nil -- Убрать объект для подсветки
end
end)

Этот код следит за мышкой :

Когда мышка наводится на объект, он проверяет, есть ли у объекта тег "Highlight".

Если тег есть, появляется зеленая обводка вокруг объекта!
Если тега нет, обводка исчезает.

Где разместить этот скрипт? 📍
Этот скрипт нужно разместить в LocalScript, который находится в StarterPlayerScripts.

Вот как это сделать:

Откройте вкладку Explorer в Roblox Studio.
Найдите StarterPlayerScripts и нажмите справа от него на плюс .
Выберите LocalScript.
Скопируйте код и вставьте его в LocalScript.

Как это работает? 🤔
В Roblox Studio добавьте тег "Highlight" к нужным моделям (не к отдельным частям, а ко всей модели!).
Запустите игру.
Наведите мышку на модель с тегом "Highlight".
Вокруг модели появится зеленая обводка! 🟢

Теперь вы знаете, как добавить интерактивную подсветку в свои игры! Это сделает их более классными и интересными. Экспериментируйте и создавайте свои уникальные эффекты! 😎

Удачи в ваших игровых проектах! 🚀

Есть вопросы? 🤔
Пишите в комментариях, если что-то не получается или хотите узнать больше! Помогу всем! 😉

Подписывайтесь на канал, чтобы не пропустить новые разборы скриптов для создания игр! 🔔

#Roblox #Lua
🔥1817🎉13👍10
🚀 Разбор кода из видео: создаём эффект хвостика (Trail) в Roblox Studio 🚀

Сегодня разберём простой, но очень полезный скрипт, который добавляет эффект хвостика игроку при касании определённой части.
script.Parent.Touched:Connect(function(hit)
-- Проверяем, что на часть наступил игрок
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player then
local wantedTrail = "Red"
-- Клонируем нужный Trail из ReplicatedStorage
local trail = game.ReplicatedStorage[wantedTrail]:Clone()
-- Проверяем, что трейл действительно существует
if trail then
-- Помещаем трейл в голову персонажа
trail.Parent = player.Character.Head
-- Создаём два аттачмента для трейла
local at0 = Instance.new("Attachment", player.Character.Head)
at0.Name = "TrailAttachment0"
local at1 = Instance.new("Attachment", player.Character.HumanoidRootPart)
at1.Name = "TrailAttachment1"
-- Привязываем аттачменты к трейлу
trail.Attachment0 = at0
trail.Attachment1 = at1
end
end
end)

Что здесь происходит?
🌟Подписка на событие касания
script.Parent.Touched:Connect(function(hit) — когда кто-то касается объекта, к которому прикреплён скрипт, вызывается функция с параметром hit — объект, который коснулся.

🌟Определение игрока
game.Players:GetPlayerFromCharacter(hit.Parent) — пытаемся получить игрока, к которому принадлежит объект, коснувшийся части. Это важно, чтобы не реагировать на любые другие объекты.

🌟Клонирование трейла
Из ReplicatedStorage берём заранее подготовленный объект Trail с именем "Red" и создаём его копию.

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

🌟Создание аттачментов
Trail работает между двумя точками — Attachment0 и Attachment1. Мы создаём их в голове и в корне персонажа (а можем и в других частях тела персонажа), чтобы хвостик тянулся за игроком.

🌟Присвоение аттачментов трейлу
Связываем аттачменты с трейлом, чтобы эффект заработал.

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

💡 Попробуй изменить переменную wantedTrail на другие имена трейлов, чтобы увидеть разные эффекты! Поэкспериментируй, крепи хвостик к разным частям тела игрока. Расскажи в комментариях что у тебя получилось в итоге) ⬇️

Ссылка на видео в YouTube: https://www.youtube.com/watch?v=koJatxcFcKo
Ссылка на видео в RuTube: https://rutube.ru/video/b7fec2aed86f73d53ed14728b70171ee/

#Roblox #Обучение #GameDev #Lua
👍4🔥3
🎮Как заменить курсор в Roblox Studio через скрипт

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

Шаги для замены курсора:

Открой Roblox Studio и в своём проекте найди папку StarterGui.

Добавь в StarterGui новый LocalScript (локальный скрипт).

В скрипте получи объекты игрока и мыши:

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

Задай свойству mouse.Icon ID изображения твоего нового курсора:

mouse.Icon = "rbxassetid://ID_ИЗОБРАЖЕНИЯ"

Где ID_ИЗОБРАЖЕНИЯ - это числовой идентификатор картинки, которую ты загрузил в Roblox (лучше использовать PNG с прозрачным фоном).

Запусти игру и увидишь, как курсор изменился!

Как получить ID изображения для курсора:

Открой вкладку VIEW найди там Asset Manager и через это окно загрузи свою картинку с компьютера.

После загрузки открой страницу с наклейкой и скопируй ID из URL. Это число после ?id= или в адресе вида rbxassetid://123456789.

Используй этот ID в скрипте вместо ID_ИЗОБРАЖЕНИЯ.

Советы:

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

Размер изображения лучше делать небольшим (например, 32x32 пикселя).

Если курсор не меняется, проверь правильность ID и что скрипт действительно запускается.

Сделай свою игру в Roblox уникальной и запоминающейся с помощью кастомного курсора! Если возникнут вопросы - пиши в комментариях. ⬇️

#Roblox #Lua #GameDev
👍42🎉2🔥1🥰1
🎮 Разбор игрового момента: смена иконки у NPC-квестодателя в Roblox

В нашей игре игрок берёт квест у NPC. После этого над головой NPC иконка со знаком вопроса меняется на другую - чтобы было видно, что квест уже взят. Вот как это реализовано на Lua в Roblox Studio!

🔹 Скрипт для StarterPlayerScripts (клиентский localScript)
lua
local npcHead = workspace.Sylvia:WaitForChild("Head") -- Находим голову NPC по имени "Head" в модели Sylvia
local billboardGui = npcHead:FindFirstChild("BillboardGui") -- Ищем BillboardGui над головой NPC
local imageLabel = billboardGui and billboardGui:FindFirstChild("ImageLabel") -- Находим ImageLabel с иконкой (если BillboardGui существует)
local remote = npcHead:FindFirstChild("QuestStatusEvent") -- Ищем RemoteEvent для получения сигнала от сервера

local QUEST_TAKEN_IMAGE = "rbxassetid://000000" -- ID картинки, которая появится после взятия квеста

if remote and imageLabel then
remote.OnClientEvent:Connect(function(questTaken) -- Подписываемся на событие от сервера
if questTaken then
imageLabel.Image = QUEST_TAKEN_IMAGE -- Меняем иконку на новую, если квест взят
end
end)
end

🔹 Скрипт для ServerScriptService (серверный)
lua
local npcHead = workspace.Sylvia:WaitForChild("Head") -- Находим голову NPC по имени "Head" в модели Sylvia
local proximityPrompt = npcHead:FindFirstChild("ProximityPrompt") -- Ищем ProximityPrompt (кнопка взаимодействия)
local remote = Instance.new("RemoteEvent", npcHead) -- Создаём RemoteEvent для связи с клиентом
remote.Name = "QuestStatusEvent" -- Даём событию имя

proximityPrompt.Triggered:Connect(function(player) -- Когда игрок активирует ProximityPrompt
remote:FireClient(player, true) -- Отправляем игроку сигнал: квест взят (true)
end)

📝 Что происходит в игре?

Игрок подходит к NPC и видит значок вопроса над головой персонажа.

Нажимает на ProximityPrompt (например, кнопку "Взять квест").

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

У игрока меняется картинка над головой NPC - теперь видно, что квест уже взят именно этим игроком!

💡 Почему это важно?
Такой подход позволяет каждому игроку видеть свой статус квеста, не мешая другим. Это удобно для индивидуальных заданий и делает игру более интерактивной!

Посмотреть как это было реализовано в игре можно в видео на моих каналах:

Ссылка на видео: YouTube
Ссылка на видео: RUTUBE

Если хотите больше разборов игровых механик или есть вопросы по скриптам - пишите в комментариях! 👇
Терри и Тим всегда на связи 🐢🎧

#Roblox #Lua #GameDev
👍3🔥2🤔1👌1
🚪 Геймпасс-дверь в Roblox: открываем VIP-локацию!

Привет! Сегодня разберём, как сделать дверь, которая открывается только для тех, кто купил специальный геймпасс. Такой способ часто используют для VIP-комнат, секретных баз или эксклюзивных зон.

🔑 Как это работает?
Геймпасс — это платный пропуск, который можно купить за Robux. Его ID ты найдёшь в адресе страницы геймпасса на сайте Roblox.

Скрипт проверяет, есть ли у игрока нужный геймпасс. Если да — дверь становится прозрачной и не мешает пройти. Если нет — можно вывести подсказку или предложить купить геймпасс.

🛠 Пример кода (LocalScript в StarterPlayerScripts):

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local gamePassID = 123456789 -- замени на свой GamePass ID
local door = workspace:WaitForChild("GamepassDoor") -- имя двери в Workspace

local player = Players.LocalPlayer

-- Функция проверки наличия геймпасса
local function hasGamepass()
local success, hasPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, gamePassID)
end)
return success and hasPass
end

-- Функция открытия двери
local function tryOpenDoor()
if hasGamepass() then
door.Transparency = 0.7 -- делаем дверь полупрозрачной
door.CanCollide = false -- игрок может пройти сквозь дверь
else
door.Transparency = 0 -- дверь остаётся обычной
door.CanCollide = true
-- Можно добавить подсказку или кнопку покупки:
MarketplaceService:PromptGamePassPurchase(player, gamePassID)
end
end

-- Проверяем при приближении к двери (например, через .Touched)
door.Touched:Connect(function(hit)
if hit.Parent == player.Character then
tryOpenDoor()
end
end)

💡 Советы от Терри:
ID геймпасса — это число из адреса страницы твоего геймпасса.
Скрипт лучше размещать в LocalScript, чтобы дверь открывалась только для конкретного игрока.
Можно использовать ProximityPrompt для красивого взаимодействия: при попытке открыть дверь появляется кнопка “Купить VIP-доступ”.
Не забудь протестировать: если у игрока нет геймпасса, скрипт предложит купить его через стандартное окно Roblox.

Теперь твоя VIP-дверь готова!

Если хочешь подробный видеоурок или есть вопросы по настройке — пиши в комментариях, Терри и Тим всегда помогут! 🐢

Полезные ссылки:

Официальная документация Roblox по Game Pass

#Roblox #Lua #GameDev
4🔥3👍2👌2
🐍 Как научить персонажа проползать под блоками в Roblox?

Привет, всем! 👋
Сегодня разберём, как добавить классную механику — анимацию ползания , чтобы игрок мог проползать под препятствиями ! Это отлично подойдёт для паркур-игр, скрытных способностей или просто интересной игровой механики. 💡

▶️ YouTube: Ссылка на видео
📺 Rutube: Ссылка на видео

🔧 Что делает этот код?
Этот скрипт:


Запускает анимацию при нажатии клавиши (например, F),
Отключает коллизию у персонажа, чтобы он мог "проскользнуть" под объектом,
После окончания анимации всё возвращается в исходное состояние.

💻 Код с пояснениями:

-- Получаем персонажа игрока
local char = game.Players.LocalPlayer.Character

-- Получаем компонент Humanoid для работы с анимациями
local human = game.Players.LocalPlayer.Character.Humanoid

-- Сервис ввода — отслеживает нажатия клавиш
local uis = game:GetService("UserInputService")

-- ID анимации (ее можно заменить на свою)
local animation_ID = "rbxassetid://133965842091574"

-- Защита от повторного запуска анимации
local debounce = true

-- Клавиша активации анимации
local key = "F"

-- Подписываемся на событие начала ввода
uis.InputBegan:Connect(function(Input, IsTyping)

-- Если пользователь печатает в чате — выходим из функции
if IsTyping then return end

-- Проверяем, была ли нажата нужная клавиша и можно ли запустить анимацию
if Input.KeyCode == Enum.KeyCode[key] and debounce == true then

-- Блокируем повторный запуск
debounce = false

-- Отключаем взаимодействие с физикой, чтобы персонаж мог проползти под блоком
char.HumanoidRootPart.CanCollide = false

-- Создаём временный объект анимации
local animation = Instance.new("Animation")
animation.AnimationId = animation_ID -- Привязываем нашу анимацию

-- Загружаем и запускаем анимацию
local loadanimation = human:LoadAnimation(animation)
loadanimation:Play()

-- Ждём 2 секунды — это примерное время длительности анимации
wait(2)

-- Включаем обратно взаимодействие с миром
char.HumanoidRootPart.CanCollide = true

-- Удаляем временную анимацию, чтобы не засорять память
animation:Destroy()

-- Разрешаем снова запускать анимацию
debounce = true
end
end)


📌 Как использовать?
Вставь этот код в LocalScript внутри StarterPlayerScripts.
Убедись, что ты используешь LocalScript, потому что здесь используется LocalPlayer.
Можешь изменить key на любую другую кнопку.
Нажми F в игре и наслаждайся эффектом!
💬 Давайте вместе создавать крутые проекты!
Если у тебя уже есть идеи, как использовать эту механику — пиши в комментариях!
Хочешь, чтобы я разобрала ещё какие-то анимации или механики? Пиши — будем делать новые игры!👇

#Roblox #GameDev #Lua
👍8🔥5👨‍💻43👌3
🐾 Как связать клиентскую и серверную части в Roblox с помощью RemoteEvent?

Привет, друзья! 👋 Сегодня расскажу, как организовать простое и эффективное взаимодействие между клиентом (LocalScript) и сервером (Script) в Roblox с помощью RemoteEvent — одного из самых удобных инструментов для обмена сообщениями без ожидания ответа.

Что такое RemoteEvent?
RemoteEvent — это специальный объект, который позволяет клиенту отправлять сигналы на сервер и наоборот, без ожидания результата (в отличие от RemoteFunction, где связь двусторонняя и нужна синхронизация). Мы можем передавать любые аргументы: числа, строки, таблицы, объекты или ссылки на игрока.

Как это работает на практике?
1. Где создавать RemoteEvent?
Создаём объект RemoteEvent в ReplicatedStorage (это специальное хранилище, доступное и клиенту, и серверу).

-- В Roblox Studio в окне "Explorer" создаём RemoteEvent:
-- ReplicatedStorage -> New Object -> RemoteEvent, назовём, например, "MyRemoteEvent"

2. Клиент — отправляем событие серверу
В LocalScript пишем код, который будет срабатывать при событии (например, нажатии кнопки), и отправлять сигнал на сервер:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MyRemoteEvent = ReplicatedStorage:WaitForChild("MyRemoteEvent")
-- Пример: отправляем событие на сервер с аргументом — именем игрока
MyRemoteEvent:FireServer("Привет с клиента!")

3. Сервер — слушаем событие и реагируем
В обычном Script (например, внутри ServerScriptService) подписываемся на событие и обрабатываем данные от клиента:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MyRemoteEvent = ReplicatedStorage:WaitForChild("MyRemoteEvent")
MyRemoteEvent.OnServerEvent:Connect(function(player, message)
print("Получено сообщение от игрока "..player.Name..": "..message)
-- Здесь можно добавить логику, например, выдать награду или запустить анимацию
end)

Обратите внимание: первым аргументом в обработчике всегда идёт игрок, который вызвал событие!

Важные моменты:
RemoteEvent — односторонний: клиент уведомляет сервер или сервер уведомляет клиента.
Для обратной связи клиенту от сервера используй: RemoteEvent:FireClient(player, ...) или RemoteEvent:FireAllClients(...).
Клиент всегда должен использовать FireServer, сервер — FireClient или FireAllClients.
Можно передавать несколько аргументов сразу, например: FireServer(arg1, arg2, ...).

Пример простого применения
Как только игрок нажал кнопку "Старт", отправляем сигнал серверу, чтобы начать игру:

-- LocalScript при нажатии кнопки
MyRemoteEvent:FireServer("Старт игры")


-- Script на сервере
MyRemoteEvent.OnServerEvent:Connect(function(player, command)
if command == "Старт игры" then
print(player.Name .. " начал игру!")
-- Запускаем игровую логику для этого игрока
end
end)

🎯 Итог: RemoteEvent — для простой и быстрой связи клиента с сервером в Roblox! Это надёжный способ отправлять сигналы, события и данные без лишних сложностей.

💬 Оставляй вопросы в комментариях, если надо помочь с кодом или сделать разбор конкретной механики!

#Roblox #GameDev #Lua
22🔥19👍17🤯9