Introdução ao Lua para MTA:SA
Os scripts do MTA:SA são escritos em Lua, uma linguagem leve, simples de aprender e muito usada em jogos. Este guia mostra o essencial para você começar.
Variáveis
local nome = "João" -- texto (string)
local dinheiro = 5000 -- número
local vip = true -- booleano
local nada = nil -- ausência de valor
Use sempre local: variáveis globais ficam acessíveis a todo o resource e podem causar conflitos.
Tabelas
A estrutura de dados do Lua — funciona como lista e como dicionário:
local precos = { pistola = 1500, fuzil = 8000 }
print(precos.pistola) -- 1500
local lista = { "Ana", "Bruno", "Carla" }
print(lista[1]) -- Ana (Lua começa do índice 1!)
print(#lista) -- 3 (tamanho)
Funções
local function somar(a, b)
return a + b
end
print(somar(2, 3)) -- 5
Condicionais
if dinheiro >= 1000 then
print("Pode comprar")
elseif dinheiro > 0 then
print("Dinheiro insuficiente")
else
print("Sem dinheiro")
end
Operadores: == (igual), ~= (diferente), and, or, not.
Loops
for i = 1, 5 do
print(i)
end
for chave, valor in pairs(precos) do
print(chave, valor)
end
for indice, nome in ipairs(lista) do
print(indice, nome)
end
Juntando textos
local msg = "Olá, " .. nome .. "! Você tem $" .. dinheiro
Seu primeiro script de MTA
Crie um resource ola, com o meta.xml:
<meta>
<info author="Voce" name="Ola" version="1.0" type="script" />
<script src="server.lua" type="server" />
</meta>
E o server.lua:
addEventHandler("onPlayerJoin", root, function()
outputChatBox("Olá, " .. getPlayerName(source) .. "! Bem-vindo(a).", source, 0, 255, 100)
end)
addCommandHandler("dinheiro", function(jogador)
outputChatBox("Você tem $" .. getPlayerMoney(jogador), jogador)
end)
No console: refresh e start ola. Entre no servidor e digite /dinheiro.
Onde aprender mais
- Wiki oficial do MTA (wiki.multitheftauto.com): referência de todas as funções e eventos, com exemplos;
- Fórum da comunidade;
- Leia o código de resources abertos e bem escritos.
Hospede seu servidor com a VittHost
No MTASA-BR da VittHost, você programa, envia e testa seus scripts com console em tempo real no painel Pterodactyl. Servidores no Brasil, proteção DDoS, MySQL incluso, downloads acelerados por nginx dedicado e teste grátis de 3 dias.