Interiores e dimensões: organizando o mundo
Interiores e dimensões são dois conceitos do MTA que permitem colocar muito conteúdo no mesmo mapa sem que um atrapalhe o outro.
Interiores
O GTA San Andreas já traz vários interiores (casas, lojas, bares, delegacias) que ficam em "espaços" separados do mundo aberto. No MTA, todo elemento tem um número de interior:
- 0 — mundo aberto;
- Outros números — os interiores do jogo.
setElementInterior(jogador, 3)
setElementPosition(jogador, x, y, z) -- posição dentro do interior
Dimensões
A dimensão é um número (0 a 65535) que separa "mundos paralelos": elementos só se veem e interagem se estiverem na mesma dimensão.
setElementDimension(jogador, 150)
Casas e empresas com o mesmo interior
Em um roleplay com 200 casas, não é preciso 200 interiores diferentes. Use o mesmo interior com dimensões diferentes:
local function entrarNaCasa(jogador, casa)
setElementInterior(jogador, casa.interior)
setElementDimension(jogador, 1000 + casa.id) -- dimensão única por casa
setElementPosition(jogador, casa.ix, casa.iy, casa.iz)
end
Assim, cada casa é uma "cópia" separada do mesmo interior.
Outros usos de dimensões
- Minigames e arenas em paralelo;
- Eventos sem interferir no mundo principal;
- Tela de login/criação de personagem isolada;
- Tutorial para novos jogadores;
- Prisão ou áreas administrativas.
Cuidados
- Veículos e objetos também têm interior e dimensão — mova-os junto com o jogador quando necessário;
- Salve interior e dimensão no banco ao salvar a posição;
- Organize faixas de dimensões por sistema (ex.: 1000–9999 casas, 10000–19999 empresas) para evitar colisões;
- Ao sair do servidor dentro de uma casa, o jogador deve voltar corretamente.
Hospede seu servidor com a VittHost
No MTASA-BR da VittHost, seu mundo organizado roda em servidores no Brasil com proteção DDoS, painel Pterodactyl, MySQL incluso, downloads acelerados por nginx dedicado e teste grátis de 3 dias.