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