
Como fazer Quest no Roblox Studio
Se você procura uma aula prática e divertida de programação, principalmente para quem está começando, este vídeo é perfeito! Hoje vamos te ensinar passo a passo como criar uma quest no Roblox Studio, utilizando a linguagem Lua, uma das mais usadas na criação de jogos no Roblox. Essa aula foi pensada especialmente para crianças e adolescentes que desejam aprender programação de forma simples, criando missões e sistemas interativos nos seus próprios jogos.
Aqui no Programação for Kids, mostramos que aprender a programar pode ser divertido e acessível, mesmo para quem nunca teve contato com códigos antes. Nossas aulas de programação para crianças, programação para adolescentes e até mesmo aulas de informática são focadas em desenvolver criatividade, lógica e habilidades digitais.
Assista ao vídeo completo e veja como é fácil programar sua primeira quest no Roblox, ideal para aplicar em jogos próprios e deixar o Roblox Studio ainda mais interessante!
Script do Server
local Players = game:GetService("Players")
local ReplicatedStorage= game:GetService("ReplicatedStorage")
local QuestUpdateEvent = ReplicatedStorage.QuestUpdateEvent
local PlayerData={}
local debounce ={}
local quest={
{level=1, item={ moeda=1 , diamante=1, maca=1}},
{level=2, item={ moeda=2, diamante=2, maca=2}},
{level=3, item={ moeda=4, diamante=4, maca=6}},
{level=4, item={ moeda=10, diamante=10, maca=15}},
}
local function checkQuest(data, player)
local level = data.level
for _, itemQuest in ipairs(quest) do
if itemQuest.level ==level then
local temTodosOsItens= true
for nomeItem, quantidadeNecessaria in pairs(itemQuest.item) do
local quantidadeJogador= data.inventario[nomeItem] or 0
if quantidadeJogador < quantidadeNecessaria then
temTodosOsItens=false
end
end
local SendDataNecessary={
quest[PlayerData[player.UserId].level],
PlayerData[player.UserId]
}
QuestUpdateEvent:FireClient(player, SendDataNecessary)
if temTodosOsItens then
for name, itemQuest in pairs(quest[PlayerData[player.UserId].level].item) do
PlayerData[player.UserId].inventario[name] -= itemQuest
end
data.level = data.level + 1
print("novo nivel ".. data.level)
print(PlayerData)
if not quest[data.level] then
return
end
local sendData={
quest[PlayerData[player.UserId].level],
PlayerData[player.UserId]
}
QuestUpdateEvent:FireClient(player, sendData)
end
end
end
end
for _, item in ipairs(game.Workspace.Itens:GetChildren()) do
item.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and not debounce[player.UserId] then
debounce[player.UserId]= true
local itemName= item:GetAttribute("name")
PlayerData[player.UserId].inventario[itemName]+=1
item:Destroy()
-- função checar se ele ja tem os itens necessário passar na quest
checkQuest(PlayerData[player.UserId], player)
wait(0.5)
debounce[player.UserId]= false
print(PlayerData)
end
end
end)
end
Players.PlayerAdded:Connect(function(player)
PlayerData[player.UserId]={
inventario={
moeda=0,
diamante=0,
maca=0
},
level=1
}
local data={
quest[PlayerData[player.UserId].level],
PlayerData[player.UserId]
}
QuestUpdateEvent:FireClient(player,data)
end)
Local Script
local player = game.Players.LocalPlayer
local ReplicatedStorage= game:GetService("ReplicatedStorage")
local QuestUpdateEvent = ReplicatedStorage.QuestUpdateEvent
local questItem = ReplicatedStorage.quest
local ScreenGui = script.Parent
local Frame = ScreenGui.Frame
local FrameItem = Frame.FrameItemRequest
local level = Frame.Level
local function updateGui(data)
local playerData = data[2]
local questData = data[1]
for _, child in pairs(FrameItem:GetChildren()) do
if child:IsA("TextLabel") then
child:Destroy()
end
end
level.Text = "Level " ..playerData.level
for nameItemNecessario, itemNecessario in pairs(questData.item) do
local quantidadeJogador = playerData.inventario[nameItemNecessario] or 0
local textQuest = questItem:Clone()
textQuest.Parent = FrameItem
if quantidadeJogador >= itemNecessario then
textQuest.Text ="✅ " .. nameItemNecessario
else
local falta= itemNecessario - quantidadeJogador
textQuest.Text= "❌ " .. quantidadeJogador .."/" .. itemNecessario .. " " .. nameItemNecessario
end
end
end
QuestUpdateEvent.OnClientEvent:Connect(function(data)
print("📩 Dados recebidos do servidor!")
print(data)
updateGui(data)
end)
💻✨ Gostou dessa aula? Então você vai adorar nossos cursos completos de programação! No Programação for Kids, ensinamos crianças e adolescentes a criarem seus próprios jogos, aplicativos e sistemas, mesmo que nunca tenham programado antes. Tudo de forma divertida, prática e passo a passo, usando ferramentas como Roblox Studio, Code.org e muito mais.
🎓 Nossos cursos são ideais para:
Crianças e adolescentes que querem aprender programação
Pais que buscam atividades educativas e criativas para seus filhos
👉 Conheça nossos cursos e comece hoje mesmo: