Если вражеский - осада, если свой - заход. Но при всём при том герой остаётся на своей позиции, так что использование данной функции с городами сопряжено с багами. Если нужно героя поместить в город лучше использовать SetObjectPosition, а для осады - SiegeTown.