Auto-translated
Yes, approximately like that. When the variable `stop` equals 1, the loop will terminate at the desired point, and everyone will be able to use the garrison as usual.
```
stop = 0;
function enabling()
while 1 do
SetObjectEnabled('garrison', nil);
Trigger(4, 'garrison', 'kvest');
repeat
sleep(1);
until GetCurrentPlayer() ~= 1 or stop == 1;
SetObjectEnabled('garrison', 1);
Trigger(4, 'garrison', nil);
repeat
sleep(1);
until GetCurrentPlayer() == 1 or stop == 1;
if stop == 1 then
break;
end;
end;
end;