TGViewer
🎮 IT Step by step | GameDev для начинающих 🚀 🎮 IT Step by step | GameDev для начинающих 🚀 @it_step_by_step · 112 subscribers
Post #98 510
🎮 Разбор игрового момента: смена иконки у 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
More from @it_step_by_step
  1. Feb 14, 2026🎮Как опубликовать игру на JavaScript в GitHub Pages за 10 минут Хотите показать свою игру…
  2. Feb 2, 2026😳 «О чём это?»: Геймдев-сленг подростков — выпуск 7! 🎮 Ежемесячный словарь для родителей…
  3. Dec 31, 2025Поздравляю всех с наступающим Новым годом! 🥳🥳🥳❄️❄️❄️🎉
  4. Dec 23, 2025🧩 10 популярных жанров для мини-игр (с примерами) Платформер Пример: Celeste: Farewell (м…
  5. Dec 5, 2025Roblox заблокирован. Но дети 10–14 лет всё ещё могут создавать игры — и даже зарабатывать…
  6. Nov 29, 2025😳 «О чём это?»: Геймдев-сленг подростков — выпуск 6! 🎮 Ежемесячный словарь для родителей…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →