Bueno, tambien apuntar que tiene el mismo efecto dentro de un "for" o un "if", si tu lo pones dentro de un for fuera no estaría disponible tampoco.
for j in pairs(tabla) do
local n = 1
end
Dialog.Message("",type(n));
Ahí te dara nil como valor, sin embargo si la declaras antes:
local n = ""
for j in pairs(tabla) do
n = 1
end
Dialog.Message("", n)
Ahí te dara el valor que se quede dentro de el for, que en este caso es "1".
Tambien apuntar de que si no recuerdo mal solo tienes que usar un local por variable:
local n = 1
local n = 2
No funcionaría, daría error el AMS, en este caso tendrías que usar:
local n = 1
n = 2
y cada cambio solo poniendo la variable sin el local.