Pular para o conteúdo principal

👨‍💻 Práticas no Código

Trabalhos repetidos

Um while infinito mantém a execução inicial do script ocupada, mesmo quando usa wait. Use um Timer para permitir que a inicialização termine e para que a tarefa possa ser iniciada, parada ou destruída explicitamente.

-- Evite para tarefas recorrentes em segundo plano
while true do
print("Hello World")
wait(100)
end

-- Preferível
Timer("HelloWorld", function()
print("Hello World")
end, 100)

Enums

Use os nomes disponíveis em Enums em vez de constantes numéricas sem explicação:

-- Evite
Spells.groupIsInCooldown(2)

-- Preferível
Spells.groupIsInCooldown(Enums.SpellGroups.SPELLGROUP_HEALING)

Depuração de tabelas

print não formata uma tabela automaticamente. Percorra a tabela ou codifique os dados serializáveis:

local tableVar = {"Hello", "World"}

for index, value in pairs(tableVar) do
print(index, value)
end

print(JSON.encode(tableVar))

Teclas de atalho

Analise a combinação uma vez e use o evento de atalho quando a ação deve executar uma vez por pressionamento. Use Client.isKeyPressed por polling apenas quando precisar detectar que a tecla continua pressionada.

local success, expectedModifiers, expectedKey =
HotkeyManager.parseKeyCombination("ctrl+x")

if not success then
print("Atalho inválido")
return
end

local function onKeyPressed(key, modifiers)
if key == expectedKey and modifiers == expectedModifiers then
print("Hello World")
end
end

Game.registerEvent(Game.Events.HOTKEY_SHORTCUT_PRESS, onKeyPressed)

-- Quando o callback não for mais necessário:
Game.unregisterEvent(Game.Events.HOTKEY_SHORTCUT_PRESS, onKeyPressed)