1. Выбираете город, переключаетесь на вкладку Garrison, ставите армию и во вкладке GarrisonHero гарнизонного героя. В скрипте пишете
EnableHeroAI('имя героя',nil);
2. Надо поставить триггер на это действие. Примерно так:
function func(параметр)
SetObjectPosition('имя вражеского героя для телепортации',координаты);
MoveHeroRealTime('этот герой',координаты города);
Trigger(код_действия, доп. параметры, nil);
Trigger(такой же, только на время);
end;
Trigger(код_действия, доп. параметры, func);
подробнее могу расписать, если подрообно сформулируете цель.
---------
а как вообще такой скрипт выглядит?
PlayObjectAnimation('имя монстра','move',IDLE);
Если с поворотами, то там проблемы... Дело теперь в SetObjectPosition, она теоретически может повернуть, но как я сейчас уточнил, смена эффекта телепортации (нам ведь надо, чтобы его не было!) работает только в 3.1 и только применительно к героям, так что я даже не знаю.