Так?
function InitBuildings() -- функция, её имя и список получаемых аргументов в скобках
for i, building in GetObjectNamesByType"PEASANT_HUT" do -- итерация по массиву с именами объектов типа "PEASANT_HUT" (крестьянские домики)
Trigger(5, building, "TransformBuilding") -- триггер на захват (5), building - переменная в цикле, TransformBuilding - имя вызываемой при захвате функции
end
for i, building in GetObjectNamesByType"ARCHERS_HOUSE" do
Trigger(5, building, "TransformBuilding")
end
for i, building in GetObjectNamesByType"BARRACKS" do
Trigger(5, building, "TransformBuilding")
end
for i, building in GetObjectNamesByType"HEAVEN_MILITARY_POST" do
Trigger(5, building, "TransformBuilding")
end
end
function TransformBuilding(_, _, hero, building)
if hero == "Pelt" then -- проверка героя по имени
ReplaceDwelling(building, TOWN_NECROMANCY) -- переделка строения в соответствующее некромантское
end
end
function TransformHavenTown(_, _, hero)
if hero == "Pelt" then
TransformTown("скриптовое имя города", TOWN_NECROMANCY) -- трансформация города в некромантский
sleep(10) -- пауза в 2 сек.
SetObjectPosition("Pelt", GetObjectPosition("скриптовое имя города")) -- перемещение героя в координаты города (если гарнизон свободен, то герой будет помещён туда)
end
end
startThread(InitBuildings) -- запуск функции в новом потоке; возвращаемые значения игнорируются; не ждёт, пока функция завершится
Trigger(5, "скриптовое имя города", "TransformHavenTown")