Robotomia · Roblox · Aula 8
0 de 20 passos prontos
Aula 8 · o código decide

Loja: gaste as moedas

Três moedas compram velocidade. Se você não tiver as três, não leva — e é o código que decide. São 20 passos, 50 minutos. Faça um de cada vez e só passe adiante depois de conferir o quadro verde.

Antes de digitarO passo 2 desta aula prepara o editor: desligar o assistente de código e o fechamento automático. Não pule — sem isso o editor escreve linhas que você não pediu.
Projeto novoComeça do zero. A primeira metade refaz o placar e a moeda da Aula 5 — vai rápido, você já sabe.
O conceito de hojeif … then … else … end: o código olha para um número e escolhe o que fazer.
AtalhosEste material usa Ctrl, do Windows. Num Mac, troque Ctrl por ⌘.
⤓ Baixar esta aula em PDF (para imprimir)
1

Abra o Studio e escolha BASEPLATE

Tela do Roblox Studio no passo 1

Foto da tela.

Projeto novo. Role a página para baixo até a fileira Abrir um modelo e clique no primeiro, o Baseplate.

Está certo seAbriu o mundo cinza.
Não deu certo?
Abriu o projeto antigo
Feche a aba e volte para o Início.
Apareceu uma janelinha de Boas-vindas por cima
Clique em Voltar ao início, o botão da esquerda — ou no ✕ do canto. Não clique em Iniciar a introdução.
2

Prepare o editor (uma vez em cada computador)

Tela do Roblox Studio no passo 2

Foto da tela.

Hoje você vai digitar código. O Studio vem com duas ajudas que atrapalham quem está aprendendo: ele sugere linhas inteiras e fecha parênteses e aspas sozinho. Vamos desligar as duas.

No Windows: Arquivo → Configurações do Studio. No Mac: Roblox Studio → Configurações do Studio.

1. Na busca escreva assist e desmarque Ativar assistente de código.
2. Apague a busca, escreva fechamento e desmarque Colchetes de fechamento automáticos e Aspas de fechamento automáticas.

Feche a janela. Fica guardado no computador — se você já fez isto numa aula passada neste mesmo computador, é só conferir que as caixinhas continuam vazias.

Está certo seAs três caixinhas estão vazias: assistente de código, colchetes e aspas.
Não deu certo?
Não acho Configurações do Studio
No Windows é o menu Arquivo, bem no canto de cima à esquerda da janela.
A busca não acha nada
Escreva só assist, sem acento e sem mais nada.
Já está tudo desmarcado
Ótimo — este computador já foi preparado. Feche a janela e siga.
Por que desligar?
Ligado, o editor escreve linhas que você não pediu, e o Tab aceita a sugestão em vez de recuar. Desligado, o que está escrito na aula é exatamente o que você digita.
3

Vá para a aba MODELO

Animação do passo 3

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Clique em Modelo.

Está certo seAparecem Parte, Cor e Âncora.
Não deu certo?
Não acho
Fica entre Script e Plugins.
4

Refaça o placar

Animação do passo 4

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Na lista da direita ache ServerScriptService (algumas linhas abaixo de Workspace; role a lista se não estiver à vista), clique nele, clique no + e escolha Script.

Está certo seAbriu o editor e o Script está dentro do ServerScriptService.
Não deu certo?
Não acho ServerScriptService
Escreva server na caixa Pesquisar do Explorador.
Esqueci como era
Está tudo na Aula 5, passos 4 e 5.
5

Escreva o placar

Tela do Roblox Studio no passo 5

Foto da tela.

O mesmo código da Aula 5. Apague a linha pronta (clique no fim dela e segure Backspace) e escreva:

⌨ digite você mesmo — não copie
  1. game.Players.PlayerAdded:Connect(function(jogador)
  2. local pasta = Instance.new("Folder")
  3. pasta.Name = "leaderstats"
  4. pasta.Parent = jogador
  5. local moedas = Instance.new("IntValue")
  6. moedas.Name = "Moedas"
  7. moedas.Value = 0
  8. moedas.Parent = pasta
  9. end)
