С помощью SetRegionBlocked на условии не получилось - компьютерный герой всё равно проходит сквозь блок.
Довольно странно, не сталкивался с такой ошибкой. А как ты это писал? У функции SetRegionBlocked есть параметр, отвечающий за номер игрока, для которого работает функция. То есть для второго игрока (неважно, комп или нет):
SetRegionBlocked("имя региона", true, 2)
Если нумерация там с единицы, мне казалось, что так. Если с нуля, то соответсвенно
SetRegionBlocked("имя региона", true, 1)