Suporte e Resolução de Problemas
🔍 Problemas Comuns
Variável Retorna nil
nil
Possíveis Causas:
-- 1. Variável não definida no painel
-- 2. Nome da variável incorreto (case-sensitive)
-- 3. Sistema ainda não inicializado
Soluções:
-- ✅ Verificação robusta
local function getEnvSafe(envName, defaultValue)
local value = LockSystem.Envs.Get(envName)
if value == nil then
outputServerLog("⚠️ Env não encontrada: " .. envName)
return defaultValue
end
if value == "" then
outputServerLog("⚠️ Env vazia: " .. envName)
return defaultValue
end
return value
end
local serverName = getEnvSafe("SERVIDOR_NOME", "Servidor Padrão")
Valores Inesperados
Problema: Variável retorna valor diferente do esperado
-- ❌ Problema comum - espaços em branco
-- No painel: MAX_PLAYERS = " 128 "
local maxPlayers = tonumber(LockSystem.Envs.Get("MAX_PLAYERS")) -- nil!
-- ✅ Solução - sempre fazer trim
local function getEnvTrimmed(envName)
local value = LockSystem.Envs.Get(envName)
return value and value:trim() or nil
end
local maxPlayers = tonumber(getEnvTrimmed("MAX_PLAYERS")) or 64
Conversão de Tipos Falhando
-- ❌ Conversão pode falhar
local rate = tonumber(LockSystem.Envs.Get("XP_RATE")) -- nil se não for número
-- ✅ Conversão segura
local function safeToNumber(str, default)
if not str then return default end
local num = tonumber(str)
return num or default
end
local xpRate = safeToNumber(LockSystem.Envs.Get("XP_RATE"), 1.0)
🐛 Sistema de Debug
-- Sistema completo de debug para Envs
local function debugEnvSystem()
print("=== DEBUG ENV SYSTEM ===")
-- Verificar se sistema está disponível
if not LockSystem or not LockSystem.Envs then
print("❌ Sistema Envs não disponível")
return
end
print("✅ Sistema Envs disponível")
-- Lista de variáveis para testar
local testVars = {
"SERVIDOR_NOME",
"MAX_PLAYERS",
"ECONOMIA_MULTIPLICADOR",
"DISCORD_WEBHOOK",
"DEBUG_ATIVO"
}
print("\n--- Variáveis Testadas ---")
for _, varName in ipairs(testVars) do
local value = LockSystem.Envs.Get(varName)
local status = value and "✅" or "❌"
local displayValue = value or "nil"
print(string.format("%s %s = %s", status, varName, displayValue))
end
print("========================")
end
-- Comando admin para debug
addCommandHandler("debugenv", function(player)
if not hasObjectPermissionTo(player, "general.adminpanel") then
return outputChatBox("❌ Sem permissão", player, 255, 0, 0)
end
debugEnvSystem()
outputChatBox("✅ Debug executado - verifique console", player, 0, 255, 0)
end)
📞 Quando Contatar Suporte
Entre em contato se:
Variáveis definidas no painel retornam sempre
nil
Alterações no painel não refletem no código após 15+ minutos
Sistema
LockSystem.Envs
não está disponível mesmo com autenticação okPerformance degradada após usar muitas variáveis Envs
🔧 Ferramentas de Diagnóstico
-- Função para diagnóstico completo
local function diagnosticEnvs()
local report = {
system_available = LockSystem and LockSystem.Envs and true or false,
timestamp = getRealTime().timestamp,
tested_vars = {}
}
if report.system_available then
local commonVars = {
"SERVIDOR_NOME", "MAX_PLAYERS", "DEBUG_ATIVO",
"ECONOMIA_MULTIPLICADOR", "DISCORD_WEBHOOK"
}
for _, varName in ipairs(commonVars) do
local value = LockSystem.Envs.Get(varName)
report.tested_vars[varName] = {
exists = value ~= nil,
empty = value == "",
value_type = type(value),
length = value and #value or 0
}
end
end
-- Salvar relatório para análise
local reportFile = fileCreate("env_diagnostic.json")
if reportFile then
fileWrite(reportFile, toJSON(report, true))
fileClose(reportFile)
print("📋 Relatório de diagnóstico salvo em env_diagnostic.json")
end
return report
end
Lembre-se: As variáveis Envs são uma ferramenta poderosa para criar recursos configuráveis e adaptáveis. Use-as para tornar seus recursos mais flexíveis e fáceis de manter! 🎯
Atualizado