Pré-requisitos para Compilação

🎯 Configurações Obrigatórias

1. OOP (Object Oriented Programming)

O que é OOP? OOP é uma extensão do MTA:SA que permite programação orientada a objetos. É obrigatório para resources compiladas porque o sistema de proteção utiliza classes e métodos avançados que só funcionam com OOP ativado.

<!-- ✅ Adicionar ao meta.xml -->
<oop>true</oop>

Por que OOP é necessário?

  • O sistema de compilação requer arquitetura orientada a objetos

  • Proteções avançadas utilizam classes e métodos complexos

  • Sistema de autenticação em tempo real precisa de OOP

  • Verificações de integridade contínuas dependem de métodos OOP

  • Heartbeat e fingerprinting utilizam programação orientada a objetos

  • Performance otimizada através de estruturas OOP avançadas

2. Versão Mínima do MTA

<!-- ✅ Versão mínima obrigatória (pode usar versões superiores) -->
<min_mta_version server="1.5.6-9.18728" client="1.5.6-9.18728"/>

<!-- ✅ Exemplos de versões superiores aceitas -->
<min_mta_version server="1.5.8-9.20000" client="1.5.8-9.20000"/>
<min_mta_version server="1.6.0-9.21000" client="1.6.0-9.21000"/>

Por que essa versão mínima?

  • Suporte completo ao sistema OOP avançado

  • APIs de segurança necessárias para compilação

  • Funcionalidades de rede para heartbeat contínuo

  • Suporte a verificações de integridade em tempo real

  • Compatibilidade com sistema de fingerprinting

  • Estabilidade comprovada para arquitetura compilada

3. Marcação do Arquivo Server Principal

IMPORTANTE: Apenas o arquivo server principal (coração da resource) deve ter lockcode="true"

<!-- ✅ APENAS o arquivo server principal -->
<script src="server/main.lua" type="server" lockcode="true" />

<!-- ✅ Outros arquivos normais, utils, etc -->
<script src="server/database.lua" type="server" />
<script src="server/commands.lua" type="server" />
<script src="server/events.lua" type="server" />

<!-- Arquivos client normais -->
<script src="client.lua" type="client" />
<script src="shared.lua" type="shared" />

<!-- ✅ Arquivo de configuração (NÃO compilado) -->
<script src="config.lua" type="shared" cache="false"/>

4. Configuração da Licença

-- ✅ Arquivo config.lua (NÃO compilado)
License = {
    ["User"] = "",  -- Discord ID do usuário
    ["Key"] = ""  -- Chave da licença
};

Importante:

  • Arquivo de configuração deve ter cache="false"

  • License deve ser uma variável global

  • Usar sempre aspas duplas, nunca simples

Atualizado