Los scripts son archivos de texto plano que te permiten agregar comportamientos dinámicos y personalizados a tus juegos. Puedes usar scripts para activar eventos en el juego, responder a la entrada del jugador, guardar datos del jugador, crear tablas de clasificación, generar enemigos, controlar el comportamiento de NPC y mucho, mucho más.
Luau
Los scripts de Roblox utilizan el lenguaje de programación Luau, que se deriva de Lua 5.1.
- En comparación con Lua 5.1, Luau añade mejoras de rendimiento y muchas características útiles, incluyendo un sistema de tipado opcional, interpolación de cadenas e iteración generalizada para tablas.
- Todo el código válido de Lua 5.1 es código válido de Luau, pero lo opuesto no es cierto.
La mayoría de los libros y recursos en línea para Lua son aplicables a Luau. Para un resumen detallado de diferencias, consulta Compatibilidad en la documentación de Luau. Para la sintaxis del lenguaje, consulta la referencia de Luau.
Conceptos básicos de Luau
Luau es de tipo gradual, así que no necesitas especificar un tipo al crear una variable. Puedes usar type() para verificar el tipo de objeto:
logMessage = "¡El usuario tiene más de 10 artículos!"print(logMessage) --> ¡El usuario tiene más de 10 artículos!print(type(logMessage)) --> string
Luau tiene alcances globales y locales, pero casi siempre es mejor declarar variables y funciones localmente con la palabra clave local:
local logMessage = "¡El usuario tiene más de 10 artículos!"
local function printMessage()
print(logMessage)
end
printMessage() --> ¡El usuario tiene más de 10 artículos!
Luau utiliza nil para representar inexistencia o nada, lo que se evalúa como false en declaraciones condicionales:
local messageToUserprint(messageToUser) --> nilprint(type(messageToUser)) --> nilif messageToUser then-- la declaración se evalúa como falsaend
Como habrás notado, -- inicia un comentario de una línea. --[[]] crea un comentario en bloque:
--[[
Apaga el rayo cósmico de la luna inmediatamente.
Solo debe ser llamado dentro de los 15 minutos previos a la medianoche, Hora Estándar de la Montaña,
para evitar daños al rayo cósmico de la luna.
]]
local function stopCosmicMoonRay()
-- añade esto más tarde, podría ser importante
end
Las tablas son el término genérico para arreglos y diccionarios. Los arreglos son basados en uno en lugar de basados en cero, por lo que el primer elemento es [1]. Declaras arreglos y diccionarios con un solo conjunto de llaves:
local myArray = {"papas fritas", "agua con gas", "salsa"}local myDictionary = {snack = "papas fritas",drink = "agua con gas",dip = "salsa"}print(myArray[1]) --> papas fritasprint(myDictionary.dip) --> salsa
Puedes iterar sobre tablas usando bucles for con la función ipairs() para arreglos y la función pairs() para diccionarios, pero Luau también te permite omitir estas funciones para una sintaxis más limpia:
for index, value in ipairs(myArray) do -- lua estándarprint(index, value)endfor key, value in pairs(myDictionary) do -- lua estándarprint(key, value)endfor key, value in myDictionary do -- iteración generalizada de Luauprint(key, value)end
Tu primer script
En Roblox Studio, pasa el cursor sobre ServerScriptService en la ventana de Explorer y haz clic en +.
Selecciona Script para agregar un nuevo script.
Haz clic derecho en el script y renómbralo a HelloScript.
Haz doble clic en el script para abrirlo en el Editor de Scripts.
Agrega el siguiente código al archivo:
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))Asegúrate de que la ventana de Output esté abierta.
Ejecuta tu juego y observa la salida:
hel (x2)oworld
Ponte cómodo
Una gran parte de adaptarse a un nuevo entorno de desarrollo es configurarlo para satisfacer tus necesidades y comprender las herramientas a tu disposición:
- La sección del Editor de Scripts en Configuraciones de Studio te permite ajustar características de calidad de vida como fuente, colores, sangrías, autocompletar, corchetes y descripciones emergentes. También puede que desees habilitar el modo oscuro en la sección de Studio.
- Manteniendo presionado Ctrl o Command y haciendo clic en una función o variable te lleva a su declaración en tu base de código (o su documentación en línea). Usar Buscar y Buscar todo puede ayudarte a navegar proyectos más grandes.
- La ventana de Output es la herramienta más básica para comprender el comportamiento de tus scripts. Utiliza el menú ⋯ para habilitar Mostrar contexto y Mostrar fuente.
- La ventana de Análisis de Scripts muestra un resumen de errores y advertencias, pero puede que encuentres su utilidad limitada; el Editor de Scripts ya resalta estos problemas mientras escribes.
Para obtener más información sobre cómo configurar Studio para la programación, consulta Editor de Scripts.
Tu segundo script
En Roblox Studio, agrega un script en ReplicatedStorage en la ventana de Explorer y renómbralo a OhNo.
Agrega el siguiente código al archivo:
print("¡Hola, tipos de scripts y ubicaciones!")Nota cómo la salida no es diferente a cuando ejecutaste tu primer script.
Para entender por qué el script no se ejecutó, consulta Tipos y Ubicaciones de Scripts.