При инициализации каждого региона в списке для него на месте создаётся функция, которую будет вызывать триггер. Для функции при помощи upvalues в локальную переменную записывается имя региона. После можно производить любые действия с именем региона (и, соотвественно, его свойствами) и героем hero.
regions = {
list = {
["Region123"] = {active=nil, activator=nil},
...
},
init = function()
for region, props in regions.list do
regions.list[region].enter = function(hero)
local reg = %region
regions.list[reg].active = 1
regions.list[reg].activator = hero
-- Действия с регионом, доступ к свойствам которого можно найти по локальному имени reg
end
Trigger(REGION_ENTER_AND_STOP_TRIGGER, region, "regions.list['"..region.."'].enter")
end
end,
}
regions.init()