
Como Criar Capture The Flag no Roblox Studio
Quer aprender a desenvolver um jogo incrível no Roblox? Hoje eu vou te mostrar passo a passo como criar um Capture The Flag no Roblox Studio, desde a configuração das equipes até a programação da bandeira e do sistema de pontuação!
No vídeo abaixo, você acompanha a aula completa e, logo depois, pode conferir todos os códigos utilizados para facilitar sua aprendizagem. 💻🔥
Assista agora e bora programar! 🚀👇
🚩 Como Criar um Capture The Flag no Roblox Studio! 🎮
Se você sempre quis desenvolver um jogo no Roblox Studio, essa é sua chance! No vídeo de hoje, eu te ensino passo a passo como criar um Capture The Flag, desde a configuração das equipes até a programação da bandeira e do sistema de pontuação.
Assista agora e aprenda a programar seu próprio jogo! 💻🔥
💡 Códigos da Aula: Como Criar um Capture The Flag no Roblox Studio!
Aqui estão todos os códigos usados na aula para você acompanhar e testar no seu jogo. Eles vão te ajudar a configurar equipes, criar a mecânica de captura da bandeira e definir a pontuação.
Copie, adapte e crie sua própria versão do Capture The Flag! 🚀💻
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage.RemoteEvent
local ScreenGui = script.Parent.ScreenGui
local BluePoints = ScreenGui.Frame.BluePoints
local RedPoints = ScreenGui.Frame.RedPoints
RemoteEvent.OnClientEvent:Connect(function(points)
RedPoints.Text= points.red
BluePoints.Text= points.blue
end)
ServerScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage.RemoteEvent
local Teams = game:GetService("Teams")
local Players = game:GetService("Players")
local points ={
red=0,
blue=0
}
local BlueFlag = ReplicatedStorage.BlueFlag
local RedFlag = ReplicatedStorage.RedFlag
local BlueFlagTool = ReplicatedStorage.BlueFlagTool
local RedFlagTool = ReplicatedStorage.RedFlagTool
local SpawnBlue = game.Workspace.SpawnBlue
local SpawnRed = game.Workspace.SpawnRed
local RedBase = game.Workspace.RedBase
local BlueBase = game.Workspace.BlueBase
local teamBlue = Teams:FindFirstChild("TeamBlue")
local teamRed= Teams:FindFirstChild("TeamRed")
local function handFlag(player:Players, flag)
print(player.Name.."Agora está carregando a bandeira")
flag:Destroy()
local FlagTool
if flag.Name=="BlueFlag" then
FlagTool = BlueFlagTool:Clone()
player:SetAttribute("HasFlag", true)
player:SetAttribute("ColorFlag", "Blue")
else
FlagTool = RedFlagTool:Clone()
player:SetAttribute("HasFlag", true)
player:SetAttribute("ColorFlag", "Red")
end
FlagTool.Parent = player.Backpack
local humanoid = player.Character and player.Character:FindFirstChild("Humanoid")
if humanoid then
humanoid:EquipTool(FlagTool)
end
wait(1)
end
local function restartGame()
local numberBlue = #teamBlue:GetPlayers()
local numberRed = #teamRed:GetPlayers()
for _, player in ipairs(Players:GetPlayers()) do
if not player.Team then
if numberBlue<= numberRed then
player.Team = teamBlue
else
player.Team = teamRed
end
end
local character = player.Character
local humanoidRootPart= character and character:WaitForChild("HumanoidRootPart")
if player.Team == teamBlue then
humanoidRootPart.CFrame = SpawnBlue.CFrame * CFrame.new(0,1,0)
else
humanoidRootPart.CFrame = SpawnRed.CFrame * CFrame.new(0,1,0)
end
end
end
local function generateFlag()
if game.Workspace:FindFirstChild("Flags") then
game.Workspace.Flags:Destroy()
end
local FolderFlags = Instance.new("Folder")
FolderFlags.Name="Flags"
FolderFlags.Parent=game.Workspace
local redFlag = RedFlag:Clone()
local blueFlag = BlueFlag:Clone()
redFlag.Parent= game.Workspace.Flags
blueFlag.Parent=game.Workspace.Flags
local randomX = math.random(50,50)
local ramdomZ = math.random(-50,50)
redFlag:SetPrimaryPartCFrame(RedBase.CFrame + Vector3.new(randomX, 1, ramdomZ))
blueFlag:SetPrimaryPartCFrame(BlueBase.CFrame + Vector3.new(randomX, 1, ramdomZ))
local redFlagDebounce= false
redFlag.Part.Touched:Connect(function(hit)
print("Encostei na flag")
if hit.Parent:FindFirstChild("Humanoid") then
local character = hit.Parent
local player = Players:GetPlayerFromCharacter(character)
if player.Team ~= teamRed and not redFlagDebounce then
redFlagDebounce =true
print("Carregar bandeira")
handFlag(player, redFlag)
wait(2)
redFlagDebounce= false
end
end
end)
local blueFlagDebounce =false
blueFlag.Part.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local character = hit.Parent
local player = Players:GetPlayerFromCharacter(character)
if player.Team ~= teamBlue and not blueFlagDebounce then
blueFlagDebounce = true
print("Entregar a bandeira pro player")
handFlag(player, blueFlag)
wait(2)
blueFlagDebounce= false
end
end
end)
end
generateFlag()
local function addAttributePlayer(player)
if not player:GetAttribute("HasFlag") then
player:SetAttribute("HasFlag", false)
player:SetAttribute("ColorFlag", nil)
end
end
local function removeTool(player:Player, color)
-- Verificar no Backpack
for _, tool in pairs(player.Backpack:GetChildren()) do
if tool:IsA("Tool") and tool:GetAttribute("color") == color then
print("Removendo ferramenta do Backpack:", tool.Name)
tool:Destroy()
return true
end
end
-- Verificar no Character (caso esteja equipada)
local character = player.Character
if character then
for _, tool in pairs(character:GetChildren()) do
if tool:IsA("Tool") and tool:GetAttribute("color") == color then
print("Removendo ferramenta equipada:", tool.Name)
tool:Destroy()
return true
end
end
end
print("Nenhuma ferramenta com cor", color, "foi encontrada para", player.Name)
return false
end
local function updateAllPlayers()
for _, player in pairs(Players:GetPlayers()) do
RemoteEvent:FireClient(player, points)
end
end
BlueBase.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local character = hit.Parent
local player = Players:GetPlayerFromCharacter(character)
if player.Team == teamBlue then
if player:GetAttribute("HasFlag") and player:GetAttribute("ColorFlag")=="Red" then
print("Entregar bandeira vermelha no blueBase")
player:SetAttribute("HasFlag", false)
player:SetAttribute("ColorFlag", nil)
points.blue += 1
-- restarr game
-- mostrar tela o pontos
updateAllPlayers()
removeTool(player, "Red")
restartGame()
generateFlag()
print(points)
end
end
end
end)
RedBase.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local character = hit.Parent
local player = Players:GetPlayerFromCharacter(character)
if player.Team == teamRed then
if player:GetAttribute("HasFlag") and player:GetAttribute("ColorFlag")=="Blue" then
print("Entregar bandeira vermelha no blueBase")
player:SetAttribute("HasFlag", false)
player:SetAttribute("ColorFlag", nil)
points.red += 1
-- remover tool
removeTool(player, "Blue")
-- restarr game
-- mostrar tela o pontos
updateAllPlayers()
restartGame()
generateFlag()
print(points)
end
end
end
end)
BlueBase.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local character = hit.Parent
local player = Players:GetPlayerFromCharacter(character)
if player.Team == teamBlue then
if not player:GetAttribute("HasFlag") then
print("Carregar bandeira")
handFlag(player, blueFlag)
player:SetAttribute("HasFlag", true)
player:SetAttribute("ColorFlag", "Blue")
points.blue += 1
-- rest
-- restarr game
-- mostrar tela o pontos
generateFlag()
print(points)
end
end
end
end)
Players.PlayerAdded:Connect(function(player)
local numberBlue = #teamBlue:GetPlayers()
local numberRed = #teamRed:GetPlayers()
if numberBlue <= numberRed then
player.Team = teamBlue
else
player.Team = teamRed
end
addAttributePlayer(player)
player.CharacterAdded:Connect(function(character)
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
if player.Team == teamBlue then
humanoidRootPart.CFrame = workspace.SpawnBlue.CFrame * CFrame.new(0,1,0)
else
humanoidRootPart.CFrame = workspace.SpawnRed.CFrame * CFrame.new(0,1,0)
end
end)
end)
🚀 Quer aprender mais sobre programação e criar seus próprios jogos?
Se você curtiu aprender como criar um Capture The Flag no Roblox Studio, então você vai adorar os cursos da Programação for Kids! 🎮💻
Aqui, você vai aprender a programar de forma divertida e prática, criando jogos incríveis e explorando o universo da tecnologia. Do básico ao avançado, nossos cursos são perfeitos para crianças e adolescentes que querem se aprofundar no mundo da programação!
🌟 Confira nossos cursos e comece a programar hoje mesmo
Vem com a gente e transforme suas ideias em realidade! 🚀
Cursos de Programação no Roblox e no Code.Org
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.