O Zone Creator de CaseIRL é um editor Lua independente para desenhar limites de zonas e emitir eventos locais. O repositório atual inclui zones.lua, fxmanifest.lua, README e licença MIT. Não inclui armazenamento compartilhado automático, integração com banco de dados ou regras de jogo para as zonas criadas.
Use o nome exato da permissão
Você pode carregar o recurso fornecido ou adicionar zones.lua como shared_script no seu fxmanifest.lua. Conceda zone_creator.use ao grupo ACE desejado e associe somente os administradores previstos a esse grupo. /zones:create e /zones:debug verificam essa permissão exata no servidor. Um comentário posterior omite o sublinhado; zonecreator.use não corresponde à verificação real.
Os controles usam W/A/S/D para mover, Q/E para altura, Shift/Ctrl para velocidade, F para adicionar um ponto, X para desfazer, Enter para nomear e salvar, G para debug e Backspace para sair. São necessários pelo menos três pontos para concluir. Teste a criação e a saída normal em uma sessão de desenvolvimento antes de disponibilizar a ferramenta à equipe.
Entenda o significado de uma zona salva
A função de detecção verifica um polígono convexo usando apenas X e Y. Não impõe uma faixa de altura nem valida se a forma desenhada é convexa. Use limites convexos ordenados e sem cruzamentos e teste pontos internos, externos e na borda; interiores sobrepostos e formas côncavas exigem tratamento adicional.
As zonas criadas ficam em uma tabela all_zones local ao cliente. Salvar emite o evento local zone_created com coordenadas e informações do jogador e imprime uma mensagem; não grava arquivo no servidor ou banco de dados nem sincroniza outros jogadores. Adicione armazenamento autorizado no servidor e carregamento se as zonas precisarem sobreviver a reconexões ou reinícios do recurso.
Os eventos usam o nome do recurso em execução como prefixo, seguido de :zone_created, :entered_zone, :inside_zone ou :left_zone. O loop de estado espera 250 milissegundos e só verifica as zonas após movimento de pelo menos 0,5 unidade. Assim, inside_zone não é um temporizador contínuo enquanto o jogador está parado. Conecte sua lógica de jogo ao comportamento real dos eventos.
Revisado em 11 de setembro de 2026 no commit 4f5a8a0ea373ad2c1e8d2324cac501577dfd3c08: código Lua completo, manifesto, README, licença e integridade do arquivo. O código não foi executado no FiveM e nenhum desempenho foi medido. Preserve o aviso de copyright e a licença MIT ao distribuir cópias ou partes substanciais.