Имеется код:
local NHF_Trigger_env = {trig = {}}
print("T1:");
NHF_Trigger_env.Trigger = Trigger
function NHF_Trigger_env.tostring(a)
return a and (a.."" ~= a and a or '"'..a..'"') or "nil"
end;
function NHF_Trigger_env.emptytable(t)
print("T2:");
for k,v in t do
if v then return nil end
end
return 1
end;
function NHF_Trigger_env.hasparam(i)
print("T3:");
return i ~= 0 and i ~= 10 and i ~= 11
end;
function __HANDLER(trigtype, param)
print("T4:");
print("T5:");
local h = %NHF_Trigger_env.trig[trigtype]
if not h then return end
local NHF_Trigger_env = %NHF_Trigger_env
return function(a, b, c, d)
a = %NHF_Trigger_env.tostring(a)
b = %NHF_Trigger_env.tostring(b)
c = %NHF_Trigger_env.tostring(c)
d = %NHF_Trigger_env.tostring(d)
local args = "(" .. a .. "," .. b .. "," .. c .. "," .. d .. ")"
print("T6:");
for sender, tab in %h do
if sender ~= 0 then
local handler = %NHF_Trigger_env.hasparam(%trigtype) and tab and tab[%param] or tab
if handler then
startThread(parse(handler .. args))
end
end
end
local tab = %h[0]
print("T7:");
if tab then
local handler = %NHF_Trigger_env.hasparam(%trigtype) and tab and tab[%param] or tab
if handler then
print("T8:");
startThread(parse(handler .. args))
end
end
end
end;
function Trigger(sender, trig, par, handler)
print("T9:");
if sender .. "" ~= sender then
print("T10:");
sender, trig, par, handler = 0, sender, trig, par
end
if not %NHF_Trigger_env.hasparam(trig) then
print("T11:");
par, handler = nil, par
end
local need_disable = handler ~= nil
if handler then
print("T12:");
%NHF_Trigger_env.trig[trig] = %NHF_Trigger_env.trig[trig] or {}
if par then
print("T13:");
%NHF_Trigger_env.trig[trig][sender] = %NHF_Trigger_env.trig[trig][sender] or {}
%NHF_Trigger_env.trig[trig][sender][par] = handler
else
print("T14:");
%NHF_Trigger_env.trig[trig][sender] = handler
end
else
print("T15:");
if %NHF_Trigger_env.trig[trig] then
if %NHF_Trigger_env.trig[trig][sender] then
if par then
print("T16:");
%NHF_Trigger_env.trig[trig][sender][par] = nil
need_disable = %NHF_Trigger_env.emptytable(%NHF_Trigger_env.trig[trig][sender])
if need_disable then %NHF_Trigger_env.trig[trig][sender] = nil end
else
%NHF_Trigger_env.trig[trig][sender] = nil
end
need_disable = %NHF_Trigger_env.emptytable(%NHF_Trigger_env.trig[trig])
if need_disable then %NHF_Trigger_env.trig[trig] = nil end
end
end
end
if not need_disable then return end
if par then
print("T17:");
%NHF_Trigger_env.Trigger(trig, par, handler and "__HANDLER(" .. trig .. "," .. %NHF_Trigger_env.tostring(par) .. ")")
else
%NHF_Trigger_env.Trigger(trig, handler and "__HANDLER(" .. trig .. ")")
end
print("T18:end");
end;
Выдаёт ошибку:

Есть ли предположения, что тут не так?