as linhas em cinza o editor escreve sozinho — não digite elas
teclado brasileiro: a aspa é tecla muda — ela não aparece na hora. Aperte a tecla da aspa e logo a barra de espaço: sai uma aspa sozinha, sem espaço nenhum. Faça isso com todas as aspas. Se você digitar a letra direto depois da aspa, ela vira trema ("I sai Ï).

Se você guardou o arquivo da Aula 5, pode abrir lá e copiar. Mas escrever de novo grava melhor.

Não digite as linhas em cinza. O editor escreve os end sozinho quando você aperta Enter. E não aperte Tab — ele já empurra as linhas para dentro.

Está certo seNenhum risco vermelho.
Não deu certo?
A aspa saiu errada (Ï, ä, ou duas aspas juntas)
A aspa do teclado brasileiro é tecla muda. Antes de vogal ela vira trema; no fim da linha ela às vezes dobra. O conserto é sempre o mesmo: apague o que saiu errado e digite a aspa seguida da barra de espaço. Sai uma aspa limpa, sem espaço.
Sobraram end a mais
Você digitou os que o editor já tinha escrito. Apague os extras até o código ficar igual ao da aula.
Leaderstats não funciona
É leaderstats, tudo minúsculo, entre aspas.
Risco vermelho no fim
Falta o end).
Apareceu uma caixinha cinza com sugestões
É o editor tentando adivinhar. Aperte Esc para fechá-la e continue digitando. Se você apertar Enter com ela aberta, ele escreve a sugestão no lugar do que você ia escrever.
6

Crie a moeda

Animação do passo 6

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Volte para a aba Place1. Clique no desenho do Parte, depois leve a câmera até ela (F, depois S).

Está certo seNasceu um bloco no meio da tela.
Não deu certo?
Nada aconteceu
Você clicou na palavra, não no desenho.
7

Ancore e posicione

Animação do passo 7

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Clique em Âncora.

Depois, na busca das Propriedades, escreva position. Duplo clique no valor, Ctrl + A, escreva 0, 3, -6 e Enter — a moeda fica logo à frente de onde você nasce. Depois apague a busca.

Está certo seA moeda flutua um pouco à frente da plataforma de nascimento.
Não deu certo?
Aparecem três linhas Position
Use a primeira, embaixo de CFrame.
A moeda ficou no chão
O número do meio é a altura. Use 3.
8

Pinte de amarelo e chame de MOEDA

Animação do passo 8

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Setinha do Cor → amarelo → clique no círculo do botão Cor.

Depois botão direito na peça → Renomear → Moeda → Enter.

Está certo seUma peça amarela chamada Moeda na lista.
Não deu certo?
Não pintou
Falta o clique no círculo do botão Cor.
9

Ponha o script na moeda

Animação do passo 9

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Clique em Moeda, clique no +, escolha Script, apague a linha pronta e escreva:

⌨ digite você mesmo — não copie
  1. local moeda = script.Parent
  2. moeda.Touched:Connect(function(parte)
  3. local jogador = game.Players:GetPlayerFromCharacter(parte.Parent)
  4. if jogador then
  5. jogador.leaderstats.Moedas.Value = jogador.leaderstats.Moedas.Value + 1
  6. moeda:Destroy()
  7. end
  8. end)
as linhas em cinza o editor escreve sozinho — não digite elas

Também é o mesmo da Aula 5. Cada moeda vale um ponto e se apaga depois.

Não digite as linhas em cinza. O editor escreve os end sozinho quando você aperta Enter. E não aperte Tab — ele já empurra as linhas para dentro.

