Упрощенный код:
function DefenderCreatureMove(unit)
local last_mana = GetUnitManaPoints(unit);
SetUnitManaPoints(unit, 100);
sleep(30);
local player_units = GetCreatures(ATTACKER);
UnitCastAimedSpell(unit, SPELL_BLIND, player_units[0]);
sleep(1);
SetUnitManaPoints(unit, last_mana);
endДобавлено через 22 минуты
Хотя похоже что тут какая-то более общая фишка механики - когда я накладываю обычное заклинание героем, оставшаяся длительность его действия тоже различается если смотреть через существо на поле и через иконку на шкале. Но периодически оно синхронизируется.