Fundamentos: tu primer recurso en QBCore · Lección 2/5 · 10 min

Lua esencial para FiveM

Variables, tablas, funciones, condicionales y bucles: lo justo de Lua para empezar a escribir scripts.

FiveM usa Lua, igual con ESX que con QBCore. No necesitas dominar todo el lenguaje: con variables, tablas, funciones y bucles ya puedes hacer mucho. Vamos a lo práctico.

Variables y tipos

lua
local nombre = 'Crxative'   -- string
local vida = 100            -- número
local vivo = true           -- booleano
local nada = nil            -- ausencia de valor

print(nombre, vida, vivo)

Tipos básicos

Usa siempre local. Sin local, la variable es global y puede chocar con otros recursos (causa bugs difíciles de encontrar).

Tablas (el todoterreno de Lua)

lua
-- Lista
local frutas = { 'manzana', 'pera', 'uva' }
print(frutas[1]) -- 'manzana' (¡los índices empiezan en 1!)

-- Diccionario
local jugador = { nombre = 'Ana', dinero = 500 }
print(jugador.dinero) -- 500

Tablas

Funciones

lua
local function sumar(a, b)
  return a + b
end

print(sumar(3, 4)) -- 7

Funciones

Condicionales y bucles

lua
local dinero = 500
if dinero >= 1000 then
  print('rico')
elseif dinero > 0 then
  print('vas tirando')
else
  print('sin blanca')
end

for i, fruta in ipairs(frutas) do
  print(i, fruta)
end

for clave, valor in pairs(jugador) do
  print(clave, valor)
end

Control de flujo

Practica lo aprendido

0/3
Corrige el error

Esta variable está declarada como global por error y puede chocar con otros recursos. Conviértela en local.

Este código tiene un fallo:

1nombre = 'Crxative'
2print(nombre)

Reescríbelo corregido:

Pista

Sin local, la variable es global. Añade local delante de la declaración.

Test

En Lua, ¿cuál es el primer índice de una lista (tabla secuencial)?

Rellena los huecos

Completa el bucle que recorre una lista con su índice y su valor.

1local frutas = { 'manzana', 'pera', 'uva' }
2for i, fruta in (frutas) do
3 print(i, fruta)
4end
Pista

Para listas con índices numéricos en orden se usa ipairs; para diccionarios clave/valor, pairs.

Reto: prográmalo tú

Escribe una función en Lua que reciba una tabla de números y devuelva su suma total.

Escríbelo tú en tu editor (VS Code) y pruébalo en tu servidor. Aquí se aprende haciéndolo, no copiando.

Ver pista

Recorre la tabla con ipairs y ve acumulando en una variable que empiece en 0.

Escribe aquí tu solución:

¿Qué tal esta lección?