Ну если только тот работает...
garrisons={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
for i, gar in garrisons do
SetObjectEnabled(gar, nil)
Trigger(4, gar, "capture_gar")
end
function capture_gar(hero, gar)
local a = {}
a[1], a[3], a[5], a[7], a[9], a[11], a[13] = GetObjectCreaturesTypes(gar)
for i = 1, 7 do
if a[i*2-1] ~= 0 then
a[i*2] = 2 * GetObjectCreatures(gar, a[i*2-1])
end
end
SetObjectEnabled(gar, 1)
Trigger(4, gar, nil)
MakeHeroInteractWithObject(hero, gar)
local i = GetLastSavedCombatIndex()
while i == GetLastSavedCombatIndex() do
sleep(1)
end
if not IsHeroAlive(hero) then
SetObjectEnabled(gar, nil)
Trigger(4, gar, "capture_gar")
return
end
for i = 1, 7 do
if a[i*2] then
AddObjectCreatures(gar, a[i*2-1], a[i*2])
end
end
DenyGarrisonCreaturesTakeAway(gar, 1)
end