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 no jogo, responder à entrada do jogador, salvar dados do jogador, criar tabelas de classificação, 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.
- Comparado ao Lua 5.1, o 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 do Lua 5.1 é código válido do Luau, mas o oposto não é verdadeiro.
A maioria dos livros e recursos online para Lua ainda é amplamente aplicável ao Luau. Para um resumo detalhado das diferenças, veja Compatibilidade na documentação do Luau. Para a sintaxe da linguagem, veja a referência do Luau.
Fundamentos do Luau
O 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)) --> stringO 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!O Luau usa nil para representar inexistência ou nada, que é avaliado como false em declarações condicionais:
local messageToUser
print(messageToUser) --> nil
print(type(messageToUser)) --> nil
if messageToUser then
-- a declaração é avaliada como falsa
endComo você pode ter notado, -- inicia um comentário de uma linha. --[[]] cria um comentário em bloco:
--[[
Desliga o raio cósmico da lua imediatamente.
Deve ser chamado apenas dentro de 15 minutos da meia-noite do Horário Padrão da Montanha
para evitar danos ao raio cósmico da lua.
]]
local function stopCosmicMoonRay()
-- adicione isso mais tarde, pode ser importante
endTabelas 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]) --> chips
print(myDictionary.dip) --> salsaVocê pode iterar sobre tabelas usando loops for com a função ipairs() para arrays e a função pairs() para dicionários, mas o Luau também permite que você omita essas funções para uma sintaxe mais limpa:
for index, value in ipairs(myArray) do -- Lua padrão
print(index, value)
end
for key, value in pairs(myDictionary) do -- Lua padrão
print(key, value)
end
for key, value in myDictionary do -- iteração generalizada do Luau
print(key, value)
endSeu 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 Scripts.
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 observe a saída:
hel (x2)oworld
Fique à 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 Scripts das Configurações do Studio permite que você ajuste recursos de qualidade de vida, como fonte, cores, indentação, autocompletar, colchetes e dicas de ferramentas. Você também pode querer ativar o modo escuro na seção Studio.
- Segurar Ctrl ou Command e clicar em uma função ou variável leva você à sua declaração em seu código (ou à sua documentação online). Usar Encontrar e Encontrar Todos 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 ativar Mostrar Contexto e Mostrar Fonte.
- A janela Análise de Scripts mostra um resumo de erros e avisos, mas você pode achar sua utilidade limitada; o Editor de Scripts já destaca esses problemas enquanto você digita.
Para mais informações sobre como configurar o Studio para programação, veja Editor de Scripts.
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!")Observe como a saída não é diferente da quando você executou seu primeiro script.
Para entender por que o script não foi executado, veja Tipos e Locais de Script.