Бьюсь над таким боевым скриптом:
Задумка - периодически в течении боя на одно из существ игрока случайным образом должно накладываться ослепление. Состав вражеской армии априори неизвестен.
Реализация - попробовал вызывать UnitCastAimedSpell от имени вражеских существ во время их хода. Как оказалось, если существо изначально не колдун, вызов данной команды не проходит. Попробовал через костыль - во время хода существа (отлавливаемого через триггер UnitMove) вызываю на поле командами SummonCreature или AddCreature умеющее колдовать существо, скажем лича, с помощью sleep'ов дожидаюсь когда оно появится, колдую им ослепление, после чего удаляю.
Все функции вызываются в основном потоке, но на выходе я получаю рассинхронизацию ATB шкалы с реальностью - смотришь свойства существа на поле боя, пишет к примеру "ослепление будет действовать 0,5/1 хода". Смотришь свойства того же существа через иконку на ATB-шкале - там какое-нибудь "ослепление будет действовать 0,8/1 хода". Периодически из-за этого ход переходит к существу, которое на ATB-шкале еще отображается как слепое.
Никто с таким не сталкивался?