Scripts são arquivos de texto simples que permitem adicionar comportamentos dinâmicos e personalizados aos seus jogos. Você pode usar scripts para acionar eventos dentro do jogo, responder à entrada do jogador, salvar dados de jogadores, criar tabelas de líderes, gerar inimigos, controlar o comportamento de NPCs e muito mais.
Luau
Os scripts do Roblox usam a linguagem de programação Luau, que é derivada do Lua 5.1.
- Em comparação com Lua 5.1, Luau adiciona melhorias de desempenho e muitos recursos úteis, incluindo um sistema de tipagem opcional, interpolação de strings e iteração generalizada para tabelas.
- Todo código válido de Lua 5.1 é código válido de Luau, mas o oposto não é verdade.
A maioria dos livros e recursos online para Lua ainda é amplamente aplicável ao Luau. Para um resumo detalhado das diferenças, consulte Compatibilidade na documentação do Luau. Para a sintaxe da linguagem, veja a referência do Luau.
Noções básicas sobre Luau
Luau é tipado gradualmente, então você não precisa especificar um tipo ao criar uma variável. Você pode usar type() para verificar o tipo de um objeto:
logMessage = "O usuário tem mais de 10 itens!"print(logMessage) --> O usuário tem mais de 10 itens!print(type(logMessage)) --> string
Luau possui escopos globais e locais, mas é quase sempre melhor declarar variáveis e funções localmente com a palavra-chave local:
local logMessage = "O usuário tem mais de 10 itens!"
local function printMessage()
print(logMessage)
end
printMessage() --> O usuário tem mais de 10 itens!
Luau usa nil para representar inexistência ou nada, que avalia como false em declarações condicionais:
local messageToUserprint(messageToUser) --> nilprint(type(messageToUser)) --> nilif messageToUser then-- a declaração avalia como falsaend
Como você pode ter notado, -- inicia um comentário de uma linha. --[[]] cria um comentário em bloco:
--[[
Desliga imediatamente o raio cósmico da lua.
Deve ser chamado somente dentro de 15 minutos da meia-noite do Horário Padrão das Montanhas
para evitar danos ao raio cósmico da lua.
]]
local function stopCosmicMoonRay()
-- adicione isso mais tarde, pode ser importante
end
Tabelas são o termo genérico para arrays e dicionários. Arrays são baseados em um em vez de zero, então o primeiro item é [1]. Você declara arrays e dicionários com um único conjunto de chaves:
local myArray = {"chips", "água com gás", "salsa"}local myDictionary = {snack = "chips",drink = "água com gás",dip = "salsa"}print(myArray[1]) --> chipsprint(myDictionary.dip) --> salsa
Você pode iterar sobre tabelas usando loops for com a função ipairs() para arrays e a função pairs() para dicionários, mas Luau também permite omitir essas funções para uma sintaxe mais limpa:
for index, value in ipairs(myArray) do -- Lua padrãoprint(index, value)endfor key, value in pairs(myDictionary) do -- Lua padrãoprint(key, value)endfor key, value in myDictionary do -- iteração generalizada do Luauprint(key, value)end
Seu primeiro script
No Roblox Studio, passe o mouse sobre ServerScriptService na janela Explorer e clique em +.
Selecione Script para adicionar um novo script.
Clique com o botão direito no script e renomeie-o para HelloScript.
Clique duas vezes no script para abri-lo no Editor de Script.
Adicione o seguinte código ao arquivo:
local helloArray = {"h", "e", "l", "l", "o"}local worldArray = {"w", "o", "r", "l", "d"}for index, value in helloArray doprint(value)endprint(table.concat(worldArray))Certifique-se de que a janela Output esteja aberta.
Execute seu jogo e note a saída:
hel (x2)oworld
Sinta-se à vontade
Uma grande parte da adaptação a um novo ambiente de desenvolvimento é configurá-lo para atender às suas necessidades e entender as ferramentas à sua disposição:
- A seção Editor de Script das Configurações do Studio permite que você ajuste recursos de qualidade de vida, como fonte, cores, recuo, autocompletar, colchetes e dicas. Você também pode querer habilitar o modo escuro na seção Studio.
- Manter Ctrl ou Command e clicar em uma função ou variável leva você à sua declaração em seu código (ou na sua documentação online). Usar Encontrar e Encontrar Tudo pode ajudá-lo a navegar em projetos maiores.
- A janela Output é a ferramenta mais básica para entender o comportamento de seus scripts. Use o menu ⋯ para habilitar Mostrar Contexto e Mostrar Fonte.
- A janela Análise de Script mostra um resumo de erros e avisos, mas você pode achar sua utilidade limitada; o Editor de Script já destaca esses problemas enquanto você digita.
Para mais informações sobre como configurar o Studio para scripts, consulte Editor de Script.
Seu segundo script
No Roblox Studio, adicione um script ao ReplicatedStorage na janela Explorer e renomeie-o para OhNo.
Adicione o seguinte código ao arquivo:
print("Olá tipos e locais de script!")Note como a saída não é diferente da quando você executou seu primeiro script.
Para entender por que o script não foi executado, consulte Tipos e Locais de Script.