Está certo seNenhum risco vermelho.
Não deu certo?
Sobraram end a mais
Você digitou os que o editor já tinha escrito. Apague os extras até o código ficar igual ao da aula.
GetPlayerFromCharacter dá erro
Confira as maiúsculas: G, P, F, C.
Apareceu uma caixinha cinza com sugestões
É o editor tentando adivinhar. Aperte Esc para fechá-la e continue digitando. Se você apertar Enter com ela aberta, ele escreve a sugestão no lugar do que você ia escrever.
10

Faça três moedas

Tela do Roblox Studio no passo 10

Foto da tela.

Botão direito na Moeda → Duplicar, duas vezes.

Mude a position das cópias para 3, 3, -6 e -3, 3, -6, para ficarem lado a lado.

Você vai precisar de três moedas para comprar na loja.

Está certo seTrês moedas amarelas em fila, e três Moeda na lista.
Não deu certo?
As cópias ficaram uma dentro da outra
Mude a position de cada uma. O primeiro número é para os lados.
A cópia não soma ponto
Você duplicou antes de pôr o script. Apague e duplique a que tem o Script dentro.
11

Crie a loja

Animação do passo 11

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Mais uma peça: Parte → Âncora.

Depois size = 6, 1, 6 e position = 10, 0.5, -6. Fica uma plataforma quadrada, do lado.

Está certo seTem uma plataforma baixa ao lado das moedas.
Não deu certo?
Ficou em cima das moedas
O primeiro número do position é para os lados. Use 10.
Esqueci de ancorar
Clique nela e em Âncora.
12

Pinte de verde e chame de LOJA

Animação do passo 12

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Setinha do Cor → verde → círculo do botão Cor.

Botão direito → Renomear → Loja → Enter.

Está certo seUma plataforma verde chamada Loja.
Não deu certo?
Pintei a peça errada
Ctrl + Z e repita na certa.
13

Ponha o script na loja

Tela do Roblox Studio no passo 13

Foto da tela.

Clique em Loja, clique no + e escolha Script. Apague a linha pronta (fim da linha + Backspace).

Este é o código importante da aula. Vem no próximo passo.

Está certo seO editor abriu vazio, com o Script dentro da Loja.
Não deu certo?
Ficou fora da Loja
Arraste-o por cima da palavra Loja na lista.
14

Escreva a loja

Tela do Roblox Studio no passo 14

Foto da tela.

Treze linhas. Repare que existe um if dentro do outro:

⌨ digite você mesmo — não copie
  1. local loja = script.Parent
  2. local preco = 3
  3. loja.Touched:Connect(function(parte)
  4. local jogador = game.Players:GetPlayerFromCharacter(parte.Parent)
  5. if jogador then
  6. local moedas = jogador.leaderstats.Moedas
  7. if moedas.Value >= preco then
  8. moedas.Value = moedas.Value - preco
  9. parte.Parent.Humanoid.WalkSpeed = 50
  10. end
  11. end
  12. end)
as linhas em cinza o editor escreve sozinho — não digite elas

O primeiro if pergunta “é um jogador?”. O segundo pergunta “ele tem dinheiro?”. São três end no fim, e o último com ).

Não digite as linhas em cinza. O editor escreve os end sozinho quando você aperta Enter. E não aperte Tab — ele já empurra as linhas para dentro.

Está certo seNenhum risco vermelho, e o editor desenhou as linhas verticais dos dois if.
Não deu certo?
Sobraram end a mais
Você digitou os que o editor já tinha escrito. Apague os extras até o código ficar igual ao da aula.
Risco vermelho no fim
Conte os end: são três, e o último é end).
A indentação saiu diferente
O editor recua sozinho. Não use Tab — ele serve para outra coisa. Se ficou torto, apague a linha e escreva de novo.
O que é >= ?
É “maior ou igual”. Dois símbolos, sem espaço entre eles.
Apareceu uma caixinha cinza com sugestões
É o editor tentando adivinhar. Aperte Esc para fechá-la e continue digitando. Se você apertar Enter com ela aberta, ele escreve a sugestão no lugar do que você ia escrever.
15

Entenda a decisão

Tela do Roblox Studio no passo 15

Foto da tela.

local preco = 3 — guarda o número 3 com o nome preco. Assim, se você quiser mudar o preço, muda num lugar só.

if moedas.Value >= preco then — “se o que ele tem for maior ou igual ao preço…”. É aqui que o código decide.

moedas.Value = moedas.Value - preco — cobra: tira 3 do que ele tinha.

Humanoid.WalkSpeed = 50 — entrega o produto. A velocidade normal é 16; 50 é correr muito.

E se não tiver as três moedas? Nada acontece. O código simplesmente pula tudo que está dentro do if.

Está certo seVocê consegue dizer o que acontece ao pisar na loja com 2 moedas.
Não deu certo?
Por que usar preco em vez de 3 direto?
Porque aparece duas vezes. Com um nome só, você muda o preço num lugar e vale nos dois.
16

Jogue: tente comprar sem dinheiro

Animação do passo 16

O clipe repete sozinho. Repare onde o cursor vai antes de clicar.

Foto da tela.

Volte para Place1 e aperte o ▶.

Vá direto para a plataforma verde, sem pegar moeda nenhuma. Pise nela.

Está certo seNada acontece. Você continua na mesma velocidade e o placar continua em 0.
Não deu certo?
Ficou rápido mesmo sem moeda
O >= está errado, ou o preço está 0. Confira a linha do if.
Deu erro vermelho na tela
Provavelmente o placar. Confira o leaderstats no script do ServerScriptService.
17

Agora pegue as três moedas

Tela do Roblox Studio no passo 17

Foto da tela.

Pegue as três moedas — o placar vai para 3 — e volte para a plataforma verde.

Está certo seO placar caiu de 3 para 0 e o seu boneco ficou visivelmente mais rápido.
Não deu certo?
O placar zerou mas não fiquei rápido
Confira a linha do WalkSpeed: é parte.Parent.Humanoid.WalkSpeed.
Fiquei rápido mas o placar não mudou
Faltou a linha que subtrai o preço.
Peguei só duas moedas e funcionou
O preço no código não é 3. Confira a linha 2.
18

Mude o preço

Tela do Roblox Studio no passo 18

Foto da tela.

Pare o jogo. Troque local preco = 3 por local preco = 1 e jogue de novo.

Uma moeda já compra. Depois experimente 10 — aí não dá para comprar com as três moedas que existem.

Está certo seVocê viu o mesmo código se comportar de dois jeitos, só mudando um número.
Não deu certo?
Mudei e nada
Você mudou com o jogo rodando. Pare, mude, jogue.
19

Venda outra coisa

Tela do Roblox Studio no passo 19

Foto da tela.

Troque a linha do WalkSpeed por uma destas:

parte.Parent.Humanoid.JumpHeight = 25 — pulo alto
parte.Parent.Humanoid.MaxHealth = 200 — mais vida

Se escolher a vida, escreva também parte.Parent.Humanoid.Health = 200 na linha de baixo: só o MaxHealth aumenta a barra, mas deixa o resto dela vazio.

Ou duplique a Loja, mude o nome e o preço, e faça duas lojas com produtos diferentes.

Está certo seA sua loja vende alguma coisa que não é velocidade.
Não deu certo?
JumpHeight não funciona
Escreva com J e H maiúsculos, exatamente assim.
As duas lojas fazem a mesma coisa
Você duplicou e não mudou o script da cópia.
20

Salve

Tela do Roblox Studio no passo 20

Foto da tela.

Ctrl + S → Salvar em arquivo → nome loja.

E publique, se quiser: Arquivo → Publicar na Roblox.

Está certo seSalvou sem erro.
Não deu certo?
Esqueci como publica
Aula 4, passo 9.

Acabou a Aula 8. Você escreveu um código que decide: faz uma coisa se tiver dinheiro, e outra se não tiver. Isso se chama condição, e é o que separa um jogo de uma animação.